单片机流水灯_第1页
单片机流水灯_第2页
单片机流水灯_第3页
单片机流水灯_第4页
单片机流水灯_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机的流水灯控制班级:100712姓名:全建冲 学号:100710476一、 设计要求用51单片机设计一个流水灯的控制方案,要求采用定时器定时,利用中断法控制流水灯的亮灭,画出电路图和程序流程图,写出程序代码以及代码注释。二、 电路原理图原理图分析:本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1K排阻连接到电源上。原理图中还给出了晶振与复位端,以保证控制器的稳定工作。开始三、 程序流程图定时器初始化化50毫秒定时溢出?NYi+i=10?NYP1端口赋值a循环移位四、 程序代码及注解1. 非中断定时器控制#include<re

2、g52.h>#include<intrins.h>/包含了_crol_函数的头文件#define uchar unsigned char#define uint unsigned intuint i=0;uchar a=0xfe;void main()TMOD=0x01;/设置工作方式为定时器0,16位手动重装初值TH0=(65536-46080)/256;/50毫秒定时赋初值TL0=(65536-46080)%256;TR0=1;/启动定时器0while(1)If(TF=1)/读溢出标志位TH0=(65536-46080)/256;/重新赋初值TL0=(65536-4608

3、0)%256;i+;if(i=10)/500毫秒定时i=0;P1=a;/P1端口赋值a=_crol_(a,1);/循环左移TF=0;/去除定时器溢出标志程序分析:本程序采用非中断定时器法控制流水灯,核心语句在于读取标志位TF位,TF为定时器溢出标志位,溢出时硬件自动置一,所以循环读取标志位以判断定时器是否溢出,而每次溢出需要手动清零,否那么定时器无法再次溢出,利用标志i读取10次即可到达500毫秒的定时。另外需要注意的是单片机晶振为11.0592MHz,所以计时一个数的时间为12/11.0592=1.085us,故定时50毫秒的计数为50000/1.085=46080。2. 中断定时器控制#i

4、nclude<reg52.h>#include<intrins.h>/包含了_crol_函数的头文件#define uart unsigned char#define uint unsigned intuint i=0;uchar a=0xfe;void Timer0_init();void main()Timer0_init();/定时器中断初始化while(1);Timer0_init()TMOD=0x01;/设置定时器方式为定时器0,16位手动重装初值TH0=(65536-46080)/256;/50毫秒定时赋初值TL0=(65536-46080)%256;EA=1;/开总中断ET0=1;/开定时器0中断TR0=1;/开启定时器0void timer0() interrupt 1/定时器0中断效劳程序TH0=(65536-46080)/256;/重装初值TL0=(65536-46080)%256;i+;if(i=10)/500毫秒定时P1=a;/P1端口赋值a=_crol_(a,1);/循环左移程序分析:本程序采用定时器中断法控制流水灯,核心语句在于中断的产生上,主程序中定时器初始化一次之后用一个while循环让程序停留在此处等待中断的产生,此句话是为了防止程序跑飞设计。而定时器计数溢出后将产生中断,定时器0的中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论