课设简易计算器设计.doc_第1页
课设简易计算器设计.doc_第2页
课设简易计算器设计.doc_第3页
课设简易计算器设计.doc_第4页
课设简易计算器设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思,使得我用专业知识、专业技能分析和解决问题全面系统的锻炼。本系统的设计说明重点介绍了如下几方面的内容:1)简易计算器的基本功能,同时对计算器设计的原理也进行了简要的阐述;2)介绍了系统的总体设计、给出了系统的整体结构框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;3)对系统各功能模块的软、硬件实现进行了详细的设计说明。关键词:MCS-51 8051单片机 计算器 范围 加减乘除目录第一章 绪论31.1课题简介31.2设计目的31.3设计任务3第二章 简易计算器系统简介42.1 单片机发展现状42.2 计算器的历史52.3 单片机概述5第三章 系统总体设计及主要器件简介63.1 MSC-51芯片简介63.2 中断系统73.3 时钟电路73.4 MCS-51系列单片机简介7外部引脚说明:123.5 相关知识13第四章 简易计算器的设计154.1 计算器硬件电路设计154.2 计算器程序设计154.3 系统硬件设计16参考文献19第一章 绪论1.1课题简介单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。本设计是采用8051单片机,该单片机具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于温湿度等过程控制。鉴于这样的重要性,我们打算设计一种基于单片机的多路温度巡检系统,实现对不同场合温度时时变化的控制与监测。1.2设计目的通过本次工程实践,运用微机原理与接口技术所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。通过本次设计训练,可以使我们在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。1.3设计任务在本次工程实践中,主要完成如下方面的设计任务:1)简要综述单片机技术发展的国内外现状及在计算器的发展和应用情况;2)掌握MCS-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;3)了解单片机简易计算器的功能及工作过程;4)完成主要功能模块的硬件电路设计及必要的参数确定;5)用一种计算机绘图软件完成原理电路的绘制;6)完成系统设计说明书。第二章 简易计算器系统简介2.1 单片机发展现状单片机的发展趋势:低功耗CMOS化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1)低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。 2)微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 3)主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。2.2 计算器的历史说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的纳皮尔算筹,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。电子计算器的特殊键在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。除了这些按键,还有一些特殊键,可以使计算更加简便迅速。2.3 单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。第三章 系统总体设计及主要器件简介3.1 MSC-51芯片简介MCS-51单片机内部结构 8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:1)中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2)数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图13)程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。4)定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。5)并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。6)全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。3.2 中断系统8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。3.3 时钟电路8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。3.4 MCS-51系列单片机简介下图是MCS-51系列单片机的内部结构示意图2。图2MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图3 图3Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。图4Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。MCS-51系列单片机已有十多种产品,可分为两大系列:51子系列和52子系列。51子系列主要有8031、8051、8751三种机型。它们的指令系统与芯片引脚完全兼容。它们的差别仅在于片内有无ROM或EPROM。52子系列主要有8032、8052、8752三种机型。52子系列与51子系列的不同之处在于:片内数据存储器增至256字节;片内程序存储器增至8 KB (8032无);有3个16位定时/计数器,6个中断源。其它性能均与51子系列相同。MCS-51系列单片机的内部结构框图如图5所示。从图5中可看出,MCS-51单片机组成结构中包含运算器、控制器、片内存储器、4个I/O口、串行口、定时器/计数器、中断系统、振荡器等功能部件。图中SP是堆栈指针寄存器,PC是程序计数器,PSW是程序状态字寄存器,DPTR是数据指针寄存器。图5 内部结构框图图6 MCS-51单片机引脚图 所谓总线,就是连接系统中各扩展器件的一组公共信号线。按照功能,通常把系统总线分为三组,即地址总线、数据总线和控制总线。 MCS-51系列单片机片外引脚可以构成三总线结构,所有的外围芯片都通过这三总线进行扩展。1)地址总线(Address Bus,AB) 地址总线用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选择。地址总线是单向的,只能由单片机向外发送信息。地址总线的数目决定了可直接访问的存储单元的数目。如有n位地址可以产生2n个连续地址编码,因此,可访问2n个存储单元,即通常所说的寻址范围为2n个地址单元。MCS-51单片机存储器扩展最多可达64KB,即216个地址单元,因此,最多需16位地址。2)数据总线(Data Bus,DB)数据总线用于单片机与存储器之间或I/O端口之间传送数据。数据总线的位数与单片机处理数据的字长一致。MCS-51单片机是8位字长,所以,数据总线的位数也是8位。数据总线是双向的,可以进行两个方向的数据传送。外部引脚说明:(1) 主电源引脚 VCC(40脚):接+5 V电源正端。 VSS(20脚):接+5 V电源地端。(2)外接晶体引脚 XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。(3)输入 / 输出引脚 (1) P0口(39-32脚):P0.0-P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。 (2) P1口(1-8脚):P1.0-P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。(3) P2口(21-28脚):P2.0-P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。(4) P3口(10-17脚):P3.0-P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。以下为控制线:(1) ALE/PROG(30脚):地址锁存有效信号输出端。ALE在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器期间,ALE脉冲会跳空一个,此时作为时钟输出就不妥了对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲PROG的输入端。(2) PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。在访问片外数据存储器期间,PSEN信号将不出现。(3) RST/VPD(9脚):RST即为RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10 ms以上才能保证有效复位。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5 V)为内部RAM供电,以保证RAM中的数据不丢失。(4) EA/VPP(31脚):EA为片外程序存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器.对于片内含有EPROM的机型,在编程期间,此引脚用作21 V编程电源VPP的输入端。综上所述,MCS-51系列单片机的引脚可归纳为以下两点:(1) 单片机功能多,引脚数少,因而许多引脚都具有第二功能。(2) 单片机对外呈现3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用为数据总线;由ALE、PSEN、RST、EA与P3口中的INT0、INT1、T0、T1、WR、RD共10个引脚组成控制总线;由于是16位地址线,因此,可使片外存储器的寻址范围达到64 KB。3.5 相关知识 1)数码管显示在本任务中用4位数码管显示当前数值的千,百,十,个,由于数码管个数多,如采用静态显示方式,则占用单片机的I/O口线太多,如果用定时器/计数器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。如图1-1所示为单片机应用系统中的一种数码管动态显示电路图,4位数码管的相同段并联在一起,由一个8位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字位码控制,即数码管显示的字形是由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O口输出的字位码确定的。4个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,但由于数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率,看上去所有数码管是同时点亮的,察觉不出闪烁现象。动态显示方式所接数码管不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度不足。在本任务中,为了简便,字形码和字位码都没由加驱动电路,在实际应用中应加驱动电路。数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效。 2)矩阵按键键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省IO口的方法,按键数目越多节省IO口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。本键盘扫描子程序名叫key,每次要扫描时用lcall key调用即可。第四章 简易计算器的设计4.1 计算器硬件电路设计8051单片机的P2口作键盘口,其中P2.4-P2.7为键盘扫描输出线,P2.0-P2.3为键盘扫描输入线。键盘由4*4共16个按键组成,10个数字键(由0-9组成)5个运算符号(加减乘除等于)组成,1个清除键(作用相当于整体复位)。4个数码管用于显示当前数值的千,百,十,个,采用动态显示方式,P1口接4个数码管的七段,P0口分别接4个数码管的公共端,P1口输出数码管的字形码,P0口输出数码管的字位码。4.2 计算器程序设计1)存储单元分配30H单元:数值个位显示单元;31H单元:数值十位显示单元;32H单元:数值百位显示单元;33H单元:数值千位显示单元;23H单元:第一操作数存储单元;24H单元:第二操作数存储单元;25H单元:键值暂存单元;27H单元:清除键状态;34H-37H单元:结果数据转换暂存单元;38H-39H单元:结果高低8位暂存单元;R5单元:操作数计数单元;R4单元:操作数数值位数计数单元;R3单元:运算符号存储单元。50H单元:数值个位显示单元;51H单元:数值十位显示单元;52H单元:数值百位显示单元;53H单元:数值千位显示单元;33H单元:第一操作数存储单元;34H单元:第二操作数存储单元;35H单元:键值暂存单元;37H单元:清除键状态;44H-47H单元:结果数据转换暂存单元;48H-49H单元:结果高低8位暂存单元;R5单元:操作数计数单元;R4单元:操作数数值位数计数单元;R3单元:运算符号存储单元。 2)主程序设计主程序进行程序中用到的一些存储单元的初始化,数值显示和4*4键盘扫描。首先,进行存储单元初始化,给数码管显示单元30H-33H赋予“0000”字形数据,将数值计数单元,存储单元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,赋予初值零。之后,调用键盘扫描子程序,和数码管显示数据转换程序,数码管动态显示子程序。主程序不断进行键盘扫描,数码管显示数据转换子程序和动态显示子程序。3)数码管显示数据转换子程序CONV由于数值单元存放的是二进制数,而用户熟悉的是十进制数,所以应将数值单元中的二进制转换为十进制数,即BCD码。要通过数码管显示出当前数值,还必须将BCD码进一步转换为七段码,转换的最终结果数据存放于显示缓冲区30H-33H单元中,其中30H单元存放数值的个位七段码,31H单元存放数值的十位七段码,32H单元存放数值的百位七段码,33H单元存放数值的千位七段码。4)数码管动态显示子程序本任务由P1口输出字形码,P0口输出字位码。先将存放于30H单元的数值个位七段码由P1口输出,同时P0口输出使数值个位显示数码管点亮的字位码。由于采用的是共阳数码管,所以只有该位数码管对应的P0.0为1,其他位P0.1-P0.3位0,点亮延时10MS。然后P1口输出数值十位七段码,P0.1位1,数值十位数码管点亮,延时10MS。接着P1口输出数值百位七段码,P0.2为1,数值百位数码管点亮,延时10MS。最后P1口输出数值千位七段码,P0.3为1,数值千位数码管点亮,延时10MS。4.3 系统硬件设计 选用设备8051单片机一片选用设备:8051弹片机一片,4*4键盘一个,4位共阳极的七段数码管一个,连线若干。 1) 系统总框图如下: 2)计算器硬件线路图 3) 系统工作原理(1)首先赋予显示缓冲初始值00 00,并把数据存储单元清零。(2)主程序调用键盘扫描子程序,判断键值,是数字第一次直接赋予23H单元,如是第二次输入数字,则把第一次值乘十后与第二次值相加,结果存储到23H单元,并R4计数2次,表示已输入两位,扫描键值时就不在赋值和显示。等待运算符号的按下,按下等于号就直接与零计算并显示,如加减乘除就R5加一 并把R4清零,表示可以输入下一操作数,与第一次相同,并等待等于键按下。清零键则不管在任何情况下都清零,相当与软复位。(3)在扫描完键盘后,调用数据显示转换子程序,并选择,由于本任务是两位四则运算,只有乘法中结果会超出FFH的范围,在此就是选择处理方式,超出范围则跳过数据显示转换子程序,未超出则调用数据显示转换子程序,两种选择都是要把值转换为七段码。(4)调用数码管动态显示子程序,显示数值,重新循环。结语本系统就是充分利用了8051芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储,计算程序则是参照教材。至于位数和功能,如果有需要可以设计扩充原系统来实现 。通过这次毕业设计,使我们得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我们在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。参考文献1.梅丽凤等.单片机原理及接口技术(修订本).清华大学出版社.2006.52.李秀忠.单片机应用技术(汇编语言).中国劳动社会保障出版社.2006.6 程序源代码;显示缓冲区首地址定义DISPBUF EQU 30H;主程序的入口地址 ORG 0000H;4个数码管显示“0000”字形数据 START:MOV DISPBUF,#0C0HMOV DISPBUF+1,#0C0HMOV DISPBUF+2,#0C0HMOV DISPBUF+3,#0C0HMOV 37H,#00H ;数值初始化MOV 27H,#00HMOV 26H,#00HMOV 25H,#00HMOV 24H,#00HMOV 23H,#00HMOV R3,#00HMOV R5,#00HMOV R4,#00H;调用键盘扫描子程序LOOP: LCALL KEY MOV R6,27HCJNE R6,#00H,START ;清除键判断MOV R6,26H;显示数据转换子程序选择CJNE R6,#00H,FA ;调用数码管显示数据转换子程序LCALL CONV;调用数码管动态显示子程序FA:LCALL DISPSCANSJMP LOOPKEY:MOV P2,#0FH ;键盘扫描子程序 MOV A,P2ANL A,#0FHCJNE A,#0FH,K10RETK10:JB P2.0,K20K11:MOV P2,#0EFHJB P2.0,K12CJNE R5,#00H,L1MOV R4,#00HINC R5MOV R3,#1HL1:LJMP CENDK12: MOV P2,#0DFHJB P2.0,K13CJNE R5,#00H,L2MOV R4,#00HINC R5MOV R3,#2HL2:LJMP CENDK13: MOV P2,#0BFHJB P2.0,K14CJNE R5,#00H,L3MOV R4,#00HINC R5MOV R3,#3HL3:LJMP CENDK14: MOV P2,#7FHJB P2.0,KILCJNE R5,#00H,L4MOV R4,#00HINC R5MOV R3,#4HKIL:LJMP KENDL4:LJMP CENDK20:JB P2.1,K30K21:MOV P2,#0EFHJB P2.1,K22LJMP DYUK22:MOV P2,#0DFHJB P2.1,K23MOV 25H,#3HLJMP OPRK23:MOV P2,#0BFHJB P2.1,K24MOV 25H,#6HLJMP OPRK24:MOV P2,#7FHJB P2.1,cctvMOV 25H,#9HLJMP OPRcctv:ljmp kendK30:JB P2.2,K40K31: MOV P2,#0EFHJB P2.2,K32MOV 25H,#0HLJMP OPRK32:MOV P2,#0DFHJB P2.2,K33MOV 25H,#2HLJMP OPRK33:MOV P2,#0BFHJB P2.2,K34MOV 25H,#5HLJMP OPRK34:MOV P2,#7FHJB P2.2,KENDMOV 25H,#8HLJMP OPRK40:JB P2.3,KENDK41: MOV P2,#0EFHJB P2.3,K42INC 27HLJMP KENDK42:MOV P2,#0DFHJB P2.3,K43MOV 25H,#1HLJMP OPRK43:MOV P2,#0BFHJB P2.3,K44MOV 25H,#4HLJMP OPRK44:MOV P2,#7FHJB P2.3,KENDMOV 25H,#7HLJMP OPROPR: ;键值存储 INC R4CJNE R5,#00H,CHANGCJNE R4,#2H,KBKZHI:MOV A,20HMOV B,#0AHMUL ABMOV 20H,25HADD A,20HCJNE R5,#00H,CZHMOV 23H,ALJMP KENDCZH: MOV 24H,ALJMP KENDKEND:MOV P2,#0FHMOV A,P2ANL A,#0FHCJNE A,#0FH,KENDRETCHANG: CJNE R4,#2H,HONG AJMP ZHIHONG:JNC CENDINC R5MOV 20H,25HMOV 24H,25HLJMP CENDKBK:JNC CENDMOV 20H,25HMOV 23H,25HLJMP CENDDYU: ;结果计算MOV R5,#00HMOV R4,#00HMOV 25H,#00HCJNE R3,#1H,SMOV A,23HADD A,24HMOV 23H,ASJMP CENDS:CJNE R3,#2H,S1CLR CMOV A,23HCJNE A,#00H,JIANFAMOV 23H,#0EHSJMP CENDJIANFA:SUBB A,24HMOV 23H,ASJMP CENDS1:CJNE R3,#3H,S2MOV A,23HMOV B,24HMOV A,23HMUL ABMOV R6,BCJNE R6,#00H,CHENGMOV 23H,ASJMP CENDS2:CJNE R3,#4,CENDMOV A,24HCJNE A,#00H,ZYMOV A,#00HSJMP CENDZY:MOV A,23HMOV B,24HDIV ABMOV 23H,ACEND:MOV P2,#0FHMOV A,P2ANL A,#0FHCJNE A,#0FH,CENDRETCHENG:MOV R3,BMOV B,#64HDIV ABMOV 36H,AMOV A,BMOV B,#0AHDIV ABMOV 35H,AMOV 34H,BMOV DPTR,#TABLEXIAN:MOV A,34HADD A,#6HMOV B,#0AHDIV ABMOV 25H,AMOV 34H,BMOV A,BMOVC A,A+DPTRMOV DISPBUF,AMOV A,35HADD A,#5HADD A,25HMOV B,#0AHDIV ABMOV 25H,AMOV 35H,BMOV A,BMOVC A,A+DPTRMOV DISPBUF+1,AMOV A,36HADD A,#2HADD A,25HMOV B,#0AHDIV ABADD A,37HMOV 37H,AMOVC A,A+DPTRMOV DISPBUF+3,AMOV 36H,BMOV A,BMOVC A,A+DPTRMOV DISPBUF+2,ADJNZ R6,XIANMOV 26H,#1HAJMP CENDCONV: ;数码管显示数据转换子程序 CJNE R5,#02H,BEIMOV A,24HAJMP JINGBEI:MOV A,23HJING:MOV B,#64HDIV ABMOV DPTR,#TABLEMOVC A,A+DPTRMOV DISPBUF+2,AMOV A,BMOV B,#0AHDIV ABMOVC A,A+DPTRMOV DISPBUF+1,AMOV A,BMOVC A,A+DPTRMOV DISPBUF,ARET;数码管动态显示子程序DISPSCAN:MOV R0,#DISPBUF MOV R2,#4HMOV A,#1HSC:PUSH ACCMOV A,R0MOV P1,APOP ACCMOV P0,ALCALL DELAY1RL AINC R0DJNZ R2,SCMOV P0,#1HRETDEL12: MOV R6,#1EHDEL2:MOV R7,#64HDEL1:DJNZ R7,DEL1DJNZ R6,DEL2RETDELAY1: MOV R6,#70D2:MOV R7,#100DJNZ R7,$DJNZ R6,D2RET ;-字符表-TABLE:DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86HDB 8EHEND袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂

温馨提示

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

评论

0/150

提交评论