版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计题目:单片机数字计算器硬软件设计 摘要本设计是基于51系列的单片机进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用44矩阵键盘。显示采用5位7段共阴极LED静态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的Vi
2、sion3软件,采用汇编语言进行编程,并用proteus仿真。引言简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,数字计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生
3、的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。关键词:单片机 计算器 AT89c51芯片 74LS164 目录摘 要 01引 言 01第一章 设计任务和要求031.1 设计要求 1.2 设计方案的确定 第二章 单片机简要原理032.1 AT89c51介绍2.2 芯片74LS164介绍第三章 硬件设计083.1 键盘电路的设计 3.2 显示电路的设计3.3 其他电路设计第四章 软件设计11 4.1 主程序的设计4.2 显示、读键模块的设计4.3 其他内容说明4.4 源程序代码第五章 调试与仿真235.1 Keil C51单片机软件开发系统5.2 proteus的操作
4、第六章 总 结24心得体会25参考文献26第一章 设计任务和要求1.1 设计要求 本次课程设计,我选择的课题是单片机数字计算器硬软件设计 ,设计任务为: 1.扩展4*4键盘,其中10个数字,5个功能键,1个清零2. 使用五位数码管接口电路3. 完成十进制的四则运算(加、减、乘、除); 4. 实现低于三位小于255数字的连续运算;5. 使用keil C软件编写程序; 6. 最后用ptoteus仿真;7. 具有较强的抗干扰能力;8. 体积小、功耗低,便于嵌入其他系统。 1.2 设计方案的确定 按照1.1的设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于实验箱的硬件电路已经固定,故选择串行静
5、态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行静态显示显示运算结果。 主程序进行初始化,采用定时器0进行查键,每次按键后调用显示子程序。 第二章 单片机简要原理在该课程设计中,主要用到一个AT89c51芯片和串接的五个74LS164芯片。作为该设计的主要部分。下面将对这两个芯片原理及功能做已详细介绍和说明。2.1AT89c51介绍芯片AT89c51的外形结构和引脚图如21所示。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性
6、能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1. 主要特性: 8051 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电
7、路2.管脚说明VCC:供电电压(图中未画出)GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位
8、地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“
9、1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 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(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间
10、。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问
11、外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出引脚。2.2 芯片74LS164介绍74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,下面结束一下这个元件的基本知识。74LS164外部结构和引脚如图22所示:
12、图22 74LS164引脚图1. 主要特性: 串行输入带锁存 时钟输入,串行输入带缓冲 异步清除 最高时钟频率可高达36Mhz 功耗:10mW/bit 74系列工作温度: 0C to 70C Vcc最高电压:7V 输入最高电压:7V 最大输出驱动能力:高电平:0.4mA ; 低电平:8mA 2. 引脚功能:在单片机系统中, 如果并行口的IO资源不够,而串行口又没有其他的作用, 那么我们可以用74LS164来扩展并行IO口,节约单片机资源。74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。其中,Q0Q7 并行输出端 ; A,B串行输入端; MR 清除端, 为0时,输出清零。;CP
13、时钟输入端。第三章 硬件设计简易数字计算器系统硬件设计主要包括:键盘电路,显示电路以及其他辅助电路。下面分别进行设计。 3.1 键盘电路的设计 键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。但大多数
14、智能仪器和电子产品的按键数目都不太多(20个以内),为了降低成本和简化电路通常采用非编码键盘。非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。 本课题需要的是16个按键,故选择用非编码键盘,为了减少所占用的端口,由P1口采用4*4矩阵式键盘。具体电路连接如图31所示 图31 4*4键盘输入3.2 显示电路的设计 当系统需要显示少量数据时,采用LED数码管进行显示是一种经济实用的方法。数码管显示有静态显示和动态显示两种方法。为了减少端口的使用,故选择静态显示。 电路如下图32所示:图32 五位数码管显示LED数码管显示块是由发光二极管显示字段的显示器件。在单片机应用中通
15、常使用七段LED。这种显示块有共阴极和共阳极两种,如图是它的管脚配置 ,本设计采用的是共阴极接法 。 3.3其他电路设计1. 复位、时钟电路设计MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。当使用内部振荡电路时,XTAL1.XTAL2引脚外接石英晶体和微调电容,如图33所示,图中C2.C3大小一般为30PF。还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。如何进行复位呢?只用在
16、单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作。当主电源Vcc发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。图3.3复位电路和时钟电路2多位数码管电路显示的驱动电路单片机应用中只有一位的的数字显示是不常见的,即要同时驱动多个数码管显示,就必须要同时让多个数码管加上各自不同的选片段,这个属于静态显示。所谓静态显示,就是每一个显示器,都要占用单独的具有封锁功能的I/O接口用于笔画字段形代码,单片机只要把显示的字形代码发送到接口电路,直到要显示新的
17、数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提高单独锁存的I/O接口电路很多,这里以常用的串并转化电路74LS164为例介绍一种常用静态显示电路。74ls164Q1.Q874ls164Q1.Q874ls164Q1.Q874ls164Q1.Q874ls164Q1.Q8TXDRXD89C51H.AH.AH.AH.AH.A图3.4 五位数码管静态显示接法如图3.4所示,5片74LS164首尾相串,而时钟端接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到第一个74LS164中了,当第二个8个脉冲到来时,这个数据就进入了第二个片74LS164,新的数据则进
18、入了第一个74LS164。这样,当第五个脉冲完成后,首次送出的数据被送入到最左面的74LS164中,其他数据依次出现在第一、第二、第三、第四片74LS164中。入口:把要显示的数分别放在显示缓冲区60H-64H共五个单元中,并且分别对应五个数码管LED1-LED4。出口:蒋预置在显示缓冲区中的五个数组成相应的现实字形码,然后输出到显示器中显示。第四章 软件设计在数字计算器的软件规划要求下,简易计算器的程序主要包括以下功能模块:(1) 主模块,为系统的初始化。(2)显示与读键模块,分为显示子程序,判键程序段、运算操作子程序等部分; 4.1 主程序的设计初始化参数清零键LED显示输入数值读取键值状
19、态清零数值送显示缓存开始按键输入?分析键值数字键等待数值输入结果送显示缓存保存结果和功能键根据上次功能键和输入的数据计算结果功能键否是是数字键是清零键是功能键图41 主程序流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标志位,清空缓存区,读取键码,判断功能,在LED上作出回应,主程序流程图如图41所示。(1)数字送显示缓冲程序设计简易计算器所显示的数值最大位三位。要显示数值,先判断数值大小和位数,如果是超过三位或大于255,将不显示数字。可重新输入数字,再次计算。(2)运算程序的设计首先初始化参数,送LED低位显示“0”,高位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判
20、断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。4.2 显示、读键模块的设计1. LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字09的共阴极字形代码如下表:显示字型gfedcba段码001111113fh1000011006h21
21、0110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh2.读键子程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如图42:否按照行列计算键值等待按键释放查表得键码开始初始化地址参数读入行信号列扫描信号移位输出列扫描信号开始返回该列有输入?4列扫描完?初始化地址参数读入行信号列扫描信号移位输出列扫描信号开始返回该列有输入?4列扫描完?初始化地址参数读入行信号列扫描信号移位
22、输出列扫描信号开始返回该列有输入?4列扫描完?初始化地址参数读入行信号列扫描信号移位输出列扫描信号开始返回该列有输入?4列扫描完? 是 否 否按照行列计算键值 是查表得键码 等待按键释放 开始 图42计算键值子程序流程图4.3 其他内容说明1. 定时查键的程序设计进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。如果不是则退出中断程序。 读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入
23、键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。将两次读键信息进行组合就可以得到按键的特征编码,然后通过查表得到按键的顺序编码。将各特征编码按希望的顺序排成一张表,然后用当前读得的特征码来查表。当表中有该特征码时,它的位置就是对应的顺序编码;当表中没有该特征码时,说明这是一个没有定义的键码,与没有按键(0FFH)同等看待。 数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。 首先对数字键的程序段进行相应的设计,如果运算键(、,*,/)响应标志不为一,则将输入的数字送入第一个操作数缓存区,并且清空所有响应位。否则送入第二个操作数缓存区。 其次对功能
24、键的程序段进行相应的设计。 如果功能键(、,*,/)第一次被按下,则置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备,如果是第二次按下则先调用运算操作子程序,执行上次按下的运算键的运算,置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备。 如果是C键按下,则先判断运算键响应位是否为一,如果不为一,则清空第一个操作数,否则清空第二个操作数。 如果是=键按下,则调用运算操作子程序。 2.软件的可靠性设计 提高本仪器的可靠性措施主要有: (1)为防止程序跑飞,软件中设置了软件陷阱 (2)为防止键盘抖动造成按键错误,
25、采取了软件防(3)为了保证结果的正确性,结果溢出时显示错误代码0 4.4 源程序代码DBUF EQU 30HTEMP EQU 40HYJ EQU50H ;结果存放YJ1 EQU51H ;中间结果存放GONG EQU 52H ;功能键存放DIN BIT0B0H ;P3.0CLK BIT 0B1H ;P3.1ORG 00HSTART:MOV R3,#0 ;初始化显示为空MOV GONG,#0MOV 30H,#10HMOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#10HMLOOP:CALL DISP ;PAN调显示子程序WAIT:CALL TESTKEY ;
26、判断有无按键JZ WAIT CALL GETKEY ;读键INC R3 ;按键个数CJNE A,#0,NEXT1 ;判断是否数字键LJMP E1 ;转数字键处理NEXT1:CJNE A,#1,NEXT2LJMP E1NEXT2:CJNE A,#2,NEXT3LJMP E1NEXT3:CJNE A,#3,NEXT4LJMP E1NEXT4:CJNE A,#4,NEXT5LJMP E1NEXT5:CJNE A,#5,NEXT6LJMP E1NEXT6:CJNE A,#6,NEXT7LJMP E1NEXT7:CJNE A,#7,NEXT8LJMP E1NEXT8:CJNE A,#8,NEXT9LJM
27、P E1NEXT9:CJNE A,#9,NEXT10LJMP E1NEXT10:CJNE A,#10,NEXT11 ;判断是否功能键LJMP E2 ;转功能键处理NEXT11:CJNE A,#11,NEXT12LJMP E2NEXT12:CJNE A,#12, NEXT13LJMP E2NEXT13:CJNE A,#13,NEXT14LJMP E2NEXT14:CJNE A,#14,NEXT15LJMP E2NEXT15:LJMP E3 ;判断是否清除键E1:CJNE R3,#1,N1 ;判断第几次按键LJMP E11 ;为第一个数字N1:CJNE R3,#2,N2LJMP E12 ;为第二个
28、数字N2:CJNE R3,#3,N3 LJMP E13 ;为第三个数字N3:LJMP E3 ;第四个数字转溢出E11:MOV R4,A ;输入值暂存R4MOV 34H,A ;输入值送显示缓存MOV 33H,#10HMOV 32H,#10HLJMP MLOOP ;等待再次输入E12:MOV R7,A ;个位数暂存R7MOV B,#10MOV A,R4MUL AB ;十位数ADDA,R7MOV R4,A ;输入值存R4MOV 32H,#10H ;输入值送显示缓存MOV 33H,34HMOV 34H,R7LJMP MLOOPE13:MOV R7,AMOV B,#10MOV A,R4MUL ABJB
29、OV,E3 ;输入溢出ADD A,R7JB CY,E3 ;输入溢出MOV R4,A MOV 32H,33H ;输入值送显示缓存MOV 33H,34HMOV 34H,R7LJMP MLOOPE3:MOV R3,#0 ;按键次数清零MOV R4,#0 ;输入值清零MOV YJ,#0 ;计算结果清零MOV GONG,#0 ;功能键设为零MOV 30H,#10H ;显示清空MOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#10HLJMP MLOOPE2:MOV 34H,#10HMOV 33H,#10HMOV 32H,#10HMOV R0,GONG ;与上次功能键
30、交换MOV GONG,AMOV A,R0CJNE A,#10,N21 ;判断功能键LJMP JIA ;“”N21:CJNE A,#11,N22LJMP JIAN ;“”N22:CJNE A,#12,N23LJMP CHENG ;“*”N23:CJNE A,#13,N24 LJMP CHU ;“/”N24:CJNE A,#0,N25LJMP FIRST ;首次按功能键N25:LJMP DEN ;“=”N4:LJMP E3FIRST:MOV YJ,R4 ;输入值送结果MOV R3,#0 ;按键次数清零LJMP DISP1 ;结果处理JIA:MOV A,YJ;上次结果送累加器ADD A,R4;上次结
31、果加输入值JB CY,N4;溢出MOV YJ,A;存本次结果MOV R3,#0;按键次数清零LJMP DISP1JIAN:MOV A,YJSUBB A,R4;上次结果减输入值JB CY,N4;负数溢出MOV YJ,AMOV R3,#0LJMP DISP1CHENG:MOV A,YJMOV B,AMOV A,R4MUL AB ;上次结果乘输入值JB OV,N4 ;溢出MOV YJ,ALJMP DISP1CHU:MOV A,R4MOV B,AMOV A,YJDIV AB;上次结果除输入值MOV YJ,AMOV R3,#0LJMP DISP1DEN:MOV R3,#0LJMP DISP1DISP1:
32、MOVB,#10MOVA,YJ;结果送累加器DIVAB;结果除10MOVYJ1,A;暂存“商”MOVA,B;取个位数MOV34H,A;个位数送显示缓存MOVA,YJ1JZDISP11;结果是否为一位数MOVB,#10MOVA,YJ1DIVABMOVYJ1,AMOVA,BMOV33H,A;十位送显示缓存MOVA,YJ1JZDISP11;结果是否为二位数MOV32H,A;百位数送显示缓存DISP11:LJMPMLOOPDISP:MOVR0,#DBUF;显示子程序MOVR1,#TEMP+4MOVR2,#5DP10:MOVDPTR,#SEGTABMOVA,R0MOVCA,A+DPTRMOVR1,AIN
33、CR0DECR1DJNZR2,DP10MOVR0,#TEMPMOVR1,#5DP12:MOVR2,#8MOVA,R0DP13:RLCAMOVDIN,CCLRCLKSETBCLKDJNZR2,DP13INCR0DJNZR1,DP12RETSEGTAB: DB3FH,06H,5BH,4FH,66H,6DH;段码定义 DB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,00H,40HTESTKEY:MOVP1,#0FH ;读入键状态MOVA,P1CPLAANLA,#0FH ;高四位不用RETKEYTABLE:DB0DEH,0EDH,0DDH,0BDH ;键码定义DB
34、0EBH,0DBH,0BBH,0E7HDB0D7H,0B7H,07EH,07DHDB07BH,077H,0BEH,0EEHGETKEY: ;读键子程序MOVR6,#10ACALLDELAYMOVP1,#0FHMOVA,P1CJNEA,0FH,K12LJMPMLOOPK12:MOVB,AMOVP1,#0EFHMOVA,P1CJNEA,#0EFH,K13MOVP1,#0DFHMOVA,P1CJNEA,#0DFH,K13MOVP1,#0BFHMOVA,P1CJNEA,#0BFH,K13MOVP1,#07FHMOVA,P1CJNEA,#07FH,K13LJMPMLOOPK13:ANL A,#0F0HO
35、RLA,BMOVB,AMOVR1,#16MOVR2,#0MOVDPTR,#KEYTABLEK14:MOVA,R2MOVCA,A+DPTRCJNEA,B,K16MOVP1,#0FHK15:MOVA,P1CJNEA,#0FH,K15MOVR6,#10ACALLDELAYMOVA,R2RETK16:INCR2DJNZR1,K14AJMPMLOOPDELAY:MOVR7,#80 ;延时子程序DLOOP:DJNZR7,DLOOPDJNZR6,DLOOPRETEND 第五章 调试与仿真下面用KEIL uVision与 porteus仿真软件介绍数字计算器的仿真与调试。5.1Keil C51单片机软件开发系
36、统1. 系统的整体结构C51工具包的整体结构中,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如
37、EPROM中。2. 采用KEIL 开发的89c51单片机应用程序步骤:(1) 在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)(2)用uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。(3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。(4)对项目中的源文件进行编译连接,
38、生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。(5)对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的ROM中。5.2 proteus的操作1.硬件电路图的接法操作 (1).放置选择(删除)元器件(2).移动元器件(3).缩放视图(4).连接导线(5).仿真,调试2. 单片机系统PROTEUS设计与仿真过程Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过Proteus来完成的。其过程一般也可分为三步:(1)在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。简称Proteus电路设计。(2)在K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沟通的课件教学课件
- 2024年广告资源销售合同文本
- 2024年度合作经营咖啡馆之合伙协议书
- 模拟法庭课件教学课件
- 课件带语音教学课件
- 2024商场美食广场保险服务合同
- 2024【工商局业务表格格式条款备案申请书】工商局合同格式条款整治工作方案
- 2024年度吨不锈钢带打印功能电子地磅秤生产批次检验合同
- 04道路交通事故赔偿合同
- 2024房产借款抵押合同样本
- 肌肉注射操作并发症的预防及处理
- 起重机械使用单位安全总监-特种设备考试题库
- 江苏省徐州市六县2024-2025学年高一数学上学期期中考试试卷
- JTG-T-F20-2015公路路面基层施工技术细则
- 2024山东能源集团中级人才库选拔【重点基础提升】模拟试题(共500题)附带答案详解
- 国家开放大学电大《11662会计信息系统(本)》期末终考题库及标准参考答案
- 医院公共卫生管理制度
- DL-T5745-2021电力建设工程工程量清单计价规范
- 物业安全风险识别与评估
- 厂房设施维护保养计划
- 2024病案库房建设规范
评论
0/150
提交评论