机电一体化毕业设计(论文)基于单片机的抢答器的设计_第1页
机电一体化毕业设计(论文)基于单片机的抢答器的设计_第2页
机电一体化毕业设计(论文)基于单片机的抢答器的设计_第3页
机电一体化毕业设计(论文)基于单片机的抢答器的设计_第4页
机电一体化毕业设计(论文)基于单片机的抢答器的设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、江 西 机 电 职 业 技 术 学 院毕 业 设 计 课 题 基于单片机的抢答器的设计 系 部 电气工程系 专 业 机电一体化 班 级 xxxx 学 号 xxx 姓 名 xxx 指导教师 xxxx 定稿日期: xxxxxxxxxx江西机电职业技术学院毕 业 设 计 任 务 书电气工程 系(分院) 机电一体化 专业 6 班毕业设计题 基于单片机的抢答器的设计 专题题目 采用多种软件平台上实现抢答器的设计 发题日期: 2010年 10月 20日 设计、论文: 自 2010年 10月 20日完成期限: 至 2010 年06月30日答辩日期: 2011年 11月2 日学 生 姓 名 : 指 导 教 师

2、 : 系 主 任 : 摘要数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后数字抢答器成形。单片机体积小价格低,应用方便,稳定可靠。单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。对于抢答器我们大

3、家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。关键字: 抢答电路 定时电路 报警电路 - 33 - a compendiumdigital vies to implement by corpus circuit and expansion circuit composed. priority coding circuit, latches, decoder circuit will be the teams input signal on the

4、 display output, with the control circuit and the host switches on the alarming circuit, the above two parts subject circuit. through the timing circuit and decoder circuit will seconds pulse signal on the display output of timing function, constitute expansion circuit. after wiring, welding, commis

5、sioning work digital vies to implement forming. in practical circuit design, need to go through the simulation software testing of circuit and programs compiled, check the periphery circuit design is reasonable, software compiler are proper and that the software and hardware circuit can normal work,

6、 can accurate realization design functions. if the test circuit emulation by, no problem can fully realize function words can actually do plate welding work. scm small volume low prices, easy application, it is stable and reliable. microcontroller will many missions gave software programming to real

7、ize, greatly simplifying the peripheral hardware circuit, make the periphery the circuitry is simple and convenient.key word: scare-answering circuit timing circuit alarm circuit目录第一章 数字抢答器的概述及制作要求- 8 -1.1 数字抢答器的概述- 8 -1.2 设计任务与要求- 8 -第二章 单片机芯片的选择及抢答器方案- 11 -2.1单片机芯片的选择- 11 -2.2模块性能分析- 14 -第三章 硬件电路设

8、计- 16 -3.1总体设计- 16 -3.2 外部振荡电路- 17 -3.3 复位电路的设计- 17 -第四章 系统软件设计- 20 -4.1 抢答器流程图- 20 -4.2 主程序- 22 -4.3 中断程序- 25 -第五章 产品的样品- 28 -结束语- 29 -参考文献- 30 -致谢- 31 -引言:单片机的发展史 单片机诞生于20世纪70年代末,经历了scm、mcu、soc三大阶段。 1.scm即单片微型计算机(single chip microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了scm与通用计算机完全不同的发展道

9、路。在开创嵌式系统独立发展道路上,intel公司功不可没。 2.mcu即微控制器(micro controller unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展mcu的重任不可避免地落在电气、电子技术厂家。从这一角度来看,intel逐渐淡出mcu的发展也有其客观因素。在发展mcu方面,最著名的厂家当数philips公司。philips公司以其在嵌入式应用方面的巨大优势,将mcs-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记in

10、tel和philips的历史功绩。 3.单片机是嵌入式系统的独立发展之路,向mcu阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了soc化趋势。随着微电子技术、ic设计、eda工具的发展,基于soc的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 单片机的发展单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。 第一章 数字抢答器的概述及制作要求1.1 数字抢答器的概述对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先

11、答,让最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。1.2 设计任务与要求基本要求:1. 给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。2. 抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在led数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。发挥部分:1. 抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用

12、显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。2. 参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。3. 如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。4. 选手如果在主持人按开始键之前违规抢答,系统报警,led显示违规选手号码和ff,直到主持人按下停止键。绪论1.1 单片机抢答器的背景二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称pc机。它由主机、键盘

13、、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易

14、被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。1.2 单片机抢答器的意义本系统采用单片机作为整个控制核心。控制系统的四个模块为:显示模块、存储模块、语音模块、抢答开关模块。该系统通

15、过开关电路四个按键输入抢答信号;利用一个数码管来完成显示功能;用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用89c52单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通

16、过开关电路四个按键输入抢答信号; 利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器设计。1.3 抢答器的应用随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛

17、、文艺活动等场合。传统普通抢答器主要存在以下缺陷:(一)、在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变为无效。 (二)、当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。对于后者由于抢答电路制作完毕后电子元件被固定。各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。普通抢答器存在不公平性。 (三)、当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。第二章 单片机芯片的选择及抢答器方案2.1单片机芯片的选择单片机选用的是atmel公司推出

18、的at89s52,它是一种低功效、高性能cmos8位微控制器,具有8k在系统可编程flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业80c51产品指令和引脚完全兼容。在单芯片上拥有灵巧的8位cpu和在线系统可编程flash,使得at89s52具有以下标准功能:8k字节flash,256字节ram,32位i/o口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,cpu停止工作,允许ram、定时器/计数器串口、中断继续工作。掉电保护方式下ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个

19、中断或硬件复位为止。而且,它还具有一个看门狗(wdt)定时/计数器。如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。t89s52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,片上flash允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。2.1.2单片机管脚说明(1)vcc:供电电压。(2)gnd:接地。(3)p0口:p9口为一个8位漏级

20、开路双向i/o口,每脚可吸收8ttl门流。当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口缓冲器可接收

21、,输出4ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。(6)p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p

22、3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89s52的一些特殊功能口,如下表所示:p3口功能引脚简介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(外部数据存储器读脉冲输出) p3口同时为闪烁编程和编程校验接收一些控制信号。(7)rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。(8)ale/rp

23、og:当访问外部存储器时,地址锁存允许的输出电平由于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳出一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0.此时,ale只有在执行movx,movc指令时ale才起作用。另外该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。(9)/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数

24、据存储器时,这两次有效的/psen信号将不出现。(10)/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。(11)xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。(12)xtal2:来自反向振荡器的输出。2.2模块性能分析模块部分主要分为at89c52芯片、独立式键盘、led数码管显示部分,下面对这后两部分进行介绍,其中对led七段数码管显示器做详细介绍,并根据实际

25、工作情况采用合适的工作方式。2.2.1独立式键盘 利用8个常开按钮开关s1s8和8只电阻r1r8组成抢答器的输入电路。s1s8为自复式常开按钮开关,分别作为8位抢答按钮,与它相连的8只电阻为下拉电阻,以保证按钮未按下时,锁存器的输入端为低电平。当程序执行时,按下按键,七段数码管显示器上即显示相应的是哪个组按下抢答。2.2.2led数码管显示译码器的逻辑功能是将每一个输入的二进制代码译成对应的输出高、低电平信号,是编码器的反操作。数码管可以用ttl或cmos集成电路直接驱动,所以使用译码器将bcd编码译成数码管所需要的驱动信号,以便使数码管用十进制数字显示出bcd编码表示的数值。七段数码管的段排

26、列和内部结构如图所示七段数码管的段排列和内部部结构应根据实际情况决定究竟采用共阳还是共阴方式,其基本原则是:若单片机口线直接驱动数码管各段,最好采用共阳极数码管,因为8051系列单片机口线输出高电平时,输出的电流很小,数码管不会太亮。若数码管通过驱动芯片与单片机相连,就要看驱动芯片对数码管极性的要求了点亮显示器分为静态和动态显示两种方法。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或是截止。例如,其段数码管的a、b、c、d、e、f、导通,g截止,则显示0.这对这种显示方式每一位都要有一个8位输出口控制,所占硬件较多,一般用于显示位数较少(很少)的场合。当位数较多时,用静

27、态显示所需的i/o过多,一般采用动态显示方法。所谓动态显示,就是逐位地轮流点亮各位显示器(扫描),对于每一位显示器而言,每个一段时间点亮一次。显示器的点亮既与点亮时的导通电流有关,也与点亮时间和间隔时间比例有关。调整电流和时间参数,可是实现亮度较高、较为稳定的显示,同时可减少工作电流。中的com是选通位,对于共阳极数码管,当a、b、c、d、e、f、g、h端接低电平时,com位高电平,数码管各段全部点亮。例如,想让数码管显示“1”,就必须使数码管的b、c段点亮,其它段熄灭;所以使b、c段为低电平,其它各引脚均为高电平。在设计电路时,可将这几位分别接到单片机的引脚上,还要加上限流电阻,这样就可由程

28、序控制数码管的工作情况了。但是如果用一个端口驱动一个数码管,四位数码管就需要四个空闲端口,而在许多系统中并无四个端口可用。此外,使用四个端口往往使得每一个数字都需要独立驱动(缓冲)电路和排阻,这将大大增加系统的成本。 最常见的解决方案是采用多路复用显示。这是指对于每一个显示只驱动1/4时间。只要在20hz-50hz之间循环所有显示,由于人眼存在视觉残留,在这样的显示方式下,数码管看起来时同时点亮的。在这次课程设计中根据实际需要采用了七段数码管共阳极和静态显示方式。抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器,555定时器译码器等,纯电子器件实现没有软件参与,调试简

29、单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多,实际搭建起来费时费力,焊接很容易出错。于是,我想到了用单片机实现。单片机体积小价格低,应用方便,稳定可靠。单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。由于单片机本身不具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序“烧”入单片机内。 在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的

30、做板子的焊接工作了。在老师的指导下我选择了常用的单片机仿真软件proteus6.9以及keil 进行仿真。第三章 硬件电路设计3.1总体设计根据抢答器的基本功能,可以设计出如下的单片机外围电路:图3-1 总体设计如图3-1,p3.0为开始抢答,p3.2为停止,p1.0-p1.7为八路抢答输入,数码管段选p0口,位选p2口低3位,蜂鸣器(用绿灯代替)输出为p3.6口。p3.2为时间加1调整,p3.3为时间减1调整。3.2 外部振荡电路图3-2 外部振荡电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在xtal2引脚产生幅度为3v左右的正弦波时钟信号,其振荡频率主要由石英晶振

31、的频率确定。电路中两个电容 c1,c2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。c1,c2的典型值为30pf。3.3 复位电路的设计单片机的第9脚rst为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:图3-3 复位电路在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序

32、执行的起始地址。3.1.4 显示电路的设计显示电路使用了七段数码管7seg-mpx4-cc,它是共阴极的,由高电平点亮。图3-4 阴极七段数码管4.1.5 按钮输入电路的设计抢答器的输入按钮使用常开开关,图3-5 抢答按键这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺” 现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。3.1.6 发

33、声这里能利用程序来控制单片机p3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。第四章 系统软件设计4.1 抢答器流程图流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字

34、和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。为便于识别,绘制流程图的习惯做法是:方框表示:要执行的处理(process)平行四边型表示:代表资料输入(input) 不规则图形代表资料输出(output)或报表输出(print) 菱形表示:决策或判断(例如:if.then.else) 初始化部分kz= =0启动中断,数码管开始计时若有选手抢答中断停止,数码管显示选手的标号及所用的时间结束开始nyyn图4-1-1抢答器主程序流程图 定时器0中断1秒时间到?中断返回n秒加1数码管显示秒值y图4-1-2 抢答器定时器中断流程图外部中断

35、0中断k0键按下k1键按下k3键按下k2键按下中断返回与k0键对应的发光二极管亮及数码管显示与k1键对应的发光二极管亮及数码管显示与k3键对应的发光二极管亮及数码管显示与k2键对应的发光二极管亮及数码管显示yyyynnnn图4-1-3 外部中断程序图4.2 主程序我们组所设计的抢答器的程序采用的是c程序设计,c语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。c语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然c语言也是强类型语言,但

36、它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,led显示程序以及按键控制子程序,程序设计如下: #includesbit k0=p10;sbit k1=p11;sbit k2=p12;sbit k3=p13;sbit d0=p14;sbit d1=p15;sbit d2=p16;sbit d3=p17;sbit b0=p37;sbit l0=p20;sbit l1=p22;sbit l2=p23;sbit l3=p24;sbit kz=p30;unsigned char qiangdanum=0x3f;unsigned char code

37、 table=0x3f,0xxx,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char ge=0,shi=0;unsigned int num=0,time=0;void display(); /*显示函数*/void delay(unsigned int);main()tmod=0x01; /*采用方式一,即十六位计数器*/th0=(65536-50000)/256; /*设置初始值*/tl0=(65536-50000)%256;it0=0;ea=1;et0=1; /*开启总中断源*/ex0=1; /*启动外部中断0*/while(1)d

38、isplay(); if(kz=0) tr0=1; /*开启定时器0中断*/ if(num=20) num=0; time+; if(time=60) /*60秒的计时*/ time=0; void exter0() interrupt 0 /*外部中断程序*/ea=0;l0=0; if(k0=0) /*开关0按下*/d0=0;qiangdanum=1;b0=1; /* 1号选手抢答成功,数码管显示1,蜂鸣器响,第1个二极管亮*/if(k1=0) /*开关1按下*/ d1=0;qiangdanum=2;b0=1; /* 2号选手抢答成功,数码管显示2,蜂鸣器响,第2个二极管亮*/if(k2=0

39、) /*开关2按下*/ d2=0;qiangdanum=3;b0=1; /* 3号选手抢答成功,数码管显示3,蜂鸣器响,第3个二极管亮*/if(k3=0) /*开关3按下*/ d3=0;qiangdanum=4;b0=1; /* 4号选手抢答成功,数码管显示4,蜂鸣器响,第4个二极管亮*/void time0() interrupt 1num+;th0=(65536-50000)/256;tl0=(65536-50000)%256; /*1秒定时函数*/void delay(unsigned int z)unsigned int x,y; for(x=z;x0;x-) for(y=110;y0

40、;y-); /*延迟函数*/void display(void) shi=time/10;ge=time%10;p2=0xef;p0=tablege;delay(5);p2=0xf7;p0=tableshi;delay(5);p2=0xfe;p0=tableqiangdanum;delay(5); /*显示函数:来显示0-60的计数*/4.3 中断程序4.3.1 什么是中断中断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。有五种中断源:外部中断0、外部中断1、定时器中断0、定时器中断1、串行中断。它们的描述

41、如下图所示:中断源符号名称终端引起的原因中断矢量地址int0外部中断0由p3.2低电平或下降沿信号0003ht0定时器中断0定时/计数器0回零溢出p3.40013hint1外部中断1由p3.3低电平或下降沿信号000bht1定时器中断1定时/计数器1回零溢出p3.5001bhti/ri串行中断串行口接收或发送完帧数据引起的中断0023h表4-3-1 五种中断源的表示4.3.2 中断所用到的寄存器介绍定时器/计数器中所介绍的寄存器:(1)、定时器/计数器控制寄存器tcontcon的作用是控制定时器的启动停止,标志定时器的溢出和中断情况;(2)、中断允许控制寄存器ie对中断源的开放或屏蔽是由中断寄

42、存器ie控制的,地址为0a8h,即可以按字节寻址,也可以按位寻址。当单片机复位时,ie被清零。(3)、串行控制寄存器scon定时/计数器的控制方法:在启动定时/计数器工作之前cpu必须将一些命令(称为控制字)写入定时/计数器中,这个过程称为定时/计数的初始化。(定时/计数器的初始化通过定时/计数器的方式寄存器tmod和控制寄存器tcon来完成。定时/计数器方式寄存器tmodgatec/tm1m0gatec/tm1m0定时器1 定时器0m1m0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器;定时器1:停止计数表4-

43、3-2 选择定时方式表中断程序的编写的步骤:(1)、根据要求设置ie(中断允许寄存器)的对应位ea(ea总中断允许位 ea=1开放所有的中断;ea=0禁止所有的中断),某个中断源还有相应的中断允许位、当=1时:允许相应中断源的中断;、当=0时:禁止相应中断源的中断;(2)、int0、int1设定触发方式it0(外部中断触发方式控制位)当为0时:低电平触发;当为1时:下降沿触发;(3)、返回值是void中断函数名() interrupt()4.3.2 为什么采用中断控制方式cpu与外部设备的数据传送方式:(1)、无条件传送方式cpu总认为外设处于准备好的状态,外设比较简单(2)、程序查询传送方式外设有一个状态(状态存储在寄存器内)缺点:cpu工作效率低,cpu处于等待的状态,为解决此缺点便出现了第三种传送方式(3)、中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论