74ls164单片机编程汇总(跑马灯-驱动数码管).doc

上传人:白大夫 文档编号:3245261 上传时间:2019-08-05 格式:DOC 页数:5 大小:22.50KB
返回 下载 相关 举报
74ls164单片机编程汇总(跑马灯-驱动数码管).doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《74ls164单片机编程汇总(跑马灯-驱动数码管).doc》由会员分享,可在线阅读,更多相关《74ls164单片机编程汇总(跑马灯-驱动数码管).doc(5页珍藏版)》请在三一文库上搜索。

1、74ls164单片机编程汇总(跑马灯/驱动数码管)74ls164单片机编程(一):采用74LS164驱动LED数码管用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。本实例用两片74LS164采用动态扫描的方法驱动两个7段数码管显示,如下图所示。因为74LS164没有数据锁存端,所以数据在传送过程中,数码管上有闪动现象,驱动的位数越多,闪动现象越明显。为了消除这种现象,可以在电路中增加一个PNP型的三极管来控制数码管的接地端,这样在数据传送过程中,关闭三极管使数码管断电而不显示,数据传送完后立刻使三极管导通。这种办法可驱动十几

2、个74LS164显示而没有闪动现象。本实例采用动态刷新方式在两个7段数码管上显示数字,P3.4用来控制741s164的清零端,用两个PNP三极管来控制数码管的通电,从而消除在传输数据的过程中数码管的显示抖动问题。程序代码:单片机控制74LS164驱动数码管利用74LS164驱动数码管,我们首先来弄清74LS164的工作方式,然后学习如何在自己板子上连接线路。使用数码管时,要注意区分这两种不同的接法:共阴极和共阳极。共阴极时,为1则亮;共阳极时,为0则亮。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数

3、码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。比如共阴极的方式接数码管,显示1,则编码为0x3f,即00111111(dp g f e d c b a )。静态显示程序如下:/*-功能:数码管 静态显示0-F单片机:AT89S52-*/#include reg52.h#define uint unsigned int#define uchar unsigned charsbit DAT=P0;sbit CLK=P0;void sendbyte(uchar byte);void delay(uint z);uchar code tab=0xed,0x09,0xbc,0

4、x9d,0x59,0xd5,0xf5,0x0d,0xfd,0xdd,0x7d,0xf1,0xe4,0xb9,0xf4,0x74,0x00 ; /0-F, 全灭/*=主函数=*/void main()unsigned char h;while(1)for(h=0;h17;h+)delay(500); /延时大约是0.5ssendbyte(h);delay(500);h=0;/*=用74LS164来输出一个8位的数据,点亮数码管相应的管脚,以显示数字=*/void sendbyte(uchar byte)uchar num,c;num=tabbyte;for(c=0;c8;c+)CLK=0;DAT

5、=num0x01; /每一位的输出CLK=1; /每一次上升沿,输出一位数据num=1; /右移位赋值 ,以供下一位的输出/*=延时子程序=*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);74ls164单片机编程(三)51单片机驱动74ls164跑马灯,好处是只用了2个端口即可实现,电路如下图所示:#include#include#define uint unsigned int#define uchar unsigned charsbit dat=P2;sbit clk=P2;uchar ii;uchar code se

6、g7code=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff;/0-9,-,全灭void sendbyte(uchar seg)uchar num,c;num=seg7codeseg;for(c=0;c8;c+)dat=num0x80;num=_crol_(num,1);clk=0;clk=1;void delayms(int ms)uchar mi,mj;for(;ms0;ms-)for(mi=6;mi0;mi-)for(mj=82;mj0;mj-);void main()for(ii=0;ii10;ii+)sendbyte(ii);delayms(200);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1