找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stc89c52 0.01s计时器的单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:382502 发表于 2018-8-3 13:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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