1、郑州科技学院 单片机原理及应用课程设计题 目 基于单片机简易设计与实现 学生姓名 专业班级 学 号 院 (系) 指引教师 完毕时间 年 月 日 目 录0.引言11.设计方案21.1 方案论证21.2 方案比较与选取22. 系统设计32.1系统构成及总体框图32.2硬件原理42.2.1.单片机最小系统42.2.2键盘电路102.2.3显示电路122.3.软件流程142.3.1主程序控制流程142.3.2键盘扫描子程序152.3.3LCD1602显示控制流程172.4仿真与实物制作203.结论22参照文献22附录一:总体电路原理图23附录二:元器件23附录三:源程序24基于单片机简易设计与实现0.
2、引言随着社会发展,科学进步,人们生活水平在逐渐提高,特别是微电子技术发展,犹如雨后春笋般变化。电子产品更新速度快就局限性惊奇了。计算器在人们寻常中是比较常用电子产品之一。如何使计算器技术更加成熟,充分运用已有软件和硬件条件,设计出更出众计算器,使其更好为各个行业服务,成了如今电子领域重要研究课题1。 今天,人们寻常生活中已经离不开计算器了,社会各个角落均有它身影,例如商店,办公室,学校。因而设计一款简朴实用计算器会有很大实际意义。 本设计对字符液晶显示模块工作原理,如初始化、清屏、显示、调用及外特性有较清晰结识,并会使用LCD(液晶显示模块)实现计算成果显示;掌握液晶显示模块驱动和编程,设计L
3、CD和单片机接口电路,以及运用单片机对液晶模块驱动和操作;在充分分析内部逻辑概念,进行软件和调试,学会使用,并可以以其为平台设计出具备四则运算能力简易计算器硬件电路和软件程序。同步在进一步掌握单片机理论知识,理解嵌入式单片机系统硬软件设计,加强对实际应用系统设计能力。通过本设计学习,使我掌握单片机程序设计和微机接口应用基本办法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题能力,为单片机应用和开发打下良好基本。1. 设计方案本设计可以采用两种方案,一种是以FPGA为核心解决芯片,配备相应外设;此外一种是以STC89C51解决器,配备相应外设。1.1 方案论证 (1)
4、方案一:采用FPGA控制FPGA是一种高密度可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA集成密度和性能提高不久,其集成密度最高达500万门/片以上,系统性能可达200MHz。由于FPGA器件集成度高,以便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度可编程逻辑器件领域中独占鳌头。但是而基于SRAM编程FPGA,其编程信息需存储在外部存储器上 ,需外部存储器芯片 ,且用法复杂 ,保密性差,而其对于一种简朴计算器而言,实用FPGA有点大材小用,成本太高。(2)方案二:采用STC89C51单片机是单片微型机简称,故又称为微控制器MC
5、U(Micro Control Unit)。普通由单块集成电路芯片构成,内部包具有计算机基本功能部件:中央解决器CPU,存储器和I/O接口电路等。因而,单片机只要和恰当软件及外部设备相结合,便可成为一种单片机控制系统。单片机广泛用于智能产品,智能仪表,测控技术,智能接口等,具备操作简朴,实用以便,价格便宜等长处,而其中STC89C51以MCS-51为内核,是单片机中最典型代表,应用于各种控制领域5。1.2 方案比较与选取 通过以上两种方案论证和比较,从设计实用性,以便性和成本出发,选取了以STC89C51单片机作为中央解决单元进行计算器设计,这样设计可以实现对四位加减乘除和除法四位小点数运算。
6、2. 系统设计为了更好实现系统得功能,硬件电路设计应当遵循如下原则:(1)优化硬件电路采用软件设计与硬件设计相结合办法;尽管采用软件来实现硬件系统功能时,也许响应时间会比单纯使用硬件时长,并且还要占用微解决器(MCU)时间;但是,用软件实现硬件功能可以简化硬件构造,提高电路可靠性。因此,在设计本系统得时候,在满足可靠性和实时性前提下,尽量通过软件来实现硬件功能8。(2)可靠实用性依照可靠性及实用性设计理论,系统所用芯片数量越少,系统平均无端障时间越长。并且,所用芯片数量越少,地址和数据总线在电路板上受干扰也许性也就越小。因而,系统设计思想是在满足功能状况下力求使用较少数量芯片。(3)灵活功能扩
7、展功能扩展与否灵活是衡量一种系统优劣重要指标。一次设计往往不能完全考虑到系统各个方面,系统需要不断完善以及进行功能升级。进行功能扩展时,应当在原有设计基本上,通过修改软件程序和少量硬件完毕。对于本系统而言,就是规定在系统硬件不变状况下,可以通过修改软件程序,完毕功能升级和扩展7。2.1系统构成及总体框图计算器重要由STC89C51单片机构成最小系统、1602LCD液晶显示屏及编码键盘构成。P1、P3口:做为输出口,控制LCD液晶显示屏显示数据成果;P2口:做为输入口,与键盘连接,实现数据输入LCD液晶显示屏显示输出,总体框图如下。LCD液晶显示屏模块 STC89C51最小系统控制模块4X4键盘
8、模块电源模块图2-1 系统构成及总体框图2.2硬件原理硬件设计是整个计算器设计基本,只有在硬件设计完毕后,才干给整个电路下载程序,从而完毕该作品完整设计。2.2.1.单片机最小系统最小系统设计即单片机最小系统,对51系列单片机来说,最小系统普通应当涉及:单片机、晶振电路、复位电路。下面给出一种51单片机最小系统电路图。图2-2 单片机最小系统(1)复位电路:由一种按键开关和一种10uf电容并联而成,一端接+5v电源,另一端接单片机引脚9(即RST)复位键,,如图2-2所示。一、复位电路用途:单片机复位电路就好比电脑重启某些,当电脑在使用中浮现死机,按下重启按钮电脑内部程序从头开始执行。单片机也
9、同样,当单片机系统在运营中,受到环境干扰浮现程序跑飞时候,按下复位按钮内部程序自动从头开始执行。二、复位电路工作原理在课本上有简介,51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,在单片机系统中,系统上电启动时候复位一次,当按键按下时候系统再次复位,如果释放后再按下,系统还会复位。因此可以通过按键断开和闭合在运营系统中控制其复位。(2)晶振电路:普通晶振振荡电路都是在一种反相放大器两端接入晶振,两个电容分别接到晶振两端 每个电容另一端再接到地,这两个电容串联容量值就应当等于负载电容 请注意普通IC引脚均有等效输入电容 ,普通晶振负载电容为15pF或12.5pF 如果再考虑元件引
10、脚等效输入电容 则两个22pF电容构成晶振振荡电路就是比较好选取,晶振是给单片机提供工作信号脉冲 这个脉冲就是单片机工作速度,例如,12M晶振单片机工作速度就是每秒12M 固然,单片机工作频率是有范畴,不能太大 普通24M就不上去了,否则不稳定。晶振与单片机脚XTAL0和脚XTAL1构成振荡电路中会产生偕波(也就是不但愿存在其她频率波) 这个波对电路影响不大 但会减少电路时钟振荡器稳定性 为了电路稳定性起见 ATMEL公司只是建议在晶振两引脚处接入两个10pf-50pf瓷片电容接地来削减偕波对电路稳定性影响 因此晶振所配电容在10pf-50pf之间都可以 。此晶振电路由两个30uf电容并联后,
11、两端分别接一种12MHz晶振,而晶振两端又分别接引脚18(XTAL2)、19(XTAL1)。XTAL1:反向振荡放大器输入及内部时钟工作电路输入。XTAL2:来自反向振荡器输出。XTAL1,XTAL2接石英晶体振荡器。如图2-2所示外接晶体引脚图。(3)STC89C51RC图2-3 单片机STC89C51A. 重要性能: 8051 CPU与MCS-51 兼容 8K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-33MHz 三级加密程序存储器 128*8位内部RAM 32条可编程I/O线 三个16位定期器/计数器 八个中断源 全双工UART串行通道 低功耗闲置和掉电模
12、式 掉电后中断可唤醒 看门狗定期器 双数据指针 掉电标记符 片内振荡器和时钟电路 STC89C51 单片机为40 引脚芯片见图2-4B.管脚阐明: VCC:供电电压。 vss:接地。口线:P0、P1、P2、P3 共四个八位口。P0 口:P0口是一种8位漏极开路双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平,对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具备内部上拉电阻。在flash编程时,P0口也用来接受指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1 口是一种具备内部上拉
13、电阻8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低引脚由于内部电阻因素,将输出电流(IIL)。 此外,P1.0和P1.1分别作定期器/计数器2外部计数输入(P1.0/T2)和定期器/计数器2触发输入(P1.1/T2EX),详细如下表所示。在flash编程和校验时,P1口接受低8位地址字节。 图2-4 STC89C51引脚图引脚第二功能: P1.0 T2(定期器/计数器T2外部计数输入),时钟输出 P1.1 T2EX(定期器/计数器T2捕获/重载触发信号和方向控制) P1.5
14、MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2口:P2 口是一种具备内部上拉电阻8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低引脚由于内部电阻因素,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器时,P2 口送出高八位地址。在这种应用中,P2 口使用很强内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器内容。在flash编程和校验时,P2口也接受高8位地址字节和某些控制信号
15、。 P3 口:P3 口是一种具备内部上拉电阻8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低引脚由于内部电阻因素,将输出电流(IIL)。 P3口是STC89C51特殊功能(第二功能)使用,如表2-5所示。 表2-5 P3口管脚 备选功能:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.
16、7/RD(外部数据存储器读选通)在flash编程和校验时,P3口也接受某些控制信号。此外,P3口还接受某些用于FLASH闪存编程和程序校验控制信号。 其她引脚阐明:RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完毕后,RST 脚输出96 个晶振周期高电平。特殊寄存器AUXR(地址8EH)上DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存容许)输出脉冲用于锁存地址低8位字节。普通状况下,ALE仍以时钟振荡频率1/6输出固定脉冲信号,因而它可对外输出时钟或用于定期
17、目11。要注意是:每当访问外部数据存储器时将跳过一种ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 PSEN程序储存容许(PSEN)输出是外部程序存储器读选通信号,当STC89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问容许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必要保持低电平(接地)。需注意是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器指令
18、。 31脚EA/Vpp接电源:STC89C51/52或其她51系列兼容单片机特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM0000H开始执行,当接低电平时,复位后直接从外部ROM0000H开始执行。2.2.2键盘电路键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片组合,当按下某个按键时,它可以解决按键抖动、连击等问题,直接输出按键编码,无需系统软件干预。通用计算机使用原则键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以构成编码键盘,同步还可以兼顾数码管显示驱动,其有关接口电路和接口软件均
19、可在芯片资料中得到12。当系统功能比较复杂,按键数量诸多时,采用编码键盘可以简化软件设计。非编码键盘成本低廉。从成本角度出发,本设计选用是非编码键盘。如图2-6图2-6编码键盘电路此键盘采用4*4矩阵排列,将每一行一端接在一起构成四行,将另一端连在一起构成四列,正好与单片机P3口8个IO口相连,即由低位到高位依次链接P3.0-P3.7,作为单片机电路输入端。拟定矩阵式键盘上任何一种键被按下普通采用行扫描法。行扫描法又称为逐行查询法它是一种最惯用多按键辨认办法。因而,本设计采用以行扫描法实现按键辨认操作。其工作原理为:一方面,不断循环地给低四位独立低电平,然后判断键盘中有无键按下。将低位中其中一
20、列线(P3.0P3.3中其中一列)置低电平然后检测行线状态(高4位,即P3.4P3.7,由于线与关系,只要与低电平列线接通,即跳变成低电平),只要有一行电平为低就延时一段时间以消除抖动,然后再次判断,如果依然为低电平,则表达键盘中真有键被按下并且闭合键位于低电平4个按键之中任其一,若所有行线均为高电平则表达键盘中无键按下。再另一方面,判断闭合键所在详细位置。在确认有键按下后 ,即可进入拟定详细闭合键过程。其办法是:依次将列线置为低电平,即在置某一根列线为低电平时,其他列线为高电平。同步再逐行检测各行线电平状态 ;若某行为低,则该行线与置为低电平列线交叉处按键就是闭合按键。2.2.3显示电路(1
21、)1602LCD液晶显示屏简介1602液晶模块内部控制器共有11条控制指令,丰富指令可以完毕液晶时序控制、工作方式式设立和数据显示等6。采用LCD1602液晶模块是原则16针插座,接口电路如图所示:关于LCD1602详细资料见图2-7和表2-8。图2-7 LCD接口电路 表2-8 LCD1602引脚阐明第1脚VSS接地第2脚Vcc接5V正电源第3脚V0为液晶显示屏对比度调节端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一种10K电位器调节对比度。实际电路中采用2K电阻到地,比较抱负。第4脚RS为寄存器选取,高电平选取数据寄存器、低电平选取指令寄存器。
22、第5脚RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时 (00)可以写入指令或者显示地址;当RS为低电平RW为高电平时(01)可以读入盲信号;当RS为高电平RW为低电平时(10)可以写入数据。第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚D0D7为8位双向数据线。第1516脚阳极和阴极。(2)与单片机连接:单片机P1.0-P1.7依次与LCD16027-14引脚相连,将从键盘读到数据通过LCD1602显示出来。(3)工作原理:本次实训采用1602两行16个字DM-1602液晶显示模块DM-162采用原则14脚接口,其中VSS为
23、地电源,VDD接5V正电源,V0为液晶显示屏对比度调节端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一种10K电位器调节对比度。RS为寄存器选取,高电平时选取数据寄存器、低电平时选取指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线2.3.软件流程通过软件调用,让单片机将键盘与LCD1602液晶显示屏结合起来2.
24、3.1主程序控制流程当主程序载入单片机时,开始进行判断各电路初始化程序,在单片机开始检查有无键按下,如遇键盘按下,则执行延时程序,继续判断有无按键按下,然后进行按键辨认,最后调用计算机延时子程序,实现系统初始化和其她子程序模块调用操作。图2-9按键流程图2.3.2键盘扫描子程序由于本设计采用行扫描方式辨认按键,通过硬件电路连接及工作原理知每个按键键码:应为用P3口高四位输出低电平,即P3.4P3.7为输出口。低四位输出高电平,即P3.0P3.3为输入口。读P3口低四位状态为“0111”,其值为“07H”。再从P1口高四位输出高电平,即P1.4P1.7为输入口。低四位输出低电平,即P10P13为
25、输出口,读P1口高四位状态为“0111”,其值为“07H”。将两次读出P0口状态值进行逻辑或运算就得到其按键特性编码为“77H”,别的依次类推。键盘按键阐明如下:- | 1 | 2 | 3 | + | - - - - - - - - - - - - - | 4 | 5 | 6 | - | - - - - - - - - - - - - - | 7 | 8 | 9 | * | - - - - - - - - - - - - -| C | 0 | = | / | -*/操作简介/ 按第一种数,再按+-*/,再按=显示出成果,然后按C清屏/ 加最大9999+9999=19998/ 减最大9999-0
26、 =9999/ 乘最大9999*9999=99980001/ 除 1/9=0.1111 保存小数点后4位想要计算器可以精确计算成果,需要按键相应相应程序(c语言),因此我先给每个按键定义如下地址含义:case 0x77 :a=0x0d;break;/ 按键/ case 0x7b :a=0x0e;break;/ 按键=case 0x7d :a=0; break;/ 按键0case 0x7e :a=0x0f;break;/ 按键CEcase 0xb7 :a=0x0c;break;/ 按键 *case 0xbb :a=0x9;break;/ 按键 9case 0xbd :a=0x8;break;/
27、按键 8 case 0xbe :a=0x7;break;/ 按键7case 0xd7 :a=0x0b;break;/ 按键 -case 0xdb :a=0x6;break;/ 按键6case 0xdd :a=0x5;break;/ 按键5case 0xde :a=0x4;break;/ 按键4case 0xe7 :a=0x0a;break;/ 按键 +case 0xeb :a=3;break;/ 按键3case 0xed :a=2;break;/ 按键2case 0xee :a=1;break;/ 按键1default :a=0xff;return a;/* 返回按键值 */2.3.3LCD1
28、602显示控制流程指令1清显示 指令码01H,光标复位到地址00H位置;指令2光标复位 指令码02H,光标返回到地址00H位置 ;指令3光标和显示模式设立 I/D位 光标移动方向,高电平右移,低电平左移;S 位 屏幕上所有文字与否左移或者右移,高电平有效,低电平无效;指令4显示开关控制 D 位 控制整体显示开与关,高电平表达开显示,低电平表达关显示;C 位 控制光标开与关,高电平表达有光标,低电平表达无光标; B 位 控制光标与否闪烁,高电平闪烁,低电平不闪烁 ;指令5光标或显示移位S/C位 高电平时移动显示文字,低电平时移动光标指令6功能命令设立DL位-高电平时为4位数据总线,低电平时为8位
29、总线;N位低电平时为单行显示,高电平时为双行显示;F位低电平时显示5x7点阵字符,高电平时为5x10点阵字符;指令7字符发生器RAM地址设立指令8DDRAM地址设立指令9读忙信号和光标地址BF位 为忙标志位,高电平表达忙,此时模块不能接受命令或者数据指令10写数据指令11读数据(1)指令操作 表2-10指令编码(2)子程序流程:同样而言,LCD1602显示屏在与单片机连接时,也需要单片机输出程序,而此程序则为1602液晶显示需要初始化显示:void init_lcd(void) /初始化液晶,及画面初始化wela=0; /写液晶lcden=0; /使能1602write_com(0x38);
30、/8 位总线,双行显示,5X7 点阵字符LCD_Delay_us(100); /延时100uswrite_com(0x0c); /开显示,无光标,光标不闪烁write_com(0x06); /光标右移动write_com(0x01); /清屏write_com(0x80); /DDRAM 地址归01602写指令函数:void write_com(uchar com) /1602液晶写指令rs=0; /写指令lcden=0; /使能1602 P0=com; /写入指令comLCD_Delay_ms(1); /延时1mslcden=1; /使能1602LCD_Delay_ms(2); /延时2ms
31、 lcden=0; /使能16021602写数据函数:void write_date(uchar date) /1602液晶写数据rs=1; /写数据lcden=0; /使能1602 P0=date; /写入数据dateLCD_Delay_ms(1); /延时1mslcden=1; /使能1602LCD_Delay_ms(2); /延时2mslcden=0; /使能1602在1602液晶显示屏初始化程序之后,且可以读写数据时,便可对键盘进行操作,指令如下:short keycheckdown()/* 反转法键盘扫描 */short temp1,temp2,temp,a=0xff;P1=0xf0
32、;/* 输入行值(或列值) */LCD_Delay_ms(20);/* 延时 */temp1=P1;/* 读列值(或行值) */P1=0xff;LCD_Delay_ms(20);/* 延时 */P1=0x0f;/* 输入列值(或行值) */LCD_Delay_ms(20);/* 延时 */temp2=P1;/* 读行值(或列值) */P1=0xff;temp=(temp1&0xf0)|(temp2&0xf);/* 将两次读入数据组合 */switch(temp)/* 通过读入数据组合判断按键位置 */void display_a() /显示数据adispaly3=data_a%10000/10
33、00; /千dispaly2=data_a%1000/100; /百dispaly1=data_a%100/10; /十dispaly0=data_a%10; /个 write_com(0x80+0); /显示数据aif(data_a999)write_date(0+dispaly3); /显示千位if(data_a99)write_date(0+dispaly2); /显示百位if(data_a9)write_date(0+dispaly1); /显示十位 write_date(0+dispaly0); /显示个位2.4仿真与实物制作(1)仿真为了保证明物制作成功,在实物制作之前先进行了仿真
34、设计,其仿真过程是借助ISIS软件实现。其系统电路连接仿真图如图2-10所示,采用12MHz晶振构成外接振荡电路;用按手动按键复位电路;LCD1602接到P0口,由于P0口是开漏输出,因此需要接上拉电阻,本系统采用1k欧排阻;键盘采用总线形式接入P3口。连接完电路后,进行仿真运营,检查效果,并在电路中键盘输入测试。图2-11仿真图仿真成果:(1)键盘显示码测试: 例如:乘法运算:9999*9999=99980001 ;(2)实物制作:计算9999*9999=99980001; 图2-12 实物图(正、反)3.结论在硬件制作过程中我走了好多弯路,重要是在系统还没有设计有把握就开始动手制作了。日后
35、发现与设计规定尚有偏差,重复改过了几次,挥霍了大量时间和体力。感受到设计人员要有耐心,要认真从规定开始研究。软件编写过程中费了很大力气,由于软件编写规定很高,要很细心,一不小心就会调用错误,很深刻体会到作为软件编程人员是绝不能粗心大意。一种程序完毕速度和质量高低与细心与否有着很大联系。编程时,我充分使用了构造化思想。这样由于语句较少,程序调试比较以便,功能模块可以逐个调试,充分体现了构造化编程优势。当每个模块都完毕时,将其功能加到一起就完毕了整体设计。参照文献1张靖武,单片机系统PROTEUS设计与仿真M.北京:北京电子工业出版社2靳达.求是科技.单片机应用系统开发实例导航M.:人民邮电出版社
36、,3刘守义. 单片机应用技术M.:西安电子科技大学出版社,5胡汉才.单片机原理及接口技术.清华大学出版社,19966徐江海.单片机实用教程M.北京:机械工业出版社,.7肖洪兵. 跟我学用单片机M. 北京:北京航空航天大学出版社,.88夏继强. 单片机实验与实践教程M. 北京:北京航空航天大学出版社,9谭浩强. C语言程序设计M.北京:清华大学出版社,.10刘福基. C语言程序设计与实训教程M.北京:科学出版社,.11张磊. C语言程序设计M.北京:高等教诲出版社,.12严桂兰. C语言程序设计M.厦门:厦门大学出版社,附录一:总体电路原理图附录二:元器件元件编号参数数量C110uF电解电容1C7,C1030pf瓷片电容2J1电源接口1K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17轻触按键17P1LCD1602液晶显示屏1P44针插针1PR110K排阻1R13K电阻1R210K电阻1SW1自锁开关1U2STC89C51芯片1Y112M晶振1附录三:源程序