资源描述
本科毕业论文(设计)( 2015 届)多功能秒表设计院 系 电子信息工程学院 专 业 电气工程及其自动化姓 名 沈显顺 指导教师 徐小丽 助教 2015 年 4 月学号:1108441007摘 要本次设计的内容是以 STC89C52 单片机为控制核心的秒表。设计的主要内容为计时器从 0099 秒的计时,每秒种自动加 1,另外还设置有暂停键和复位键等按键,在任何情况下都可以实现暂停和复位功能。利用单片机定时器/计数器定时和记数的原理,结合显示电路、LED 数码管以及外部中断电路来设计的计时器。此次设计将软、硬件有机地结合起来,使得系统能够实现 2 位 LED 数码管显示,显示时间为 0099 秒,同时计时精度为1 秒,并且能够正确地进行计时。其中软件系统采用 C 语言编写程序,包括显示子程序、中断服务、外部中断服务子程序和复位子程序等。关键词:单片机; 数码管; C 语言;合肥师范学院 2015 届毕业生本科论文(设计)IAbstractThis design content for the stopwatch with AT89C52 single-chip computer as the core. Design of the main characteristics of the timer timing from 00 to 99 seconds, automatically add 1 every second, and also set a pause button and reset button, under any circumstances can suspend and reset. Use of single-chip timer/counter timing and number of principles, combined with the display circuit, LED digital tube circuit to design the timer and external interrupt. The software and hardware organically, enables the system to realize the two LED display, display time is 00 99 seconds, timing accuracy for one second, time properly. Software system using C language program, including display program, interrupt service, external interrupt service routine, reset the program, etc.Keywords : MCU; LED; C language;II目 录摘 要 .IAbstract .II1 引 言 .- 1 -1.1 研究背景 .- 1 -1.2 研究的意义与方法 .- 1 -2 电路方案论证 .- 2 -2.1 单片机芯片的选择方案和论证: .- 2 -2.1.1 采用 STC89C51 单片机 .- 2 -2.1.2 采用 STC89C52 单片机 .- 2 -2.2 显示模块选择方案和论证: .- 2 -2.2.1 采用 LED 液晶显示屏 .- 2 -2.2.2 采用 LED 数码管显示 .- 3 -2.3 小结 .- 3 -3 系统硬件电路设计 .- 3 -3.1 STC89C52 芯片 .- 3 -3.1.1 概述 .- 3 -3.1.2 STC89C52 主要特性 .- 3 -3.1.3 STC89C52 管脚说明 .- 4 -3.2 LED 数码管显示器概述 .- 5 -3.2.1 数码管的分类 .- 5 -3.2.2 数码管的连接方法 .- 5 -3.3 总体设计方案 .- 6 -3.4 部分电路设计 .- 7 -3.4.1 晶振电路 .- 7 -3.4.2 按键部分电路接线 .- 7 -3.4.3 显示电路 .- 8 -3.4.4 复位电路 .- 8 -4 系统程序的设计 .- 9 -4.1 主程序设计 .- 9 -4.2 定时器 T0 子程序设计 .- 10 -5 联调与调试 .- 10 -合肥师范学院 2015 届毕业生本科论文(设计)III5.1 仿真调试 .- 10 -5.2 硬件调试 .- 12 -结论与展望 .- 13 -致 谢 .- 14 -参考文献 .- 15 -附 录 A 系统原理图 .- 16 -附 录 B 系统仿真图与实物图 .- 17 -附 录 C 系统 PCB 图 .- 18 -附 录 D 系统源程序 .- 19 - 0 -1 引 言1.1 研究背景在生活和生产的各领域中,凡是有自动控制要求的地方都会伴随着单片机的身影出现;从简单到复杂,从空中、地面到地下,只要是能想象到的地方几乎都有使用单片的需求。现在尽管单片机的应用已经非常广泛,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想象和拓展空间。 简单的来说单片机就是微型控制器,它是嵌入式系统中的非常重要且发展快速的组成部分。当单片机接上晶振电路、复位电路和接口电路等且载入软件后,就可以构成单片机应用系统。将单片机嵌入到形形色色的应用系统中时,它就会成为众多产品、设备的智能化核心。所以,很多生产企业将单片机称为“微电脑”。单片机的广泛应用有利于产品的微型化、多功能化和智能化,有助于显著提高劳动生产效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。 但是,单片机应用的意义绝不仅限于它的广阔的应用范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正在从根本上改变着传统的控制系统设计思想和设计方法。以前,必须要模拟电路或数字电路才能实现的大部分功能,现在已能使用单片机通过软件编程方法实现了。这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次重大革命。随着单片机应用的推广和普及,微控制技术一定将不断发展、日益完善和更加充实。近年来随着计算机在社会各领域的崛起, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用的。因此,仅有单片机方面知识是远远不够的,还应根据具体硬件结构,以及针对具体应用对象的特点等,实现软、硬件的结合,以作完善。本篇论文讨论了简单的计时器的设计与制作过程 ,对于计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,直接由单片机驱动数码管。1.2 研究的意义与方法当今社会在很多重要比赛中,都要用到时间的长短来衡量比赛的结果,比如在蓝球比合肥师范学院 2015 届毕业生本科论文(设计)- 1 -赛中,球队双方控球的时间都不能超过 24s ,即进攻方必须在 24s 内一定要投蓝出手,否则违例;另外知识比赛中必须在相应的时间内回答完所有提出的问题等等。为了使参加比赛队员和裁判都能够准确地掌握和控制好时间,必须在比赛场地边竖起一个秒表计时器,以便让比赛队员和裁判以及观众都能够清楚地看到时间。基于此种设想, 我们用 STC 公司生产的简化单片机(STC89C52) 加上少许的外围电路就可以很容易做成一个 00 到99S 范围内的秒表计时器。本文的目的在于从硬件和软件的基础上具体分析其设计和制作方法。主机包括定时器输入电路、时钟电路、电源电路、按键控制电路、LED 显示电路等。此外,主机的信息交换方式采用串行通信方式,设置三个简易按键分别控制时钟的开始/继续、暂停和清零(复位);显示 LED 采用 7 段共阴极数码管,用来满足较远距离清晰显示。2 电路方案论证2.1 单片机芯片的选择方案和论证:2.1.1 采用 STC89C51 单片机若采用 STC89C51 芯片作为硬件核心,其 ROM 存储器采用 Flash ROM,内部仅具有4KB 的 ROM 存储空间,可以于 3V 的超低压下工作 ,并且与 MCS-51 系列单片机完全兼容,但是,由于运用于电路设计中时 STC89C51 单片机不具备 ISP 在线编程技术, 且在对电路进行调试时,因为程序的错误修改或对程序的新增功能需要烧入程序等原因,可能芯片的多次插拔会对芯片造成一定程度的损坏。2.1.2 采用 STC89C52 单片机若采用 STC89C52,片内 ROM 全部都采用 Flash ROM 技术;并且也可在 3V 的超底压下工作;同时也与 MCS-51 系列单片机完全该芯片内部存储器为 8KB 的 ROM 存储空间,同样具有 STC89C51 的功能,而且具有在线编程可擦写技术,当在对电路进行调试时,由于程序的新增功能需要烧入程序或对程序的错误修改时,不需要再对芯片进行多次拔插,因此不会对芯片造成较大损坏。综上论证,所以我选择采用 STC89C52 作为控制系统核心。2.2 显示模块选择方案和论证:合肥师范学院 2015 届毕业生本科论文(设计)- 2 -2.2.1 采用 LED 液晶显示屏若采用 LED 液晶显示屏,液晶显示屏具有显示功能强大且可显示大量图形、文字,显示内容多样,清晰可见,但是价格非常昂贵,需要的接口线较多,因此在此次设计中不会采用 LED 液晶显示屏。2.2.2 采用 LED 数码管显示若采用 LED 数码管静态扫描显示,LED 数码管价格相对适中,对于显示数字最合适,而且采用静态扫描法与单片机连接时,显示稳定且亮度较强。所以我采用了 LED 数码管作为显示器件。2.3 小结综上各方案所述,对此次作品的方案选定: 我选择采用 STC89C52 作为主控制系统; LED 数码管的静态扫描作为显示器件。3 系统硬件电路设计3.1 STC89C52芯片3.1.1 概述 STC89C52 是一款高性能,低功耗的 CMOS 8 位单片机,且单片机内部含有 8k Bytes ISP(In-system programmable)的可反复擦写 1000 多次的 Flash ROM,多数器件采用 STC公司的高密度、非易失性存储技术制造,可兼容标准 MCS-51 指令系统及 80C51 引脚的结构,芯片内集成了通用的 ISP Flash 存储单元和 8 位中央处理器。此种功能强大的微型计算机 STC89C52 可以为大多数的嵌入式控制应用系统提供高性价比的解决方法。另外STC89C52 单片机也为很多的嵌入式控制系统提供了一种灵活性更高且价格低廉的设计方案。 其工作电压一般在 4.5V,很多情况下我们选用5V 电压作为 STC89C52 的驱动电压。3.1.2 STC89C52 主要特性合肥师范学院 2015 届毕业生本科论文(设计)- 3 -XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1STC89C52图 3.1 STC89C52具有8K字节可编程闪烁存储器 寿命:100多次擦/写循环数据保留时间:10年左右全静态工作:0Hz-24MHz具有三级程序存储器锁定1288位的内部随机存储器32位可编程I/O线含有两个16位定时器/计数器5个中断源 、两个中断优先级具有可编程串行通道低功耗的闲置和掉电模式时钟电路和片内振荡器等3.1.3 STC89C52 管脚说明(1) 时钟及电源引脚(4个)Vcc: 为电源接入引脚;Vss:为接地引脚;XTAL1:晶振震荡器接入的其中一个引脚(若采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器接入的另一个引脚(若采用外部振荡器时,此引脚作为外部振荡器信号的输入端);(2)控制线引脚(4个)RST/Vpd:复位信号输入引脚/备用电源输入引脚;ALE:地址锁存允许信号输出引脚/编程脉冲输入引脚:EA:内外存储器选择引脚/片外EPROM编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚;合肥师范学院 2015 届毕业生本科论文(设计)- 4 -(3)并行I/O引脚P0.0-P0.7:为一般I/O口引脚或数据/低位地址总线复用引脚,需上拉电阻;P1.0-P1.7:为一般I/O口引脚,不需上拉电阻;P2.0-P2.7:为一般I/O口引脚或高位地址总线引脚,不需上拉电阻;P3.0-P3.7:为一般I/O口引脚或第二功能引脚,不需上拉电阻;3.2 LED 数码管显示器概述本设计中采用的是 7SEGCOM CATHODE 型号数码管,它是一种半导体发光器件,其基本单元是发光二极管。实物如图 2 所示:图 3.2 7SEGCOM CATHODE3.2.1 数码管的分类数码管按段数分为七段数码管和八段数码管等,八段数码管比七段数码管多了一个发光二极管单元(多一个小数点显示位);数码管按能显示多少个“8”可分为1位、2位、4位等等数码管;数码管按发光二极管单元连接方式不同可分为共阴极数码管和共阳极数码管等。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阴极数码管是指将所有发光二极管的阴极连接到一起构成公共阴极(COM)的数码管。共阴极数码管在应用时必须将公共极(COM)接到地线GND上,当某一字段发光二极管的合肥师范学院 2015 届毕业生本科论文(设计)- 5 -阳极为高电平时,相应字段就会被点亮;当某一字段的阳极为低电平时,此时相应字段就不会被点亮。共阳极数码管在应用时要将公共极(COM)接到+5V电源上,当某一字段发光二极管的阴极为低电平时,此时相应的字段就会被点亮。当某一字段的阴极为高电平时,相应字段就不会被点亮。3.2.2 数码管的连接方法(1)共阳极的连接方法。把发光二极管的阳极全部连接在一起形成公共阳极,使用时公共阳极接到+5V电源上,每个发光二极管的阴极通过合适的电阻且与输入端相连。 (2)共阴极的连接方法。把发光二极管的阴极连接在一起构成公共阴极,使用时公共的阴极必须接地。每个发光二极管的阳极应通过相应的电阻且与输入端相连。图 3.3 LED 数码管连接方法3.3 总体设计方案本设计采用了 STC89C52 单片机为中心器件,利用其内部定时器/计数器定时计数的原理,结合硬件电路如晶振电路,电源电路,显示电路和复位电路等电路,以及一些按键电路等来设计计时器,将软、硬件有机的结合起来,包括计数子程序,显示子程序以及中断子程序等。硬件系统利用 Protues 强大的仿真功能来实现,简单且容易观察,在仿真中就可以观察到实际的工作状态,便于修改。其中软件系统统一采用 C 语言来编写程序,利用 STC89C52 单片机来设计秒表计时器,通过 LED 显示器来显示秒的十位和个位,在设计过程中用一个存储单元作为秒的计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到 99 时,就自动返回到 0,重新开始秒计数。在设计秒表要求一秒定时时,合肥师范学院 2015 届毕业生本科论文(设计)- 6 -采用了定时器和 for 循环来定时,其中一个软件一个硬件,用单片机内部的定时器 T0,先将时钟初始化,赋入初值 50ms 定时,循环 20 次来进行 1 秒的定时。然后由定义的变量来进行加一运算,然后将其值通过 STC89C52 的 P2、P3 口在数码管上进行显示。其中在数码管显示时,我在程序中首先定义了一个关于数码管显示的字形码的定义,以便在显示时直接调用即可。电路的结构图如下:时钟电路复位电路单片机S T C 8 9 C 5 2显示电路按钮电路图 3.4 结构图3.4 部分电路设计3.4.1 晶振电路STC89C52 单片机内部的晶振电路是一个高增益的反相放大器,引用 XTAL1 和 XTAL2 分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以设置为片内振荡器。这里,我们选用 STC89C52 单片机 12MHZ 的内部振荡方式。电路如下:电容器 C1、C2 起稳定振荡频率和快速起振的作用,电容 C1 和 C2 可以在20-100PF 之间取值,这里取 22PF,接线时要使晶体振荡器 X1 尽可能的接近单片机。C122pFC222pFX1CRYSTAL合肥师范学院 2015 届毕业生本科论文(设计)- 7 -图 3.5 晶振电路3.4.2 按键部分电路接线在按键电路中,我可以在 I/O 口上直接设置按键,或者通过 I/O 口设计一个键盘,然后通过键盘扫描程序判断是否有按键按下等。此系统是一个小系统,有足够的 I/O 口可以使用,为了使程序简化,我采用按键电路并且用部分 P1 口做按键开关,P1.0 为开始/继续按键,P1.3 为暂停按键,P1.5 为清零按键。此外复位选择上电复位。开 始暂 停清 零图 3.6 按键电路3.4.3 显示电路显示电路我采用的是 7 位数码管显示电路。即用 2 个共阴极 LED 显示,LED 是七段式显示器,内部有 7 个条形发光二极管组成,其工作方式是根据各二极管的亮灭组合成相应的字符。在用数码管显示时,有静态扫描和动态扫描两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,但可以节省单片机的I/O 口。此设计由于电路简单,有足够的 I/O 口,为了简化程序我选择静态显示连接方式。合肥师范学院 2015 届毕业生本科论文(设计)- 8 -图 3.7 数码管显示3.4.4 复位电路复位是将单片机进行初始化的操作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于跑飞状态时,为了摆脱困境,也需要按复位按键以便重新启动单片机。复位操作有上电自动复位和按键手动复位两种方式。在本次设计中采用了按键电平复位的方式,其复位电路如图所示:复 位R1220R2220C310uF图 3.8 复位电路4 系统程序的设计本系统程序主要模块由主程序、定时中断服务程序、外部中断 1 服务程序组成。其中主程序是整个程序的主体,可以对各个中断程序进行调用,协调各个子程序之间的联系。4.1 主程序设计合肥师范学院 2015 届毕业生本科论文(设计)- 9 -系统(上电)复位后,进入主程序,主程序流程图如下:开始初始化开始按键 ?启动定时器显示当前时间暂停按键 ?记录当前时间清零按键 ?返回开始按键 ?N NNYYYYN图 4.1 主程序流程图4.2 定时器 T0 子程序设计定时器 T0 子程序主要功能是溢出中断,其流程图如下:合肥师范学院 2015 届毕业生本科论文(设计)- 10 -开始显示单元清零T 0 设为 1 6 位计时器模式允许 T 0 中断进入功能程序按键按下 ?调用显示子程序图 4.2 定时器 T0 子程序流程图5 联调与调试5.1 仿真调试系统的调试开始是把编译生成的无错误且后缀名为.hex 的文件加载到 STC89C52 单片机中,方法是双击单片机弹出一个对话框,在 program file 后选择要添加文件,文件要求必须是 hex 文件。然后可以点击运行观察现象,当出现错误时,大多都是软件出了问题,经过不断的进行改进与调试。对按键检测、加减时间与按键之间产生的不一致、倒计时子程序的调用等软件的修改后,系统基本实现了所要设计的功能。(1) 经过对程序的运行,并用 keil 软件编译后,用 proteus 仿真软件进行仿真,按下“开始”按钮之前,可以看到数码管上数字显示为零。如图所示:合肥师范学院 2015 届毕业生本科论文(设计)- 11 -开 始暂 停清 零复 位XTAL218XTAL119ALE3031PSN29RST9P0./AD0390.1/138P0.2/AD2370.3/336P0.4/AD4350.5/534P0.6/AD630.7/732P1.011.2P1.231.34P1.451.56P1.671.78P3.0/RXD103.1/T 1P3.2/INT0123./IT113P3.4/T014P3.7/RD173.6/W163.5/T115P2.7/A1528P2.0/A8212.1/92P2./A10232.3/124P2.4/A12252.5/13262.6/1427U1STC89C52C12pFC22pFX1CRYSTALR120R220C310uF图 5.1 开始(2)按下“开始”按钮计时图:开 始暂 停清 零复 位XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A10232.3/124P2.4/A1225P2.5/A1326P2.6/A1427U1STC89C52C12pFC22pFX1CRYSTALR120R220C310uF图 5.2 计时(3)最大计数范围 99 秒图:开 始暂 停清 零复 位XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1STC89C52C12pFC22pFX1CRYSTALR120R220C310uF图 5.3 最大计时数合肥师范学院 2015 届毕业生本科论文(设计)- 12 -5.2 硬件调试1、检查电路:无论焊接多好的电子电路,在通电之前,都一定要仔细检查电路的接线是否有误,是否有虚焊等情况。在仔细的对照电路原理图的情况下,按照特定的次序逐步逐级一一对应检查,尤其需要注意的是,电源连接线是否会接错,电源和地之间是否有短接等情况,二极管方向是否接反,电解电容的极性是否接错等,集成电路和晶体管的引脚是否接错,稍微碰一碰元器件,仔细查看它的焊点是否足够牢固等。2、通电观察:在给元器件接通电源之前,必须要调试好电源所需要电压数值,并确定电路板电源接线端是否有短路的现象,若得出无短路现象的结论,就能给电路接通电源了。电源一经接通,必须要赶快去测试它的特征,像波形、数据等可以稍后再测,首要的是观察接通后元器件有没有不正常现象,如冒烟、异常气味、放电、元器件发烫等现象。如果有应要立即关断电源,只有在故障排除后才方可重新接通电源。然后,再测量每个集成块的电源引脚电压是否正常,以确信集成电路是否已正常通电工作。合肥师范学院 2015 届毕业生本科论文(设计)- 13 -结论与展望毕业设计是考察学生综合运用所学知识,发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察的过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中非常活跃的领域,在生活中可以说单片机是无处不在。因此,对于二十一世纪的大学来说,掌握单片机的开发技术与方法是十分重要的。回顾起此次毕业设计的种种,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这些日子里,可以说是苦多于甜,但是在设计的过程中,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不能满足以后发展要求的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说是困难重重,难免会遇到各种各样的问题,同时在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法等。通过这次设计,把以前所学过的知识又重新温习了一遍。另外,在做毕业设计的过程中我也进一步认识到全面专业知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了毕业设计的基本方法。经过不断的的努力与尝试我最终圆满完成了这次毕业设计。总的来说,我学到了不少的东西,在设计过程中遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。我们相信这过程对今后的学习和工作给有着积极的影响。合肥师范学院 2015 届毕业生本科论文(设计)- 14 -致 谢这次毕业设计终于顺利完成了,在设计中遇到了很多编程和硬件电路问题,最后在老师的辛勤指导下,终于完成了设计要求。同时,从老师和同学那里我学得到很多实用的知识,在此我对给予我帮助过的所有同学和各位指导老师再次表示衷心的感谢!此外,从这次的毕业设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高。最后,再次向帮助过我的所有人真诚的道一声谢谢!合肥师范学院 2015 届毕业生本科论文(设计)- 15 -参考文献1 李朝清.单片机原理及口技术M.北京航空航天大学出版社.2005.2 何立民.单片机应用系统设计M.北京:北京航空航天大出版社,1995.3 王守中. 51 单片机应用开发速查手册Z.人民邮电出版社.2009.4 张毅刚.单片机原理与应用设计M.北京:电子工业出版社,2008:029-535. 5 张毅刚,彭喜元, 彭宇. 单片机原理及应用M.北京: 高等教育出版社, 2010.6 陈忠平.单片机原理及接口M.北京:清华大学出版社,2007.7 张毅刚.基于 Proteus 的单片机课程的基础实验与课程设计 M.北京:人民邮电出版社,2012:032-159.8 张毅刚,彭喜元, 彭宇. 单片机原理及应用M.北京: 高等教育出版社, 2010.9 楼然苗, 李光飞. 单片机课程设计指导M.北京:北京航空航天大学出版社,2007.10 石秀民.嵌入式系统原理与应用M.北京:北京航空航天大学出版社,200711 陈汝全.实用微机与单片机控制技术M.北京:电子科技大学出版社,1998.12 谭浩强.C 程序设计M(第三版).北京:清华大学出版社,2005.合肥师范学院 2015 届毕业生本科论文(设计)- 16 -附 录 A 系统原理图P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0 10P3.1 11P3.2 12P3.3 13P3.4 14P3.5 15P3.6 16P3.7 17P2.0 21P2.1 22P2.2 23P2.3 24P2.4 25P2.5 26P2.6 27P2.7 28XTAL119XTAL218RST20PSEN29ALE30EA31U1AT89c51U2CAPU3CAPU4CRYSTALU7RES2U6RES2+C1CAPACITOR POL+5S1SW-PBS3SW-PB4SW-PBS2W-PB1234567abcdefg8GNDabfcgdeDS1REDCC1234567abcdefg8GNDabfcgdeDS2REDCC位位位位位位位位位位合肥师范学院 2015 届毕业生本科论文(设计)- 17 -附 录 B 系统仿真图与实物图开 始暂 停清 零复 位XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C12pFC22pFX1CRYSTALR120R220C310uF合肥师范学院 2015 届毕业生本科论文(设计)- 18 -附 录 C 系统 PCB 图合肥师范学院 2015 届毕业生本科论文(设计)- 19 -附 录 D 系统源程序#include /头文件#define uchar unsigned char /宏定义#define uint unsigned int /宏定义/定义位sbit kai=P10;sbit zanting=P12;sbit fuwei=P14;void keyscan(); /函数声明uchar a,i;uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(uint z) /延时程序uchar i,j;for(i=z;i0;i-) /i=z 即延时约 z 毫秒for(j=2;j0;j-);void main() /主程序a=0;i=0;TMOD=01; /设置定时器 0 为工作方式 1TH0=(65536-50000)/256; /装初值 50ms 一次中断TL0=(65536-50000)%256; TR0=0;ET0=1; /开定时器 0 中断EA=1; /开总中断P2=table0;P3=table0;while(1) /循环检测是否有按键按下keyscan();合肥师范学院 2015 届毕业生本科论文(设计)- 20 -void keyscan() /键盘扫描程序delay(10); /去抖动if(!kai) /开始按键按下TR0=1;delay(10);if(!zanting ) /暂停按键按下TR0=0;delay(10);if(!fuwei) /清零按键按下P2=table0;P3=table0;a=0;i=0;TR0=0;void time0() interrupt 1TH0=(65536-50000)/256; /重装初值TL0=(65536-50000)%256;i+;if(i=20) /如果到了 20 次,说明 1 秒时间到i=0; /把 i 清零重新再计 20 次a+;if(a=100) /如果计时到 99 秒,从新从 0 开始a=0;P2=tablea/10;P3=tablea%10;
展开阅读全文