C51单片机定时器及数码管控制实验报告_第1页
C51单片机定时器及数码管控制实验报告_第2页
C51单片机定时器及数码管控制实验报告_第3页
C51单片机定时器及数码管控制实验报告_第4页
C51单片机定时器及数码管控制实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、昆明理工大学信息工程与自动化学院学生实验报告(201 201学年第一学期)课程名称:单片机技术开课实验室:年月日学年专业班学号姓名成绩实验项目名计时器及数字代码管制实验指导教师教堂师进行评价语言同学是否知道实验器具的原理: a .知道B .基本知道 C .不知道该学生的实验能力: a .强 B .中 C .差该学生的实验是否达到要求: a .到达 B .到达 C .到达没有达到实验报告是否规范: a .规范 B .基本规范 C .不规范实验过程是否详细记录: a .详细 B .一般 C .无注: 5个a优4个a良3个a不合格。教师签名:年月日一、实验目的1 .掌握计时器T0、T1的方式选择和编

2、程方法,理解中断服务程序的设计方法,掌握实时程序的调试技术。2 .掌握led数字代码管理的动态显示程序的设计方法。二、实验原理1.89C51单片机有5个中断源(89C52中有6个),分别是外部中断请求0、外部中断请求1、计时器/计数器0溢出中断请求、计时器/计数器0溢出中断请求、串行端口各中断源对应于特殊功能寄存器TCON和SCON中设定的中断请求位。 中断源请求中断时,对应的标志分别被TCON和SCON的对应位锁定。 五个中断源有两个中断优先级,每个中断源可以编程为高优先级或低优先级的中断,从而实现二次中断服务程序的嵌套。 在相同的优先级级别上,内部查询逻辑决定响应顺序。 根据中断源的不同,

3、中断向量的地址也不同。中断控制使用4个特殊功能寄存器IE、IP、TCON位)和SCON位),分别控制中断的类型、中断的开/关和各种中断源的优先顺序。 中断程序由中断控制程序(主程序)和中断服务程序两部分构成1 )中断控制程序是为了实现中断的控制而使用的2 )中断服务程序用于完成中断源请求的中断处理的各种操作。C51的中断函数必须由interrupt m修饰。 C51程序设计中,在函数定义时使用interrupt m修饰符,系统编译时将对应函数转换为中断函数,自动添加程序标头和页脚,通过MCS-51系统中断的处理方式,自动配置在程序存储器内的对应位置。在该修饰符中,m的取值为031,对应的中断如

4、下。0外部中断01定时/计数器T02外部中断13定时/计数器T14串行端口中断5定时/计数器T2其他的值被预约了。在89C51单片机上设置有两个可编程的16位计时器T0和T1,可根据程序设定为计时器和外部计数方式。 T1还可以是其串行端口的波特率发生器。2 .计时器T0由特殊功能寄存器TL0和TH0构成,计时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制计时器的操作方式,TCON控制计时器的操作。 计时器的中断由中断许可寄存器IE、中断优先寄存器IP的相应位控制。 计时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。计时器的编程如下所示。1 )放置工作方法。2 )设定

5、计数初始值。3 )中断设定。4 )启动计时器。定时器/计数器在四种工作方式下使用的计数比特数不同,所以定时计数多数量也不同。3 .单片机的拉电流比较小(100200uA ),汇电流比较大(最大25mA,一般不能超过10mA ),无法直接驱动数字软线管,需要放大电路。 虽然可以由三级管驱动,但是51单片机只有32个I/O端口,可能需要连接很多设备,I/O端口不够。 因此,使用74HC573锁存器能够解决该问题,如图1所示开发板上的数字代码管理的硬件设计电路图。用于TX-1C实验开发板的74HC573锁存器(输出电流大,接口简单),在P0端口上控制6个数字管的段选择和位选择,其中P2.6控制锁存器

6、U1(DULA )、P2.7控制锁存器U2(WELA 单片机控制锁存器的锁存器侧,还控制锁存器的输出,该时分控制方法可以简单地控制任意数字代码管,显示任意数字。图1 LED数字代码电路图三、实验内容动态扫描和计时器1显示数字管从一开始就以1/10秒的速度下降并维持显示,同时通过计时器0,流水灯以500MS的速度从上向下移动,数字管的数量减少而停止时,实验板的流水灯也开始闪烁,3秒后(留在这里。计算初始值的公式定时模式1 th0=(216-定时时间)/256 tl0=(216-定时时间) % 256四、实验程序1 .根据实验要求在KeilC上创建项目,编辑和编译程序。2 .将编译生成的目标代码文

7、件(后缀. Hex )下载到实验板电路上。3 .在实验板上执行程序,观察并记录实验的执行结果。五、实验结果开始时数字电线管的数字,接着,流水灯表示最初的灯,实验结果如下图所示显示数码电线管的情况下,流水灯的显示是第6个灯,实现现象如下图所示显示数字管时,显示流水灯的是第七个灯,由于LED灯的变化快,因此很难捕捉到该时刻,下一张照片是之后LED闪烁,数字管保持的现象最后流水灯全部熄灭,数码电线管显示为HELLO的现象:六、心得通过这次实验,在加强流水灯的操作的基础上,加深了对八级数码电线管的动态表示的理解,对计时器中断的理解和运用,在实验过程中遇到了各种各样的问题,在老师和同学们的帮助下,我顺利

8、完成了这次实验,为后续学习奠定了坚实的基础。七、思考1 .如果使用计时器1方式2,程序是如何被修理的?a :修正定时器/计数器的动作: TMOD=0x21; /001000012 .如果显示从“99”减少,该如何修改程序?a :只需选择第一个和第二个数字管,在减少到0时停止,或者返回到数字99,程序的其他部分几乎不变。八、源代码#include#include#define uchar unsigned char#define uint unsigned intsbit led1=P10;sbit dula=P26;sbit wela=P27;创建ucharcodetable=/table数组

9、。 元素从0到f0x3f,0x 06,0x5b,0x4f0 x 66,0 x6d,0x7d,0x070x7f,0x6f,0x 77,0x7c,0 x 39,0 x5e,0 x 79,0 x 71;创建ucharcodehello=/hello数组。 元素是h、e、l、l和o0 x 76,0 x 79,0 x 38,0 x 38,0 x3f;void init (); /main ()函数初始化的函数的声誉void delayms(uint) /延迟函数的名声void显示器(uchar、uchar、uchar) /数字码管显示函数的名声void disHello (); 显示/HELLO函数的名

10、声一号数、二号数、白、石、葛; /定义全局变量int count,temp;void main ()举止init ();while(1)举止if(num1=10)/计时器每次计数50ms,达到500ms时,LED灯就流过举止num1=0;p1=_ crol _ (p 1,1,1 )/循环向左移动以下如果if(num2=2)/计满足0.1s,数字编码管的值将减少1举止num2=0;计数- -;if(count=398)/数码管减少时,保持其数量,8个LED闪烁举止TR1=0;TR0=0;Bai=计数/100; 获得/398个、十、百位Shi=计数/10;ge=count;显示显示(Bai,shi

11、,ge) /数字码管的6位P1=0x00; /8个LED闪烁的初始状态num1=0; /重新启动计时器T0后,num1重新初始化为0TR0=1;while(1)举止if(num1=0)/8个LED每隔500毫秒闪烁一次P1=P1; /LED灯反转不足if(num1=60) /计3s时,关闭LED灯,在数码管上显示HELLO举止TR0=0; /关闭定时器T0P1=0xff; 关闭/leddisHello (); 显示HELLO以下else如果小于显示(Bai,shi,ge) /3s,则继续显示前六位以下以下Bai=计数/100;Shi=计数/10;ge=count;以下显示(白、石、葛)以下以下

12、void init()/main ()函数的初始化举止TMOD=0x11; /计时器T0、T1的动作都是1TH0=(65536-45872)/256; /T0计数器寄存器的初始化TL0=(65536-45872)%6;TH1=(65536-45872)/256; /T1计数器寄存器的初始化TL1=(65536-45872)%6;P1=0xfe; /LED的初始化计数=432; /因为计数器的初始化只变化低位3位EA=1; /打开总中断ET0=1; /打开计时器T0TR0=1; /打开计时器T1ET1=1; /打开计时器T0TR1=1; /打开计时器T1以下void disHello()/HEL

13、LO显示程序举止wela=1;P0=0xfe;wela=0;P0=0xff;dula=1;P0=Hello0;dula=0;延迟毫秒(5)wela=1;P0=0xfd;wela=0;P0=0xff;dula=1;P0=Hello1;dula=0;延迟毫秒(5)wela=1;P0=0xfb;wela=0;P0=0xff;dula=1;P0=Hello2;dula=0;延迟毫秒(5)wela=1;P0=0xf7;wela=0;P0=0xff;dula=1;P0=Hello3;dula=0;延迟毫秒(5)wela=1;P0=0xef;wela=0;P0=0xff;dula=1;P0=Hello4;dula=0;delayms(5)以下void显示(uchar shi,uchar shi,uchar ge) /数字代码管理显示程序举止wela=1;P0=0xfe;wela=0;P0=0xff;dula=1;P0=table7;dula=0;延迟毫秒(5)wela=1;P0=0xfd;wela=0;P0=0xff;dula=1;P0=table6;dula=0;延迟毫秒(5)w

温馨提示

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

评论

0/150

提交评论