实验六 定时器实验.doc

实验六 定时器实验.doc

ID:57449597

大小:95.50 KB

页数:5页

时间:2020-08-20

实验六  定时器实验.doc_第1页
实验六  定时器实验.doc_第2页
实验六  定时器实验.doc_第3页
实验六  定时器实验.doc_第4页
实验六  定时器实验.doc_第5页
资源描述:

《实验六 定时器实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验六定时器实验一、实验目的1、学习8031内部计数器的使用和编程方法。    2、进一步掌握中断处理程序的编写方法。二、实验设备EL-8051-III型单片机实验箱三、实验原理1、定时常数的确定    定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。   时间常数可按下述方法确定:

2、   机器周期=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、设计中断服务程序和主程序    中断服务程序除了要完成计数减一工作外,还要将时间常

3、数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。四、实验题目由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秒。让发光二极管按以上规律循环显示下去。五、实验电路六、实验步骤P1.0~P1.7

4、分别接发光二极管L1~L8即可。七、程序框图开始主程序框图置首显示码(A)、初始地址偏移量(R1)、计数初值(R0)定时器1初始化,设计数初值开放EA,ET1及TR1R0为0否?装计数初值于R0指向下一个显示代码单元地址偏移量为15H?从表中取显示码输出显示中断入口中断入口关闭计数控制位计数值减一装入时间常数开放计数控制位中断返回装入初始偏移量03H八、参考程序NAMET6;定时器实验         OUTPORTEQU0CFB0H         CSEGAT0000H         LJMPS

5、TART         CSEGAT401BH;定时器/计数器1中断程序入口地址         LJMPINT         CSEGAT4100H  START:MOVA,#01H;首显示码         MOVR1,#03H;03是偏移量,即从基址寄存器到表首的距离         MOVR0,#5H;05是计数值         MOVTMOD,#10H;计数器置为方式1         MOVTL1,#0AFH;装入时间常数         MOVTH1,#03CH         O

6、RLIE,#88H;CPU中断开放标志位和定时器         ;1溢出中断允许位均置位         SETBTR1;开始计数  LOOP1:CJNER0,#00,DISP         MOVR0,#5H;R0计数计完一个周期,重置初值         INCR1;表地址偏移量加1         CJNER1,#31H,LOOP2         MOVR1,#03H;如到表尾,则重置偏移量初值  LOOP2:MOVA,R1;从表中取显示码入累加器         MOVCA,@A+PC 

7、        JMPDISP         DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH         DB0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH         DB0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH         DB0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00H   DISP:;MOVDPTR,#OUTPORT     

8、     ;MOVX@DPTR,A         MOVP1,A;将取得的显示码从P1口输出显示         JMPLOOP1    INT:CLRTR1;停止计数         DECR0;计数值减一         MOVTL1,#0AFH;重置时间常数初值         MOVTH1,#03CH         SETBTR1;开始计数         RETI;中断返回         END

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。