标题: stc89c52 0.01s计时器的单片机程序 [打印本页]

作者: sbhg    时间: 2018-8-3 13:11
标题: stc89c52 0.01s计时器的单片机程序
stc89c52 0.01s

单片机源程序如下:
  1. #include<reg52.h>
  2. char code table1[]={
  3. 0x3f,0x06,0x5b,0x4f,
  4. 0x66,0x6d,0x7d,0x07,
  5. 0x7f,0x6f,0x77,0x7c,
  6. 0x39,0x5e,0x79,0x71};
  7. char code table2[]={
  8. 0xbf,0x86,0xdb,0xcf,
  9. 0xe6,0xed,0xfd,0x87,
  10. 0xff,0xef};
  11. sbit dula=P2^6;
  12. sbit wela=P2^7;
  13. int i=0,o=0,u=0,n=0,m=0,q=0;
  14. void delayms(int xms);
  15. void main(void)
  16. {
  17.         TMOD=0x01;
  18.         TH0=(65536-10000)/256;
  19.         TL0=(65536-10000)%256;
  20.         EA=1;
  21.         ET0=1;
  22.         TR0=1;
  23.         while(1)
  24.                 {
  25.             dula=1;
  26.             P0=table2[m];
  27.             dula=0;
  28.             P0=0xff;
  29.             wela=1;
  30.             P0=0xfe;
  31.                         wela=0;
  32.                         delayms(5);
  33.             dula=1;
  34.             P0=table1[n];
  35.             dula=0;
  36.             P0=0xff;
  37.             wela=1;
  38.             P0=0xfd;
  39.                   wela=0;
  40.                         delayms(5);
  41.                         dula=1;
  42.             P0=table1[q];
  43.             dula=0;
  44.             P0=0xff;
  45.             wela=1;
  46.             P0=0xfb;
  47.                   wela=0;
  48.                         delayms(5);
  49.                 }
  50. }
  51. void caculate() interrupt 0
  52. {
  53.         TH0=(65536-10000)/256;
  54.         TL0=(65536-10000)%256;
  55.         i++;
  56.         o++;
  57.         u++;
  58.                                 {
  59.                                 if(i==10)
  60.                                 {
  61.                                         i=0;
  62.                                         q++;
  63.                                 }
  64.                                 if(o==100)
  65.                                 {
  66.                                         n++;
  67.                                         o=0;
  68.                                 }
  69.                                 if(u==1000)
  70.                                 {
  71.                                         u=0;
  72.                                         m++;
  73.                                 }
  74.                                 if(m==10)
  75.                                 {
  76.                                         m=0;
  77.                                 }
  78.                                 if(n==10)
  79.                                 {
  80.                                         n=0;
  81.                                 }
  82.                                 if(q==10)
  83.                                 {
  84.                                         q=0;
  85.                                 }
  86.                         }
  87. }
  88. void delayms(int xms)
  89. {
  90.         int a,b;
  91.         for(a=xms;a>0;a--)
  92.         for(b=110;b>0;b--);
  93. }
复制代码

所有资料51hei提供下载:
0.01s计时器.rar (546 Bytes, 下载次数: 11)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1