74HC595驱动数码管程序

        数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多,其中最常见的是74HC164驱动数码管,这种电路一般用三极管作位选信号,用74HC164作段选信号,占用的MCU的IO口线随位数增加而增加,一般驱动四位以下数码管。如果要驱动四位以上数码管,用74HC595驱动最经典,只需4根IO口线就能驱动8位数码管,而且不存在消影问题,显示功能也很强大,是很实用的数码管驱动电路之一。

电路设计

在WSF-51DB开发板上,用两片74HC595驱动8位共阴极数码管(由两个4位共阴极数码管组成),一片作位选信号,另一片作段选信号。需要注意的是段选芯片与数码管的连接要使用100-200欧姆电阻作限流,不能太大也不能太小,更不能直接连接。

 

bcdd5c0f7d625528abb25df88c418c78.jpeg

程序设计:

/**************************************************************************

*程序名称:74HC595驱动数码管

*程序功能:数码管显示字符

*开发工具:WSF-51DB开发板

* MCU型号:AT89S52-24PU

*时钟频率:12MHZ

*程序作者:吴师傅

**************************************************************************/

#i nclude

unsigned char code segmcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7C,0x39,0x5E,0x79,0x71};//共阴极数码管段码0-f

unsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

//8位共阴极数码管位码

sbit ser=P2^0; //74HC595串行数据输入

sbit oe=P2^1; //74HC595使能,为0时输出数据,为1时呈高阻态

sbit rclk=P2^2; //74HC595数据锁存

sbit srclk=P2^3;// 74HC595串行时钟

//延时毫秒函数:

void Delayms(unsigned int t)

{

unsigned int x,y;

for(x=t;x>0;x--)

for(y=120;y>0;y--);//延时大约1毫秒

}

//任意位数码管显示一个字符函数:

void DTDisplayChar(unsigned char segmd,unsigned char bitd )//数码管段码和数码管位码

{

unsigned char i;

unsigned int dat;

dat=bitd;

dat=dat位码段码合并为一个int型数据

for(i=0;i位数据从高位依次移入74HC595

{

ser=(dat&0x8000)?1:0; //判断最高位,为真取1,为假取0

srclk=1; //上升沿送数据

srclk=0;

dat左移取下一位

}

rclk=1; //74HC595锁存数据

rclk=0;

}

//主函数:

int main(void)

{

unsigned char j,k;

oe=0; rclk=0;srclk=0;

DTDisplayChar(0xff,0x00);//数码管全亮

Delayms(2000);//延时2秒,检查数码管是否有缺画

while(1)

{

for(j=0;j显示0-f 16个字符

{

DTDisplayChar(segmcode[j],bitcode[j%8]);//从数组取出段码和位码

//要显示小数点只需在断码上或上0x80即可

for(k=0;k每个字符/闪烁5次

{

oe=0;//打开显示

Delayms(200);//延时200毫秒

oe=1;//关闭显示

Delayms(200);

}

}

/* for(j=0;j字符同时显示

{

DTDisplayChar(segmcode[j],bitcode[j]);//从数组取出段码和位码

Delayms(1);

} */

}

return 0;

}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/289521.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest conftest通过fixture实现变量共享

conftest.py scope"module" 只对当前执行的python文件 作用 pytest.fixture(scope"module") def global_variable():my_dict {}yield my_dict test_case7.py import pytestlist1 []def test_case001(global_variable):data1 123global_variable.u…

人工智能如何重塑金融服务业

在体验优先的世界中识别金融服务业中的AI使用场景 人工智能(AI)作为主要行业的大型组织的重要业务驱动力,持续受到关注。众所周知,传统金融服务业在采用新技术方面相对滞后,一些组织使用的还是上世纪50年代和60年代发…

华为云Sys-default、Sys-WebServer和Sys-FullAccess安全组配置规则

华为云服务器默认安全组可选Sys-default、Sys-WebServer或Sys-FullAccess。default是默认安全组规则,只开放了22和3389端口;Sys-WebServer适用于Web网站开发场景,开放了80和443端口;Sys-FullAccess开放了全部端口。阿腾云atengyun…

快速搭建知识付费小程序,3分钟即可开启知识变现之旅

产品服务 线上线下课程传播 线上线下活动管理 项目撮合交易 找商机找合作 一对一线下交流 企业文化宣传 企业产品销售 更多服务 实时行业资讯 动态学习交流 分销代理推广 独立知识店铺 覆盖全行业 个人IP打造 独立小程序 私域运营解决方案 公域引流 营销转化 …

使用jieba库进行中文分词和去除停用词

jieba.lcut jieba.lcut()和jieba.lcut_for_search()是jieba库中的两个分词函数,它们的功能和参数略有不同。 jieba.lcut()方法接受三个参数:需要分词的字符串,是否使用全模式(默认为False)以及是否使用HMM模型&…

unity学习笔记----游戏练习04

一、开发阳光生产功能 向日葵的生产过程需要动画和时间 1.生产动画 选中Sunflower,然后选中窗口再选中 创建新的剪辑开始制作动画,向日葵生产动画的过程是一个从暗到亮然后持续一段时间再到暗的过程。因此只需要在对应的时间改变颜色即可。 为了保证是…

Weblogic安全漫谈(二)

前言 继本系列上篇从CVE-2015-4852入手了解T3协议的构造后,本篇继续分析开启T3反序列化魔盒后的修复与绕过。 Weblogic对于10.3.6推出了p20780171和p22248372用于修复CVE-2015-4852,在补丁详情中又提示了p21984589是它的超集,所以可以直接装…

项目框架构建之2:主机程序的搭建

本文是“项目框架构建”系列之2,要编写一个项目框架,就好像一个操作系统似的,得有一些东西可以搭载项目结构,而.net core的主机框架正是可以实现这一目的的好帮手。 简单介绍一下主机程序,我们生产系统中往往需要构建…

清风数学建模笔记-聚类算法

K-maens算法: 算法的原理: 在论文中时,可以把一些可以流程化的算法的流程图加上去 优点: 缺点: 点容易受异常值的影响,且受影响较大 k-means算法: 使用SPSS进行聚类分析: S默认使用…

【JUC】Synchronized及JVM底层原理

Synchronized使用方式 Synchronized有三种应用方式 作用于实例方法,当前示实例加锁进入同步代码前要获得当前实例的锁,即synchronized普通同步方法,调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置。 如果设置了,执行…

短视频账号矩阵系统saas工具源码技术开发(源头)

一、短视频矩阵系统搭建常见问题? 二、账号矩阵如何打造?(企业号、员工号、达人号裂变) 三、无人直播解决什么问题? 一、短视频矩阵系统搭建常见问题? 1、抖去推的短视频AI矩阵营销软件需要一定的技术水…

大模型学习之书生·浦语大模型1——全链路开源体系

书生浦语大模型全链路开源体系 大模型成为热门关键词 大模型成为发展通用人工智能的重要途径,未来是使用一个模型应对多种任务,多种模态。 书生浦语大模型开源历程 InternLM-7BInternLM-20BInternLM-123B 性能达到LIama2-70B水平 从模型到应用 模型选…

【计算机网络基础】OSI与TCP/IP5层协议

一、OSI七层模型 二、TCP/IP五层协议簇 特点:同层使用相同协议,下层为上层服务 1、应用层(数据/PDU) 协议:HTTP(80)、HTTPS(443)、SSH(22)、DNS…

【计算机网络】网络层

文章目录 网络层提供的服务虚电路数据报服务虚电路与数据报服务比较 虚拟互连网络IP地址IP层次结构IP地址分类特殊地址子网掩码 子网划分变长子网划分超网合并网络规律 IP地址与MAC地址ARP协议ARP欺骗的应用 数据包数据包首部 路由ICMP协议RIP动态路由协议OSPF协议BGP协议 VPNN…

C#上位机与三菱PLC的通信01--搭建仿真环境

1、三菱PLC介绍 三菱PLC是三菱电机生产的主力产品。 它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。三菱PLC在中国…

k8s之pod

1、pod:k8s中最小的资源管理组件,最小化运行容器化应用的资源管理对象 (1)pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合 (2)一个pod中运行一个容器是最常用的方式 &#xff…

【Linux】常用的基本命令指令①

前言:从今天开始,我们逐步的学习Linux中的内容,和一些网络的基本概念,各位一起努力呐! 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 💯代码…

音频DAC,ADC,CODEC高性能立体声

想要让模拟信号和数字信号顺利“交往”,就需要一座像“鹊桥”一样的中介,将两种不同的语言转变成统一的语言,消除无语言障碍。这座鹊桥就是转换器芯片,也就是ADC芯片。ADC芯片的全称是Analog-to-Digital Converter, 即模拟数字转换…

lvs+keepalived+nginx实现四层负载+七层负载

目录 一、lvs配置 二、nginx配置 三、测试 3.1 keepalived负载均衡 3.2 lvskeepalived高可用 3.3 nginx高可用 主机IPlvs01-33 11.0.1.33 lvs02-3411.0.1.34nginx0111.0.1.31nginx0211.0.1.32VIP11.0.1.30 4台主机主机添加host [rootnginx01 sbin]# cat /etc/hosts 127.0.0.…

python flask图书管理系统带文档

python flask图书管理系统带文档。功能:登录,图书的增删改查,读者管理,借阅记录,有文档。 技术:python3,flask,mysql,html。 包含源码数据库文件文档。 源码下载地址: https://download.csd…