摘 要
随着电子技术的飞速发展,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。基于单片机的控制系统已广泛应用于各行业。
此次设计提出了以AT89C51单片机为核心控制元件,设计一个简易的八路抢答器,AT89C51单片机为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。本次设计的系统实用性强、判断精确、操作简单、扩展功能强。
关键词: 八路 报警 AT89C51 抢答器 定时
Abstract
With the rapid development of electronic technology, intelligent control in the electronics field especially automation, traditional discrete components or control system of digital logic circuits, are at an unprecedented rate sheets replaced by chip computer intelligent control. MCU has small size, functions and advantages of low cost, wide application, it can be said of intelligent control and automation of core is a single chip. Based on single chip microcomputer control system has been widely used in various industries.
This design made has to AT89C51 single tablets machine for core control components , design a simple of eight - way preemptive answer device , AT89C51 single tablets machine mainly controlled core , and Crystal vibration , and digital tube , and bee Ming device , constitute eight - way preemptive answer device , using has single tablets machine of delay circuit , and press reset circuit , and clock circuit , and timer counter , design of eight - way preemptive answer device not only has real-time display preemptive answer players of number and preemptive answer time of function , while also using assembly language programming , makes its implementation reset , and scheduled and alarm of function . The design system of practical, accurate, simple operation and extended functions of judgment.
Key words : eight – way alarm AT89C51 preemptive answer
II
time
III
目 录
第1章 绪 论 ............................................... 5 1.1 选题背景、意义 ........................................ 5 1.2 八路抢答器的功能简介 .................................. 6 第2章 系统硬件设计 ......................................... 8 2.1 芯片的选择 ............................................ 8 2.1.1 控制器的选择 ...................................... 8 2.1.2 显示模块的选择 .................................... 9 2.1.3 键盘的选择 ....................................... 10 2.2.4 芯片最终选择方案 ................................. 11 2.2 AT89C51单片机简单概述................................ 11 2.2.1 51系列单片机的功能特性 ........................... 12 2.2.2 AT89C51单片机结构说明 ............................ 14 2.3 硬件的构成及功能 ..................................... 16 2.3.1 抢答器的硬件图 ................................... 16 2.3.2 时钟频率控制电路 ................................. 17 2.3.3 复位电路的设计 ................................... 19 2.3.4 报警电路的设计 ................................... 20 2.3.5 显示电路的设计 ................................... 20 2.3.6 键盘扫描电路的设计 ............................... 22 第3章 系统软件设计 ......................................... 25 3.1 系统主程序设计 ....................................... 25
IV
3.2 键盘扫描程序设计 ..................................... 27 3.3 显示程序设计 ......................................... 28 第4章 系统调试与软件仿真 ................................... 30 4.1 硬件调试 ............................................. 30 4.2 Keil uVision2软件调试................................ 31 4.3 Proteus仿真 ......................................... 31 第5章 总 结 .............................................. 35 参 考 文 献 ................................................. 36 附 录 ...................................................... 37 附录一 主程序清单 ........................................ 37 附录二 单片机八路智能抢答器原理图 ........................ 53 附录三 英 文 资 料 ....................................... 54 译 文 .................................................... 58 致 谢 ...................................................... 61
第1章 绪 论
1.1 选题背景、意义
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。单片机具有体积小、功能
V
基于51单片机的8路抢答器的设计
强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。
目前,抢答器已经作为一种必不可少的工具广泛应用于各种智力和知识竞赛场合,但一般的抢答器可靠性低,使用寿命短,介于这些不方便因素,此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的八路抢答器。
本方案以AT89C51单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。本次设计的系统实用性强、判断精确、操作简单、扩展功能强。 1.2 八路抢答器的功能简介
此次设计的抢答器具有同步显示的功能,并且有蜂鸣器的辅助,使得整个设计更加完整。
在每次竞赛开始前,主持人读完比赛规则,可以对抢答器进行的时间进行预设。时间设定按键组共有4个按键,其中一个键为抢答时间修改键,一个为回答时间按键,剩下的两个按键为加一和减一按键。
比赛开始,主持人读完题之后按下“开始键”,即抢答开始,蜂鸣器提示一次,此时数码管开始显示30s的倒计时;直到有一个选手按下抢答键,对应的会在数码管上显示出该选手的编号和回答剩余的时间,
6
基于51单片机的8路抢答器的设计
同时蜂鸣器也会发出一次提示音,以示有人抢答本题;如果在规定的30s时间内没有人做出抢答,则此题作废,开始新一轮的抢答。在抢答和回答时间的最后5s,蜂鸣器都会给予报警提示。在倒计时过程中,主持人可以随时按“停止键”结束本次回答或者抢答。
在主持未按下开始键,若果有人按下抢答键,则属于犯规抢答,此时,数码管上会显示违规选手的编号,同时蜂鸣器会以1s一次的频率发出警告。在每次抢答前后,主持人都可以按下复位键让系统清零,此时数码管上会显示“FFF”。
7
基于51单片机的8路抢答器的设计
第2章 系统硬件设计
硬件电路部分是一个完整电路的关键部分,硬件性能的好坏关系到整个系统的性能。本章节主要介绍了八路抢答器的硬件的选择及电路的设计。
2.1 芯片的选择
芯片选择的原则是经济、寿命长、设计简单。对此我们作了详细的论证。
2.1.1 控制器的选择
控制器主要用于对显示、抢答、音乐、计分等模块进行控制。控制器的选择有以下两种方案。
方案一:采用FPGA(现场可编程门列阵)作为系统的控制器。FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
方案二:采用AT89C51作为系统控制器的CPU方案。单片机算术运
8
基于51单片机的8路抢答器的设计
算功能强、软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
基于以上分析,本次设计我采用方案二。 2.1.2 显示模块的选择
显示模块主要是显示时间和编号。考虑有以下两种显示方案。 方案一:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。但由于只需要显示时间和转向、相数这样的数字,信息量比较少,且液晶屏是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。
方案二:使用传统的数码管显示。数码管具有低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护的优点,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。
根据以上的论述,我采用方案二。
9
基于51单片机的8路抢答器的设计
2.1.3 键盘的选择
键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。
方案一:独立式键盘
独立式键盘接口中使用几根I/O线,就有几个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活编码。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。
方案二:行列式键盘
行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,按键在行线和列线的每个交叉点上。这种形式的键盘结构,能够有效地提高单片机系统中I/O的利用率。
CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲是时才去扫描键盘,响应操作人员的键盘输入,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。在大多数情况下,CPU对键盘可能进行空扫描。为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,即CPU平时不必扫描键盘,只要当键盘上有键盘闭
10
基于51单片机的8路抢答器的设计
合时就产生中断请求,向CPU申请中断后,立即对键盘上有键盘进性扫描,识别闭合键,并做相应的处理。
根据以上的论述,我们采用方案一。 2.2.4 芯片最终选择方案
根据上几节的论证,通过综合考虑,我们的芯片选择如表2-1。
表2-1 器件选择方案详单
器件名称 微处理器 电阻 瓷片电容 电解电容 晶振 按钮
器件名称 七段数码管 蜂鸣器 2.2 AT89C51单片机简单概述
AT89C51单片机属于51系列单片机,本次设计所用的核心元件即
规格型号 7SEG-MPX-C 数量 4 1 规格型号 AT89C51 220欧姆 8K 1K 30pF 10uF 12MHZ CD4013 数量 1 8 1 1 2 1 1 15
11
基于51单片机的8路抢答器的设计
为AT89C51,本节主要介绍了AT89C51的管脚功能。 2.2.1 51系列单片机的功能特性
MSC-51单片机是美国英特尔公司于1980年起推出的第二代产品。与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大存储空间扩充了更多的I/O功能,速度提高了2-5倍。 1. 主要特性:
(1) 适于控制应用的8位CPU。 (2) 扩展的逻辑处理能力。
(3) 4KB片内程序存储空间。其片外可寻址的范围为64KB,主要用于存放已编程的程序,也可存放一些原始数据和表格。
(4) 128B的片内数据RAM。其片外数据存储器的寻址范围为64KB用于存放可读写的数据,如运算的中间结果和最终结果。
(5) 32根双向可单独寻址的输入输出线。
(6) 2个16位定时/计数器,片内时钟发生器。它可以设置为计数方式,对外部事件进行计数,也可以设置为定时方式进行定时。
(7) 全双工异步发送/接收器。
(8) 具有5个中断源,可编程为两个优先级的中断系统,它可以接收外部中断请求、定时器/计数器中断申请和串行口中断申请。 2. 程序指令
AT89C51单片机的时序单位有四个,分别是节拍、状态、机器周期和指令周期。
节拍与状态:
12
基于51单片机的8路抢答器的设计
我们把振荡脉冲的周期定义为节拍(P),振荡脉冲经过两个分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(S),这样一个状态就有两个节拍,前半个周期相应的节拍我们定义为P1,后半周期对应的节拍定义为P2。
机器周期:
AT89C51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,即一个机器周期包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,如果使用12MHZ的时钟频率,一个机器周期就是1us。
13
基于51单片机的8路抢答器的设计
2.2.2 AT89C51单片机结构说明
AT89C51单片机的管脚图如图2-1所示:
图2-1 AT89S51单片机管脚图
VCC:电源端。 GND:接地端。
P0口:P0口是一组8位漏极开路双向I/O口,在访问外部存储器时用作8位低地址线和数据总线。
P1口: P1口是一个带内部上拉电阻的8位双向I/O口,向P1口写入“1”时,P1口被内部电路上拉为高电平,可用作输入口。当作为输出口时,被外部拉低的P1口会因为内部上拉电阻的存在而输出电流。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,当P2口被
14
基于51单片机的8路抢答器的设计
写“1”时,其管脚被内部电路上拉为高电平,可作输入口。当作为输出口时,被外部拉低的P2口会因为内部上拉电阻的存在而输出电流。在访问外部程序存储器和外部数据存储器时,P2口可作为地址总线的高八位地址线。
◆ P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,当P3口写入“1”后,它们被内部电路上拉为高电平,并用作输入口。当作为输出口时,被外部拉低的P3口会因为内部上拉电阻的存在而输出电流。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:
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(外部数据存储器读选通)
RST:复位信号输入端。当振荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。
ALE/PROG:ALE是地址锁存允许信号。它的作用是把CPU从P0口分时输出的低8位地址锁存在锁存器中。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,可用作外部时钟或定时。如想禁止ALE的输出可在SFR8EH地
15
基于51单片机的8路抢答器的设计
址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。如果CPU在外部执行状态ALE禁止,置位无效。 /PSEN:读片外程序存储器选通信号输出端。当执行外部程序存储器数据时,/PSEN将产生负脉冲作为外部程序存储器的读选通信号。在访问外部数据存储器和内部程序存储器时,/PSEN无效。 /EA/VPP:读片内与片外程序存储器的选择端。当/EA为高电平时,低4KB的地址为片内程序存储器单元,高于4KB以上的地址为片外程序存储器单元;当/EA为低电平时,则只能读片外程序存储器。
XTAL1:片内振荡电路反向放大器的输入端,采用外部时钟时该引脚接地。
XTAL2:片内振荡电路反向放大器的输出端,采用外部时钟时该引脚为振荡信号的输入端。 2.3 硬件的构成及功能
本节主要介绍了抢答器的硬件部分的设计,硬件部分的设计是比不可少的,也是此次设计的核心。 2.3.1 抢答器的硬件图
根据所要实现的功能,我们先大概将抢答器的硬件分为这几部分:CPU、声音电路、显示电路、定时电路、开始结束键输入和抢答按键输入。硬件图如图2-2所示。
16
基于51单片机的8路抢答器的设计
图2-2 抢答器硬件图
2.3.2 时钟频率控制电路
单片机必须在时钟的驱动下才能工作。AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟频率控制电路如图2-3所示。
图2-3 外部振荡电路
17
基于51单片机的8路抢答器的设计
内部时钟振荡器一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2选用30PF大小,其作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
单片机在工作时,由内部振荡器产生或由外部直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数。该设计中时钟频率选为12MHz。
18
基于51单片机的8路抢答器的设计
2.3.3 复位电路的设计
在抢答器中复位是为定时做铺垫的,在抢答之前要复位,抢答完毕要复位,按了复位键之后LED显示F。单片机的复位引脚RST出现2个机器周期以上的高电平时即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-4所示。
图2-4 复位电路
图中复位电路由按键和电解电容C3、电阻R9构成的按键及上电复位电路。由于单片机是高电平复位,所以当按键按下时,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后由于电容缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。
在此设计中使用了硬件复位和软件复位两种。硬件复位可将寄存器及存储器的值都恢复到初始值。而在设计中,倒计时时间存在记忆功能,因此还设计了软复位功能。软复位实际上就是当程序执行完毕后,讲程序指针通过一条跳转指令让它跳转到该段程序的起始地址。
19
基于51单片机的8路抢答器的设计
2.3.4 报警电路的设计
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个管脚的高低电平,则在该管脚上就能产生一定频率的矩形波,接上蜂鸣器就能发出一定频率的声音,若利用延时程序控制高低电平的持续时间,就能改变输出频率,从而改变蜂鸣器发出的音调。在本设计中此电路起到报警功能。它会在第一位选手按下抢答按钮时响一次,以提示有人抢答本题,并且在该选手的60秒抢答过程中或30秒等待过程中剩余最后5秒时响起,以提示到此题结束还有5秒钟。
本次设计如图2-5所示,图中用到单片机的10、11和16管脚。10管脚具有读入功能,11管脚具有输出功能,而16管脚具有外部数据写功能,单片机通过内部定时器的操作实现交替变换的波形输出驱动蜂鸣器发生。
图2-5 报警电路
2.3.5 显示电路的设计
显示功能与硬件的关系极大,显示电路有两种选择,液晶屏显示和传统数码管显示。液晶屏具有轻薄、无辐射危险、可视面积大、分辨率
20
基于51单片机的8路抢答器的设计
高和抗干扰能力强的特点,但是由于显示信息少、编程工作量大和成本偏高。而数码管具有低耗能、低损耗、低压、寿命长和精确度高、操作简单的优点,本设计中采用的是4位七段数码管显示。数码管显示通常显示分为动态显示和静态显示。其中,静态显示的特点是显示稳定不闪烁,编程简单,显示亮度高,但占用I/O口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。而动态显示的稳定性虽没静态显示的好,编程复杂,但是相对静态显示而言占用的端口资源少。
本设计采用的是动态显示方法。通过查表法将值在数码管上显示出来。其中单片机的P0口为字型码输入端,P2口得低三位为字选段输入端。
4位七段数码管显示电路如图2-6。
图2-6 七段数码管显示电路
数码管有共阴极和共阳极两种接法。共阴极接法,各发光二极管的阴极连在一起并接地,当某一发光二极管的阳极输入高电平时,则该段
21
基于51单片机的8路抢答器的设计
发光;共阳极接法,各发光二极管的阳极连在一起并接电源,当某一发光二极管的阴极输入低电平时,则该段发光。
本设计采用4位一体的七段共阴极数码管,其中A-G段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码COM1,COM3,COM4分别接到单片机的P2.0,P2.1,P2.2,由单片机来决定当前该显示的是哪一位。在电路图中还有8个220欧姆的电阻分别连接在P0口上,用作P0口的上拉电阻,保证P0口没有数据输出时处于高电平状态。
2.3.6 键盘扫描电路的设计
键盘扫描电路由两部分组成:抢答电路和定时电路。
键盘是人机交互的主要设备,键盘电路分为独立式和矩阵式。其中,独立式键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵式键盘硬件电路比独立式键盘电路复杂,而且程序设计繁琐,但它节省端口,适合于多按键电路。
本设计基于简单硬件电路要求的基础上,采用的是独立键盘的方式。
在定时电路的设计中,有1个抢答时间调整按键、1个回答时间调整按键、加一按键、减一按键和1个开始按键、1个结束按键。电路图如图2-7所示。
22
基于51单片机的8路抢答器的设计
图2-7 定时电路 图2-8 抢
答电路
图中和AT89C51芯片的12管脚连接的为抢答时间30s的调整按键,和13管脚连接的为回答时间60s的调整按键,与14管脚连接的为加一按键,与15管脚连接的为减一按键。这四个按键用于主持人对回答时间和抢答时间的调整。
开始按键与单片机的10管脚连接,停止按键与11管脚连接。这里用到了单片机10、11管脚复合功能中的IO端口功能,单片机通过读取10、11脚的P3.0、P3.1的IO端口值来判断当前是否处于抢答开始状态或抢答结束状态。当主持人按下开始键,抢答电路和定时电路将进入正常抢答状态;当回答完毕,主持人可以按下结束键停止计时。
抢答电路完成两个功能:一是分辨出选手按键先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是其他选手操作无效。抢答电路如图2-8所示,图中8个抢答按键分别接入单片机的P1.0-P1.7端口,单片机通过读取P1.0-P1.7的值来判断当前输入的是8个抢答按键中的哪一个。如果主持人未按下开始按键判断到有人违规操作,蜂鸣
23
基于51单片机的8路抢答器的设计
器会发出警报声,并且数码管会显示出犯规者的编号。
24
基于51单片机的8路抢答器的设计
第3章 系统软件设计
3.1 系统主程序设计
1. 系统主程序设计思路
为了能达到公平、公正、合理的设计理念,应该在主持人发布抢答命令之前设定好抢答时间。当时间设定好了之后,主持人发布抢答命令。按下开始按键后,程序开始打开,定时中断开始倒计时,然后调用键盘扫描子程序,当扫描到有人按下了抢答键,马上关闭抢答中断计时器T1,调用显示程序,此时封锁抢答键盘,启动计时器T0。
2. 主程序框图
根据抢答器设计要求,其软件设计部分流程图如图3-1:
25
基于51单片机的8路抢答器的设计
图3-1 主程序流程图
26
基于51单片机的8路抢答器的设计
3.2 键盘扫描程序设计
抢答选手的抢答程序设计是本设计的关键。键盘扫描流程图如图3-2所示。
27
基于51单片机的8路抢答器的设计
图3-2 键盘扫描程序流程图
3.3 显示程序设计
28
基于51单片机的8路抢答器的设计
本次设计的显示部分在按下开始键时,后两个数码管显示倒计时间,以1s变换一次,并且调用延时程序,此时定时器采用中断方式,可以充分利用CPU。在有选手按下抢答键时,第一个数码管显示选手号,最后两个数码管显示倒计时,定时器同样采用中断方式。
除此之外,本设计数码管具有闪烁功能,当有违规抢答时,第一个数码管会显示选手号,后两个数码管会闪烁显示FF,一个周期为每秒1次。以示抢答无效,此时定时器采用定时中断的工作方式。
连接时段选信号接在P0口的P0.0~P0.6七个I/O口上,P1口是准双向I/O接口在输出驱动部分,所以在接电阻时选择接220Ω限流电阻。而在位选方面采用P2口的P2.0~P2.2,用单片机P2.2三个I/O口作为位选信号的输出口。
29
基于51单片机的8路抢答器的设计
第4章 系统调试与软件仿真
系统调试包括硬件调试和软件调试,二者密不可分。我们设计好的硬件电路和软件程序必须经过联合调试才能验证其正确性。 4.1 硬件调试
硬件调试分为单元电路调试和联机调试,单元电路调试在硬件电路设计中已经进行,这里只对其印刷版电路进行检验。
线路检查:根据硬件逻辑设计图,仔细检查电路是否正确,并且核对元器件的型号、规格和安装是否符合要求,必要时可用万用表检测线路通断情况。先用万用表检查各管脚之间是否有短路、虚焊、漏焊现象。检查无误后,测试各个芯片是否有损,待检查完毕后,将各个芯片插入各自的槽位。
电源调试:电路的第一次通电测试很重要,调试方法有两种:一种是断开电路稳压电源的输出端,检查空载时电源的工作情况;另一种是拔下电路上的主要继承芯片,检查电源的负载能力。确保电源无故障并符合性能要求。
通电检查:首先按下复位键,用万用表测试复位键的第四引脚是否有高电平输出,然后测试其第一管脚是否有低电平输出,如果是的话说明电路连接正确。然后按下开始键,再按下抢答键1,之后依次按下抢答键2、3、4、5、6、7、8,分别观察数码管有无变化。最后对蜂鸣器
30
基于51单片机的8路抢答器的设计
进行验证,看看是否正常发声。同理分别按下其它7个抢答键进行检查。 4.2 Keil uVision2软件调试
软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
本设计用到了Keil uVision2软件,首先打开Keil uVision2,将程序输入;然后进行调试,将程序中的语法错误和逻辑错误纠正,调试完毕后,创建HEX文件,HEX文件用于烧写芯片,将制定程序写入已设计好的电路板中,使其能根据我们的要求实现相应的功能;最后将HEX文件烧写入AT89C51芯片,运行电路,让其实现八路抢答的功能。如图4-1所示。
图4-1 Keil uVision软件
4.3 Proteus仿真
本设计用到Proteus仿真软件。首先将电路图根据设计要求在软件
31
基于51单片机的8路抢答器的设计
中准确地画出,即进行ISIS原理图设计,我们的仿真也是完全基于ISIS原理图模块下进行的,Proteus有两种截然不同的仿真方式:交互式仿真和基于图表的仿真,在本设计中我们用到的是交互式仿真,用于校验所设计的电路是否能正常运行。如图4-2所示。
图4-2 八路抢答器原理图
然后将Keil uVision2生成的HEX文件链接到该中原理图,即设计文档的建立。如图4-3所示。
32
基于51单片机的8路抢答器的设计
图4-3 建立设计文档
文档建立好之后,按Ctrl+F12开始运行,然后按F12,执行程序。下面是几组仿真图。
图4-4 复位显示FFF
图4-5 启动开始键,倒计时30s
33
基于51单片机的8路抢答器的设计
图4-6 3号选手非法抢答
图4-7 5号选手正常抢答
34
基于51单片机的8路抢答器的设计
第5章 总 结
此次设计主要以硬件系统为基础,硬件系统关系到电子产品的好坏,如系统的抗干扰性,安全性和可行性等,所以要合理地选择,合理地安排,尽量减少干扰,以提高系统性能。单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机,以减少对其的干扰,防止程序的混乱现象。硬件系统的好坏很大部分在于经验,比如焊接是否干净利落,器件是否完好,操作是否规范等,所以我们要有好的动手能力。
而软件设计确实设计的核心,具有多样化,灵活性高,易移植等优点。首先我们要深深领会各指令的含义才能更加熟练应用。中断的合理利用可以有效减少对CPU的占用,更好的处理好其他功能。延时的应用会顺利地实现显示,鸣笛等功能,同时还可以去掉系统固有的不稳定性。定时的应用则比较实际,能实现我们所需的功能。软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。
在此次设计中,我总结了很多不足,同时也学到了很多新的知识,并且巩固了课堂知识,但最终设计的系统仍有不足,敬请提出!
35
基于51单片机的8路抢答器的设计
参 考 文 献
[1] 孙蕙芹.单片机实用教程.北京:中国电力出版社,2009
[2] 贾海瀛.数字电子技术与实训.北京:机械工业出版社,2008.1
[3] 李雅轩.模拟电子技术-2版.西安:西安电子科技大学出版社,2006.7 [4] 张永飞.电工基础.天津:天津大学出版社,2008.9
[5] 张立科.单片机典型模块设计实例导航.第一版.人民邮电出版社,1988 [6] 潘新民.微型计算机控制技术.北京:电子工业出版社,2003
[7] 李响初.基于MCS-51单片机的智能时钟控制系统设计.世界电子元件,2007,7:97~98
[8] Proteus入门讲义 [9] C51 Keil uVision2
36
基于51单片机的8路抢答器的设计
附 录
附录一 主程序清单
OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT00 ORG 000BH AJMP T00 ORG 0013H AJMP INT11 ORG 001BH AJMP T11 ORG 0040H
MAIN:MOV R1,#30;设抢答时间30s
MOV R2,#60;设答题时间60s
MOV TMOD,#11H;设置定时器为模式1 MOV TH0,#0F0H MOV TL0,#0FFH
37
基于51单片机的8路抢答器的设计
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;一开始运行定时器,开始显示FFF
LOOP:MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH
ACALL DISPLAY;调用显示FFF子程序
JB P3.0,LOOP1;判断未开始答题,若有人按下抢答,跳到LOOP1非法抢答处理程序 ACALL DELAY
JB P3.0,LOOP1;判断已开始答题,则向下执行 ACALL BARK;蜂鸣器响 MOV A,R1
MOV R6,A;将R1中30s送入R6
38
基于51单片机的8路抢答器的设计
SETB OK;复位,用于COUNT中判断是否查询抢答 MOV R7,#01H;读抢答键按下数,要求只读一次有用信号 MOV R3,#0AH;抢答时间指显示计时,不显示号数
AJMP COUNT;进入COUNT倒计时子程序,查询有效抢答程序
LOOP1: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 LOOP;非法抢答查询程序,若没有跳回主程序 FALSE1:MOV R3,#01H;1号选手违规
AJMP ERROR;跳转到ERROR非法抢答处理程序 FALSE2:MOV R3,#02H AJMP ERROR FALSE3:MOV R3,#03H AJMP ERROR FALSE4:MOV R3,#04H AJMP ERROR
39
基于51单片机的8路抢答器的设计
FALSE5:MOV R3,#05H AJMP ERROR FALSE6:MOV R3,#06H AJMP ERROR FALSE7:MOV R3,#07H AJMP ERROR FALSE8:MOV R3,#08H AJMP ERROR ;====中断==== INT00:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH
ACALL DISPLAY;在时间LED上显示抢答时间30s JNB P3.4,INC0 JNB P3.5,DEC0 JNB P3.1,BACK0 AJMP INT00 INC0:MOV A,R1
CJNE A,#63H,ADD0;如果不是99,则跳转到ADD0加1程序,
40
基于51单片机的8路抢答器的设计
否则往下执行,置0,重新加起
MOV R1,#00H ACALL DELAY AJMP INT00 ADD0:INC R1 ACALL DELAY AJMP INT00 DEC0:MOV A,R1
JZ SETT;如果R1中值为0,则跳到DEC R1 ACALL DELAY AJMP INT00
SETT:MOV R1,#63H ACALL DELAY AJMP INT00 BACK0:RETI INT11:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH
SETT程序,R1置99 41
基于51单片机的8路抢答器的设计
ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT11 INC1:MOV A,R2
CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY AJMP INT11 ADD1:INC R2 ACALL DELAY AJMP INT11 DEC1:MOV A,R2 JZ SET1 DEC R2 ACALL DELAY AJMP INT11 ;====计时查询==== SET1:MOV R2,#63H ACALL DELAY AJMP INT11
42
基于51单片机的8路抢答器的设计
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;将回答时间60s给A MOV B,#0AH
DIV AB;除10,分出个位和十位 MOV 30H,A;十位存于30H MOV 31H,B;个位存于31H MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H
JNC MAX;大于5s跳转到MAX,小于5s则向下执行,蜂鸣器响
MOV A,R0
CJNE A,#0AH,FULL CLR RING
43
基于51单片机的8路抢答器的设计
AJMP CHECK;回答60s倒计时
FULL:CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数,并清R0
SETB RING MOV A,R6
JZ QUIT;计时完毕,跳转到QUIT,否则继续向下执行 MOV R0,#00H DEC R6;一秒减一 AJMP CHECK MAX:MOV A,R0
CJNE A,#14H,CHECK;如果剩1s向下运行,否则跳转到CHECK
查询“停止”程序
DEC R6 MOV R0,#00H
CHECK:JNB P3.1,QUIT;如果查询按下停止键,则退出;否则向下
JNB OK,CHECK1;判断是否在回答倒计时内,如果不在跳到
CHECK1判断是否开始新一轮;否则向下继续执行
AJMP NEXT1
CHECK1:JNB P3.0,REPEAT;判断是否重新开始 NEXT1:ACALL DISPLAY
JB OK,ACCOUT;判断是否是抢答倒计时,若是则跳转到
44
基于51单片机的8路抢答器的设计
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 LOOP
;=====正常抢答处理程序===== TRUE1:ACALL BARK
MOV A,R2
MOV R6,A;抢答时间R2送R6 MOV R3,#01H
CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答
45
基于51单片机的8路抢答器的设计
AJMP COUNT
TRUE2:ACALL BARK
MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNT
TRUE3:ACALL BARK
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
46
基于51单片机的8路抢答器的设计
MOV R3,#05H CLR OK AJMP COUNT
TRUE6: ACALL BARK
MOV A,R2 MOV R6,A MOV R3,#06H CLR 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 AJMP COUNT
;=====犯规抢答程序=====
47
基于51单片机的8路抢答器的设计
ERROR: MOV R0,#00H
MOV TH1,#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 CHECK2
FLASH:CJNE A,#0CH,CHECK2;下面是0.8s的情况,响并显示号数并清R0
SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH
MOV R4,#0BH;显示FF和号数 AJMP CHECK2
CHECK2: JNB P3.1,QUIT1
ACALL DISPLAY AJMP HERE
48
基于51单片机的8路抢答器的设计
QUIT1:CLR RING
CLR OK AJMP MAIN
;====显示程序==== DISPLAY:MOV DPTR,#DAT1
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
49
基于51单片机的8路抢答器的设计
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;第一个显示“0” ;====显示延时==== DELAY:MOV 35H,#08H DELAY3:ACALL DISPLAY
DJNZ 35H,DELAY3 RET
;====去抖动(按键延时4236个机器周期)==== DELAY1:MOV 32H,#12H DELAY4:MOV 33H,#0AFH DELAY5:DJNZ 33H,DELAY5
DJNZ 32H,DELAY4 RET
;====显示延时(延时4236个机器周期)==== DELAY2:MOV 32H,#43H DELAY6:MOV 33H,#1EH
MOV A,R7;每隔60-70个机器周期读一次P1口,全1为无效,
继续读,有一个不为1时,转到正常抢答处理
JNZ LOOP3;没读到有效数转到LOOP3继续循环
50
基于51单片机的8路抢答器的设计
DELAY7:DJNZ 33H,DELAY7
DJNZ 32H,DELAY6 RET
LOOP3:MOV A,P1
CJNE A,#0FFH,LOOP5
LOOP4:MOV 36H,A
AJMP DELAY7
LOOP5:DEC R7
AJMP LOOP4
;====发声程序==== BARK:SETB RING
ACALL DELAY ACALL DELAY CLR RING RET
;====T0溢出中断==== T00:MOV TH0,#0ECH
MOV TL0,#0FFH JNB RING,OUT CPL P3.6 OUT:RETI
;====T1溢出中断====
51
基于51单片机的8路抢答器的设计
T11:MOV TH1,#3CH
MOV TL1,#0B0H INC R0 RETI END
52
基于51单片机的8路抢答器的设计
附录二 单片机八路智能抢答器原理图
53
基于51单片机的8路抢答器的设计
附录三 英 文 资 料
The principle of Cellular mobile communications
Cellular mobile communication is the use of cellular wireless network, wireless channel connections between the Terminal and network equipment, so as to realize the user can communicate in the activity. Its main feature is terminal mobility, and having the handoff and automatic roaming
capabilities across a local network. Cellular mobile communications services are under the Exchange subsystem by the base station subsystem and mobile devices such as cellular mobile communications networks provide voice, data, video, images and other business operations.
Cellular mobile communications services include: 9001800MHz second generation GSM digital cellular mobile telecommunication business, 800MHz second generation CDMA digital cellular mobile communications services, third - generation digital cellular mobile communications business.
1. 900/1800MHZ GSM the second generation of digital cellular business
900/1800MHz short titles of the second generation of GSM digital cellular mobile communications GSM mobile communication business refers to work in the 9001800MHz band of GSM mobile communications networks provide voice and data services. Wireless interface of GSM mobile communication system using TDMA technology, core network mobility
54
基于51单片机的8路抢答器的设计
management protocol MAP Protocol.
Over 900/1800mhz GSM the second generation of digital cellular business includes the following major types :
- Bi - directional voice service - end to end.
- Mobile Messaging service, using the GSM network and launched mobile messaging platform, mobile business of messages received.
- On the move to hosted business and mobile data services. - Mobile supplementary services, such as calling number display, call forwarding business.
- Common GSM network and intelligent network to offer mobile intelligent network services, such as prepaid services, and so on.
- Domestic roaming and international roaming service.
900/1800MHZ GSM the second generation of digital cellular business operators of the organization must own GSM mobile communications network, the mobile types can be a part or all. To provide a mobile network of the operators is the same network, with different operators. Provide network completed between the mobile international business and must be approved by the state of international communications door.
2. 800MHz second generation CDMA digital cellular mobile communications business
800MHz second generation CDMA digital cellular mobile
telecommunication CDMA mobile communication services for short refers
55
基于51单片机的8路抢答器的设计
to work on the 800MHz band of CDMA mobile communication network to provide voice and data services. CDMA wireless interface of mobile communication using narrow - band CDMA code division multiple access technology, core network mobility management protocol uses IS-41 protocols. 800MHz second generation CDMA digital cellular mobile communications services include the following business types :
-Bi - directional voice service - end to end. - Mobile Messaging service, using CDMA networks and mobile messaging platform, mobile business of messages received.
- On the move to hosted business and mobile data services. - Mobile supplementary services, such as calling number display, call forwarding business.
- CDMA network together with intelligent networks to offer mobile intelligent network services, such as prepaid services, and so on.
- Domestic roaming and international roaming service. 800MHz second generation CDMA digital cellular mobile telecommunication business operators must form a CDMA mobile communications network, provided by the mobile communications business types can be part or all of. Provide a network of mobile communications business pass, can be the same operator network, can also be done by networks of different operators. Providing international communication services in mobile networks, must be approved by the State import and
56
基于51单片机的8路抢答器的设计
export of international communication.
3. Third - generation digital cellular mobile communications business Short titles of the third generation of digital cellular mobile communication 3G mobile communication business refers to the use of third generation mobile communications networks provide voice, data, video, images and other business operations.
Main features of the third generation of digital cellular mobile communications services is to provide mobile broadband multimedia services, which under the fast - moving environment to support 144kbs rate, walking and slow mobile support 384kbs rates, indoor environment supporting 2Mbs rate of data transfer, and to guarantee reliable QoS quality of service. Third - generation digital cellular mobile communications business, including the second generation cellular mobile communications can provide all types of business and mobile multimedia services.
Third generation digital cellular mobile telecommunication business operators must form a 3G of mobile communications network, provided by the mobile communications business types can be part or all of. Provide a network of mobile communications business pass, can be the same operator network facilities or completed by the different operators of the network infrastructure. Providing international communication services in mobile networks, must be approved by the State import and export of international communication.
57
基于51单片机的8路抢答器的设计
译 文
蜂窝移动通信原理
蜂窝移动通信是采用蜂窝无线组网方式,在终端和网络设备之间通过无线通道连接起来,进而实现用户在活动中可相互通信。其主要特征是终端的移动性,并具有越区切换和跨本地网自动漫游功能。蜂窝移动通信业务是指经过由基站子系统和移动交换子系统等设备组成蜂窝移动通信网提供的话音、数据、视频图像等业务。
蜂窝移动通信业务包括:900/1800MHz GSM第二代数字蜂窝移动通信业务、800MHz CDMA第二代数字蜂窝移动通信业务、第三代数字蜂窝移动通信业务。
1.900/1800MHz GSM第二代数字蜂窝移动通信业务
900/1800MHz GSM第二代数字蜂窝移动通信(简称GSM移动通信)业务是指利用工作在900/1800MHz频段的GSM移动通信网络提供的话音和数据业务。GSM移动通信系统的无线接口采用TDMA技术,核心网移动性管理协议采用MAP协议。
900/1800MHz GSM第二代数字蜂窝移动通信业务包括以下主要业务类型:
-端到端的双向话音业务。
-移动消息业务,利用GSM网络和消息平台提供的移动台发起、移动台接收的消息业务。
-移动承载业务以及其上的移动数据业务。
58
基于51单片机的8路抢答器的设计
-移动补充业务,如主叫号码显示、呼叫转接业务等。
-经过GSM网络与智能网共同提供的移动智能网业务,如预付费业务等。
-国内漫游和国际漫游业务。
900/1800MHz GSM第二代数字蜂窝移动通信业务的经营者必须自己组建GSM移动通信网络,所提供的移动通信业务类型可以是一部分或全部。提供一次移动通信业务经过的网络可以是同一个运营者的网络,也可以由不同运营者的网络共同完成。提供移动网国际通信业务,必须经过国家批准设立的国际通信出入口
2.800MHz CDMA第二代数字蜂窝移动通信业务
800MHz CDMA第二代数字蜂窝移动通信(简称CDMA移动通信)业务是指利用工作在800MHz频段上的CDMA移动通信网络提供的话音和数据业务。CDMA移动通信的无线接口采用窄带码分多址CDMA技术,核心网移动性管理协议采用IS-41协议。
800MHz CDMA第二代数字蜂窝移动通信业务包括以下主要业务类型:
-端到端的双向话音业务。
-移动消息业务,利用CDMA网络和消息平台提供的移动台发起、移动台接收的消息业务。
-移动承载业务以及其上的移动数据业务。
-移动补充业务,如主叫号码显示、呼叫前转业务等。
59
基于51单片机的8路抢答器的设计
-经过CDMA网络与智能网共同提供的移动智能网业务,如预付费业务等。
-国内漫游和国际漫游业务。
800MHz CDMA第二代数字蜂窝移动通信业务的经营者必须自己组建CDMA移动通信网络,所提供的移动通信业务类型可以是一部分或全部。提供一次移动通信业务经过的网络,可以是同一个运营者的网络,也可以由不同运营者的网络共同完成。提供移动网国际通信业务,必须经过国家批准设立的国际通信出入口。 3.第三代数字蜂窝移动通信业务
第三代数字蜂窝移动通信(简称3G移动通信)业务是指利用第三代移动通信网络提供的话音、数据、视频图像等业务。
第三代数字蜂窝移动通信业务的主要特征是可提供移动宽带多媒体业务,其中高速移动环境下支持144kb/s速率,步行和慢速移动环境下支持384kb/s速率,室内环境支持2Mb/s速率的数据传输,并保证高可靠的服务质量(QoS)。第三代数字蜂窝移动通信业务包括第二代蜂窝移动通信可提供的所有的业务类型和移动多媒体业务。
第三代数字蜂窝移动通信业务的经营者必须自己组建3G移动通信网络,所提供的移动通信业务类型可以是一部分或全部。提供一次移动通信业务经过的网络,可以是同一个运营者的网络设施,也可以由不同运营者的网络设施共同完成。提供移动网国际通信业务,必须经过国家批准设立的国际通信出入口。
60
基于51单片机的8路抢答器的设计
致 谢
通过这次毕业设计,我才明白学习是一个长期积累的过程。 此次设计是在王彦老师的指导下独立完成设计方案的确立和实物的制作。这次设计实验对于提高我的个人能力、自主学习精神和科学实验精神非常有益,为以后从事研制电子产品打下基础。
在论文完成之际,我要特别感谢我的指导老师的热情关怀和悉心指导。在我撰写论文的过程中了很多问题,,无论是在论文的选题、构思和知识结构方面,还是在论文的研究方法王老师都耐心地指导。特别是她广博的学识,严谨的教学精神和超强的动手能力使我受益匪浅,在此,我表示真诚的感谢。
感谢王老师对我的支持、鼓舞和教导,同时我也向所有关心、帮助过我的老师们说一声:老师,您辛苦了!
61
因篇幅问题不能全部显示,请点此查看更多更全内容