单片机C语言(模块三)

单片机C语言(模块三)

ID:38620985

大小:324.00 KB

页数:17页

时间:2019-06-16

单片机C语言(模块三)_第1页
单片机C语言(模块三)_第2页
单片机C语言(模块三)_第3页
单片机C语言(模块三)_第4页
单片机C语言(模块三)_第5页
资源描述:

《单片机C语言(模块三)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、模块三智能报时器调试一、显示器例16位显示器动态显示(一)硬件接口(6位共阳数码管)如图所示,用单片机的P0口和P2口作为段码和位码输出口,并由两片74HC373作为每个端口的同相驱动器。(二)动态显示程序(C51)显示器用于显示时、分、秒值(从左到右),用6位共阳数码管动态显示,显示缓冲区与设置在片内RAM中的数组LEDBuf[]相对应,数组的6个元素与显示器的对应关系如下(从左到右):LED5LDE4LED3LED2LED1LED0LEDBuf[0]LEDBuf[1]LEDBuf[2]LEDBuf[3]LEDBuf

2、[4]LEDBuf[5]时分秒17显示缓冲区中存放的是待显示的数据。#defineledlen6unsignedcharledbuf[ledlen];//显示缓冲区,存放待显示数据codeunsignedcharledmap[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}//0~9共阳字形码voiddisplay(){unsignedchari,pos,led;pos=0x20;//从左边开始显示for(i=0;i

3、[ledbuf[i]];P0=led;P2=pos;//显示一位字符delay(1);//延时1mspos>>=1;//位码右移,准备显示下一位P2=0x00;//关所有八段管}}例2电子时钟(具有计时和显示功能)(6位共阳数码管)17(一)电子钟原理实时时钟是用单片机的定时/计数器T0产生100us的时基信号,每隔100us定时器T0向CPU发出一次中断请求,CPU响应中断后转入中断服务程序,中断服务程序以100us、秒、分、时为单位对实时时钟进行计数。(二)电子钟硬件系统(如例1图)(三)电子钟软件系统系统程序包括

4、以下几部分:1.主程序(main函数):主要完成系统的初始化,以及对显示器子程序的调用。2.定时器中断服务程序(t0_int函数):判断1秒到否?如到了,就修改时间3.显示子程序(display函数):将显示缓冲区的数据送6位LED显示器显示,6位LED采用动态显示方式。显示器用于显示时、分、秒值(从左到右),用6位共阳数码管动态显示,显示缓冲区与设置在片内RAM中的数组ledbuf[]相对应,数组的6个元素与显示器的对应关系如下(从左到右):LED5LDE4LED3LED2LED1LED0ledbuf[0]ledbu

5、f[1]ledbuf[2]ledbuf[3]ledbuf[4]ledbuf[5]时分秒17#include#defineledlen6unsignedcharledbuf[ledlen];//显示缓冲区,存放显示数据codeunsignedcharledmap[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}//0~9共阳字形码#defineTick10000//10000x100us=1s#defineT100us(256-50)//100u

6、s时间常数(6M)unsignedcharHour,Minute,Second;unsignedintC100us;//100us记数单元voiddelay(unsignedcharCNT){unsignedchari;while(CNT--!=0)for(i=125;i!=0;i--);}voiddisplay(){unsignedchari,pos,led;17pos=0x20;//从左边开始显示for(i=0;i

7、显示一位字符delay(1);//延时pos>>=1;//位码右移,准备显示下一位P2=0x00;//关所有八段管}}voidt0_int()interrupt1{C100us--;if(C100us==0){C100us=Tick;//100us记数器为0,重置计数器初值Second++;if(Second==60){Second=0;Minute++;if(Minute==60){17Minute=0;Hour++;if(Hour==24)Hour=0;}}}}voidmain(){TMOD=0x02;//方式2,

8、定时器TH0=T100us;TL0=T100us;EA=1;ET0=1;Hour=0;Minute=0;Second=0;C100us=Tick;TR0=1;//启动定时器0while(1){ledbuf[0]=Hour/10;17ledbuf[1]=Hour%10;ledbuf[2]=Minute/10;ledbuf[3]=Mi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。