基于AT89C51单片机实验开发板系统设计_第1页
基于AT89C51单片机实验开发板系统设计_第2页
基于AT89C51单片机实验开发板系统设计_第3页
基于AT89C51单片机实验开发板系统设计_第4页
基于AT89C51单片机实验开发板系统设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、电子高专基于AT89C51单片机实验开发板系统设计 摘        要. IAbstract. II第1章  绪  论. 11.1  单片机现状及发展概述. 11.2  单片机的性能特点. 21.3  单片机的主要产品及系列. 3第2章  实验板总体设计方案. 62.1  实验板系统功能. 62.2  实验板的性能要求. 62.3  AT89C51 在实验板中的应用. 7第3章  实验板的硬件设计. 83. 1&#

2、160;  硬件总体设计. 83. 2   各功能模块设计. 93.3.1   单片机外围电路. 93.2.2   4×4矩阵键盘电路. 113.2.3  液晶显示电路. 133.2.4  串行通信电路. 143.2.5    I/O口扩展电路. 153.2.6  电源电路. 153.3  实验板元器件清单. 17第4章  实验板的软件设计. 184.1  软件总体设计. 184.2  各模块设计流程图. 194.2

3、.1  键盘扫描子程序. 194.2.2   液晶显示子程序. 24第5章  实验板调试. 295.1  调试的目的. 295.2  调试的过程. 29第6章  总  结. 30致   谢. 31参考文献. 32附   录. 33附录1 英文翻译. 33附录2原理图. 42附录3 pcb图. 43第1章  绪  论1.1  单片机现状及发展概述单片机属于第四代微型计算机的一个重要分支。单片机是把中央处理器CPU(Central  Pro

4、cessing  Unit),随机存取存储器RAM(Random Access  Memrty),只读存储器ROM(Read  Only  Memory),定时器/计数器以及I/O接口电路等主要计算部件集成在一块集成电路芯片上的微型计算机。单片机的应用导致了控制领域的一场革命,是微控制技术逐步取代传统的硬件控制。近十几年来,单片机在生产过程控制、自动检测、数据采集与处理、科技计算、商业管理和办公室自动化等方面获得了广泛的应用。单片机具有体积小、重量轻、耗能省、价格低、可靠性高和通用灵活等优点,因此也广泛应用于卫星定向、汽车火花控制、交通自动管理和微波炉等

5、专用控制上。近几年来,单片机的发展更为迅速,它己渗透到诸多学科的领域,以及人们生活的各个方面。MCS-51系列中的一片89C51芯片,内部构造了完整的计算机硬件系统。从CPU、存储器到输入输出端口,一应俱全。只要写入程序,就可完成中央控制或数据采集、处理及通信传输的信息处理机,MCS-51单片机指令系统中为适应控制的需要设有极强的位处理功能,具有加、减、乘、除指令;CPU时钟高达12MHz,完成单字节乘法或除法运算器件分军用和民用两级,民用产品主要用于办公室及机房环境,工作温度在0-701C,军用产品要求在恶劣环境条件下稳定工作,工作温度在-65125:工业级产品的性能介于以上两者之间,在-4

6、0+85C温度环境可正常工作。工业产品可靠性比民用产品强,而价格较军用品低。在单片机应用中,可以根据实际工作环境,选择工业级芯片,保证系统可靠性。单片机出现的历史并不长,它的产生与发展与微处理器的产生与发展大体上同步,也经历了四个阶段:第一阶段:19711974年,1971年11月美国Inter公司设计成集成度为2000只晶体管/片的4位微处理器Intel 4004,并配有随机存取存储器RAM,只读存储器RAM和移位寄存器等芯片,构成第一台MCS-4微型计算机。随后又研制成了8位微处理器Intel 8008。这些微处理器虽说还不是单片机,但从此拉开了研制单片机的序幕。第二阶段:19741978

7、年,初级单片机阶段,以Intel公司的MCS-48为代表,这个阶段的单片机内集成有8位CPU,并行I/O口,8位定时器/计算器,寻址范围不大于4K,且无串行口。第三阶段:19781983年,高性能单片机阶段。这一阶段单片机和前阶段相比,不仅存储容量和寻址范围大,而且中断源、并行I/O口和定时器所数器个数有了增加,集成了全双工串行通信接口。在指令系统方面,普遍增设了乘除法和比较指令。MCS-51系列产品由于其优良的性能价格比,在相当一段时间处于主流产品地位。第四阶段:1983年至今。8位单片机巩固发展及16位单片机推出阶段。16位单片机工艺先进、集成度高、内部功能强,而且允许用户采用面向工业控制

8、的专用语言。现阶段:32位单片微机系列。继16位单片机出现后不久,几大公司先后推出了代表当前最高性能和技术水平的32位单片微机系列。32位单片机具有极高的集成度,内部采用新颖的RISC(精减指令系统计算机)结构,CPU可与其他微控制器兼容,主频频率可达33MH2以上,指令系统进一步优化,运算速度可动态改变,没有高级语言编译器,具有性能强大的中断控制系统、定时事件控制系统、同勿异步通信控制系统。这类单片机主要应用于汽车、航空航天、高级机器人、军事装备等方面。它代表着单片机发展中的高、新技术水平。1.2  单片机的性能特点单片机芯片作为控制系统的核心部件,除了具备通用微机CPU的数值计算

9、功能外,还必须具有灵活、强大的控制功能,以便实时监测系统的输入量、控制系统的输出量,实现自动控制的目的。由于单片机主要面向工业控制,工作环境比较恶劣,加高温、强电磁干扰,甚至合有腐蚀性气体;在太空小工作的单片机控制系统,还必须具有抗辐射能力。因而,决定了单片机CPU与通用微机CPU具有小同的技术特征和发展方向:    抗干扰性强工作温度范围宽。通用微机CPU一般要求在室温下工作抗干扰能力也较低。   可靠性高。   控制功能往往很强,数值计算能力较差。通用微机CPU具有很强的数值运算能力控制能力相对较弱。将通用微机用于工业控

10、制时,一般需要增加一些专用的接口电路。  指令系统比通用微机系统简单。80C51系列新一代8位单片机的主要特点:普遍采用CMOS工艺,除了具有节电运行模式和掉电数据保护功能外,整机功耗比采用HMOS工艺的80C51系列低。    片内存储器容量大,规格多,程序存储器类型也趋于多样化。该系列不同品种的片内程序存储器容量从4KB扩展到8KB、16KB,甚至32KB,数据存储器容量从128B扩展到512B。片内程序存储器类型不仅限于掩模ROM和EPROM,普遍采用OTP  EPROM(一次性编程的EPR()M,简称TOP ROM。 

11、0;  最高时钟频率从12MHZ 提高到16MHZ、24MHZ、33MHZ ,甚至40MHZ ,指令执行时间大大缩短,增强了这些产品的实时处理能力。    工作电压低、范围宽(18V6oV),可用电池供电,便于野外作业使用。    扩展了接口电路功能,如增加了高速I/O接口,扩展了I/O口引线数目,    部分型号增加了定时计数器的个数,还扩展了定时计数器的功能。    部分型号增加厂定时复位功能,提高了抗干扰能力。    强化并且完善

12、了串行通信功能。    封装形式多样化,同一型号的CPU,具有多种封装形式,如PDIP封装、CDIP封装、PLCC(方形壁插塑封)、CLCC(方形壁插陶瓷封装)、PQFP(塑料方形四边引线扁平封装),部分产品还采用了BGA(球形网格阵列)封装。1.3  单片机的主要产品及系列自单片机诞生以来的近30年中,单片机已有70多个系列、近500个机种。国际上较有名、影响较大的公司及它们的产品如下:Intel(美国英特尔)公司的MCS48系列、MCS51系列、MCS96系列产品;Motorola(美国摩托罗拉)公司的6801、6802、6803、6805、68HC

13、ll系列产品;Zilog(美国齐洛格)公司的Z8 ,Super8系列产品;Atmel(美国艾特梅尔)公司的AT89 系列产品; Fairchild(美国仙童)公司的F8 和3870系列产品;TI(美国得克萨斯仪器仪表)公司的TMS7000系列产品;NS(美国国家半导体)公司的NS8070系列产品;NEC(日本电气)公司的UCOM87 (UPD7800)系列产品;National(日本松下)公司的MN6800系列产品;Hitachi(日本日立)公司的HD630l、HD63L05、HD6305。上述产品既有很多共性,又各具一定的特色,因而在国际市场上都占有一席之地。根据近年来国外实地考察

14、,Intel公司的单片机在市场上占有量为67,其中MCS51系列产品又占54。在我国虽然上述公司的产品均有引进,但由于各种原因,至今我国所应用的单片机仍然是以MCS48、MCS51、MCS96系列为主流系列。随着这一系列产品的深入开发,其主流系列的地位将会不断巩固。 AT89系列单片机AT89系列单片机是美国Atmel公司的8位Flash单片机产品。这个系列单片机的最大特点是在片内含有Flash存储器,而其他方面和MCS51没有太大的区别。该系列有着十分广泛的用途,特别是在便携式、省电和特殊信息保存的仪器和系统中显得更为有用。      

15、60; 1AT89系列单片机的特点(1) 内含有Flash存储器由于片内含有Flash存储器,因此在系统开发过程中可以十分容易地进行程序的修改。同时,在系统工作过程中,能有效地保存数据信息,即使外界电源损坏也不影响信息的保存。(2) 和AT80C51插座兼容AT89系列单片机的引脚和MCS51系列单片机的引脚是一样的。只要用相同引脚的AT89系列单片机就可以取代MCS5l系列单片机。(3) 静态时钟方式AT89系列单片机采用静态时钟方式,节省电能,这对于降低便携式产品的功耗十分有用。2AT89系列单片机的概况AT89系列单片机共有7种型号,分别为从89C51、AT89LV51、AT8

16、9C52、AT89LV52、AT89C2051、AT89C1051、AT89S8252。其中AT89LV51、AT89LV52分别是AT89C5l、AT89C52的低电压产品。最低电压可以低至27V。而AT89C2051、AT89C1051则是低档型的低电压产品。它们只有20条引脚最低电压也为27V,见表1.3.21。 表1.1 1AT89 系列单片机概况 型       号AT89C51AT89C52AT89C1051AT89C2051AT89S8252Flash(KB)48128片内RAM(B)1282566412825

17、6I/O条3232151532定时器(个)23123中断源(个)68368串行接口(个)11111M加密/级33223片内振荡器有有有有有EEPROM(KB)无无无无2         第2章  实验板总体设计方案2.1  实验板系统功能单片机实验开发板是一个实际应用的系统,能够为相关的学生单片机实验提供支持。此实验板是参考单片机教材中的实验内容设计的,能够实现简单的测试实验。本论文包括硬件系统的详细设计及汇编语言在基本控制中的应用。此实验板设计的功能如下:   硬

18、件部分:1单片机所需的平稳电压2时钟电路3复位电路44×4的16位矩阵键盘5液晶显示器6单片机与上位机串行通信电路7I/O口扩展电路   软件部分:8键盘扫描与处理9显示键盘输入数据10调用并显示显示器字库内容11显示单片机与上位机传送的数据12实现单片机与上位机串行通信功能2.2  实验板的性能要求   基于实验板的功能定义(在2.1节中说明)和各种芯片的性能参数,总结系统基本性能要求如下:1各芯片所需的+5V平稳电压2AT89C51单片机时钟信号为12MHZ3AT89C51单片机手动复位电路4显示器件   &#

19、160;516位行列扫描键盘    6与上位机串行通信    7I/O口扩展功能2.3  AT89C51 在实验板中的应用AT89C51是美国Ateml公司生产的低电压,高性能CMOS 8位单片机,片内含4Kb的可反复擦写的Flash只读程序存储器和128b的随机存取数据存储器(RAM),器件采用Ateml公司的高密度,非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51在此

20、整个实验板系统中处于核心地位。硬件电路板设计中,几乎其它所有的元器件的选取都要依据AT89C51的性能参数来决定。例如电源电路中基于AT89C51的工作电压为+5V所以稳压芯片选择7805系列。在软件设计中,AT89C51 接收并处理键盘输入的信号,将其发送给显示器件,实现液晶显示功能,或发送给PC机 实现串行通信功能。另一方面,它也接收上位机发送的数据,处理后传送给显示器件 。         第3章  实验板的硬件设计3. 1   硬件总体设计  &#

21、160;   此设计的单片机实验开发板是以AT89C51 作为主控制芯片,串口通信芯片MAX232,DB9插座,液晶显示器,按键开关等元器件组成,通过软硬件结合实现键盘扫描,液晶显示,与上位机串行通信,I/O口扩展功能.一方面,它能作为学生简单实验的工具,另一方面,它也是综合型单片机系统设计的基础,可扩展许多其它功能。 总体设计硬件方框图如下所示: 外围电路时钟复位    AT89C51 单片机电源电路键盘电路显示电路I/O口扩展电路串行通信电路PC机3.1实验板总体设计硬件方框图  

22、 外围电路是AT89C51工作的基础保障电源电路提供稳定的+5V工作电压;时钟电路用于产生单片机工作所需的时钟信号;复位电路使单片机实现初始化状态复位。键盘电路用于向系统输入运行参数,控制系统的运行状态。通过键盘扫描等程序设计把键盘输入的数据在液晶显示器上显示或把数据发送到PC机 实现串行通信。LCD电路用来显示键盘输入的数据,上位机发送到AT89C51的数据,其功能也是靠硬件电路的设计和软件程序的结合来实现的。串行通信电路主要是为了单片机与上位机之间数据传送而设计的。3. 2   各功能模块设计3.3.1     单片机外围电路1时

23、钟电路时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的相互关系。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89C51单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。在AT89C51芯片内部有一个高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容。AT89C51的时钟电路如图3.2所示:图3.2 AT89C51的时钟电路 用晶振和电容构成谐振电路。电容C1 、

24、C2容量在1540pF之间,大小与晶振频率和工作电压有关。但电容的大小影响振荡器的稳定性和起振的快速性,为了提高精度,本实验板采用30pF的电容作为微调电容。在设计电路板时,晶振、电容等均应尽可能靠近芯片,以减小分布电容,保证振荡器振荡的稳定性。 2复位电路复位是单片机的初始化操作,其主要功能是使单片机从0000H单元开始执行程序。除了进入系统的正常初始化以外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境也需按复位键以重新启动。AT89C51 芯片内部有复位电路,RST引脚是复位信号的输入端高电平有效,复位方式有自动复位和手动复位两种。本实验板采用手动复位方式复位。A

25、T89C51的复位电路如图3.3所示:图3.3 AT89C51的复位电路当电源刚开始送电瞬间,电容C11相当于短路,RST端输入高电平,AT89C51复位。短路瞬间之后,C11充电,RST端低电平。AT89C51需要复位时,按下手动复位键K1,电容C11通过R7放电,当电容C11放电结束后,RST端的电位由R7,R8分压比决定。因R7 (270欧)R8(8.2K欧),RST为高电平,AT89C51进入复位状态,松手后,电容C11充电,RST端高电位下降,CPU脱离复位状态。R7的作用在于限制K1按下瞬间电容C11放电电流,避免产生火花,以保护K1的触点。发光二级管D2在无复位操作时灯暗。当电源

26、送电瞬间和按下K1键时灯亮,表明AT89C51进入复位状态,否则复位键操作无效,AT89C51未复位。3.2.2   4×4矩阵键盘电路键盘是人与AT89C51 联系的重要手段,用于向CPU输入运行参数,控制系统的运行状态。键盘电路形式分为直接编码输入键盘和矩阵键盘。前者接口电路简单,一般应用于需要少量按键的控制系统。后者因占用I/O引脚数少,常被按键较多的控制系统所采用。 键盘电路设计本实验板基于用于学生实验,为了减少键盘电路占用I/O引脚数目,将键盘电路设计为4×4矩阵键盘形式。其中行线作为输入引脚与P1口的P1.3P1.0连接,并且外接430欧上拉

27、电阻;列线作为引脚与P1.7P1.4 连接。同时把列线经过74LS21 与门电路处理与引脚P3.2即 INT0 外中断0输入端连接,CPU 采用中断检测方式。这样避免了AT89C51  CPU常常处于空扫描状态,大大提高CPU的利用率。实验板的键盘电路如图3.4所示: 图3.4实验板的键盘电路      键盘扫描时,INT0口中断触发,P1.3P1.0置为高电平,P1.7P1.4四条列扫描线轮流输入低电平,然后读P1.3P1.0, 如果没有键按下,则P1.3P1.0引脚仍为高电平。如果某一按键被按下,相应的P1.3P1.0中

28、就有一引脚为低电平。确定哪个键被按下后,CPU则执行相应程序。例如当P1.7P1.4输出为1110时,即P1.4引脚输出低电平,如果输入的P1.2 引脚为低电平,则肯定是P1.4列线与P1.2 行线交叉点对应的按键被按下了。         按键抖动问题的解决按键按下或放开的瞬间,由于机械触点存在弹跳现象,实际按键电压波形如图3.5所示,即机械按键按下和释放瞬间存在抖动现象。AT89C51 CPU处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,所以这种抖动现象必须消除,为了不增加硬件开支,此实验板采用软件延迟方式解决按键

29、抖动问题。(a)(b)按下按下抖动稳定闭合释放抖动理想的按键电压波形实际按键电压波形释放   图3.5按键电压波形01ABC789D456E123        键盘按键编码键盘按键编码如图3.6所示: 每个按键的具体实现功能由用户根据需要在所编写的程序中设定,图中的按键编码仅作参考。  图3.6键盘按键编码3.2.3  液晶显示电路        显示器件是实验板中普遍使用的输出器件,较常用的是LED数码

30、管和LCD液晶显示器。前者仅能显示数据输出,而后者能显示更多,更复杂的字符,如汉字,甚至是图形等。此实验板采用MS12232B点阵液晶显示器作为输出显示器件。实验板液晶显示电路如图3.7所示:图3.7实验板液晶显示电路            RST液晶显示器复位引脚,低电平有效,与AT89C51  P2.4连接,系统中应用软件实现复位操作。E1、E2都是读写选通信号,分别与P2.3、P2.2 连接。R/W读写选择信号与P2.1 连接。A0是数据显示和指令数据选择信号,与P2.

31、0 连接。D0D7是数据线,分别与P0.0P0.7连接,传送CPU发送给显示器的数据,指令等。同时,P0.0P0.7连接270欧上拉电阻,起到限流作用。                MS12232B引脚特性: 管脚号管脚名称LEVER管脚功能描述1VCC +35V电源电压2VSS0V电源地3VLCD0+5V OR0-5V LCD外接驱动负电压当VDD=+3V时,VLCD接0-5V负电压4RESH/L复位信号(低电平有效)5E1H/L读写使能信号6E2H/

32、L读写使能信号)7R/W H/L读写选择信号8A0H/LD/I=“H”,表示DB7DB0为显示数据D/I=“L”,表示DB7DB0为显示指令数据9DB0H/L数据线10DB1H/L数据线11DB2H/L数据线12DB3H/L数据线13DB4H/L数据线14DB5H/L数据线15DB6H/L数据线16DB7H/L数据线17VLED+-LED(+5V)或EL背光源18VLED-LED(0V)或EL背光源 3.2.4  串行通信电路         AT89C51中的串行接口能方便地与其他计算机或串行

33、传送信息的外围设备实现双机,多机通信。此实验板中仅设计与上位机实现数据传送串行通信电路。RS-232C标准规定发送数据线TXD和接受数据线RXD均采用EIA电平,即传送数字“1”时,传输线上的电平在  -3-15V之间;传送数字“0”时,传输线上的电平在+3+15V之间。但单片机串行口采用正逻辑的TTL电平,这样就存在TTL电平与EIA电平之间的转换问题。因此实验板中采用电平转换芯片MAX232 与9芯D插座连接方式。与PC机串行通信电路如图3.8所示: MAX232 电平转换芯片实现电平转换,仅需外加4个0.1uF的电容,即可实现TTL电平和RS-232 电平的互换。 在电路设计时

34、,T1IN,T2IN引脚中的一个与AT89C51 中的TXD(P3.1)引脚连接,接收CPU发送给PC机的数据;T1OUT,T2OUT引脚中的一个与9芯D插座中的RXD(2)引脚连接,发送T1IN或T2IN引脚接收到的数据。R1IN,R2IN引脚中的一个与9芯D插座中的TXD(3)引脚连接,接收上位机发送给AT89C51 的数据;R1OUT,R2OUT引脚中的一个与AT89C51 中的RXD(P3.0)引脚连接,发送R1IN或R2IN 引脚接收到的数据。需要注意的是在选择TXXX,RXXX是要对应,例如选择T1IN接收数据,则另一端必须由T1OUT发送数据。RXXX也如此。否则AT89C51

35、与PC机将不能实现通信功能。  图3.8实验板与上位机串行通信电路3.2.5    I/O口扩展电路   实验板中各功能模块没有涉及I/O口扩展,硬件电路设计中仅增加了三个CON口分别与AT89C51 的P0口、P1口、P2口、P3口相连,将它们引出以便在用户在其他实验中扩展。    实验板I/O 口扩展电路如图3.9所示:图3.9实验板I/O口扩展电路3.2.6  电源电路电源(Vcc)是整个实验板正常工作的动力源泉。电源电压过大会大大缩短芯片的工作寿命,严重的会烧毁芯片及其它元器件;过小将不

36、能驱动实验板工作电路。因此设定合适的电源电压值非常重要。此实验板主要芯片工作电压均位+5V左右,所以采用7805三端稳压 芯片将+12V整形为+5V直流给整个实验板供电。实验板的电源电路如图3.10所示: 图3.10实验板的电源电路  C3 ,C4两个电容接7805的Vin端对外电源输入的电压进行滤波; C5,C6 两个电容接7805的Vout端对整形后的电压进行滤波,确保Vcc端输入+5V直流电压。D1为光二级管,接通电源时,灯亮表示电源电路供电正常,否则电源电路出错。         

37、60;         3.3  实验板元器件清单验板元器件清单见表3.3-1:  名    称参   数封装类型所属模块AT89C51DIP40LM7805CPKTO-220电源电路电源插头VR-6电源电路电容C30.1uFRAD-0.2电源电路电容C410 uFRB-.2/.4电源电路电容C510uFRB-.2/.4电源电路电容C60.1uFRAD-0.2电源电路发光二级管D1RAD-0.3电源电路电阻R0430欧AXIAL-0.3

38、电源电路晶振XTAL12MHZXTAL-1时钟电路电容C130pFRAD-0.1时钟电路电容C230pFRAD-0.1时钟电路按键K1SOP-4复位电路电容C1122uFRB-.2/.4复位电路电阻R7270欧AXIAL-0.3复位电路电阻R88.2KAXIAL-0.3复位电路发光二级管D1RAD-0.3复位电路按键116SOP-4键盘电路电阻R1R4430欧AXIAL-0.3键盘电路HD74LS21PDIP14键盘电路MS12232BSIP18显示电路排阻270欧SIP9显示电路MAX232DIP16串行通信电路9芯D插座DB-9RA/M串行通信电路电容C7C101uFRB-.2/.4串行通

39、信电路表3.3-1实验板元器件清单第4章  实验板的软件设计4.1  软件总体设计实验板的软件设计是在硬件电路板的基础上,通过汇编程序来实现的。在仿真器上调试成功后,录入AT89C51 中,以便实验板调用。此设计过程中主要完成三个功能:键盘扫描,液晶显示,与上位机串行通信。主要设计流程如图4.1软件总体设计流程图: YYYYNNN开 始初始化调按键扫描有键按下? 显示键?字库键?串口键? 键?置标志,转键盘扫描程序置标志,转字库显示程序置标志,转串行通信程序结  束图4.1系统流程图4.2  各模块设计流程图4.2.1  键盘扫描子程

40、序       键盘扫描功能实现过程:当键盘中数字键按下时,INTO引脚触发,CPU 扫描P1 口,接收并判别被按下的是否为数字键。若是则在内部处理接收的数据,并将其发送给P0口,在显示器件中显示。程序流程如图4.2所示:     NYNY开 始设置P1口保存键值确定编码开中断有键按下?调延迟程序数字键?CPU处理,显示器显示执行相应键操作             &

41、#160;                    图4.2键盘扫描程序流程图  代码: X_TIME  DATA  2AHY_TIME  DATA  2BHKEYNAME  DATA  30HORG   0000HLJMP  MAINORG   0013HLJ

42、MP  INT0 ORG   0100HMAIN:CLR  IT0                                    低电平触发SETB  PX0SETB  EX0

43、60;MOV  P1,#0FHSETB  EAMOV  SP,#5FH 键盘扫描程序PROC INT0INT0:      PUSH  PSW      PUSH  Acc      SETB  RS0      SETB  RS0      LCALL DELAY10

44、                 延迟10ms,等待按键稳定闭合      MOV  A,P1                        

45、0;    设置P1口      ANL  A,#0FH                          屏蔽高四位     XRL  A,#0FH     JZ &#

46、160; INT0                                  如果P1.3-P1.0 为高,无效按键,退出 确定哪一键被按下    MOV  R2,#11101111B 

47、60;           从P1.4开始扫描,左移后依次扫描P1.5-P1.7    MOV  R3,#00H                       初始化扫描次数LOOP:     MOV 

48、 P1,R2                            扫描送P1口     MOV  A,P1               &

49、#160;        读P1口;分析P1.3-P1.0状态    CPL  A                                  

50、   取反    ANL  A,#0FH                          屏蔽高四位,A=01H,P1.0被按下;A=02H,P1.1 被按下          

51、                                          A=04H,P1.2被按下;A=08H,P1.3被按下;A=00H,对应列无  

52、60;                                                  按键,此外表示

53、两键同时按下   JNB  P,NEXT   JNB  Acc.0,K1   MOV  R4,00H   SJMP  SETNOK1:      JNB  Acc.1,K2     MOV  R4,#01H     SJMP  SETNOK2:     JNB  Acc

54、.2,K3     MOV  R4,#02H     SJMP  SETNOK3:     JNB  Acc.3,NEXT     MOV  R4,#03HSETNO:;;计算按键值     MOV  A,R3     RL  A     RL  A

55、                                    扫描次数乘4     ADD  A,R4        &

56、#160;                 4*R3+R4=键值     MOV  R4,A                         

57、; 保存键值     SJMP  NOLOOPNEXT:     INC  R3     MOV  A,R3     CLR  C     SUBB  A,#04H     JNC  MAIN     MOV  A,R2 

58、0;   RL  A     MOV  R2,A     LJMP  LOOPNOLOOP:   ;;等待按键释放WAIT:     MOV  P1,#0FH     MOV  A,P1     ANL  A,#0FH     XRL  A,#0FH

59、     JNZ  WAIT     MOV  A,R4     MOV  DPTR,#KEY     MOVC  A,A+DPTR     MOV  KEYNAME,A     SJMP  RETURNRETURN:     CLR  IE0

60、60;    POP  Acc     POP  PSW      RETI     SJMP  JUDGEDELAY10:     MOV  X_TIME,#109D     MOV  Y_TIME,#250D     PUSH  PSW  

61、60;  CLR  RS0     SETB  RS1     MOV  R7,Y_TIMEDLOOP1:     MOV  R6,X_TIMEDLOOP2:     DJNZ  R6,DLOOP2     DJNZ  R7,DLOOP1     POP  PSW

62、60;    RETJUDGE:;  判断按键编码,转去执行相应操作ORG  1000HKEY:DB  11H    ; ENTERDB  12H    ;EDB  14H    ;DDB  18H    ;CDB  21H    ;3DB  22H    ;6DB  24H  

63、  ;9DB  28H    ;BDB  41H    ;2DB  42H    ;5DB  44H    ;8DB  48H    ;ADB  81H    ;1DB  82H    ;4DB  84H    ;7DB  88H   &#

64、160;0                        4.2.2   液晶显示子程序液晶显示是指当有显示键按下时,显示器件能够显示程序中事先编辑的数字,汉字,图形。流程图如4.3所示:   开 始显示器复位关静驱动设置波特率设置显示顺序设置列地址设置行地址调汉字编码显示汉字结  束  

65、               图4.3液晶显示流程图    代码:ORG  0100HINITM:  MOV  A,#0E2H            复位        LCALL 

66、0; OUTMI        LCALL   OUTSI        MOV  A, #0AEH          关显示        LCALL   OUTMI       

67、; LCALL   OUTSI        MOV  A, #0A4H           关主驱动        LCALL   OUTMI        LCALL  OUTSI    

68、;    MOV  A, #0A9H           设置波特率LCALL   OUTMILCALL   OUTSIMOV  A, #0A0H          设置输出顺序LCALL   OUTMILCALL   OUTSIMOV  A, #0EEH &

69、#160;        读写关闭LCALL   OUTMILCALL   OUTSIMOV  A, #00H            设置列地址LCALL   OUTMILCALL   OUTSIMOV  A, #0C0H        

70、  设置行地址LCALL   OUTMILCALL   OUTSIMOV  A, #0AFH          ;开显示LCALL   OUTMILCALL   OUTSI;DISPLAY汉字“两只黄鹂鸣翠柳 一行白鹭上青天” INITMC:MOV  DPTR,#CHINESE          &

71、#160; MOV  R1  #00H             MOV  B,#B8HDISPWORDM:PUSH  BMOV   A,BLCALL  OUTMILCALL  OUTSTMOV  A,#00HLCALL  OUTMIMOV  R2  #7AHDISPWORD1:MOV  A,R1     &#

72、160;            MOVC  A,A+DPTRLCALL  OUTMD               INC  DPTRDEC  R2CJNE  R2,#3DH,DISPWORD1MOV  A,#00HLCALL  OUTSTDISPWORD2:MOV  A

73、,R1                 MOVC  A,A+DPTRLCALL  OUTSDINC  DPTRDJNZ  R2,DISPWORD2 MOV  R1,#00HPOP  BINC  BMOV  A,BCINZ  A,#0BCH,DISPWORDMLCALL  MS40LCALL  MS40LCALL  MS

74、40LCALL  MS40 AJMP  INITM MS40: MOV  R7,#0E8HMS2:  MOV  R6,#0FFHMS1:  DJNA  R6,MS1              DJNZ  R7,MS2             

75、0;RET ;OUT  INSTRCTION  TO  MASTER 6450OUTMI:PUSH  DPH            PUSH  DPL            MOV  DPTR,#6000H         

76、60;  MOVX  DPTR,A      POP  DPL      POP  DPH      RET ;OUT  INSRCTION  TO SLAVE 6450OUTSI:PUSH  DPHPUSH  DPLMOV  DPTR,#5000HMOVX  DPTR,APOP  DPLPOP  DPHRE

77、T  ;OUT  DATA TO  MASTER 6450OUTMD:PUSH  DPHPUSH  DPLMOV  DPTR,#0E000HMOVX  DPTR,APOP  DPLPOP  DPHRET  ;OUT  DATA TO  SLAVE 6450OUTSD:PUSH  DPHPUSH  DPLMOV  DPTR,#0D000HMOVX  DPTR,APOP  DPLPOP  DPHRET  CHI

78、NESE:;(PAGE0)DB 00H,00HDB 00H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,0COH,80H,00DB 00,00,10H,88H,0C4H,23H,40H,42H,42H,42H,42H,42H,0C2H,43H,62H,40H,00DB 00,00,00,0F8H,08H,0CH,OAH,09H,08H,08H,08H,08H,08H,0FCH,08H,00,00DB 00,80H,0EEH,8AH,OFAH,0AAH,0AEH,80H,24H,0E3H,0B6H,0AAH,0B6H,0E2H,20H,

79、20H,00DB 00,00,00,00,00,00,00,00,0FFH,20H,20H,20H,30H,20H,00,00,00DB 00,40H,44H,54H,54H,54H,54H,54H,7FH,54H,54H,54H,54H,56H,44H,40H,00DB 00,40H,42H,42H,42H,42H,42H,42H,0FEH,42H,42H,42H,42H,43H,62H,40H,00DB 00;(PAGE1)DB 00,00DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00DB 00,02H,01H,00,0FFH,0

80、0,00,00,00,00,40H,80H,7FH,00,00,00,00DB 00,00,00,7FH,21H,21H,21H,21H,21H,21H,21H,21H,21H,7FH,00,00,00DB 00,00,40H,40H,5H,52H,53H,56H,5AH,52H,5AH,56H,90H,90H,78H,10H,00DB 00,40H,40H,40H,40H,40H,40H,40H,7FH,40H,40H,40H,40H,40H,60H,40H,00DB 00,00,00,00,0FFH,15H,15H,15H,15H,15H,55H,95H,7FH,00,00,00,00DB

81、 00,80H,80H,40H,20H,10H.0CH,03H,00,03H,0CH,10H,20H,40H,0C0H,40H,00DB 00;(PAGE2)DB 00,00DB 00,02H,02H,0F2H,12H,12H,0FEH,12H,12H,12H,0FEH,12H,12H,0F2H,03H,02H,00DB 00,00,00,00,0FCH,04H,04H,04H,04H,04H,04H,04H,0FEH,04H,00,00,00DB 00,20H,20H,24H,24H,24H,3FH,24H,0E4H,24H,3FH,24H,24H,24H,30H,20H,00DB 00,0

82、4H,0E4H,24H,0E4H,04H,0E4H,26H,0E4H,00,0FCH,06H,55H,84H,7CH,00,00DB 00,00,0FCH,04H,04H,0FCH,04H,00,0FCH,06H,15H,44H,84H,7EH,04H,00,00DB 00,00,40H,41H,55H,0C9H,41H,5FH,60H,41H,55H,0C9H,41H,5FH,40H,00,00DB 00,10H,0D0H,0FFH,90H,10H,0FEH,02H,02H,0F9H,00,0FEH,02H,02H,0FFH,02H,00DB 00;(PAGE3)DB 00,00DB 00,

83、00,00,0FFH,08H,04H,03H,14H,08H,04H,03H,44H,98H,7FH,00,00,00DB 00,00,80H,40H,23H,11H,19H,01H,01H,01H,09H,11H,23H,60H,0C0H,00,00DB 00,00,80H,80H,5FH,55H,35H,15H,1FH,15H,35H,35H,5FH,40H,80H,00,00DB 00,00,7FH,02H,7FH,00,7FH,02H,7FH,10H,13H,12H,1AH,52H,82H,7EH,00DB 00,00,OFH,04H,04H,0FH,10H,10H,13H,12H,12H,1AH,52H,82,7FH,02H,00DB 00,08H,08H,0AH,09H,08H,09H,0AH,0FCH,0A

温馨提示

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

评论

0/150

提交评论