51单片机“定时器编程”思考题汇编

2020-03-27 07:29

大连理工大学实验报告

实验时间: 2013 年 7 月 5 日 星期 五实验室(房间号):综420 实验台号码: 6 班级: 电子1004 学号: 201081163 姓名: 黄佳卿 指导教师签字: 成绩:

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秒钟后停止发声。 (四)实验电路

? 单片机的P1.1与与蜂鸣器电路连接(参见图2);

MCS-51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 BUZZ JK62 103 BUZZ 10K B5区 VCC 8550 保护电阻47欧 图2:实验电路 (五)程序清单及流程图(主程序和中断服务子程序流程图)

编程提示:将发声部分操作编写为子程序(BUZZ),在BUZZ子程序中,判断TRi=1?,如果TRi=1则驱动蜂鸣器发声,如果TRi=0则不发声,直接返回(参见流程图)。

参考流程图

N BUZZ TRi=1? Y 驱动蜂鸣器发声 RET

程序清单:

ORG 8000H LJMP START ORG 801BH LJMP INT_T1 ORG 8100H

START: MOV SP,#60H

MOV TMOD,#11H ;驱动 MOV TL0,#4CH MOV TH0,#0FDH

MOV TL1,#0FCH MOV TH1,#4BH MOV R1,#20

SETB TR0

SETB TR1 SETB ET1 SETB EA

LOOP: JNB TR0,DOWN JNB TF0,$

MOV TL0,#4CH MOV TH0,#0FDH CPL P1.1

DOWN:LJMP LOOP

;中断

INT_T1:

PUSH PSW

MOV TL1,#0FCH MOV TH1,#4BH DJNZ R1,EXIT CLR TR0 SETB P1.1 EXIT: POP PSW RETI END 流程图:

开始 两个定时器初始配置 开启定时器 是 TR0 = 0? 否 TF0 = 0? 否 开启定时器

进入中断 保护现场,配置定时器 否 20次到了 是 停止定时器,引脚置高 是 恢复现场 中断返回 (五)实验体会

本次实验学会了51单片机定时器的使用,分别用两个定时器来控制发声频率和发声时间,使用了中断方式和查询方式编程。编程的过程中,了解到了程序结构的重要性,不能让程序死在某些地方,这样会有很大的隐藏危险。


51单片机“定时器编程”思考题汇编.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年全国高考理综新课标卷(物理部分精校版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: