您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机课程设计简易计算器
大连民族学院2012级电子信息工程专业单片机系统课程设计报告1信息与通信工程学院简易计算器学院(系):信息与通信工程专业:电子信息工程学生姓名:丁璞杨一雄学号:2012131604指导教师:刘忠富完成日期:大连民族学院大连民族学院2012级电子信息工程专业单片机系统课程设计报告2目录一、设计任务和性能指标.........................................................................................31.1设计任务...........................................................................................................31.2性能指标...........................................................................................................3二.设计方案................................................................................................................3三.系统硬件设计........................................................................................................43.1单片机最小系统...............................................................................................43.2键盘接口电路...................................................................................................53.3数码管显示电路...............................................................................................63.4错误报警电路...................................................................................................7四、系统软件设计.....................................................................................................84.1键盘扫描子程序设计.......................................................................................94.2移位子程序及结果计算子程序设计.............................................................164.3显示子程序设计.............................................................................................174.4主程序设计.....................................................................................................18五、调试及性能分析...............................................................................................185.1调试步骤.........................................................................................................185.2性能分析.........................................................................................................19六、心得体会...........................................................................................................19参考文献...................................................................................................................20附录1系统硬件电路图..........................................................................................20附录2程序清单....................................................................................................20大连民族学院2012级电子信息工程专业单片机系统课程设计报告33一、设计任务和性能指标1.1设计任务印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器,用LED显示计算数值及结果。要求用Protel画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。1.2性能指标1.加法:四位加法,计算结果若超过四位则显示计算错误2.减法:四位减法,计算结果若小于零则显示计算错误3.乘法:个位数乘法4.除法:整数除法5.有清零功能,计算错误报警二.方案总体设计按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、错误报警模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示。主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。键盘电路采用4*4矩阵键盘电路。显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。错误报警电路采用5V蜂鸣器。系统选用以STC89C51单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。大连民族学院2012级电子信息工程专业单片机系统课程设计报告44三.系统硬件设计3.1单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。晶振选取11.0592MHz,晶振旁电容选取30pF。采用按键复位电路,电阻分别选取100Ω和10K,电容选取10μF。以下为单片机最小系统硬件电路图。复位电路晶振图2.1基本结构4×4矩阵键盘单片机显示电路大连民族学院2012级电子信息工程专业单片机系统课程设计报告55图3.1单片机最小系统3.2键盘接口电路计算器所需按键有:数字键:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’功能键:’+’,’-‘,’*’,’/’,’=’,’C(清零)’共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。以下为键盘接口电路的硬件电路图大连民族学院2012级电子信息工程专业单片机系统课程设计报告66图3.2矩阵键盘内部电路3.3LCD显示模块:本设计采用LCD液晶显示器来显示输出数据.通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据.在与单片机最小系统连接时,采用并行连接方式,此方式的特点是传输速度快。并行接口的输入由p0.0-p0.7进行控制,传输信息。LCD显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。LCD也就显示具有直角显示、低耗电量、体积小、还是零辐射等优点。大连民族学院2012级电子信息工程专业单片机系统课程设计报告77图3.3LCD显示电路3.4错误报警电路错误报警电路就是在计算结果出现错误时或输入数据出现错误时,发出声音警报,提示使用者错误出现。这里就采用5V蜂鸣器作为报警设备,利用PNP三极管对蜂鸣器进行驱动,有P2.2对其进行控制,这样在出现错误的同时用P2.2输出低,就可以使蜂鸣器工作,完成报警任务。在编写程序时,报警电路实现的功能是:当计算正常时使p2.2口输出高电平时,蜂鸣器不会响应。当计算出现错误(例如0作为被除数时)此时给p2.2输出低电平,使蜂鸣器响应,达到报警功能。以下为报警电路硬件电路图大连民族学院2012级电子信息工程专业单片机系统课程设计报告88图3.4报警电路四.系统软件设计首先初始化参数;然后扫描键盘看是否有键输入,若有,读取键码;判断键码是数字键、清零键还是功能键(“+”“-”“*”“/”“=”),是数值键则送数码管显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送数码管显示,若是其它功能键则不显示。(其中里面包含了延时去抖动程序)。大连民族学院2012级电子信息工程专业单片机系统课程设计报告99图4.1程序流程图4.1键盘扫描子程序设计要进行数据的计算就必须先进行数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进行扫描,从而确定究竟是哪个键按下。开始初始化清零键和功能键输入是否是数字键?是否是否是运算键?清零键数码管不显示数码管显示数字计算数码管显示结果数字键是否否大连民族学院2012级电子信息工程专业单片机系统课程设计报告1010对于键盘的扫描,既可以用行扫描也可以用列扫描,这里采用行扫描的方法来完成对键盘的扫描。行扫描就是逐行扫描键盘,看是哪一行有键按下,再通过返回的键码来确定究竟是哪个按键按下。如对第一行扫描就令P1.0为低,P1口其余为高,这样若第一行有键按下,则P1口的值就会由0xfe变为其他值,再由这个值来确定是哪个键按下。以下为键盘扫描子程序的程序清单。voidkeyscan()//矩阵键盘{P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){Delay_1ms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xee:key=1;break;case0xde:key=2;break;case0xbe:key=3;break;case0x7e:key=15;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}if(key=1&&key=3){L1602_cha
本文标题:单片机课程设计简易计算器
链接地址:https://www.777doc.com/doc-2594682 .html