00-59秒计时器(利用软件延时)

00-59秒计时器(利用软件延时)

ID:6681832

大小:63.50 KB

页数:5页

时间:2018-01-22

00-59秒计时器(利用软件延时)_第1页
00-59秒计时器(利用软件延时)_第2页
00-59秒计时器(利用软件延时)_第3页
00-59秒计时器(利用软件延时)_第4页
00-59秒计时器(利用软件延时)_第5页
资源描述:

《00-59秒计时器(利用软件延时)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、11.           00-59秒计时器(利用软件延时)1. 实验任务  如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。2. 电路原理图图4.11.13. 系统板上硬件连线(1.      把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。(2.      把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接

2、到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。4. 程序设计内容(1.      在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,从新秒计数。(2.      对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余。(3.      在数码上显示,仍通过查表的方式完成。(4.      一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。DELY1S:MOVR5

3、,#100D2:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1DJNZR5,D2RET5. 程序框图            图4.11.26. 汇编源程序SecondEQU30HORG0START:MOVSecond,#00HNEXT:MOVA,SecondMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AMOVA,BMOVCA,@A+DPTRMOVP2,ALCALLDELY1SINCSecondMOVA,SecondCJNEA,#60,NEXTLJMPSTARTDELY1S:MOVR5,#100D2:MOVR6

4、,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1DJNZR5,D2RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND7. C语言源程序#includeunsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharSecond;voiddelay1s(void){unsignedchari,j,k;for(k=100;k>0;k--)for(i=20;i>0;i--)for(j=2

5、48;j>0;j--);}voidmain(void){Second=0;P0=table[Second/10];P2=table[Second%10];while(1){delay1s();Second++;if(Second==60){Second=0;}P0=table[Second/10];P2=table[Second%10];}}

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

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

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