毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc

上传人:文库蛋蛋多 文档编号:3978612 上传时间:2023-03-30 格式:DOC 页数:27 大小:174.50KB
返回 下载 相关 举报
毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc_第1页
第1页 / 共27页
毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc_第2页
第2页 / 共27页
毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc_第3页
第3页 / 共27页
毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc_第4页
第4页 / 共27页
毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51单片机的八路多功能抢答器设计.doc(27页珍藏版)》请在三一办公上搜索。

1、目录摘要.1绪论.21 抢答器系概述31.1抢答器的功能模块31.2抢答器的工作原理41.3抢答器的特点及组成62硬件设计.62.1硬件详细清单62.2 抢答器总电路图72.3 AT89C51的内部结构和功能72.4 晶体振荡器和电容的设计92.5 七段数码管显示电路的设计92.6 扬声器的设计102.7 按钮的设计102.8 芯片74HC30、74LS04的设计113软件设计113.1 软件系统结构图和程序流程图113.2 程序分析12结束语.23致谢.24参考文献.25附录.26摘要在以往企业或学校举行知识竞赛中,都是主持人读题,观众选手得安静仔细听题目,有条件的花上万元买个电子抢答器,算

2、是给知识竞赛赛场添彩了。现实中大多数是依靠主持人发挥水平,但选手和观众要渴望类似跟电视台搞的知识竞赛中的效果一样是难以实现的。而我们设计的抢答器节省的不小的开支,还能直观公正的看清哪位选手先抢答到题并有主持人来往下读题目。它的功能实现是由主持人按键来控制总开关,在抢答中,只要主持人按下开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有声音提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主持人强制复位;按键锁定,在有效状态下,按键无效非法。本次设计是用AT89C51单片机为核心控制元件,

3、设计一个八路多功能抢答器。以AT89C51单片机作为主控核心,与芯片74LS04、74HC30;扬声器等等构成硬件操作,再利用汇编语言来编程,来控制抢答器的功能实现。这次设计的系统实用性强、判断精确、操作简单、扩展功能强。关键词: 抢答器 AT89C51 汇编语言 计时绪论在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手

4、)先抢答到题的。本文主要介绍了抢答器均用单片机和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、语言提示等功能。通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本研究是一个实用的工程设计,具有创新性。通过这次设计,掌握51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结

5、合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。1 抢答器系概述1.1抢答器的功能模块本抢答器是用单片机采用模块化设计的八路抢答器,包括8路抢答按纽、计时显示、提示功能等、开始与结束控制按钮、时限设定、各种相关显示调控功能等。参赛者,除享有抢答按纽的权利功能外,还有声音提示功能和时间提示功能,也可设定由主控控制在参赛者终端表现的趣味性功能等;主控系统的控制按钮做开始与结束控制,根据活动参赛者的层次,对提前抢答者的行为设定为非法抢答,在主控处带有公示性显示的非法抢答者的台位号,对抢答限时及回答问题限时设为倒计时,并有时间显示和声音提示。抢答器系统的

6、主要功能模块方框图如图1-1所示8路抢答按键输入AT89C514位七段数码管显示声音电路开始、结束按键输入加一、减一按键输入时钟图1-1 抢答器系统主要功能模块本系统采用模块化设计的八路抢答器,在抢答器中主持人有开始和结束键,还可以修改抢答时间和选手回答问题的时间设置,原始状态下抢答时间为10s,回答问题时间为30s。通过加键和减键修改上述时间,改完后按结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发出声音提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发出声音。主持人可按结束键

7、结束,新一轮抢答开始。AT89C51是整个抢答器的核心,内部电路设计用汇编语言编写。它完成了时间参数的设定,抢按号码的译码,保存;显示;输出,抢按及答题倒计时功能等。1.2抢答器的工作原理抢答器的基本工作原理:在抢答竞赛时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。在整个抢答器工作过程中,显示电路、声音电路等还要根据现场的实际情况向外电路输出相应信号。抢答器的工作过程:1、如果想调节抢答时间或答题时间,按“加一”键或“减一”键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加

8、1s键,如果想减一秒按一下“减1s”键,时间LED上会显示改变后的时间,调整范围为099s, 0s时再减1s会跳到99s,99s时再加1s会变到0s。2、主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设10s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设30s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手会有效。倒数时间到5s时会每减一秒响一下提示音。3、如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。4、如果主持人未按“抢答开始”键,而有人按了抢答按键,犯规抢答,LED

9、上不断闪烁FF和犯规号数并响个不停,直到按下“停止” 键为止。总而言之,本外围接口实现的抢答系统设计了抢答器,该抢答器增加了新功能、提高了系统的可靠性、简化了电路结构、课题利用AT89C51单片机及节约了成本,是一个实用的工程设计。抢答器的工作流程分为:系统复位、正常流程、违例流程等几部分,如图1-2所示。加载程序运 行行开始开始数码管显示FFF开始抢按时间倒计时开始前有选手抢按显示违例选手号码(X, FF)并伴有语音报警倒计时结束,超时有选手抢按显示FFF显示选手号码,倒计时时间,语音报警,答题,答题时间倒计时正确流程错误流程若超过答题时间,则数码管显示FFF答题完毕根据选手表现则由主持人加

10、减分图1-2 抢答器的工作流程1.3抢答器的特点及组成在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉和听觉是很难判断出哪组先答题,利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用AT89C51单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、声音模块、抢答开关模块。该抢答器系统通过八个个按键输入抢答信号;利用存储程序来完成软件的设计;利用一个4位七段共阴数

11、码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,控制4位七段共阴数码管和扬声器工作。在数码管上显示哪一组先答题,从而实现整个抢答过程。2硬件设计2.1硬件详细清单表2-1 抢答器硬件详细清单器件名称规格型号数量微处理器(单片机)AT86C511芯片74LS04174HC301电阻3WTT10K8电容20PF3晶振12MHZ1按钮BUTTON147段数码管7SEG-MPX4-CA1扬声器SPEAKER1电源12.2 抢答器总电路图图2-1抢答器总电路图图中U1为单片机AT89C51,U2为74LS04, U3为74HC30。K1K8分别为8路抢答按

12、键,分别接到单片机的P1.0P1.7中。开始按键与结束按键分别接到单片机的10、11脚,由于单片机的10、11脚既有串行接口RXD、TXD功能,又有P3.0、P3.1的IO端口功能,此处按键用到单片机10、11脚的IO端口功能。抢答时间调整按键和回答时间调整按键分别接到单片机的13、14管脚,加一按键和减一按键分别接到单片机的15、16管脚。4位七段数码管段选P0口。4位七段数码管的位选接P2口低3位,扬声器输出为P3.7口。2.3 AT89C51的内部结构和功能AT89C51单片机内部主要有以下部件:8031CPU、振荡电路、总线控制部件、中断控制部件、片内Flash存储器、片内RAM、并行

13、I/O接口、定时器和串行I/O接口。AT89C51单片机内部由CPU、4KB的FPEROM ,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为0-24MHZ,有3级程序锁存器,内部含有128-256字节的RAM,有32条可编程I/O口线,2-3个16位定时/计数器,6-8个中断源,通用的串行接口,低电压空闲及电源下降方式。单片微机内部最核心的部分是CPU。CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算

14、以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。为了提高数据处理和位操作功能,片内增加了一个通用寄存器B和一些专用寄存器,还增加了位处理逻辑电路的功能。其内部结构如图2-2所示。外部定时元件复位中断电源系统时钟ROMCPU定时/计数器串行I/O口并行I

15、/O口RAM图2-2 AT89C51单片机的内部结构图AT89C51的主要性能包括:AT89C51与MCS51控制器系列产品兼容,片内有4K可在线重复编程闪速电擦除存储器(Flash Memory),存储器可循环写入/擦除1000次;存储器数据保存时间可达10年;工作电压范围宽:Vcc可由2.7V到6V;全静态工作可由0Hz到16MHz;程序存储器具有3级锁存保护;128*8位内部RAM;32条可编程I/O线;两个16位定时器/计数器;中断结构具有5个中断源和2个中断优先级;可编程全双工串行通信;空闲状态维持低功耗和掉电状态保存存储内容。2.4 晶体振荡器和电容的设计在单片机内部有一个时钟振荡

16、电路,必须在时钟的驱动下单片机才能工作,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如图2-3所示。图2-3 外部振荡源电路电路中两个电容 C2,C3的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。2.5 七段数码管显示电路的设计图2-4 共阴极数码管如上图2-4可知,数码管采用的是4位七段共阴数码管,其中AH段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码COM1、COM3、COM4分别接到单片机的P2.0、P2.1、P2.2,由单片机来决定当前该显示的是哪一位。在图中还有八个10K的电阻,连接在P0口

17、上,用作P0口的上拉电阻,保证P0口没有数据输出时候处于高电平状态。2.6 扬声器的设计利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。图2-5 扬声器电路图2-5中单片机的14脚输出具有复合功能,此处用到了单片机17脚的IO端口功能,单片机通过内部定时器的操作实现交替变换的波形输出驱动扬声器发声。2.7 按钮的设计本抢答器中有8个抢答按键输入,一个开始按键、一个结束按键,此外还有抢答时间调整键、回答时间调整键,加一按键、

18、减一按键各一个。如图2-6所示。图2-6 抢答按键及调整按键在上图中8个抢答按键分别接入单片机的P1.0P1.7端口,单片机通过读取P1.0P1.7的值来判断当前输入的是8个抢答按键中的哪一个。抢答时间调整和回答时间调整接到单片机的P3.3和P3.4接口,加一及减一按键接到单片机的P3.5和P3.6接口。开始及结束按键接到单片机的10、11脚,这里用到了单片机10、11脚复合功能中的IO端口功能,单片机通过读取10、11脚的P3.0、P3.1的IO端口值来判断当前是否处于抢答开始状态或抢答结束状态。2.8 芯片74HC30、74LS04的设计K1K8八个按键的输入电平靠74HC30输入与非门和

19、74LS04反向器组成的电路改变输入电平。图2-7中电路就是由一个74HC30输入与非门和74LS04反向器组成的去抖电路。如下图2-7所示。图2-7 去抖电路3软件设计3.1 软件系统结构图和程序流程图在系统架构图中包括:系统初始化模块、按键模块、非法抢答模块、正确抢答模块、调整抢答模块、调整回答模块和数码显示模块。如图3-1所示。系统初始化模块按键模块非法抢答模块正确抢答模块调整抢答时间调整回答时间模块数码显示模块图3-1软件系统结构图在主要的程序中包括:主程序,查询程序,非法抢答程序,抢答时间调整程序,回答时间调整程序,倒计时程序,正常抢答处理程序,犯规处理程序,显示及发声程序。主流程图

20、如3-2所示。显示FFF开始键加一键减一键回答时间调整抢答时间去抖动非法抢答处理显示犯规正常抢答显示抢答号并倒计时Y YY 初始化图3-2 程序设计流程图3.2 程序分析主程序: OK EQU 20H ;抢答开始标志位 RING EQU 22H ;响铃标志位 DATA0 EQU 36H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#10 ;初设抢答时间为10s MOV R2,#30 ;初设答题时间为30s

21、 mov 38h,#70 ;启用锦囊时间从70s倒计时 MOV TMOD,#11H ;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH ;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 ;允许二个中断,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了 查询程序:START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV

22、R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示FFF JNB P3.3,SELSUB0 JNB P3.4,TZ3 ;倒计时调整 JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ;去抖动,如果“开始键”按下就向下执行,否者跳到非法抢答查询 SETB EX0 ;开放INT0 ACALL BARK ;按键发声 MOV A,R1 MOV R6,A ;送R1-R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,在使用锦囊时用作判断是抢答倒计时还是回答倒计时 MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP COUN

23、T ;进入倒计时程序,“查询有效抢答的程序”在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,TZ1 JNB P1.7,TZ2 AJMP START TZ1: AJMP FALSE7TZ2: AJMP FALSE8TZ3: AJMP SELSUB1非法抢答处理程序:FALSE1: MOV R3,#01H AJMP ERRORFALSE2: MOV R3,#02H AJMP ERRORFALSE3: MOV R

24、3,#03H AJMP ERRORFALSE4: MOV R3,#04H AJMP ERRORFALSE5: MOV R3,#05H AJMP ERRORFALSE6: MOV R3,#06H AJMP ERRORFALSE7: MOV R3,#07H AJMP ERRORFALSE8: MOV R3,#08H AJMP ERRORSELSUB0(抢答时间R1调整程序):SELSUB0: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在两个时间LED上显示R1 JNB P3.5,INC0 ;P3

25、.5为+1s键,如按下跳到INCO JNB P3.6,DEC0 ;P3.6为-1s键,如按下跳到DECO JNB P3.1,BACK0 ;P3.1为确定键,如按下跳到BACKO AJMP SELSUB0INC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP SELSUB0ADD0: INC R1 ACALL DELAY1 AJMP SELSUB0DEC0: MOV A,R1 JZ SETR1 ;如果R1为0, R1就置99, DEC R1 ACALL DELAY1

26、 AJMP SELSUB0SETR1: MOV R1,#63H ACALL DELAY1 AJMP SELSUB0BACK0: AJMP STARTSELSUB1(回答时间R2调整程序):SELSUB1: MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.5,INC1 JNB P3.6,DEC1 JNB P3.1,BACK1 AJMP SELSUB1INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP SELSUB1ADD

27、1: INC R2 ACALL DELAY1 AJMP SELSUB1DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP SELSUB1SETR2: MOV R2,#63H ACALL DELAY1 AJMP SELSUB1BACK1: AJMP START启用锦囊程序:REPEAT:MOV A,38h ;使用锦囊时重新计时 MOV R6,A CLR RING ;当倒计时进入最后5秒的时候,启用锦囊能消除蜂鸣倒计时程序(抢答倒计时和回答倒计时都跳到改程序):COUNT: MOV R0,#00H ;重置定时器中断次数 MOV TH1,#3CH MOV

28、 TL1,#0B0H ;重置定时器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向下运行 CLR RING AJMP CHECKFULL: CJNE A,#14H,C

29、HECK ;下面是1s的情况,响并显示号数并清R0,重新计 SETB RING MOV A,R6 JZ QUIT ;计时完毕 MOV R0,#00H DEC R6 ;一秒标志减1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK ;如果1s向下运行,否者跳到“停/显示” DEC R6 ;计时一秒R6自动减1 MOV R0,#00HCHECK: JNB P3.1,QUIT ;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTTCHECKK:JNB P3.0,REPEAT ;判断是否使用锦囊NEXTT: ACALL DI

30、SPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT:MOV A,DATA0 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 ACC.6,TZ7 JNB ACC.7,TZ8 AJMP RECOUNT TZ7: AJMP TRUE7 TZ8: AJMP TRUE8 QUIT: CLR OK ;如果按下了“停止键”执行的程序 CLR RING AJM

31、P START 正常抢答处理程序:TRUE1: ACALL BARK MOV A,R2 MOV R6,A ;抢答时间R2送R6 MOV R3,#01H CLR OK ;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJ

32、MP COUNTTRUE5: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OKAJMP COUNT犯规抢答程序:ERROR: MOV R0,#00H MOV TH1

33、,#3CH MOV TL1,#0B0H MOV 34H,R3 ;犯规号数暂存与(34H) HERE: MOV A,R0 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 CHECK1CHECK1:

34、JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START显示程序:DISPLAY:MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出 MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV

35、 P0,A ACALL DELAY RETDAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;灭,1,2,3,4,5,6,7,8,9,灭,FDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一个为零,其他与上相同,因为十位如果为零显示熄灭加减时间延时(起到不会按下就加N个数):DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET延时(显示和去抖动用到):DELAY: MOV 32H,#12HLOOP: M

36、OV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET发声程序:BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING ;按键发声 RETTO溢出中断(响铃程序) :T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT; CPL P3.7 ;RING标志位为1时候P3.7口不断取反使喇叭发出一定频率的声音OUT: RETIT1溢出中断(计时程序):T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI中断服务程序: INTT0: MOV DATA0,P1 CLR EX0 RETI END结束语经过了快2个月的努力,和跟老师的商讨下,我完成了这次毕业设计的任务。在这次设计中,通过在图书馆查资料和上网搜集有关的资料,使我培养出自己的动手能力和自学能力。这次通过做毕业设计使我学到了,怎样把书本上的知识转为自己的知识,也学会了怎样更好的处理把学到是知识带到现实中来应用。在这次设计中,开始遇到了有很多问题,当时刚开始设计的时候我是想用EDA中

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号