资源描述:
《at89s51单片机试验及实践教程之00-99计数器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、AT89S51单片机试验及实践教程之00-99计数器
2、第1内容显示中lunouseg(this)">图4.10.13.系统板上硬件连线•把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。•把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;
3、•把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上;4.程序设计内容•单片机对按键的识别的过程处理•单片机对正确识别的按键进行计数,计数满时,又从零开始计数;•单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。如何拆开十位和个位我们可以把所计得的数值对10求余,即可个位数字,对10整除,即可得到十位数字了。•通过查表方式,分别显
4、示出个位和十位数字。5.程序框图500)this.style.ouseg(this)">图4.10.26.汇编源程序CountEQU30HSP1BITP3.7ORG0START:MOVCount,#00HNEXT:MOVA,CountMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVCA,A+DPTRMOVP2,ASJBSP1,OVA,CountCJNEA,#100,NEXTLJMPSTARTDELY10MS:MOVR6,#20D1:MOVR7,#248
5、DJNZR7,$DJNZR6,D1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND7.C语言源程序#includeunsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharCount;voiddelay10ms(void){unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}
6、voidmain(void){Count=0;P0=table[Count/10];P2=table[Count%10];s();if(P3_7==0){Count++;if(Count==100){Count=0;}P0=table[Count/10];P2=table[Count%10];while(P3_7==0);}}}}