单片机的数字抢答器设计
数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后数字抢答器成形。单片机体积小价格低,应用方便,稳定可靠’单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气选手们都站在同一 个起跑线上,体现了公平公正的原则。
关键字:抢答电路 定时电路报警电路
目录
第一章数字抢答器的概述及制作要求.................-6-
1-1数字抢答器的概述......................................-6 -
1-2设计任务与要求........................................-6 -
第二章单片机芯片的选择及抢答器方案................-9 -
2.1单片机芯片的选择......................................-9 -
2.2模块性能分析........................................ 13-
硬件电路设计 15-
3.1总体设计 15-
3.2外部振荡电路 16-
3.3复位电路的设计 17-
系统软件设计............................. 19-
4.1抢答器流程图 4. 2主程序 19-
4.3中断程序..........................................-24- -21-
第五章产品的样品..............................-27 -
结束语.........................................-27 -
参考文献.......................................-29 -
引言:单片机的发展史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(SingleChip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌式系立发展道路上‘Intel公司功不可没。2.MCU即微控制器(MicroControl ler Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子 Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,技术厂家。从这一角度来看,
最著名的厂家当数Philips公司。
Phil ips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速
发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Phi I ips的历史功绩。
3?单片机是嵌入式系统的发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
单片机的发展单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。
第一章数字抢答器的概述及制作要求
1.1数字抢答器的概述
对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。
1.2设计任务与要求
基本要求:
1.给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和
抢答器的开始。
2.抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同时扬声器给出音响提示。
此外,要封锁输入电路,禁止其他选手抢答。
发挥部分:
1.抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30
秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显
示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。
2.参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显
示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。
3.如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。
4.选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键。
绪论
1.1单片机抢答器的背景
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或
哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断岀哪一组(或哪一个选手)先抢答到题的。利用单片机编
程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。
1.2单片机抢答器的意义
本系统采用单片机作为整个控制核心。控制系统的四个模块为:显示模块、存储模块、语音模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号;利用一个数码管来完成显示功能;用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。在知识比赛屮,特别是做抢答题忖的时候,在抢答过程屮,为了知道哪一 ?组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答屮,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答吋间相差儿微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,
以及它的实际用途。系统工作原理本系统采mc52单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、
语音模块、抢答开关模块。该抢答器系统通过开关电路四个按键输入抢答信号;利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设计。
1.3抢答器的应用
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一?般是由很多电路纽成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多吋,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。传统普通抢答器主要存在以下缺陷:
(一)、在一次抢答过程小,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变为无效。
(二)、当有多个违规抢答时,普通抢答器或采用优先编码电路选择其屮一个,或利用抢答电路电子元件的“竞争”选择其屮一个。对于后者由于抢答电路制作完毕
后电子元件被固定。各路抢答信号的“竞争”能力也被固定,因而本质丄也有优先权。普通抢答器存在不公平性。
(三)、半有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏
洞”。
第二章单片机芯片的选择及抢答器方案
2.1单片机芯片的选择
单片机选用的是Atmel公司推出的ATS52,它是一种低功效、高性能CM0S8位微控制器,具有8K在系统可编程Flash存储器。使rtlAtmel公司高密度菲易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。在单芯片丄拥有灵巧的8位CPU和在线系统可编程Flash,使得ATS52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级屮断结构,全双工申行口,片内晶振及吋钟电路。空闲模式下,CPU停止工作,允许RAM、定吋器/计数器串口、屮断继续工作。掉电保护方式下RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个屮断或破件复位为止。而且,它还具有一个看门狗(WDT)定吋/计数器。如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的吋候,让单片机复位而不用整个系统断电,从而保护你的破件电路。TS52有40个引脚,32个外部双向输入/输出(I/O)端口,同吋内含2个外屮端口,2个16位可编程定时计数器,2个全 其将通双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降
低开发成本。
2.1.1单片机管脚说明
(T2)P1.0 匚1 (T2EX)P1.1 匚 P1.2E3 P1.3E4 P1.4E5 (MOSI) P1.5E6 (MISO)P1.6C (SCK:.P1.7 匚8 RSTE9 (RXD)P3.OE10 (TXD)P3.1 匚11 | 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 S3 12 28 13 28 14 27 15 26 16 25 | □ VCC |
□ ALE^ROG | ||
(INTC)P3.2 匚12 QTEP3.3 匚13 (TO) P3.4 匚14 (T1)P3.5E15 丽)P3.6匚16 | □ PSEN 28 □ P2.7 (A15) 27 □ P2.6 (A14) 26 □ P2 5(A13) 25 □ P2.4 (A12) |
(3ND 匚20 22 □ P2.1 (A9) 21 □ P20 (A3) (R3)P3.7E17 24 □ P2.3 (A11) XTAL2 匚18 23 □ P2.2 (A10) |
(1)Vcc:供电电压。
(2)GND:接地。
(3)POD:P9口为一个8位漏级开路双向I/O口,每脚可吸收8TTLI1流。当P1口的管脚第一次写1吋,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在Flash编程时,P0口作为原码输入口,当Flash进行校验时,P0输出原码,此时P0外部必须被拉高。
(4) P1 口: P1口是一个内部提供的上拉电阻的8位双向I/O口,P1口缓冲器能接 收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部
下拉为低电平时,将输出电流,这是由于内部上拉的缘故,。在Flash编程和校验时,P1作为第八位地址接收。
(5) P2口:P2口为一个内部丄拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口半用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给岀地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写吋,卩2口输出其特殊功能寄存器的内容。P2口在Flash编程和校验吋接收高八位地址信号和控制信号。
(6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTLfJ 电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,岀口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为ATS52的一些特殊功能口,如下表所示:
出口功能引脚简介
P3口引脚
第二功能
P3.0
RXD(串行口输入)
P3.1
TXD(串行口输出)
P3.2
INTO(外部中断0输入)
P3.3
INT1(外部中断1输入)
P3.4
TO(定吋器0外部脉冲输入)
P3. 5
T1 (定时器1外部脉冲输入)
P3.6
WR(外部数据存储器写脉冲输出)
P3.7
RD(外部数据存储器读脉冲输出)
阳口同时为闪烁编稈?和编稈?校验接收-?些控制信号。
(7) RST:复位输入。半振荡器复位器件时,要保持RST脚两个机器周期的高电
平时间。
(8) ALE/RPOG:当访问外部存储器时,地址锁存允许的输出电平由于锁存地址的地位字节。在Flash编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出止脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时H的。然血要注意的是:每当用作外部数据存储器时,将跳出一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址JL置0.此吋,ALE只有在执行MOVX,MOVC 指令时ALE才起作用。另外该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
(9) /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期问,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
(10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(OOOOH-FFFFH),不管是否有内部程序存储器。注意加密方式1吋,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在Flash编程期间,此引脚也用于施加12V编程电源(VPP)O
(IDXTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
(12)XTAL2:来自反向振荡器的输出。
2. 2模块性能分析
模块部分主要分为ATC52芯片、式键盘、LED数码管显示部分,下面对这后两部分进行介绍,其屮对LED七段数码管显示器做详细介绍,并根据实际工作情况采用合适的工作方式。
2.2.1式键盘
利用8个常开按钮开关S1、S8和8只电阻R1~R8组成抢答器的输入电路。SPSS为自复式常开按钮开关,分别作为8位抢答按钮,与它相连的8只电阻为下拉电阻,以保证按钮未按下时,锁存器的输入端为低电平。
当程序执行吋,按下按键七段数码管显示器上即显示相应的是哪个组按下抢答。
2.2. 2LED数码管显示
译码器的逻辑功能是将每一?个输入的二进制代码译成对应的输出高、低电平信号,是编码器的反操作。数码管可以用TTL或CMOS集成电路直接驱动,所以使用译码器将BCD编码译成数码管所需要的驱动信号,以便使数码管用十进制数字显示出BCD编码表示的数值。
七段数码管的段排列和内部结构如图所示七段数码管的段排列和内部部结构
应根据实际情况决定究竟采用共阳还是共阴方式,其基本原则是:若单片机口线直接驱动数码管各段,最好采用共阳极数码管,因为8051系列单片机口线输出高电平吋,输出的电流很小,数码管不会太亮。若数码管通过驱动芯片与单片机和连,就要看驱动芯片对数码管极性的要求了
点亮显示器分为静态和动态显示两种方法。所谓静态显示,就是当显示器显示某一字符吋,相应的发光二极管恒定的导通或是截止。例如,其段数码管的a、b、c、d、
e、f、导通,g截止,则显示0.这对这种显示方式每一位都要有一?个8位输出口控制,
所占硬件较多,一?般用于显示位数较少(很少)的场合。当位数较多吋,用静态显示所需的I/O过多,一般采用动态显示方法。
所谓动态显示,就是逐位地轮流点亮各位显示器(扫描),对于每一位显示器而言,每个一段吋间点亮一次。显示器的点亮既与点亮时的导通电流有关,也与点亮吋间和间隔时间比例有关。调整电流和时间参数,可是实现亮度较高、较为稳定的显示,同吋可减少工作电流。
三极管小的COM是选通位,对于共阳极数码管,当a、b、c、d、e、f、g、h端接低电平吋,COM位高电平,数码管各段全部点亮。例如,想让数码管显示“1”,就必须使数码管的b、c段点亮,其它段熄灭;所以使b、c段为低电平,其它各引脚均为高电平。在设计电路吋,可将这几位分别接到单片机的引脚上,还要加丄限流电阻,这样就可由程序控制数码管的工作情况了。但是如果用一个端口驱动一个数码管,四位数码管就需要四个空闲端口,而在许多系统屮并无四个端口可用。此外,使用四个端口往往使得每
一个数字都需要驱动(缓冲)电路和排阻,这将大大增加系统的成本。
最常见的解决方案是采用多路复用显示。这是指对于每一个显示只驱动1/4吋间。只要在20Hz-50Hz之间循环所有显示,由于人眼存在视觉残留,在这样的显示方式下,数码管看起来吋同吋点亮的。在这次课程设计屮根据实际需要采用了七段数码管共阳极和静态显示方式。
抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器,555定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多,实际搭建起来费吋费力,焊接很容易出错。于是,我想到了用单片机实现。单片机体积小价格低,应用方便,稳定可靠。单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外囤电路的实现简单方便。由于单片机本身不具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序“烧”入单片机内。
在实际电路设计屮,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的做板子的焊接工作了。在老师的指导下我选择了常用的单片机仿真软件proteus6.9以及ke订进彳亍仿真。
第三章硬件电路设计
3.1总体设计
根据抢答器的基本功能,可以设计出如下的单片机外I韦I电路:
系统父位
和4
幷go<
阳AM
99T9O9
Hffl | F3? 小 | R | |
<M | |||
r24A12 | |||
F2M1) | |||
总?M4 | |||
noro | ? 10 | ||
K | |||
巧”re | |||
WMBTT | |||
”4/T0 ” | |||
师 | |||
y“c | eda2000 | ||
2 | |||
八路抢签器仏 | |||
saWfflA1 | |||
\L八位选手按眦
如图3-1,P3.0为开始抢答,P3.2为停止,P1.0-P1.7为八路抢答输入,数码管段选P0
口,位选P2口低3位,蜂鸣器(用绿灯代替)输出为卩3.6口。P3.2为时间加1调整,卩3. 3为吋间减1调整。
3.2外部振荡电路
图3-2外部振荡电路
一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为:W左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路屮两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PFo
3.3复位电路的设计
单片机的第9脚RST为硕件复位端,只要将该端持续4个机器周期的高电平即可实现
复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:
VCC
图3-3复位电路
在方案屮使用到了破件复位和软件复位两种功能,由上面的破件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。
3.1.1显示电路的设计
显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮。
图3-4阴极七段数码管
3.1.2按钮输入电路的设计
抢答器的输入按钮使用常开开关,
O ■ |
|
图3-5抢答按键
这些常成了抢答按键,硕件电路简单,在程序设计丄也不复杂,只要在程序屮消
除在按键过程屮产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,血按键的时间一般远远大于这
个时间,所以当单片机检测到有按键动静后再延时一段吋间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。
3.1.3发声
这里能利用程序来控制单片机卩3.6口线反复输出高电平或低电平,即在该口线丄
产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制
“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不
同的声音。
第四章系统软件设计
4.1抢答器流程图
流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图屮的各
个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。
流程图是由一些图框和流程线组成的,其屮图框表示各种操作的类型,图框屮的文字和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(乂称选择结构),循环结构。为便于识别,绘制流程图的习惯做法是:
方框表示:要执行的处理(Process)
平行四边型表示:代表资料输入(Input)
不规则图形代表资料输出(Output)或报表输出(Print)
菱形表示:决策或判断(例如:If...Then... Else)
图4-1-1抢答器主程序流程图
图4-1-2抢答器定吋器屮断流程图
▼
中断返
回] | 图4-1-3外部屮断程序图 |
4.2主程序
我们组所设计的抢答器的程序采用的是6程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此2间相互。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完
全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序屮包括时钟设计程序,定时器屮断子程序,LED显示程序以及 按键控制子程序,程序设计如下: #include<reg52.h> sbit kO二P「0;sbit kl=Pri; sbit k2=Pl 2; sbit k3=Pl 3; sbitdO二P「4;sbit dl=Pl 5; sbit d2=Pl飞;sbitd3=Pl 7; sbit BO二卩丁7;sbit 10二P2'0;sbit 11二P2"2;sbit 12二P2"3;sbit 13=P2^4; sbit kz=P3 0;
unsignedchar qiangdanum^OxBf;
unsigned | char | code |
table[] = {0x3f, Oxxx, 0x5b, 0x4f, 0x66, 0x6d, Ox7d, 0x07, 0x7f, 0x6f};
unsignedchar ge=0,shi=O;
unsignedint num二0,time二
0;void display (); /*显示函数*/
voiddelay(unsigned int);
main()
{
TM0D=0X01; /*采用方式一,即十六位计数器*/
THO= (65536-50000)/256; TLO= (65536-50000)%256;
/*设置初始值*/
IT0=0; | |
EX0二1; /*启动外部中断0*/{while(1)
{display();
if(kz==0)
TR0=l; /*开启定时器0中断*/ if(num==20)
{num=0;
time++;
if(time==60) /*60秒的计吋*/
time=0;
}
}
}
void exterO() interrupt 0 {EA=0;10=0;
/*外部中断程序*/
辻(k0==0) /*开关0按下*/
{d0=0;qiangdanum=l;B0=l;
}A 1号选手抢答成功,数码管显示1,蜂鸣器响,第1个二极管亮*/ if (kl==0) /*
开关 1 按下 */
}A 2号选手抢答成功,数码管显示2,蜂鸣器响,第2个二极管亮*/
{d1二0;q i angdanum=2;B0=1;
if(k2==0) /*开关2按下*/
{d2=0;qiangdanum=3;BO二1;
}/* 3号选手抢答成功,数码管显示3,蜂鸣器响,
if(k3==0) /*开关 3 按下*/
{d3=0; qiangdanuin=4; B0=l;
第3个二极管亮*/
}/* 4号选手抢答成功,数码管显示4,蜂鸣器响,第4个二极管亮*/ } void time0() interrupt 1
{num++;
THO=(65536-50000)/256;
TL0=(65536-50000)%256;
} /*1秒定吋函数*/ void delay (unsigned int z)
{tinsignedint x, y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
} /*延迟函数*/voiddisplay(void)
{shi二time/10;
ge二time%10;
P2=0xef;
Portable[ge];
delay(5);
P2=0xf7;
P0二table[shi];
delay(5);
P2=0xFE;
P0二tabletqiangdanum];
delay(5);
} 4.3中断程序 4. 3. 1什么是中断 | /*显示函数:来显示0-60的计数*/ |
屮断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。
有五种屮断源:外部屮断0、外部中断1、定时器屮断0、定时器中断1、串行屮断。
它们的描述如下图所示:
中断源 | 名称 | 终端引起的原因 | 中断矢量 |
符号 | | | 地址 |
INTO | 外部屮断0 | 由P3. 2低电平或下降沿信号 | 0003H |
TO | 定时器中断0 | 定吋/计数器0回零溢出P3.4 | 0013H |
INTI | 外部中断1 | 由P3. 3低电平或下降沿信号 | OOOBH |
T1 | 定时器中断1 | 定吋/计数器1回零溢出P3. 5 | OO1BH |
TI/RI | 串行中断 | 串行口接收或发送完帧数据引 起的屮断 | 0023H |
表4-3-1五种屮断源的表示
4.3.2中断所用到的寄存器
介绍定吋器/计数器屮所介绍的寄存器:
(1) 、定时器/计数器控制寄存器TCON
TC07的作用是控制定吋器的启动'停止,标志定吋器的溢出和屮断情况;
(2) 、中断允许控制寄存器IE
对屮断源的开放或屏蔽是由屮断寄存器IE控制的,地址为0A8H,即可以按字节寻址,
也可以按位寻址。当单片机复位吋,IE被清零。
(3) 、串行控制寄存器SCON
定吋/计数器的控制方法:在启动定吋/计数器工作之前CPU必须将一些命令(称为控
制字)写入定吋/计数器屮,这个过程称为定吋/计数的初始化。(定吋/计数器的初始化
通过定吋/计数器的方式寄存器TMOD和控制寄存器TCO\来完成。丨
①定吋/计数器方式寄存器TMOD
GAT E | C/ T | M 1 | M | GAT E | C/ T | M | M |
定吋器1 | 定吋器0 |
Ml | M0 | X作方式 | 功能说明 | | ||||
| 0 | 0 | 方式0 | 13位计数器 | ||||
0 | 1 | 方式1 | 16位计数器 |
1 | 0 | 方式2 | 自动再装入8位计数器 |
1 | 1 | 方式3 | 定时器0:分成两个8位计数器;定时器1: 停止计数 |
表4-3-2选择定时方式表
②屮断程序的编写的步骤:
(1) 、根据要求设置IE(屮断允许寄存器)的对应位EA(EA—总屮断允许位EA=1
开放所有的屮断;EA二0禁止所有的屮断),某个屮断源还有和应的屮断允许位
①、当二1时:允许相应中断源的中断;
②、当二0时:禁止相应中断源的中断;
(2) 、INTO、INTI设定触发方式ITO(外部屮断触发方式控制位)当为0吋:低
电平触发;当为1吋:下降沿触发;
(3) 、返回值是Void1!1断函数名()interrupt()
4.3.3为什么采用中断控制方式
CPU与外部设备的数据传送方式:
(1) 、无条件传送方式
CPU总认为外设处于准备好的状态,外设比较简单
(2) 、程序查询传送方式
外设有一个状态(状态存储在寄存器内)
缺点:CPU工作效率低,CPU处于等待的状态,为解决此缺点便出现了第三种传送方式
(3) 、中断传送方式
屮断是指由于某种随机事件的发生,计算机暂停现行的程序,转去执行另一程序以处
理发生的事件,处理完毕后乂自动返回原来的程序继续运行。
优点:(1)、实现分时操作
CPU分为多个I/O设备服务,提高计算机的利用率(提前安排好的函数而屮断不同);
(2)、实时响应
CPU能够及吋处理应用系统的随机事件,系统的实吋性大大增强;
(3)、可靠性高
CPU具有处理设备故障及掉电等突发性事件的能力,从而使系统的可靠性提高。定吋器的初始化
(1) 确定工作方式-对TMOD赋值;
(2) 设置初始值-直接将初值写入THO,TLO;
(3) 开启定时器的中断-{ETO二1EA=1};
(4) 启动定时器-将TRO或TRI置“1”o
第五章产品的样品
结束语
我在这一次抢答器的设计过程屮,很是受益匪浅。通过对口己在大学三年吋间里所学的知识的回丿叽并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题
通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,
的能力。
理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有意义我获 得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从屮得知了很多书本上无法得知的知识。
我们的学习不但要立足于书本,以解决理论和实际教学屮的实际问题为FI的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一?个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩尚,乂有助于带动实践,解决实际问题加强我们的动手能力和解决问题的能力。
参考文献
1?单片机课程设计实例指导,李光飞,北京航天航空大学出版社,2004
2?单片机原理及接口技术(第3版),李朝青,北京航空航天大学出版社,20023?单片机C程序设计及应用实例,胡伟,人民邮电出版社,2003
4?单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,20075. 电子电路及电子器件,郭培源,高等教育出版社.,2003
6.数字电子技术.杨志忠,高等教育出版社,2002
7. 电子技术基础.康华光,高等教育出版社,2000
8. 电工电子电子技术基础实验?陈大钦,高等教育出版社.1994
9. 模拟电子技术基础(第四版)?童诗白,高等教育出版社.2006.
10.
Copyright © 2019- zpxd.cn 版权所有
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务