找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1435|回复: 0
收起左侧

流水灯计时器仿真设计

[复制链接]
ID:334115 发表于 2018-5-20 11:55 | 显示全部楼层 |阅读模式
自己设计的流水灯计时器
0.png 0.png
单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int                     //宏定义
  4. #define uchar unsigned char                         //宏定义
  5. uchar temp,aa,num;                                         //三个变量
  6. sbit dula=P2^6;
  7. sbit wela=P2^7;
  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 delay(uint z);                                         //延时子函数声明
  14. void main()
  15. {
  16.         num=0;
  17.         aa=0;                                                                       
  18.         TMOD=0x01;                                                 //工作模式
  19.         TH0=(65536-50000)/256;                         //
  20.         TL0=(65536-50000)%256;         
  21.         EA=1;                                                 //cpu中断允许(总中断允许)位,响应条件之一
  22.         ET0=1;                                                 //定时器,计数器中断允许位
  23.         TR0=1;                                                 //启动定时器
  24.         temp=0xfe;                                         //赋初值
  25.         P1=temp;                                         //点亮第一个二极管
  26.         dula=1;
  27.         P0=table[0];                             //显示零
  28.         dula=0;
  29.         wela=1;                                             //都亮
  30.         P0=0xc0;
  31.         wela=0;                                                 //显示零
  32.         while(1)                                         //嵌套
  33.         {
  34.                 delay(1000);                         //延时1000毫秒
  35.                 temp=_crol_(temp,1);         //移位temp,1位
  36.                 P1=temp;                                 //赋值
  37.         /*        if(aa==40)                                 //
  38.                         {
  39.                                 aa=0;                         //清零
  40.                                 num++;
  41.                                 if(num==16)
  42.                                         num=0;
  43.                                 dula=1;
  44.                                 P0=table[num];
  45.                                 dula=0;               
  46.                         }        */       
  47.         }
  48. }

  49. void delay(uint z)                                 //延时子函数
  50. {
  51.         uint x,y;
  52.         for(x=z;x>0;x--)
  53.                 for(y=110;y>0;y--);
  54. }

  55. void timer0() interrupt 1                  //定时器1
  56. {
  57.         TH0=(65536-50000)/256;
  58.         TL0=(65536-50000)%256;
  59.         aa++;
  60.                 if(aa==40)
  61.                         {
  62.                                 aa=0;
  63.                                 num++;
  64.                                 if(num==16)
  65.                                         num=0;
  66.                                 dula=1;
  67.                                 P0=table[num];
  68.                                 dula=0;               
  69.                         }       
  70. }
复制代码

所有资料51hei提供下载:
流水灯计时.rar (47.51 KB, 下载次数: 5)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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