单片机课程设计报告 简易计算器设计_第1页
单片机课程设计报告 简易计算器设计_第2页
单片机课程设计报告 简易计算器设计_第3页
单片机课程设计报告 简易计算器设计_第4页
单片机课程设计报告 简易计算器设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术应用实践课程设计报告单片机原理与接口技术课程设计报告简易计算器设计摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。计算器是人们的日常生活中是最常见的电子产品之一,它应用极广、发展迅猛,并且不断出现着拥有更加强大功能的计算器。为了解和研究计算器,本次课设设计制作了一个简易计算器,能够在十四位的计算范围内进行“+”、“-”、“*”、“/”的基本运算,能进行负数以及小数点后两位的精确结果显示。该计算器以AT89C51单片机芯片作为核心,采用7SEG-MPX-8-CC显示屏进行显示。完成的计算器经过检验能够完整的实现预设功能,各种细节完善,具有很高的使用价值。关键词单片机AT89C51简易计算器74LS138目录第1章绪论 第1章绪论1.1设计意义单片机是一种运用大规模集成电路技术将中央处理器(

CPU

)和数据存储器(

RAM

)、程序存储器(

RO

)及一些其他

I

/O通信口集成于一块芯片中。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了

I

/

O

设备。它具有携带方便、小巧轻便、价钱实惠等优点,能够帮助我们深入了解其应用和开发提供方便。现在单片机的运用领域已经非常普遍,如生活中的洗衣机、电风扇等家庭器件,工业上的各种仪表等等都运用着单片机,这使单片机在现在越来越不可或缺。在单片机中主要包含

CPU

、只读存储器

ROM

和随机存储器

RAM

等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。1.2设计目的简易计算器具有显示清晰直观,读数准确,保证读数的客观性与准确性,同时它符合人们的读数习惯,能缩短读数和记录的时间,具备标志符显示功能,包括测量项目符号、单位符号和特殊符号。准确度高,分辨率高,它是指所能显示的最小数字(零除外)与最大数字的百分比。扩展能力强,测量速率快,输入阻抗高,在测量时从被测电路上吸取的电流极小,不会影响被测信号源的工作状态,能减小由信号源内阻引起的测量误差。抗干扰能力强,集成度高,微功耗。1.3设计内容用51单片机完成设计。能够进行两位数加减乘除运算。具有复位和删除功能。第2章总体设计方案2.1总体设计AT89C51单片机的介绍:AT89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS

8位微处理器。在这次设计中我主要涉及到该单片机的MCS-51

兼容特性、实现16位定时器/计数器特性、实现可编程串行通道特性、低功耗的闲置和掉电模式等特性”。如图

2-1所示为总体方案设计图。图2.1系统设计框图2.2方案论证计算器电路包括四个部分:输入部分,控制部分,转换部分,输出部分。具体如下:输入部分:由按键开关构成构成矩阵键盘,能够在GPIO有限的情况下,扩展尽可能多的按键。控制部分:AT89C51作为系统控制部分,其低频范围稳定性好,操作方便,体积小,普及率高。转换部分:以74LS138译码器为转换部分,将输入信号转换为对应输出信号。输出部分:7SEG-MPX8-CC由八个共阴二极管组成,其使用简单,模式固定,便于移植到各种程序,且微功耗,体积小,显示内容丰富。

第3章硬件的选择本课程设计的电路主要由单片机AT89C51、译码器74LS138,显示器7SEG-MPX8-CC。3.1AT89C51AT89C51是美国INTEL公司生产的低电压,高性能CM0S8位单片机,片内含业4kbytes的可反复擦写的只读程序存储器(PEROA1)和128bytes的随机存取数据存储器(RA),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCs-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机能提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51管脚说明,如图3.1所示:图3.1AT89C51管脚图P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入,P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将輸出中流。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口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口。P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PRO:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOYX,MOVC指令是ALE才起作用。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12Y程电源(VPP)。

XTAL:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反问振荡器的输出。3.2译码器74LS138译码器是一类多输入多输出组合逻辑电路器件,其可以分为:变量译码和显示译码两类。变量译码器一般是一种较少输入变为较多输出的器件,常见的有n线-2^n线译码和8421BCD码译码两类;显示译码器用来将二进制数转换成对应的七段码,一般其可分为驱动LED和驱动LCD两类。变量译码器是一个将n个输入变为2^n个输出的多输出端的组合逻辑电路。其中输入变化的所有组合中,每个输出为1的情况仅一次,由于最小项在真值表中仅有一次为1,所以输出端为输入变量的最小项的组合。74LS138是3-8线译码器。引脚功能:A0~A2:地址输入端STA(E1):选通端/STB(/E2)、/STC(/E3):选通端(低电平有效)(低电平有效)/Y0~/Y7:输出端VCC:电源正GND:地A0~A2对应Y0——Y7;AO,A1,A2以二进制形式输入,然后转换成十进制,对应相应Y的序号输出低电平,其他均为高电平。其引脚如图3.2。功能表如图3.3,。图3.274LS138管脚图图3.374LS138功能表3.37SEG-MPX8-CC7SEG-MPX8-CC共阴极数码管是一类数字形式的显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示

时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜、使用简单、在电器,特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。如图3.3所示。图3.37SEG-MPX8-CC

第4章电路设计4.1单片主模块机电路根据要求可以画出主体单片机电路,如图4.1所示。该电路模块目的是为了嵌入程序之后控制系统的运行和对应按键的操作。AT89C51有32个I

/

O

口线,两个16位定时/计数器,其中该实训运用到了P0的所有口,P1的所有口,P3的3~5口。AT89C51可降至

OHz

的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止

CPU

的工作,但允许

RAM

,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存

RAM

中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。图4.1主体单片机电路4.2控制模块电路由于需要满足输入不同信号的要求,再利用73LS138的转换将信息传送给主体单片机电路。如下图3.2所示,控制电路。图4.2控制电路4.3显示模块电路此设计运用7SEG-MPX8-CC,此外,

PO

口需要连接一个排阻

RESPACK

-8为了上拉电阻,主要是

PO

口不能输出高电平且输出电流达不到

ImA

,无法为其接的负载提供电流。具体显示模块电路如图4.4所示。显示模块程序主要进行读写指令,以控制数码显像管的显示。如下图4.3所示,显示模块电路。图4.3显示模块电路

4.4总电路设计主要运用

C

语言和单片机来进行编程,程序主要分为三个部分,分别是:主模块、显示模块和控制模块。主模块程序主要是初始化设置,并且处理所输入的按键。键盘模块程序主要是与74LS138结合,读取按键的情况。此电路以AT89C51为主体。将单片机电路,控制模块电路,显示模块电路三个模块连接起来,然后得到总电路,如图4.4所示,总电路,其可实现想要达到的目的和要求。图4.4总电路

第5章软件设计5.1各功能模块设计延时部分:voiddelay(u16t){u16x,y; for(x=t;x>0;x--) for(y=116;y>0;y--);译码器3进8出:voiddisplay(){LSA=0;LSB=0;LSC=0; GPIO_DIG=duanxuan[box[7]]; delay(5);GPIO_DIG=0x00;(略)矩阵按键(赋值):voidKeyDown(void){u16a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f){delay(100);if(GPIO_KEY!=0x0f){GPIO_KEY=0x0f;switch(GPIO_KEY)是否松手:while((a<50)&&(GPIO_KEY!=0xf0)){delay(100);a++;}清零:elseif(KeyValue==14){for(i=0;i<8;i++)box[i]=0;display();}加法:elseif(KeyValue==10){a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000; for(i=0;i<8;i++)box[i]=0; while(1)(略)

乘法:elseif(KeyValue==12){a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000;for(i=0;i<8;i++)box[i]=0;while(1)(略) 减法:elseif(KeyValue==11){a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000;for(i=0;i<8;i++)box[i]=0;while(1)(略)除法:elseif(KeyValue==13){a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000;for(i=0;i<8;i++)box[i]=0;while(1)

第6章系统调试6.1第一次调试仿真系统关于加法运算的调试:图6.1加法运算6.2第二次调试仿真系统关于乘法运算的调试:图6.2乘法运算

6.3第三次调试仿真系统关于减法运算的调试:图6.3减法运算6.4第四次调试仿真系统关于除法运算的调试:图6.4

温馨提示

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

最新文档

评论

0/150

提交评论