片机课程设计报告

寻觅知音 范文 报告范文
精选回答

片机课程设计报告本文简介:目录前言--------------------------------------------------------------------------21课程设计的目的和要求------------------------------------------------------21.1、课

片机课程设计报告本文内容:

前言--------------------------------------------------------------------------2

1

课程设计的目的和要求------------------------------------------------------2

1.1、

课程设计的目的-----------------------------------------------------2

1.2、

课程设计的基本要求-------------------------------------------------2

2

系统设计------------------------------------------------------------------2

2.1基本工作原理-----------------------------------------------------------2

2.2系统设计-----------------------------------------------------------2

2.2.1系统组成方案---------------------------------------------------2

2.2.2扩展单元编址---------------------------------------------------2

2.2.3

按键、显示功能的定义--------------------------------------------2

2.3

软件总体设计-----------------------------------------------------2

2.3.1

存储单元的分配、标志位的定义------------------------------------2

2.3.2主程序框图及清单-----------------------------------------------3

3

硬件设计------------------------------------------------------------------3

3.1主控制器---------------------------------------------------------------3

3.1.1

80C51内部结构--------------------------------------------------3

3.1.2

80C51引脚封装与功能表------------------------------------------4

3.1.3

P0P1P2P3口内部结构及作为I/O端口时的使用-----------------------6

3.1.4

晶体振荡器电路-------------------------------------------------6

3.1.5

复位电路--------------------------------------------------------7

3.2

DS18B20原理及引脚介绍-------------------------------------------------7

3.3

LED显示驱动电路-------------------------------------------------------8

4

软件设计------------------------------------------------------------------8

5.Proteus仿真系列图…………………………………………………………………………….13

6

系统操作说明………………………………………………………………………………….16

7

结束语-------------------------------------------------------------------16

8

参考文献-----------------------------------------------------------------17

9

系统原理图---------------------------------------------------------------17

附录1-----------------------------------------------------------------------17

1.课程设计的目的和要求

1.1课程设计的目的

本次课程设计的目的主要是学会利用单片机采用软硬件结合的方法设计电子产品,一方面是学会以软代硬,用软件程序实现硬件功能,简化电路,另一方面就是学会设计硬件电路,科学布局电子电子元器件,掌握电路焊接的基本方法。

1.2课程设计的基本要求

基本要求:

(1)给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。

(2)抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。

发挥部分:

(1)抢答器具有定时抢答的功能,且一次抢答的时间和答题的时间可以由主持人设定(如30秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。

(2)参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。

(2)如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示FF。

(3)选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键。

2.系统设计

2.1

基本原理

抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。

2.2.1系统设计

基本要求

(1).给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。

(2).抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。

发挥部分:

(3)抢答器具有定时抢答的功能,且一次抢答的时间和答题的时间可以由主持人设定(如30秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。

(4)参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。

(5)如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示FF。

(6)选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键。

系统组成

抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器,555定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多,实际搭建起来费时费力,焊接很容易出错。于是,我想到了用单片机实现。该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。其原理框图如下:

抢答按扭

优先编

码电路

锁存器

译码电路

译码显示

主持人控制开关

控制电路

报警电路

秒脉冲产生电路

定时电路

译码电路

显示电路

在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的做板子的焊接工作了。在老师的指导下我选择了常用的单片机仿真软件proteus7.0以及keil

进行仿真

2.2.2

扩张单元地址

无扩展单元

2.2.3

按键、显示功能的定义

P1口的八位分别接8位选手的按键,作抢答按键口

P3.1接复位键,按下程序复位

P3.2接抢答时间调整键,按下进入抢答时间调整

P3.3接答题时间调整键,按下进入答题时间调整

P3.4接时间调整加1键,按下被调时间加1

P3.5接时间调整减1键,按下被调时间减1

RST接单片机复位键,按下单片机复位

四位八段数码管,第一位显示抢答选手号,第三、四位显示倒计时间,第二位不用把选手号和倒计时间隔开

2.3软件总体设计

2.3.1

存储单元的分配、标志位的定义

OK

EQU

20H:抢答开始标志位

RING

EQU

22H:响铃标志位

P3.0抢答开始标志位

P3.1复位标志位

P3.2抢答时间调整标志位

P3.3答题时间调整标志位

P3.4时间调整加1标志位

P3.5时间调整减1标志位

P3.6蜂鸣取反标志位

R0作定时1秒的指针

R1做抢答时间的存储单元

R2做答题时间的存储单元

R3

做选手号的存储单元

R6

做倒计时指针

P0口做送显段码口

P1口做选手抢答按键口

P2口做送显位选口

P3口做功能键口

2.3.2主程序框图及清单

系统初始化模块

按键模块

非法抢答模块

正确抢答模块

调整抢答时间

调整回答时间模块

数码显示模块

89C52

1个

USB

1个

共阴四联八段数码管

1个

开关

20个

蜂鸣器

1

30p

4个

晶振12M

1个

排阻10K

1个

10K电阻

2个

10uf

2个

3.

硬件设计

3.1主控制器

3.1.1

89C51内部结构

3.1.2

89C51引脚封装与功能表

(1)

Vcc(40引脚):接+5V电源

(2)

Vss(20引脚):接地

(3)

P0口:8位双向I/O口线,为P0.0-P0.7

(4)

P1口:8位准双向I/O口线,为P1.0-P1.7

(5)

P2口:8位准双向I/O口线,为P2.0-P2.7

(6)

P3口:8位准双向I/O口线,为P3.0-P3.7

(7)

XTAL1:片内晶振电路的输入端

(8)

XTAL2:片内晶振电路的输出端

(9)

RST/VPP:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

(10)

ALE/PROG:地址所存允许信号。

(11)

PSEN:外部存储器读选通讯信号。

(12)

EA/VPP:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

3.1.3

P0P1P2P3口内部结构及作为I/O端口时的使用

P0口和P2的结构

P0口的结构:下图为P0口的某位P0.n(n=0~7)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。

P0口作为普通I/O口:

①输出时,CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。

②输入时----分读引脚或读锁存器

读引脚:由传送指令(MOV)实现;

下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。

读锁存器:有些指令如:ANL

P0,A称为“读-改-写”

指令,需要读锁存器。上面一个缓冲器用于读端口锁存器数据。

原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。**

说明:

(1)P0口必须接上拉电阻;

(2)在读信号之前数据之前,先要向相应的锁存器做写1操作的I/O口称为准双向口;

三态输入缓冲器的作用:

(ANL

P0,A)

准双向口:

从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。

P0作为地址/数据总线

在系统扩展时,P0端口作为地址/数据总线使用时,分为:

(1)P0引脚输出地址/数据信息:CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。

P0作为地址/数据总线----真正的双向口

(2)P0引脚输出地址/输入数据:

输入信号是从引脚通过输入缓冲器进入内部总线。此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。

P2的内部结构

P2口作为普通I/O口:CPU发出控制电平“0”,使多路开关MUX倒向锁存器

输出Q端,构成一个准双向口。其功能与P1相同。

P2口作为地址总线:在系统扩展片外程序存储器扩展数据存储器且容量超过256B

(用MOVX

@DPTR指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。

P1口、P3口的内部结构

①P1口的一位的结构

它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成----准双向口。

②P3的内部结构

作为通用I/O口与P1口类似----准双向口(W=1)

P3第二功能(Q=1)

此时引脚部分输入(Q=1、W=1),部分输出(Q=1、W输出)。

P3第二功能各引脚功能定义:

P3.0:RXD串行口输入

P3.1:TXD串行口输出

P3.2:INT0外部中断0输入

P3.3:INT1外部中断1输入

P3.4:T0定时器0外部输入

P3.5:T1定时器1外部输入

P3.6:WR外部写控制

P3.7:RD外部读控制

综上所述:当P0作为I/O口使用时,特别是作为输出时,输出级属于开漏电路,必须外接上拉电阻才会有高电平输出;如果作为输入,必须先向相应的锁存器写“1”,才不会影响输入电平。

当CPU内部控制信号为“1”时,P0口作为地址/数据总线使用,这时,P0口就无法再作为I/O口使用了。

P1、P2和P3口为准双向口,在内部差别不大,但使用功能有所不同。

P1口是用户专用8位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。

P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。对于8031而言,P2口一般只作为地址总线使用,而不作为I/O线直接与外部设备相连。

3.1.4

晶体振荡器电路

3.1.5

复位电路

3.1.6

蜂鸣器驱动电路

3.3

八段数码管显示驱动电路

4.软件设计

在本设计中包括了以下主要的程序:主程序,查询程序,非法抢答程序,抢答时间调整程序,回答时间调整程序,倒计时程序,正常抢答处理程序,犯规处理程序,显示及发声程序。整个程序主要由定时器T0、定时器T1、外部中断0和外部中断1和主程序构成。主流程图如4.2.1所示:

主程序流程图

INT0用于调整抢答时间,设计流程图如下:

INT1用于调整答题时间,设计流程图如下:

定时器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.6取反,扬声器发声,改变定时器初值,可改变扬声器频率。这里用绿灯闪烁代替。程序流程图如下:

定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。其流程图如下:

5.Proteus仿真系列组图

5.1

复位图

图5.1复位显示三个FFF

该图显示当单片机复位后,在4位七段数码管上显示的初始状态“F

FF”字符。

5.2

设置计时时间

图5.2

计时时间为17秒

该图显示通过加一按键操作后在4位数码管上显示的计时时间为17秒。

5.3

非法抢答并显示座号

图5.3

三号选手非法抢答

该图显示的是若三号选手非法抢答时候,第一位字符显示单片机判定的非法选手“3”号选手,在4位数码管上的后两位显示非法抢答字符“FF”。

5.4

抢答成功并显示倒计时

图5.4

六号选手抢答

图中显示的是若6号选手抢答成功的时候,4位数码管只显示第一位,表示六号选手抢答成功。

5.5

抢答成功并显示倒计时

图5.4

六号选手抢答

图中显示的是若6号选手抢答成功并开始答题的情形,4位数码管的第一显示是“6”号选手抢答成功,最后两位显示选手答题倒计时时间还有25秒。

6.系统操作说明

本系统共有七个功能键

按键A为单片机复位键

按键B为抢答开始键

按键C为抢答复位键

按键D为答题开始键

按键E为抢答时间调整键

按键F为答题时间调整键

按键G为时间加1键

按键H为时间减1键

7.结束语-

本文研究与设计的八路多功能抢答器采用了通用的电子元器件,利用AT89C51单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来。理论联系实践,体现出大学生动手能力。通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。把握重点、攻克难关,学到用到、活学活用。在设计过程中由于时间仓促有很多地方难免存在不足之处,硬件设计已经完成,在软件设计中有些功能还尚未开发出来。但在以后的工作中,我们会严格要求自己,追求完美。

整个设计通过了软件和硬件上的调试、仿真。我想这对于自己以后的学习和工作都会有很大的帮助的。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题。而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。

但是,通过这次设计我也发现自己的很多不足之处。在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应用软件还不够多,我希望自己的这些不足之处能在今后的工作和学习中得到改善。而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!

7

.

参考文献

单片机原理与应用技术,张毅刚

彭喜元

编著,电子工业出版社

8

.

系统原理图

9.附录

程序:

OK

EQU

20H;抢答开始标志位

RING

EQU

22H;响铃标志位

ORG

0000H

AJMP

MAIN

ORG

0003H

AJMP

INT0SUB

ORG

000BH

AJMP

T0INT

ORG

0013H

AJMP

INT1SUB

ORG

001BH

AJMP

T1INT

ORG

0040H

MAIN:

MOV

R1,#30;初设抢答时间为30s

MOV

R2,#60;初设答题时间为60s

MOV

TMOD,#11H;设置未定时器/模式1

MOV

TH0,#0F5H

MOV

TL0,#0FFH;越高发声频率越高,越尖

MOV

TH1,#3CH

MOV

TL1,#0B0H;100ms为一次溢出中断

SETB

EA

SETB

ET0

SETB

ET1

SETB

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;

ACALL

DELAY

JB

P3.0,NEXT;去抖动,如果“开始键“按下就向下执行,否者跳到非法抢答查询

ACALL

BARK;按键发声

MOV

A,R1

MOV

R6,A;送R1->R6,因为R1中保存了抢答时间

SETB

OK;抢答标志位,用于COUNT只程序中判断是否查询抢答

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,FALSE4

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

AJMP

ERROR

FALSE8:

MOV

R3,#08H

AJMP

ERROR

;=====INT0(抢答时间R1调整程序)=====

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,BACK0;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

AJMP

INT0SUB

BACK0:

RETI

;=====INT1(回答时间R2调整程序)=====

INT1SUB:MOV

A,R2

MOV

B,#0AH

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

INT1SUB

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;重置定时器

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,#05H,FULL;1s中0.5s向下运行

CLR

RING

AJMP

CHECK

FULL:

CJNE

A,#0AH,CHECK;下面是1s的情况,响并显示号数并清R0,重新计

SETB

RING

MOV

A,R6

JZ

QUIT;计时完毕

DEC

R6

MOV

R0,#00H

AJMP

CHECK

LARGER:

MOV

A,R0

CJNE

A,#0AH,CHECK;如果1s向下运行,否者跳到查“停/显示“DEC

R6;计时一秒R6自动减1

MOV

R0,#00H

CHECK:

JNB

P3.1,QUIT;如按下停止键退出

JNB

OK,CHECKK

;只在回答倒计时才有效

AJMP

NEXTT

CHECKK:JNB

P3.0,REPEAT

;判断是否使用锦囊

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

ACC.6,TRUE7

JNB

ACC.7,TRUE8

AJMP

RECOUNT

QUIT:

CLR

OK;如果按下了“停止键“执行的程序

CLR

RING

AJMP

START

;=====正常抢答处理程序=====

TRUE1:MOV

R3,#01H

AJMP

LOOPX0

TRUE2:MOV

R3,#02H

AJMP

LOOPX0

TRUE3:MOV

R3,#03H

AJMP

LOOPX0

TRUE4:MOV

R3,#04H

AJMP

LOOPX0

TRUE5:MOV

R3,#05H

AJMP

LOOPX0

TRUE6:

MOV

R3,#06H

AJMP

LOOPX0

TRUE7:MOV

R3,#07H

AJMP

LOOPX0

TRUE8:MOV

R3,#08H

AJMP

LOOPX0

;=====犯规抢答程序=====

ERROR:

MOV

R0,#00H

MOV

TH1,#3CH

MOV

TL1,#0B0H

MOV

34H,R3;犯规号数暂存与(34H)

HERE:

MOV

A,R0

CJNE

A,#05H,FLASH;0.5s向下运行->灭并停响

CLR

RING

MOV

R3,#0AH

MOV

R4,#0AH

MOV

R5,#0AH;三灯全灭

AJMP

CHECK1

FLASH:

CJNE

A,#0AH,CHECK1;下面是1s的情况,响并显示号数并清R0,重新计

SETB

RING

MOV

R0,#00H

MOV

R3,34H;取回号数

MOV

R5,#0BH

MOV

R4,#0BH;显示FF和号数

CHECK1:

JNB

P3.1,QUIT1

ACALL

DISPLAY

AJMP

HERE

QUIT1:

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

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+DPTR

MOV

P2,#0FBH

MOV

P0,A

ACALL

DELAY2

RET

DAT1:DB

00h,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

;=====延时4236个机器周期(去抖动用到)=====

DELAY:

MOV

32H,#12H

LOOP:

MOV

33H,#0AFH

LOOP1:

DJNZ

33H,LOOP1

DJNZ

32H,LOOP

RET

;=====延时4236个机器周期(显示用到)=====

DELAY2:

MOV

32H,#43H

LOOP3:

MOV

33H,#0FH

MOV

A,R7

;每隔30~35个机器周期读一次P1口,全为1时为无效数据,继续读,有一个不为1时,转到正常抢答处理

JNZ

AAAA1

;没读到有效数据时继续转到AAAA1

LOOP2:

DJNZ

33H,LOOP2

DJNZ

32H,LOOP3

RET

;=====读抢答按键数据口程序=====

;由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口

;然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.

;故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性

AAAA1:

MOV

A,P1

CJNE

A,#0FFH,AA1

;当不全为1时的数据为有效数据

AA0:

MOV

36H,A

;将有效数据送到36H暂存

AJMP

LOOP2

AA1:

DEC

R7

AJMP

AA0

;=====发声程序=====

BARK:

SETB

RING

ACALL

DELAY1

ACALL

DELAY1

CLR

RING;按键发声

RET

;=====TO溢出中断(响铃程序)=====

T0INT:

MOV

TH0,#0F5H

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

LOOPX0:ACALL

BARK

MOV

A,R2

MOV

R6,A;抢答时间R2送R6

MOV

DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,MOV

A,R3

MOVC

A,@A+DPTR

MOV

P2,#0feH

MOV

P0,A

LOOPX:

JB

P2.7,LOOPX

CLR

OK;因为答题的计时不再查询抢答,所以就锁了抢答

MOV

A,R2

MOV

B,#10

DIV

AB

MOV

R5,A

MOV

R4,B

ACALL

BARK

ACALL

COUNT

END

无为野老 2022-07-20 19:47:44

相关推荐

多啦A梦来我家

那天,我正在家里看书,突然一道蓝光闪过,一个蓝色的物体莫名其妙得出现在我家,把我吓得跪在了地上。我颤抖着瞥了一眼,突然发现那个怪物原来是多啦a梦!惊魂稍定的我还没有说出话,它就茫然的问:这是哪啊?我努力从牙缝里...
展开详情

我所期待的星期天

唉!讨厌的星期天又来了!一座座堆积如山的作业等我去铲平,还要穿梭于各上辅导班之间。一天到晚忙得不亦乐乎!如果星期天像我所期待的那样,该有多好啊!当我睁开蒙胧的睡眼,快乐而有意义的一天开始了。吃完早饭,我看看课外...
展开详情

拿报纸

我隔壁的刘爷爷去成都避暑了,刘叔叔在家,刘叔叔每天都要上班,他叫我来拿报纸,我答应了他,帮他们拿了一个月的报纸。刘爷爷回来了,他发现报纸不在了,以为是被偷了,他敲了我的门,问我报纸在不在我这,我说:在,我就把报...
展开详情

树的故事

从前有一棵树,树上长着很多叶子。一天,树枝对叶子说:喂,你为什么总是跟我抢营养,你有总就给我滚。叶子被激怒了,便说:好,我走。时间似箭飞过,转眼间到了秋天,树上的叶子一片一片的从树上落下来。过了一段时间,树开始...
展开详情

黄太狼的故事(五)打工记

黄太狼为了能补交上医药费,决定外出打工,黄太狼收拾行李,离开了家,踏上了挣钱的路。心里虽然不情愿,但是也没别地办法,只好认命了!黄太狼来到建筑师河马的家,他敲了敲门,发现河马大师不在,于是,他在河马大师家旁边的...
展开详情

精选推荐更多>

政通人和的意思是什么5个字

政通人和,汉语成语,拼音是zhèng tōng rén hé,意思是政事通达,人心和顺;形容国家稳定,人民安乐。
出自宋·范仲淹《岳阳楼记》:“越明年,政通人和,百废俱兴。”
用法:作谓语、定语;指政治局面。
示例:及擢守严陵,政通人和,始从事于梨枣。——清·鲍廷博《青本刻<聊斋志异>纪事》
近义词:下情上达、安居乐业、国泰民安。
造句:
1、而今我国政通人和,百业兴旺。
2、勤政廉政政通人和,亲民爱民民康物阜。
3、如今正值盛世,举国上下政通人和,五湖四海安居乐业。
4、既要防止权力过分集中,也要防止职责不清、政通人和,只有这样才能保证各机构互相监督,运转有序。

功名成就是什么意思啊

“功名成就”意思是功绩取得了,名声也有了。出自《墨子·修身》:“功成名遂,名誉不可虚假。”
“功名成就”造句:
1、其他权谋术数,一切以功名成就之说,惑世诬民,充塞仁义,岂不是误人子弟。
2、付出终有收获,努力会有结果,功名成就在即,此刻莫要焦虑,心中会有担忧,黎明前的节奏,高考就如行舟,随风随水无忧。前路一片光明,愿你心想事成。
3、垂头丧气,感觉自己一无是处,定会碌碌无为,遗憾终生;胸有成竹,凡事相信“我能做好”,放胆一试,则会功名成就,不枉此生。

意欲的意思是什么

意欲,汉语词汇,拼音:yì yù,释义是指人对某种事物在思想上的欲望。想要。谓心想做某事。出自《淮南子·道应训》:“故人主之意欲见於外,则为人臣之所制。”
造句:
1、把希望建筑在意欲和心愿的人们,二十次中有十九次都会失望。
2、在你的脑海里,你能清晰地看到你最想得到的汽车和房屋,你最向往的游览胜地,你最渴望的朋友,还有你最意欲达到的地位和身份。
3、当我到达高处,便发觉自己总是孤独。无人同我说话,孤寂的严冬令我发抖。我在高处究竟意欲何为?

见出以知入,观往以知来什么意思

“见出以知入,观往以知来”的意思:看见外表就可以知道内里,看见过去就可以知道未来。出自《列子·说符》。
《列子·说符》出自《列子》,《列子》一书相传是战国时列御寇所著。《汉书艺文志》著录《列子》早已散佚。全书共8篇,134则,内容多为民间传说、寓言和神话故事。
《列子》全书,始以《天瑞》,终以《说符》,首尾呼应,自成一体。古时以所谓天降“符瑞”,附会与人事相应,叫做“符应”。“符”,有符信、符验的含义。“说符”,即谓“道”与人事的相互应验。全文通过三十余则寓言和说理,对“道”与“智”、“名”与“实”、“形”与“神”、“贵”与“贱”、“时机”与“变通”、“久利”与“暂得”、“持身”与“治国”等多对关系进行了各个角度的论述。
世事无常,祸福相倚,因此列子认为,为人处世应当做到“持后而处先”,对于事物的存亡变幻,也应当透过其表面来“寡其所以然”。一方面要“恃道化而不恃智巧”,全身远害,避免重演郄雍的悲剧;一方面也要拥有“授隙抵时,应事无方”的智慧,领会“先迕后合”的圣人之言,进而懂得各种看似无关的现象背后实际上存在着积来已久的缘由。然而世人多纵欲迷性,重利轻道,贪图一时所莸,不念长久之积,所以才会闹出“宋人拾契”、“齐人攫金”那样的笑话。唯有舍末明本,“归同反一”,因名求实,得其髓而弃其粗,才能一睹天道与人事之间的绝妙天机。
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200