定时器实验(循环彩灯).ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定时器实验(循环彩灯)

* 单片机课程设计 ———定时器实验 姓名:常冬伟 学号:01 班级:08自动化 指导老师:魏晋军 一、设计题目: 循环彩灯的设计。 由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发光二极管的L1~L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。 二、设计目的: 1.学习8031内部计数器的使用和编程方法。 2.进一步掌握中断处理程序的编写方法。 3.掌握protel的使用。 4.掌握电路设计的一般方法和仿真过程。 5.提高查阅资料的能力、分析问题和解决问题的能力。 三、实验原理: 1、定时常数的确定 ???? 定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。 ??? 时间常数可按下述方法确定: ??? 机器周期=12÷晶振频率=12/(6×106)=2us ??? 设计数初值为X,则(2e+16-X)×2×106=0.1,可求得X=15535 ??? 化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH 2、初始化程序 ???? 包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行 ???? 正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。 3、设计中断服务程序和主程序 ???? 中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。 四、设计步骤: P1.0~P1.7分别接发光二极管L1~L8即可。 五、实验电路: 六、程序框图: 七、实验程序: NAME T6 ;定时器实验 OUTPORT EQU 0CFB0H CSEG AT 0000H LJMP START CSEG AT 401BH ;定时器/计数器1中断程序入口地址 LJMP INT CSEG AT 4100H START: MOV A,#01H ;首显示码 MOV R1,#03H ;03是偏移量,即从基址寄存器到表首的距离 MOV R0,#5H ;05是计数值 MOV TMOD,#10H ;计数器置为方式1 MOV TL1,#0AFH ;装入时间常数 MOV TH1,#03CH ORL IE,#88H ;CPU中断开放标志位和定时器 ;1溢出中断允许位均置位 SETB TR1 ;开始计数 LOOP1: CJNE R0,#00,DISP MOV R0,#5H ;R0计数计完一个周期,重置初值 INC R1 ;表地址偏移量加1 CJNE R1,#31H,LOOP2 MOV R1,#03H ;如到表尾,则重置偏移量初值 LOOP2: MOV A,R1 ;从表中取显示码入累加器 MOVC A,@A+PC JMP DISP DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH DB 0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH DB 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH DB 0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00H DISP: ;MOV DPTR,#OUTPORT ;MOVX @DPTR,A MOV P1,A ;将取得的显示码从P1口输出显示 JMP LOOP1 INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一 MOV TL1,#0AFH ;重置时间常数初值 MOV

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档