我们采用定时器实现流水灯的程序设计。

/*************************************/

//定时器初始化 ,50000微秒中断

/*************************************/

void Timer0_Init( )

{

TMOD = TMOD | 0x01;

TH0 = 0x3C;

TL0 = 0xB0;

EA =1;

ET0 =1;

TR0 =1;

}

/*************************************/

//定时器串口中断程序

/*************************************/

void Timer0_isr( ) interrupt    1

{

static unsigned count=0;

static unsigned i=0;

TH0 = 0x3C;

TL0 = 0xB0;

count ;

if(count>=20)

{

i ;

if(i==8)

i=0;

P1 = 1<

count =0;

}

}

}

ledRunCount ;

if(ledRunCount>1000)

{

LED1=~LED1;

ledRunCount=0;

}

}

void  main()

{

Timer0_Init( );

while(1)

{

}

}

以上代码未经测试,我们希望完成一流水灯实验。在 函数Timer0_Init( )执行结束后即完成了定时器的初始化。TH0 = 0x3C;  TL0 = 0xB0;向定时器的计数寄存器赋写初值。寄存器TH0、TL0每个指令周期增加1,如果我们使用12M晶振作为。一个指令周期刚好是1微妙。我们将定时器的中断周期设计为50微秒。所以应该是65536-50000=15536。转换为16进制是0x3CB0。每次进入中断程序后我们都将TH0、TL0赋为初值。以保证下次再次进入中断程序时间间隔是50微秒。

在中断程序中count是一个静态,每次进入中断程序count都会假1,当count等于20时都会改变P1端口电平,也就流水灯的显示。也就没进入20次中断改变一次LED的显示。20*50毫秒=1秒。也就每1秒改变一次流水灯显示。

使用定时器来实现流水灯的好处是定时非常准确。因为定时器依据时钟。而且我们看到主程序是空的。也就是说在主程序可以完成其他事情。

因为流水灯代码非常少,所以直接写在了定时器中断程序中。一般在中断程序中尽量乣写太多代码。以免在程序在中断程序中过多的停留。造成串口丢失数据。如果任务太多。一般在中断程序中置一个标志位。主程序通过标志位判断是否执行任务。

单片机c语言定时器控制流水灯,单片机-定时器流水灯相关推荐

  1. 单片机c语言电梯程序设计,基于51单片机的模拟电梯控制系统设计.doc

    摘要:本文介绍了一种电梯模拟控制系统,包括怎样利用对STC89C52进行编程从而对电梯实现自由控制的方式.该系统采用了STC89C52芯片进行控制,用单片机进行编程,能实现的功能非常多而且方便设计,并 ...

  2. 基于单片机双路温度检测报警系统设计-基于单片机声光控智能开关控制灯设计-基于单片机热电偶智能体温检测设计-基于单片机小型家用燃气锅炉控制系统设计-基于单片机一氧化碳有毒气体采集报警系统设计

    1628基于单片机双路温度检测报警系统设计(串口上位机控制) 基于pcf8591 tlc2543的双路温度检测报警系统 带串口上位机控制带仿真 源程序 温度传感器是 LM35 两路测温通道所用的ad芯 ...

  3. 单片机c语言程序设计叶俊明,单片机C语言程序设计

    本书的主要内容有51单片机的芯片引脚和*小系统.Keil C51编写软件与Proteus仿真软件的使用.C51语言.51单片机的基础实践.51单片机的中断系统.51单片机常见的接口电路以及十个实验例子 ...

  4. 【分享】基于单片机嵌入式的家用智能节水淋浴控制器的设计-基于单片机的电子贺卡控制系统设计-基于单片机的倒计时牌控制系统设计-基于单片机的彩灯控制器系统设计-多模式彩灯-单片机的八路路数字电压表控制设计

    1334基于单片机嵌入式的家用智能节水淋浴控制器的设计-全套毕设课设设计资料 三个ds18b20分别采集进水口热水  冷水 和温水的水温,然后分别显示出来,按下开始按键,系统初始化,自动设置出水温度为 ...

  5. 单片机c语言 王东锋,基于51单片机的输液报警系统设计

    高扬 摘 要:本设计是以AT89C51单片机为核心,利用光电传感器来检测设备液体的流动情况.当吊瓶内有点滴落下时,可通过红外检测装 1前言 随着信息技术和计算机技术的发展,信息革命在工业.医疗和控制领 ...

  6. 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...

    RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...

  7. 单片机c语言篮球比分_基于单片机的篮球比赛计时计分器的设计

    摘 要:本系统是采用单片机AT89C51作为本设计的核心原件.利用7段共阴LED作为显示器件.在此设计中共接入了2个7段共阴LED显示器,用于记录得分和比赛时间,显示范围可以达到0到99分,基本满足赛 ...

  8. 单片机c语言怎样添加自定义头文件,单片机C语言编程与或|头文件常见问题

    一.常见问题 1.头文件reg51.h和reg52.h其实是一样的,大家两个都可以用. 2.main()前面的void可加可不加,反正都是无返回值函数. 3.不是每一个程序都要用到死循环while(1 ...

  9. 单片机C语言稳压程序,51单片机的基于MC34063的5V稳压器的设计 -(原理图+程序)...

    题 目基于MC34063的5V稳压器的设计 研究现状:随着网络技术及通信技术的发展,便携式电子产品如个人数字助理(PDA).3G.4G手机.数码相机.笔记本电脑等个人设备的日益广泛应用,更多需求不断上 ...

  10. 51单片机c语言延时计算软件,51单片机精确延时程序大集合+初值计算工具

    在论坛上看到不少不错的延时程序,整理如下共同分享: 精确延时计算公式: 延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+5 ;延时5秒左右 DELAY5S:PUSH   04H;2个 ...

最新文章

  1. linux 下载jdk
  2. Python2 常见问题
  3. python 输入参数获取_python获取输入参数
  4. java获取文件夹 路径,Java获取文件的路径
  5. Maven——继承和聚合
  6. IOS UI Automation 学习之常用类,方法和模拟手势
  7. Newtonsoft 反序列化字符串
  8. foxmail本地文件夹同步服务器,foxmail同步QQ邮箱里的所有文件夹
  9. Godot官网新闻翻译 - 2016年
  10. 在 ABT 节点部署 RPG 制作大师游戏指南 | ArcBlock 博客
  11. js Shadow DOM
  12. c语言编程学生活动安排表,C语言作业安排表(18学时-周学时2...).doc
  13. 【软件工程】把Jackson图转换为流程图例题+画状态描述图
  14. 钟平逻辑英语语法_关于钟平的逻辑英语
  15. 让div在页面居中(滚动条滚动时也居中)
  16. cpu与主板的区别、独立显卡与集成显卡
  17. 想去看演唱却总是抢不到票?教你用Python制作一个自动抢票脚本
  18. 怎么用计算机计算年月份,win7计算器怎么计算某年某月某日到某年某 – 手机爱问...
  19. php读书笔记,读书笔记:《Modern PHP》
  20. 【附源码】计算机毕业设计JAVA医院病历管理系统

热门文章

  1. turbo c语言教程,turbo c语言教程(Turbo C language tutorial).doc
  2. USB接口ID卡读卡器oem软件(vb源代码)
  3. java写入excel乱码_Java导出Excel解决乱码及导出文件打开不可读需修复的问题
  4. docker安装oracle11g史上最全步骤(带图文)
  5. Android 游戏开发入门 视频+源码
  6. UNIX操作系统中,文件的索引结构放在( )
  7. 几种物流仿真软件的比较
  8. 生产系统建模仿真软件FactorySimulation
  9. 西电计算机网络ppt,《西安电子科技大学》PPT课件
  10. 2022-2028全球记账软件行业调研及趋势分析报告