电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机实例00-99计数器设计和实现 电气工程自动化专业

单片机实例00-99计数器设计和实现  电气工程自动化专业_第1页
1/4
单片机实例00-99计数器设计和实现  电气工程自动化专业_第2页
2/4
单片机实例00-99计数器设计和实现  电气工程自动化专业_第3页
3/4
10. 00-99 计数器 1. 实验任务 利用 AT89S51 单片机来制作一个手动计数器,在 AT89S51 单片机的 P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的 P2.0-P2.7 接一个共阴数码管,作为 00-99 计数的个位数显示,用单片机的 P0.0-P0.7 接一个共阴数码管,作为 00-99 计数的十位数显示;硬件电路图如图 19 所示。 2. 电路原理图 图 4.10.1 3. 系统板上硬件连线 (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 芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的 a-h 端口上; (3. 把“单片机系统”区域中的 P3.7/RD 端口用导线连接到“独立式键盘”区域中的 SP1 端口上; 4. 程序设计内容 (1. 单片机对按键的识别的过程处理 (2. 单片机对正确识别的按键进行计数,计数满时,又从零开始计数; (3. 单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。如何拆开十位和个位我们可以把所计得的数值对 10 求余,即可个位数字,对 10 整除,即可得到十位数字了。 (4. 通过查表方式,分别显示出个位和十位数字。 5.程序框图 图 4.10.2 6. 汇编源程序Count EQU 30HSP1 BIT P3.7ORG 0START: MOV Count,#00HNEXT: MOV A,CountMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,BMOVC A,@A+DPTRMOV P2,AWT: JNB SP1,WTWAIT: JB SP1,WAITLCALL DELY10MSJB SP1,WAITINC CountMOV A,CountCJNE A,#100,NEXTLJMP STARTDELY10MS: MOV R6,#20D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND7. C 语言源程序#include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char Count;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){Count=0;P0=table[Count/10];P2=table[Count%10];while(1){if(P3_7==0){delay10ms();if(P3_7==0){Count++;if(Count==100){Count=0;}P0=table[Count/10];P2=table[Count%10];while(P3_7==0);}}}}

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机实例00-99计数器设计和实现 电气工程自动化专业

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部