《2022年数字抢答器单片机课程方案设计书.docx》由会员分享,可在线阅读,更多相关《2022年数字抢答器单片机课程方案设计书.docx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 1. 课题简介1.1 课题背景及意义单片机把我们带入了智能化的电子领域,很多繁琐的系统如由单片机进行 设计,便能收到电路更简洁、功能更齐全的良好成效;如把经典的电子系统当 作一个僵死的电子系统,那么智能化的现代电子系统就是一个具有“ 生命” 的 电子系统;对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢 答,抢到题的选手来回答疑题;抢答器不仅考查选手的反应速度同时也要求选 手具备足够的学问面和肯定的士气;选手们都站在同一个起跑线上,表达了公 平公平的原就;本试验设计的数字抢答器由主体电路与扩展电路组成;优先编 码电路、锁存器、译码
2、电路将参赛队的输入信号在显示器上输出;用掌握电路 和主持人开关启动报警电路,以上两部分组成主体电路;通过定时电路和译码 电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路;经过 布线、焊接、调试等工作后数字抢答器成形;更具有有用性;1.2 相关原理论证制作抢答器可以用好多的方法,可以用PLC 来实现,它的功能强大制作简单,并且外围的元件也很少;也可以用单片机来实现,他的制作也是比较简单;仍可以用我们学过的EDA 技术来制作;最终也可以用数字电路来实现,它的原理比较简洁,集成块的价格也比较廉价且很简洁购买,与我们学完的单 片机原理联系紧密,能将我们所学学问用于实际,对巩固所学学问有重
3、要 意义,使总体方案易于实现;但由于专用电路芯片通常是厂家特别设计开发 的,一般不易买到或价格较高,用其它方式设计的需要设计者具有相应的理论 学问,并要通过仿真器,应用软件,运算机等帮助设备才能验证完成,不利于 设计者的设计和制作,综上所述所以本方案用单片机来实现;而有些实际竞赛的场合,只要满意显示抢答有效和有效组别即可,故我打 算用一片 74HC373 (8 位数据锁存器)来实现此简易抢答器的功能,这是一个 显示方式简洁,价格低廉,经济有用的抢答器设计方案;在要求不高的场合,能完全符合要求;名师归纳总结 - - - - - - -第 1 页,共 23 页精选学习资料 - - - - - -
4、- - - 2. 总体设计方案2.1 本数字抢答器的组成本抢答器的电路主要有四部分组成:数字抢答电路、时序掌握电路、报警电路以及可预置时间的定时电路;其中数字抢答部分有一个 74DC373 锁存器和LED 数码管显示器组成,可以将八位抢答者的按钮通过LED 数码管显示器显示出他们最先抢答者的序号;而时序掌握电路的功能是当参赛选手按动抢答器 时,使扬声器发声,这时抢答电路和定时电路停止工作;而且设定的时间到达 后如无人抢答,就报警电路工作;报警电路工作的条件是当设定时间到达后或 者有人抢答时,报警电路被输入一个高电平,这时此电路工作;2.2 数字抢答器主要功能抢答器原理:每个选手的座位前安装一只
5、抢答按钮开关和一只信号灯;主 持人的座位前安装一只复原按钮开关、一只蜂鸣器和一只抢答器工作状态指示 灯;每当主持人口头发出答应抢答的号令之后,哪个队先按下座位上的按钮开 关,该座位的信号灯就先被点亮,同时封锁其他按钮开关的活动;并且熄灭主持人座位上的状态指示灯和发出 3 声类似于电话振铃的提示声,以“ 声明” 此次抢答动作已经完成;在主持人确认后,按下复原按钮,状态指示灯重新点 亮,并且同时发出“ 笛笛” 声,为下一次的抢答作好预备;电路中的 蜂鸣器 FM 是一只带有助音腔的压电陶瓷蜂鸣器,用于模拟发出报警声的功率 放大器和喇叭;在 FM 发声的同时,灯 D6 也在发光; FM 可以看作是一个
6、电容 性负载,本身不能流过直流电流;发声的原理是,作用在两个电极极板的电位 在发生变化时,陶瓷材料就发生弯曲,从而振动空气发出声音;FM和 4 只按 钮开关 SWaSWd 以及 4 只电阻 RaRd 都是在演示板的基础上额外添加的;由 于 RB端口内部具有上拉电阻,只要用软件设置其有效,即可省略在 4 只端口 引脚上外接上拉电阻;参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器 上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止;假如定时 时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显 示 0;8 路抢答器可以利用硬件电子元器件实现,但电路结构复杂
7、,调试困难,涉 及到的外围元件多,不便于安装,试验给实际操作带来很大的麻烦;我们利用单片机可以用很少元件实现相同功能,而且单片机性能稳固,可操作性强;可以只用P0 口连接排阻(用作上拉电阻),完成驱动LED的功能,串接按键可以由选手自己掌握抢答机会;利用单片机程序判定选手按键是否有名师归纳总结 - - - - - - -第 2 页,共 23 页精选学习资料 - - - - - - - - - 效,但当选手违规抢答时,利用简洁程序显示选手序号,启动蜂鸣器并不间 断,告知主持人有人违规操作,抢答无效;给出相应的延时,选手按正常的操 作抢答,软件倒记时;假如有选手在规定的时间以前完成问题,主持人通过
8、按键开头按钮来复 位,开头新的问题作答,由于程序不是很大不需要扩展储备空间,选手按键跳 入相应的子程序,回答倒记时;3. 系统软件设计3.1 部分软件设计3.1.1 主程序系统结构图软件系统结构图见图 3-1 :图 3-1 软件系统结构图回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显 示及发声程序;名师归纳总结 - - - - - - -第 3 页,共 23 页精选学习资料 - - - - - - - - - 3.1.2 初始化程序MAIN: MOV R1,#10 ;初设抢答时间为 10s MOV R2,#10 ;初设答题时间为 10s MOV TMOD,#11H;设置未定时
9、器 / 模式 1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高 , 越尖MOV TH1,#3CH MOV TL1,#0B0H; 50ms为一次溢出中断SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;答应四个中断 ,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;3.1.3 键盘扫描程序流程图名师归纳总结 本系统的键盘采纳独立式按键键盘程序流图见图3-2: 第 4 页,共 23 页- - - - - - -精选学习资料 - - - - - - - - - 图 3-2 键盘扫描程
10、序流程图3.1.4 抢答数码显示软件程序设计LED数码管采纳静态显示,显示器由9 个共阳极数码管组成;输入只有两个信号,它们是串行数据线 DIN 和移位信号 CLK;9 个串/ 并移位寄存器芯片74LS164首尾相连了九位共阳极七段数码管,共阳极数码管的 8 个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其他管脚接段驱动电路输出端;名师归纳总结 数码管显示程序流程图见图3-3 :第 5 页,共 23 页- - - - - - -精选学习资料 - - - - - - - - - 子程序入口初始化查表取段码段码送驱动显示位码送译码器选通低位 数码管显示缓冲区左移
11、数字是否显示完NY关显示返回图 3-3 数码显示程序流程3.1.5 音乐音频输出程系流程图音乐音频输出由 P3.7 输出,见图 3-4: 图 3-4 音乐音频输出程系流程图名师归纳总结 - - - - - - -第 6 页,共 23 页精选学习资料 - - - - - - - - - 3.2 软件调试3.2.1 编译、连接工程,形成目标文件把程序文件添加到工程文件中,并且程序文件已经建立好存盘后,就可以进行编译、连接,形成目标文件;编译、连接用Project菜单下的 Built Target 命令(或快捷键 F7),见图 3-5 和图 3-6 所示:图 3-5 程序编译名师归纳总结 - - -
12、 - - - -第 7 页,共 23 页精选学习资料 - - - - - - - - - 图 3-6 连接创建目标文件编译、连接时,假如程序有错,就编译不胜利,并在下面的信息窗口给出 相应的出错提示信息,以便用户进行修改,修改后再编译、连接,这个过程可 能会重复多次;假如没有错误,就编译、连接胜利,并且信息窗口给出提示信 息;3.2.2 运行调试观看结果当工程编译、连接胜利后,就可以运行它来观看结果;运行调试过程:先用 Debug菜单下的 Start/Stop Debug Session命令,启动调试过程;用Debug菜单下的 GO连续运行;用 Debug菜单下的 Stop Running 命
13、令停止运行;用 View 菜单调出各种输出窗口观看结果;系统软件运行结果见图 3-7: 图 3-7 系统软件运行结果4. 系统仿真测试系统硬件及系统软件设计完成,经硬件和软件调试胜利后,可以将系统软件和硬件结合起来调试,这里采纳Proteus 单片机仿真软件进行仿真;完成电名师归纳总结 路原理图设计后,将Keil 软件调试产生的 HEX文件添加到 Proteus 软件中,运第 8 页,共 23 页行后,其仿真结果如下图4-1 :- - - - - - -精选学习资料 - - - - - - - - - 图 4-1 系统仿真图5小结这次的课程设计收成颇多;由于是自由挑选课题,在最初挑选课题的时候
14、 就遇到一点问题,参考了一些资料,最终确立了智能抢答器这个课题;课题选 定之后,就注意搜集相关的资料,网上也下载了不少资料,对自己所要设计的 智能抢答器有了初步的明白;我主要是负责软件方面的设计,编程方面,自己 的基础不是很好,遇到了不少困难,借鉴了一些资料的相关程序,同时也回忆 了单片机教科书上的内容,巩固了以前学习的学问,这一点也是这次比较大的 收成;程序编完后,就开头了调试的过程,期间同样不行防止的遇到了一些问 题,很多低级的错误都不应当,这点我特别有体会,以后的编程中我会更加注 意这个问题;最终就是用 Proteus 单片机仿真软件进行仿真,这部分由于前面的调试和 检查,硬件和软件部分
15、都接近预想的成效,这就导致软硬件综合仿真很顺当的 完成;这次的课程设计过程困难多,但可以找到了最适合的方法解决问题,虽名师归纳总结 - - - - - - -第 9 页,共 23 页精选学习资料 - - - - - - - - - 然最终实物没有达到预期的成效,不过仍是学到很多东西;同学合作更让我懂得了协作精神,对我以后的工作有很大作用;6. 致谢经过将近两周的设计学习以及庄志红老师的热心帮忙和全力支持,这次的课程设计可以比较圆满地完成;庄志红老师严谨的治学态度和热忱的工作作风令我非常敬佩,他的指导使我受益非浅;7. 参考文献单片机原理及应用技术范力旻 电子工业出版社8051 单片机完全讨论实
16、习篇林申茂编著 人民邮电出版社单片机原理及接口技术实践教程胡建编著 机械工业出版社8. 附录元器件清单序号名称代号型号数量1 排阻R1-R7 A 103J 1 2 电阻R8 1K1 3 电解电容C1 10uF 1 4 电容C2,C3 33PF 2 5 电阻R9,R10,5.1K5 R11,R12,R13 名师归纳总结 6 开关11 第 10 页,共 23 页- - - - - - -精选学习资料 - - - - - - - - - 7 USB接口1 8 共阴数码管 4BUZ1 ARK SR420361K 1 9 位1011 1 晶振11.0592 10 89C52芯片STC 89C52RC 1
17、 11 蜂鸣器S8550 1 12 三极管1 部分功能仿真图1、主持人按下开头抢答键后,进入抢答10S倒计时,显示仿真电路见图6-1 :图 5-1 名师归纳总结 - - - - - - -第 11 页,共 23 页精选学习资料 - - - - - - - - - 2、主持人按下抢答开头键,如有选手进行抢答,显示其号码,并进入 10 秒倒计时的仿真电路图见图 6-2 :图 5-2 程序代码OK EQU 20H;抢答开头标志位RING EQU 22H;响铃标志位ORG 0000H AJMP MAIN ORG 0003H 名师归纳总结 AJMP INT0SUB 第 12 页,共 23 页 ORG 0
18、00BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH - - - - - - -精选学习资料 - - - - - - - - - AJMP T1INT ORG 0040H MAIN: MOV R1,#10 ;初设抢答时间为 10s MOV R2,#10 ;初设答题时间为 10s MOV TMOD,#11H;设置未定时器 / 模式 1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高 , 越尖 MOV TH1,#3CH MOV TL1,#0B0H; 50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SE
19、TB EX0 SETB EX1;答应四个中断 ,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一开头就运行定时器 , 以开头显示 FFF.假如想重新计 数, 重置 TH1/TL1 就可以了;=查询程序 = START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开头抢答时候显示 FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖动 , 假如 开头键 按下就向下执行 , 否者跳到非法抢答查 询 ACALL BARK;按键发声 MO
20、V A,R1 MOV R6,A;送 R1-R6,由于 R1中储存了抢答时间 SETB OK;抢答标志位 , 用于 COUNT只程序中判定是否查询抢答名师归纳总结 - - - - - - -第 13 页,共 23 页精选学习资料 - - - - - - - - - MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号MOV R3,#0AH;抢答只显示计时 , 灭号数AJMP COUNT;进入倒计时程序 , 查询有效抢答的程序 在 COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALS
21、E4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START ;=非法抢答处理程序 = FALSE1: MOV R3,#01H AJMP ERROR FALSE2: MOV R3,#02H AJMP ERROR FALSE3: MOV R3,#03H AJMP ERROR FALSE4: MOV R3,#04H AJMP ERROR FALSE5: MOV R3,#05H AJMP ERROR FALSE6: MOV R3,#06H AJMP ERROR FALSE7: MOV R3,#07H AJM
22、P ERROR FALSE8: MOV R3,#08H AJMP ERROR ;=INT0抢答时间 R1调整程序 = 名师归纳总结 - - - - - - -第 14 页,共 23 页精选学习资料 - - - - - - - - - INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在两个时间 LED上显示 R1 JNB P3.4,INC0 ;P3.4 为+1s 键, 如按下跳到 INCO JNB P3.5,DEC0;P3.5 为-1s 键, 如按下跳到 DECO JNB P3.1,B
23、ACK0;P3.1 为确定键 , 如按下跳到 BACKO AJMP INT0SUB INC0: MOV A,R1 CJNE A,#63H,ADD0;假如不是 99,R2 加 1, 假如加到 99,R1 就置 0,重新 加起;MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1 JZ SETR1;假如 R1为 0, R1 就置 99,DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1: MOV R1,#63H ACALL DELAY1 AJM
24、P INT0SUB BACK0: RETI ;=INT1回答时间 R2调整程序 = INT1SUB:MOV A,R2 MOV B,#0AH 名师归纳总结 - - - - - - -第 15 页,共 23 页精选学习资料 - - - - - - - - - DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT
25、1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI ;=倒计时程序 抢答倒计时和回答倒计时都跳到改程序 = REPEAT: MOV A,R2 ;使用锦囊时重新计时 MOV R6,A CLR RING COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器名师归纳总结
26、- - - - - - -第 16 页,共 23 页精选学习资料 - - - - - - - - - RECOUNT: MOV A,R6;R6储存了倒计时的时间 , 之前先将抢答时间或回答 时间给 R6 MOV B,#0AH DIV AB;除非常出个位 / 十位 MOV 30H,A;十位存于 30H MOV 31H,B;个位存于 31H MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于 5s 跳到 LARGER,小于等于 5s 会提示 MOV A,R0 CJNE A,#0AH,FULL;1s 中 0.5s 向下运行
27、 CLR RING AJMP CHECK FULL: CJNE A,#14H,CHECK;下面是 1s 的情形 , 响并显示号数并清R0,重新计 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减 1 AJMP CHECK LARGER: MOV A,R0 CJNE A,#14H,CHECK;假如 1s 向下运行 , 否者跳到查 停/ 显示 DEC R6;计时一秒 R6自动减 1 MOV R0,#00H CHECK: JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXT
28、T 名师归纳总结 CHECKK: JNB P3.0,REPEAT ;判定是否使用锦囊第 17 页,共 23 页NEXTT: ACALL DISPLAY - - - - - - -精选学习资料 - - - - - - - - - JB OK,ACCOUT;假如是抢答倒计时 , 如是就查询抢答 , 否者跳过查询连续倒数 这里起到锁抢答作用 AJMP RECOUNT ACCOUT: MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB
29、ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNT TZ1: JMP TRUE7 OK;假如按下了 停止键 执行的程序TZ2: JMP TRUE8 QUIT: CLR CLR RING AJMP START ;=正常抢答处理程序 = TRUE1: ACALL BARK MOV A,R2 MOV R6,A;抢答时间 R2送 R6 MOV R3,#01H CLR OK ;由于答题的计时不再查询抢答 , 所以就锁了抢答 AJMP COUNT TRUE2: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNT 名师归
30、纳总结 TRUE3: ACALL BARK 第 18 页,共 23 页- - - - - - -精选学习资料 - - - - - - - - - MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNT TRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT TRUE5:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#06H C
31、LR OK AJMP COUNT TRUE7:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNT TRUE8:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK 名师归纳总结 - - - - - - -第 19 页,共 23 页精选学习资料 - - - - - - - - - AJMP COUNT ;=犯规抢答程序 = ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与 34H HERE: MOV A,R0
32、CJNE A,#06H,FLASH;0.3s 向下运行 -灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1 FLASH: CJNE A,#0CH,CHECK1;下面是 0.8s 的情形 , 响并显示号数并清 R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示 FF 和号数 AJMP CHECK1 CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING
33、CLR OK AJMP START ;=显示程序 = DISPLAY: MOV DPTR,#DAT1;查表显示程序 , 利用 P0 口做段选码口输出 /P2 低三位做位选码输出 , MOV A,R3 名师归纳总结 - - - - - - -第 20 页,共 23 页精选学习资料 - - - - - - - - - MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4 MOVC A,A+DP
34、TR MOV P2,#0fbH MOV P0,A ACALL DELAY2 RET DAT1: DB00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;灭,1,2,3,4,5,6,7,8,9, 灭,F DAT2: DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;第一个为零 , 其他与上相同 , 由于十位假如为零显示熄灭;=加减时间延时 起到不会按下就加 N个数= DELAY1: MOV 35H,#08H LOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET ;=延时
35、4236 个机器周期 去抖动用到 = DELAY: MOV 32H,#12H LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP 名师归纳总结 - - - - - - -第 21 页,共 23 页精选学习资料 - - - - - - - - - RET ;=延时 4236 个机器周期 显示用到 = DELAY2: MOV 32H,#43H P1口, 全为 1 时为无效LOOP3: MOV 33H,#1EH MOV A,R7 ;每隔 6070 个机器周期读一次数据 , 连续读 , 有一个不为 1 时, 转到正常抢答处理JNZ AAAA1
36、 ;没读到有效数据时连续转到AAAA1 LOOP2: DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET ;=读抢答按键数据口程序 = ;由于在读抢答数据口的时候,单片机第一进入倒计时程序,再调用显示程序,最终才检测按键口;然而在检测按键口时动态扫描要调用三次4ms 延时程序 . 这样就会导致读数据口显现滞后 , 造成 1 号优先最高 .8 号最低 . ;故采纳在延时子程序中加了读数据口程序 AAAA1: MOV A,P1 . 保证了灵敏度和牢靠性CJNE A,#0FFH,AA1 36H,A ;当不全为 1 时的数据为有效数据AA0: MOV ;将有效数据送到36H暂存AJMP
37、 LOOP2 AA1: DEC R7 AJMP AA0 ;=发声程序 = BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING ;按键发声RET 名师归纳总结 - - - - - - -第 22 页,共 23 页精选学习资料 - - - - - - - - - ;=TO溢出中断 响铃程序 = T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT;CPL P3.6;RING标志位为 1 时候 P3.6 口不短取反使喇叭发出肯定频率的声 音 OUT: RETI ;=T1溢出中断 计时程序 = T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END ;程序终止实物图名师归纳总结 - - - - - - -第 23 页,共 23 页