欢迎来到天天文库
浏览记录
ID:57609495
大小:178.76 KB
页数:5页
时间:2020-08-28
《AT89C51实现计数显示.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、@云主宰苍穹AT89C51单片机实现计数显示一:两位数的计数实现功能:通过检测按键的状态,按下一次计数一次,计数达到100次后清零,重新计数。Proteus原理图KeilC51源代码1.#include 2.//绝对地址定义 3.#include 4.#define PORT1 XBYTE [0x7FFF] 5.#define PORT2 XBYTE [0xBFFF] 6.unsigned char code TAB_COM_CATHOME[]= 7.
2、 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0~9段码 8.//按键端口使用 9.sbit P37 = P3^7; 10.void main() 11.{ 12. //初始化 13. unsigned char counter=0; 14. PORT1 = TAB_COM_CATHOME[0]; 15. PORT2 = TAB_COM_CATHOME[0]; 5/5@云主宰苍穹1. while(1) 2. { 3
3、. //判断按键是否按下 4. if(P37==0) 5. { 6. //按键按下计数 7. counter++; 8. //判断计数是否满重新处理 9. if(counter==100) 10. { 11. counter=0; 12. } 13. //拆分数据显示 14.
4、 PORT1=TAB_COM_CATHOME[counter%10]; 15. PORT2=TAB_COM_CATHOME[counter/10]; 16. //判断按键是否释放 17. while(P37==0); 18. } 19. } 20.} 二:三位数的计数实现功能:通过检测按键的状态,按下一次计数一次,计数达到1000次后清零,重新计数。Proteus原理图5/5@云主宰苍穹KeilC51源代码1. #include 5、.h> 2.//绝对地址定义 3.#include 4.#define PORT1 XBYTE [0x7FFF] 5.#define PORT2 XBYTE [0xBFFF] 6.#define PORT3 XBYTE [0xDFFF] 7.unsigned char code TAB_COM_CATHOME[]= 8. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0~9段码 9.//按键端口使用 6、 10.sbit P37 = P3^7; 11.void main() 12.{ 13. //初始化 14. unsigned int counter=0; 15. unsigned int temp; 16. PORT1 = TAB_COM_CATHOME[counter]; 17. PORT2 = TAB_COM_CATHOME[counter]; 18. PORT3 = TAB_COM_CATHOME[counter]; 19. while(1) 20. { 21.7、 //判断按键是否按下 22. if(P37==0) 23. { 24. //按键按下计数 25. counter++; 26. //判断计数是否满重新处理 27. if(counter==1000) 28. { 29. counter=0; 30. } 31. //拆分数据显示 32. 8、 PORT3=TAB_COM_CATHOME[counter%10]; 33. temp = counter/10; 34.
5、.h> 2.//绝对地址定义 3.#include 4.#define PORT1 XBYTE [0x7FFF] 5.#define PORT2 XBYTE [0xBFFF] 6.#define PORT3 XBYTE [0xDFFF] 7.unsigned char code TAB_COM_CATHOME[]= 8. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0~9段码 9.//按键端口使用
6、 10.sbit P37 = P3^7; 11.void main() 12.{ 13. //初始化 14. unsigned int counter=0; 15. unsigned int temp; 16. PORT1 = TAB_COM_CATHOME[counter]; 17. PORT2 = TAB_COM_CATHOME[counter]; 18. PORT3 = TAB_COM_CATHOME[counter]; 19. while(1) 20. { 21.
7、 //判断按键是否按下 22. if(P37==0) 23. { 24. //按键按下计数 25. counter++; 26. //判断计数是否满重新处理 27. if(counter==1000) 28. { 29. counter=0; 30. } 31. //拆分数据显示 32.
8、 PORT3=TAB_COM_CATHOME[counter%10]; 33. temp = counter/10; 34.
此文档下载收益归作者所有