找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4042|回复: 0
打印 上一主题 下一主题
收起左侧

基于51单片机的跑表,秒表c语言程序

[复制链接]
跳转到指定楼层
楼主
ID:336914 发表于 2018-5-23 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于51单片机的跑表,秒表程序c语言程序
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar table[]="   00:00:00:00  ";
  5. bit flag=0;
  6. sbit en=P2^0;
  7. sbit rs=P2^1;
  8. sbit s1=P1^0;
  9. sbit s2=P1^1;
  10. sbit bb=P1^2;
  11. uchar shi,fen,miao,biao,tt,num1,aa;
  12. void delay(uint z)
  13. {
  14. uint i,j;
  15. for(i=z;i>0;i--)
  16.   for(j=110;j>0;j--);
  17. }
  18. void write_com(uchar com)
  19. {
  20. rs=0;
  21. P0=com;
  22. delay(10);
  23. en=1;
  24. delay(10);
  25. en=0;
  26. }
  27. void write_date(uchar date)
  28. {
  29. rs=1;
  30. P0=date;
  31. delay(10);
  32. en=1;
  33. delay(10);
  34. en=0;
  35. }
  36. void display(uchar com1,uchar date1)
  37. {
  38.    
  39. uchar aa,bb;
  40. aa=date1/10;
  41. bb=date1%10;
  42. write_com(0x80+com1);
  43. write_date(0x30+aa);
  44. write_date(0x30+bb);
  45. }
  46. void init()
  47. {
  48. TMOD=0x01;
  49. ET0=1;
  50. TR0=0;
  51. EA=1;
  52. TH0=(65536-10000)/256;
  53.     TL0=(65536-10000)%256;   
  54. en=0;
  55. write_com(0x38);
  56. write_com(0x0c);
  57. write_com(0x06);
  58. write_com(0x01);
  59. write_com(0x80+0x40);
  60. for(num1=0;num1<17;num1++)
  61. {
  62. write_date(table[num1]);
  63. delay(5);
  64.     }
  65. }
  66. void keyscan()
  67. {
  68. if(s1==0)
  69. {
  70. delay(5);
  71. if(s1==0)
  72. {
  73. TR0=~TR0;
  74. }
  75. }
  76. }
  77. void display1()
  78. {
  79. display(0x40+3,shi);  
  80. display(0x40+6,fen);
  81.     display(0x40+9,miao);
  82.     display(0x40+12,tt);
  83. }
  84. void main()
  85. {
  86. init();
  87. while(1)
  88. {
  89. keyscan();
  90. display1();
  91. }
  92. }
  93. void T0_time() interrupt 1
  94. {
  95.     TH0=(65536-10000)/256;
  96.     TL0=(65536-10000)%256;
  97. tt++;
  98. if(tt>99)
  99.     {
  100. tt=0;
  101. miao++;
  102. if(miao==60)
  103. {
  104. miao=0;
  105. fen++;
  106. if(fen==60)
  107. {
  108. fen=0;
  109. shi++;
  110. if(shi==24)
  111. {
  112. shi=0;
  113. }
  114. }
  115. }
  116. }
  117. }  
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表