大连理工大学实验报告
实验时间: 2014 年 7 月 2 日 星期 三 实验室(房间号): 综合楼420 实验台号码: 班级: 学号: 姓名:
指导教师签字: 成绩:
实验四 MCS-51单片机“定时器编程”
一、实验目的和要求
编制一个1秒钟发声程序(参见图1),利用定时器控制无源蜂鸣器发生的时间和频率,单片机的端口驱动蜂鸣器发声。(参见实验教程的6.4.3 定时/计数器的编程实验(二): 蜂鸣器驱动实验)
1秒发声 P1.1
(1500KHZ)
图1:蜂鸣器驱动信号示意图
要求:分别利用T0、T1实现1秒钟发声(1500HZ)操作,其中: ? 一个定时器控制蜂鸣器的发生频率(1500HZ),使用查询法编程; ? 另一个定时器做1秒钟定时(50mS×20),使用中断法编程。 二、实验内容及步骤
1.首先选择一个定时器编程、调试1500HZ的定时周期并通过端口驱动蜂鸣器发声: 2.编制一个1秒钟定时程序;
3.将两者综合起来,实现持续一秒钟的发声持续,1秒钟后停止发声。 三、实验电路
四、流程图
五、程序清单(主程序和中断服务子程序流程图) ORG 8000H AJMP START ORG 801BH AJMP INT_T1 ORG 8100H START: MOV SP,#60H MOV TMOD,#11H MOV TL1,#0FCH MOV TH1,#4BH MOV R1,#20 SETB TR1 MOV A,#0FFH SETB ET1 SETB EA SJMP $ BUZZ: PUSH 04H MOV TL0,#33H MOV TH0,#0FEH SETB TR0 MOV R4,128
LOOP: JNB TF0,$ CLR TF0 MOV TL0,#33H MOV TH0,#0FEH CPL P3.2 DJNZ R4,LOOP POP 04H
INT_T1: PUSH PSW MOV TL1,#0FCH MOV TH1,#4BH DJNZ R1,EXIT MOV R1,#20 DEC A MOV P1,A LCALL BUZZ EXIT: POP PSW RETI END
六、实验结果也分析
在本次实验中,老师先对实验原理和相关细节讲解了许多,所以实验过程比较顺利。调试的时候,由于对A赋初值时:MOV A,#0FFH,由于开始忘写了“0”所以总是有错误。所以对特别不起眼的小细节我们也应该认真谨慎,否则就不是一名合格的程序员。
七、实验仪器 名称 PC+Keil DP-51PROC单片机综合仿真实验台 仿真器
型号 WindowsXP+uvision2 周立功单片机 TKSMonitor 51 无 无 无 备注