当前位置:   article > 正文

STC89C52RC数码管秒表程序编写_stc89c52rc数码管程序

stc89c52rc数码管程序
数码管显示秒表,芯片STC89C52RC。

具体要求,采用动态扫描的方式让,6个数码管前三个显示秒数,后两个显示毫秒。第四个不用。秒数精确到1%。


  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define N 2000 //定义中断初值。2000 x 1/12MHz x 12 = 2ms
  5. uchar point; //中断点,或计数点。比如point的值为5,那么当经过5个N(2000)时会计数一次。
  6. uchar code table[] = { //数码管能显示的数值0x0~0xf
  7. 0x3f,0x06,0x5b,0x4f,
  8. 0x66,0x6d,0x7d,0x07,
  9. 0x7f,0x6f,0x77,0x7c,
  10. 0x39,0x5e,0x79,0x71};
  11. sbit dula = P2^6; //数码管段选引脚定义
  12. sbit wela = P2^7; //数码管位选引脚定义
  13. int wenum; //控制显示哪个数码管
  14. uchar code wetable[] = { //用到的数码管位选开关
  15. 0xfe,0xfd,0xfb,0xef,0xdf};
  16. int fre = 0; //作为发生时钟计数次数的计数。时钟计数5次为10ms(5 x 2ms)。
  17. uint s,ms; //秒,毫秒
  18. uint numBuffer[3] = {0};
  19. //用于存取s,ms每一位的存储。比如s=123秒。那么numBuffer[0]=1;numBuffer[1]=2;numBuffer[2]=3
  20. uint timebuffer[5] = {0}; //因为毫秒的显示只有两位计数0~99.秒的计数三位0~999。所以共5个存储空间即可。
  21. void divNumber(uint ); //分离整数。把整数的百、十、个三位的数值
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/572025
推荐阅读
相关标签
  

闽ICP备14008679号