找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机定时器/计数器实现跑马灯Proteus仿真

[复制链接]
跳转到指定楼层
楼主
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uint i;
  5. void main()
  6. {
  7.         i=0;
  8.         EA=1;                                 //打开总中断
  9.         TMOD=0x01;                            //使用定时器T0的工作方式1(<font color="#ff0000">TMOD是不可以进行位操作</font>)
  10.         ET0=1;                                //定时器T0中断允许
  11.         TH0=(65536-50000)/256;                //给定时器T0的高8位赋值
  12.         TL0=(65536-50000)%256;                //给定时器T0的低8位赋值
  13.         TR0=1;                                //启动定时器T0
  14.         P2=0xff;
  15.         while(1);                             //无限循环等待中断
  16. }
  17. void Time0(void) interrupt 1                  //"interrupt"声明函数为中断服务函数,1表示定时器T0的中断编号
  18. {
  19.    
  20.         i++;
  21.         if(i==40)
  22.         {
  23.                 P2=~P2;                       
  24.                 i=0;
  25.         }
  26.         TH0=(65536-50000)/256;
  27.         TL0=(65536-50000)%256;
  28. }
复制代码


1.png (47.45 KB, 下载次数: 77)

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

使用道具 举报

沙发
ID:931684 发表于 2021-6-8 17:28 | 只看该作者
我实验了一下这个程序,它的效果就是让8个灯同时亮几秒再灭,这样一直循环
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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