单片机计算器模拟方案及对策_第1页
已阅读1页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z.理工学院课 程 设 计 说 明 书 课程名称单片机原理及应用 设计课题数字计算器设计 专 业 班 级 姓 名 年 月日 课 程 设 计 任 务 书系专业学生班级*课程名称设计题目 51系单片机数字计算器的设计课程设计容与要求:1.扩展4*4键盘,其中10个数字,5个功能键,1个清零2. 使用五位数码管接口电路3. 完成十进制的四则运算(加、减、乘、除);4. 实现低于三位小于255数字的连续运算;5. 使用keil软件编写程序;6. 最后用ptoteus仿真;设计(论文)开始日期 年 月日 指导教师设计(论文)完成日期 年 月日 指导教师 年 月日 课 程 设 计 评 语 第 1 页

2、 系专业学生班级*课程名称设计题目51系单片机数字计算器课程设计篇幅:图纸说明书 页 指导教师评语: 年月 日 指导教师答辩委员会评语:成 绩 评 定 项 目满 分得 分 平时成绩20分设计(论文)图纸及说明书成绩50分 答辩成绩30分合 计评 定 成 绩答辩委员会主任 年 月 日 洛 阳 理 工 学 院 目录摘要01引言01第一章设计任务和要求021.1设计要求1.2设计方案的确定第二章单片机简要原理022.1AT89C51介绍2.2 芯片74LS164介绍第三章硬件设计073.1 键盘电路的设计3.2 显示电路的设计3.3 其他电路设计3.4 总原理图第四章软件设计11 4.1 主程序的设

3、计4.2 显示、读键模块的设计4.3 其他容说明4.4 源程序代码第五章调试与仿真235.1 Keil C51单片机软件开发系统5.2 proteus的操作总结25心得体会26参考文献27-. z.摘要本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74ls164,输入用44矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件用汇编语言

4、进行编程,并用proteus仿真。关键词:单片机 计算器 AT89C51芯片 74LS164 引言简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资

5、料的方法。-. z.第一章设计任务和要求1.1 设计要求本次课程设计,我选择的课题是单片机数字计算器硬软件设计,设计任务为:1.扩展4*4键盘,其中10个数字,5个功能键,1个清零2. 使用五位数码管接口电路3. 完成十进制的四则运算(加、减、乘、除);4. 实现低于三位小于255数字的连续运算;5. 使用keil软件编写程序;6. 最后用ptoteus仿真;1.2 设计方案的确定按照1.1的设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于实验箱的硬件电路已经固定,故选择串行静态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行静态显示显示运算结果。主程

6、序进行初始化,采用定时器0进行查键,每次按键后调用显示子程序。第二章单片机简要原理在该课程设计中,主要用到一个AT89c51芯片和串接的五个74LS164芯片。作为该设计的主要部分。下面将对这两个芯片原理及功能做已详细介绍和说明。2.1AT89c51介绍 图21芯片AT89C51的外形结构和引脚图如21所示。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-

7、51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.主要特性:8051 CPU与MCS-51 兼容4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz三级程序存储器锁定128*8位部RAM 32条可编程I/O线两个16位定时器/计数器 5个中断源可编程串行通道低功耗的闲置和掉电模式片振荡器和时钟电路2.管脚说明VCC:供电电压(图中未画出)GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P

8、1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1”时,其管脚被部上拉电阻拉高

9、,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能

10、口,如下表所示:管脚备选功能P3.0 R*D(串行输入口)P3.1 T*D(串行输出口)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脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正

11、脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE输出可在SFR8EH地址上置0。此时, ALE只有在执行MOV*,MOVC指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。

12、注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。*TAL1:反向振荡放大器的输入及部时钟工作电路的输入。*TAL2:来自反向振荡器的输出引脚。2.2 芯片74LS164介绍74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,下面结束一下这个元件的基本知识。74LS164外部结构和引脚如图22所示:图22 74LS164引脚图主要特性: 串行输入带锁存 时钟输入,串行输入带缓冲 异步清除 最高时钟频率可高达36Mhz 功耗:10mW/bit 74系列工作温度: 0C to 70

13、C Vcc最高电压:7V 输入最高电压:7V 最大输出驱动能力:高电平:0.4mA ; 低电平:8mA 引脚功能:在单片机系统中, 如果并行口的IO资源不够,而串行口又没有其他的作用, 则我们可以用74LS164来扩展并行IO口,节约单片机资源。74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。其中,Q0Q7 并行输出端; A,B串行输入端; MR 清除端,为0时,输出清零。;CP 时钟输入端。第三章硬件设计简易数字计算器系统硬件设计主要包括:键盘电路,显示电路以及其他辅助电路。下面分别进行设计。3.1 键盘电路的设计键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20

14、个以上)和专用驱动芯片的组合,当按下*个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。但大多数智能仪器和电子产品的按键数目都不太多(20个以),为了降低成本和简化电路通常采用非编码键盘。非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。本课题需要的是16个按键,故选择用非编码

15、键盘,为了减少所占用的端口,由P1口采用4*4矩阵式键盘。具体电路连接如图31所示图31 4*4键盘输入3.2 显示电路的设计当系统需要显示少量数据时,采用LED数码管进行显示是一种经济实用的方法。数码管显示有静态显示和动态显示两种方法。为了减少端口的使用,故选择静态显示,并采用共阴极接法电路如图32所示 图32五位数码管显示LED数码管显示块是由发光二极管显示字段的显示器件。在单片机应用常使用七段LED。这种显示块有共阴极和共阳极两种。3.3其他电路设计1.复位、时钟电路设计当使用部振荡电路时,*TAL1.*TAL2引脚外接石英晶体和微调电容,如图33.1所示,图中C2.C3大小一般为30P

16、F。还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。如何进行复位呢?只用在单片机的RST引脚上保持两个 33.1时钟电路 33.2复位电路机器周期(24个时钟周期)的高电平即可对单片机实现复位操作(如图33.2)。当主电源Vcc发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机部RAM提供电源,以保护片RAM中的信息不丢失,使系统在恢复上电后能正常运行2多位数码管电路显示的驱动电路单片机应用中只有一位的的数字显示是不常见的,即

17、要同时驱动多个数码管显示,就必须要同时让多个数码管加上各自不同的选片段,这个属于静态显示。所谓静态显示,就是每一个显示器,都要占用单独的具有封锁功能的I/O接口用于笔画字段形代码,单片机只要把显示的字形代码发送到接口电路,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提高单独锁存的I/O接口电路很多,这里以常用的串并转化电路74LS164为例介绍一种常用静态显示电路。74ls16474ls16474ls16474ls16474ls164T*DR*D89C51H.AH.AH.AH.AH.A图34 五位数码管静态显示框图及接法如图34所示,5片74LS164

18、首尾相串,而时钟端接在一起,这样,当输入8个脉冲时,从单片机R*D端输出的数据就进入到第一个74LS164中了,当第二个8个脉冲到来时,这个数据就进入了第二个片74LS164,新的数据则进入了第一个74LS164。这样,当第五个脉冲完成后,首次送出的数据被送入到最左面的74LS164中,其他数据依次出现在第一、第二、第三、第四片74LS164中。入口:把要显示的数分别放在显示缓冲区60H-64H共五个单元中,并且分别对应五个数码管LED1-LED4。出口:预置在显示缓冲区中的五个数组成相应的现实字形码,然后输出到显示器中显示。3.4 总原理图(图35) 图35 总原理图第四章软件设计在软件规划

19、要求下,简易计算器的程序主要包括以下功能模块:(1)主模块,为系统初始化。(2显示与读键模块,分显示子程序,判键程序段、运算操作子程序等部分;主程序的设计初始化参数清零键LED显示输入数值读取键值状态清零数值送显示缓存开始按键输入?分析键值数字键等待数值输入结果送显示缓存保存结果和功能键根据上次功能键和输入功能键否是是数字键是清零键是功能键图41 主程序流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标志位,清空缓存区,读取键码,判断功能,在LED上作出回应,主程序流程图如图41所示。(1)数字送显示缓冲程序设计简易计算器所显示的数值最大位三位。要显示数值,先判断数值大小和位数,如

20、果是超过三位或大于255,将不显示数字。可重新输入数字,再次计算。(2)运算程序的设计首先初始化参数,送LED低位显示0”,高位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是=”还是运算键,若是=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。4.2 显示、读键模块的设计1. LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。简易计算器用到的数字09的共阴极字形代码如下表:显示字gfedcba段码00111111

21、3fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh2.读键子程序设计为了实现键盘的输入功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,使用行扫描法识别按键。其程序框图如图42:初始化地址参数读入行信号列扫描信号移位输出列扫描信号开始返回该列有输入?4列扫描完?初始化地址参数读入行信号列扫描信号移位输出列扫描信号开始返回该列有输入?4列扫描完?初始化地址参数读入行信号列扫描信号移位输出列扫描信号开始返回该列有输入

22、?4列扫描完?是否否按照行列计算键值是查表得键码等待按键释放图42计算键值子程序流程图4.3 其他容说明1. 定时查键的程序设计进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。如果不是则退出中断程序。读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。将两次读键信息进行组合就可以得到按键的特征编码,然后通过

23、查表得到按键的顺序编码。将各特征编码按希望的顺序排成一表,然后用当前读得的特征码来查表。当表中有该特征码时,它的位置就是对应的顺序编码;当表中没有该特征码时,说明这是一个没有定义的键码,与没有按键(0FFH)同等看待。数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。首先对数字键的程序段进行相应的设计,如果运算键(、,*,/)响应标志不为一,则将输入的数字送入第一个操作数缓存区,并且清空所有响应位。否则送入第二个操作数缓存区。其次对功能键的程序段进行相应的设计。如果功能键(、,*,/)第一次被按下,则置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入

24、操作数做准备,如果是第二次按下则先调用运算操作子程序,执行上次按下的运算键的运算,置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备。如果是C键按下,则先判断运算键响应位是否为一,如果不为一,则清空第一个操作数,否则清空第二个操作数。如果是=键按下,则调用运算操作子程序。2.软件的可靠性设计提高本仪器的可靠性措施主要有:(1)为防止程序跑飞,软件中设置了软件陷阱(2)为防止键盘抖动造成按键错误,采取了软件防(3)为了保证结果的正确性,结果溢出时显示错误代码0 4.4 源程序代码DBUFEQU 30HTEMP EQU 40HYJ EQU50H ;结果存放

25、YJ1 EQU51H ;中间结果存放GONG EQU52H ;功能键存放DIN BIT0B0H ;P3.0CLK BIT 0B1H ;P3.1ORG 00HSTART:MOV R3,#0 ;初始化显示为空MOV GONG,#0MOV 30H,#10HMOV 31H,#10HMOV 32H,#00HMOV 33H,#10HMOV 34H,#10HMLOOP:CALL DISP ;PAN调显示子程序WAIT:CALL TESTKEY ;判断有无按键JZ WAIT CALL GETKEY ;读键INC R3 ;按键个数CJNE A,#0,NE*T1 ;判断是否数字键LJMP E1 ;转数字键处理NE

26、*T1:CJNE A,#1,NE*T2LJMP E1NE*T2:CJNE A,#2,NE*T3LJMP E1NE*T3:CJNE A,#3,NE*T4LJMP E1NE*T4:CJNE A,#4,NE*T5LJMP E1NE*T5:CJNE A,#5,NE*T6LJMP E1NE*T6:CJNE A,#6,NE*T7LJMP E1NE*T7:CJNE A,#7,NE*T8LJMP E1NE*T8:CJNE A,#8,NE*T9LJMP E1NE*T9:CJNE A,#9,NE*T10LJMP E1NE*T10:CJNE A,#10,NE*T11 ;判断是否功能键LJMP E2 ;转功能键处理N

27、E*T11:CJNE A,#11,NE*T12LJMP E2NE*T12:CJNE A,#12, NE*T13LJMP E2NE*T13:CJNE A,#13,NE*T14LJMP E2NE*T14:CJNE A,#14,NE*T15LJMP E2NE*T15:LJMP E3 ;判断是否清除键E1:CJNE R3,#1,N1 ;判断第几次按键LJMP E11 ;为第一个数字N1:CJNE R3,#2,N2LJMP E12 ;为第二个数字N2:CJNE R3,#3,N3 LJMP E13 ;为第三个数字N3:LJMP E3 ;第四个数字转溢出E11:MOV R4,A ;输入值暂存R4MOV 34

28、H,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 AB OV,E3 ;输入溢出ADD A,R7 CY,E3 ;输入溢出MOV R4,AMOV 32H,33H;输入值送显示缓存MOV 33H,34HMOV 34H,R7LJMP

29、 MLOOPE3:MOV R3,#0 ;按键次数清零MOV R4,#0 ;输入值清零MOV YJ,#0 ;计算结果清零MOV GONG,#0 ;功能键设为零MOV 30H,#10H ;显示清空MOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#00HLJMP MLOOPE2:MOV 34H,#10HMOV 33H,#10HMOV 32H,#10HMOV R0,GONG ;与上次功能键交换MOV GONG,AMOV A,R0CJNE A,#10,N21 ;判断功能键LJMP JIA ;”N21:CJNE A,#11,N22LJMP JIAN ;”N22:CJ

30、NE A,#12,N23LJMP CHENG ;*”N23:CJNE A,#13,N24LJMP 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;上次结果加输入值 CY,N4;溢出MOV YJ,A;存本次结果MOV R3,#0;按键次数清零LJMP DISP1JIAN:MOV A,YJSUBB A,R4;上次结果减输入值 CY,N4;负数

31、溢出MOV YJ,AMOV R3,#0LJMP DISP1CHENG:MOV A,YJMOV B,AMOV A,R4MUL AB;上次结果乘输入值 OV,N4;溢出MOV YJ,ALJMP DISP1CHU:MOV A,R4MOV B,AMOV A,YJDIV AB;上次结果除输入值MOV YJ,AMOV R3,#0LJMP DISP1DEN:MOV R3,#0LJMP DISP1DISP1:MOVB,#10MOVA,YJ;结果送累加器DIVAB;结果除10MOVYJ1,A;暂存商”MOVA,B;取个位数MOV34H,A;个位数送显示缓存MOVA,YJ1JZDISP11;结果是否为一位数MOV

32、B,#10MOVA,YJ1DIVABMOVYJ1,AMOVA,BMOV33H,A;十位送显示缓存MOVA,YJ1JZDISP11;结果是否为二位数MOV32H,A;百位数送显示缓存DISP11:LJMPMLOOPDISP:MOVR0,#DBUF;显示子程序MOVR1,#TEMP+4MOVR2,#5DP10:MOVDPTR,#SEGTABMOVA,R0MOVCA,A+DPTRMOVR1,AINCR0DECR1DJNZR2,DP10MOVR0,#TEMPMOVR1,#5DP12:MOVR2,#8MOVA,R0DP13:RLCAMOVDIN,CCLRCLKSETBCLKDJNZR2,DP13INCR

33、0DJNZR1,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;键码定义DB0EBH,0DBH,0BBH,0E7HDB0D7H,0B7H,07EH,07DHDB07BH,077H,0BEH,0EEHGETKEY:;读键子程序MOVR6,#10ACALLDELAYMOVP1,#0FHMOVA,

34、P1CJNEA,0FH,K12LJMPMLOOPK12:MOVB,AMOVP1,#0EFHMOVA,P1CJNEA,#0EFH,K13MOVP1,#0DFHMOVA,P1CJNEA,#0DFH,K13MOVP1,#0BFHMOVA,P1CJNEA,#0BFH,K13MOVP1,#07FHMOVA,P1CJNEA,#07FH,K13LJMPMLOOPK13:ANL A,#0F0HORLA,BMOVB,AMOVR1,#16MOVR2,#0MOVDPTR,#KEYTABLEK14:MOVA,R2MOVCA,A+DPTRCJNEA,B,K16MOVP1,#0FHK15:MOVA,P1CJNEA,#0F

35、H,K15MOVR6,#10ACALLDELAYMOVA,R2RETK16:INCR2DJNZR1,K14AJMPMLOOPDELAY:MOVR7,#80;延时子程序DLOOP:DJNZR7,DLOOPDJNZR6,DLOOPRETEND第五章调试与仿真下面用Keil与porteus仿真软件介绍数字计算器的仿真与调试。5.1Keil C51单片机软件开发系统1. 采用KEIL 开发的89c51单片机应用程序步骤:(1)在keil集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)(2)用keil的

36、文本编辑器编写源文件,可以是汇编文件(.ASM),并将该文件添加到项目中去。一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。(3)通过keil的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HE*文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。(5)对没有语法错误的程序进行仿真调试,调试成功后将HE*文件写入到单片机应用系统的ROM中。5.2 proteus的操作1.硬件电路图的接法操作(1).放置选择(删除)元器件(2).移动元器件(3).缩放视图(4).连接导线(5).仿真,调试2.单片机系统PROTEUS设计与仿真过程Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过Proteus来完成的。其过程一般也可分为三步:(1)在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。简称Proteus电路设计。(2)在Keil平台上进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*.he*)。简称Proteus源程序设计和

温馨提示

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

评论

0/150

提交评论