欢迎来到天天文库
浏览记录
ID:29733544
大小:23.69 KB
页数:20页
时间:2018-12-22
《8051数码管显示时间实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划8051数码管显示时间实验报告 昆明理工大学信息工程与自动化学院学生实验报告 课程名称:开课实验室:XX年04月25日 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二、实验原理 MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,
2、特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括:1)置工作方式。2)置计数初值。3)中断设置。4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从
3、业人员的业务技能及个人素质的培训计划 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写
4、中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三、实验内容 在实验板上完成如下功能: ?用定时器T0的方式1,实现第一个发光二极管以200ms的间隔闪烁;?用定时器T1的方式1,实现数码管前两位59s循环计时。实验板数码管电路原理如图1所示。计算初值公式 定时模式1th0
5、=(216-定时时间)/256目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 tl0=(216-定时时间)mod256 图1LED数码管电路原理图 四、实验步骤 1、按实验要求在KeilC中创建项目,编辑、编译程序。 代码1: #includesbitLED=P1^0; voidmain(){ TMOD=0x01;//选用计数模式和选用模式1 TH0=(65536
6、-50000)/256;//给计数器装初值,公式(2^16-定时时间)/256TL0=(65536-50000)%256;//给计数器装初值,公式(2^16-定时时间)%256EA=1;//开发所有中断 ET0=1;//开启定时器T0中断TR0=1;//启动T0定时器while(1);} voidTime()interrupt1{unsignedintnum;TH0=(65536-50000)/256;//给计数器重装初值,公式时间)/256TL0=(65536-50000)%256;//给计数器重装初值,公式时间)%256num++;if(num==4){LED=
7、~LED;num=0;}} 代码2: #includesbitDULA=P2^6;sbitWELA=P2^7; voiddelay(); unsignedcharnum,i,j;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 unsignedcharcodeDIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6
此文档下载收益归作者所有