找回密码
 立即注册

QQ登录

只需一步,快速开始

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

计时为一分钟的单片机秒表程序

[复制链接]
跳转到指定楼层
楼主
ID:252434 发表于 2017-11-22 20:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
计时为一分钟的秒表
#include<reg51.h>
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned int j,k;
for(k=0;k<i;k++)
  for(j=0;j<255;j++);
}
void To_INT(void) interrupt 1
{
TH0=0x3c;
TL0=0xb0;
msec++;
   if(msec==20)
   {
   msec=0;
   sec++;
   if(sec==60)
   {
   sec=0;
   }
   }
}
void main()
{
unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
TMOD=0x01;
TH0=0x3C;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
P2=0x01;
P1=led[sec%10];
delay(10);
P2=0x02;
P1=led[sec/10];
delay(10);
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-11-23 02:27 | 只看该作者
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar temp,aa,num;
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. sbit led1=P1^0;
  8. uchar code table[]={
  9. 0x3f,0x06,0x5b,0x4f,
  10. 0x66,0x6d,0x7d,0x07,
  11. 0x7f,0x6f,0x77,0x7c,
  12. 0x39,0x5e,0x79,0x71};
  13. void delayms(uint );
  14. void display(uchar,uchar);
  15. uchar num,num1,num2,shi,ge;
  16. void main()
  17. {
  18.         TMOD=0x01;
  19.         TH0=(65536-45872)/256;
  20.         TL0=(65536-45872)%256;
  21.         TH1=(65536-45872)/256;
  22.         TL1=(65536-45872)%256;
  23.         EA=1;
  24.         ET0=1;
  25.         ET1=1;
  26.         TR0=1;
  27.         TR1=1;
  28.         while(1)
  29.         {      
  30.                 display(shi,ge);      
  31.         }
  32. }
  33. void display(uchar shi,uchar ge)
  34. {
  35. dula=1;
  36. P0=table[shi];
  37. dula=0;
  38. P0=0xff;
  39. wela=1;
  40. P0=0Xfe;
  41. wela=0;
  42. delayms(5);

  43. dula=1;
  44. P0=table[ge];
  45. dula=0;
  46. P0=0xff;
  47. wela=1;
  48. P0=0xfd;
  49. wela=0;
  50. delayms(5);
  51. }
  52. void delayms(uint xms)
  53. {
  54. uint i,j;
  55. for(i=xms;i>0;i--)
  56.    for(j=110;j>0;j--);
  57. }
  58. void T0_time()interrupt 1
  59. {
  60.                 TH0=(65536-45872)/256;
  61.         TL0=(65536-45872)%256;
  62.                 num1++;
  63.                 if(num1==20)
  64.                         {
  65.                                 num1=0;
  66.                                 led1=~led1;      
  67.                         }      
  68. }


  69. void T1_time() interrupt 3
  70. {
  71.         TH1=(65536-45872)/256;
  72.         TL1=(65536-45872)%256;
  73.         num2++;
  74.                 if(num2==160)
  75.                         {
  76.                                 num2=0;
  77.                                 num++;
  78.                                 if(num==60)
  79.                                         num=0;
  80.                         shi=num/10;
  81.                         ge=num%10;      
  82.                         }      
  83. }
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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