基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告

上传人:aa****6 文档编号:44194188 上传时间:2018-06-08 格式:DOC 页数:21 大小:672.50KB
返回 下载 相关 举报
基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告_第1页
第1页 / 共21页
基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告_第2页
第2页 / 共21页
基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告_第3页
第3页 / 共21页
基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告_第4页
第4页 / 共21页
基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告》由会员分享,可在线阅读,更多相关《基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告(21页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及接口技术单片机原理及接口技术课程设计报告设计题目: 计算器设计 信息与电气工程学院信息与电气工程学院二零一三年七月二零一三年七月计算器设计单片机体积小,功耗小,价格低,用途灵活,无处不在,属专用计算机。是一种特殊器件,需经过专门学习方能掌握应用,应用中要设计专用的硬件和软件。近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统

2、可靠性的重要指标。数学是科技进步的重要工具,数据的运算也随着科技的进步越发变得繁琐复杂,计算器的出现可以大大解放人在设计计算过程中的工作量,使计算的精度、速度得到改善,通过 msc51 单片机,矩阵键盘和 LED 数码管可以实现简单的四位数的四则运算和显示,并当运算结果超出范围时予以报错。注:这一部分主要描述题目的背景和意义,对设计所采取的主要方法做一下简要描述。字数不要太多,300-500 字。另注:本文要当做模板使用,不要随意更改字体、字号、行间距等,学会使用格式刷。文中给出的各项内容都要在大家的报告中体现,可采用填空的方式使用本模板。1. 设计任务结合实际情况,基于 AT89C51 单片

3、机设计一个计算器。该系统应满足的功能要求为:(1) 实现简单的四位十进制数字的四则运算;(2) 按键输入数字,运算法则;(3) LED 数码管移位显示每次输入的数据和运算结果;(4) 当运算结果超出范围时实现报错。 主要硬件设备:AT89C51 单片机、LED 数码管、矩阵键盘。注:这一部分需要写明系统功能需求,用到的主要硬件(参考实验箱的说明书) 。哈尔滨工业大学(威海)课程设计报告2. 整体方案设计计算器以 AT89C51 单片机作为整个系统的控制核心,应用其强大的 I/O 功能和计算速度,构成整个计算器。通过矩阵键盘输入运算数据和符号,送入单片机进行数据处理。经单片机运算后判断是否超出要

4、求的运算范围,控制 LED数码管的输出原理图如图 2-1 所示。单片机处理数据单片机输出数据键盘输入数据图 2-1 基于单片机的变频调速恒压供水系统原理图本系统硬件主要由矩阵键盘、I/O 输入输出、显示系统等几部分组成。各模块的主要功能如下:(1)矩阵键盘将十六进制编码的数字传入单片机。(2) 单片机扫描键盘信号并接收,对输入的键盘信号进行处理(3) LED 以动态扫描的方式移位显示每次输入的数据和最后的运算结果。系统的整体设计方案设计图如图 2-2 所示。AT89c51电源电路时钟电路复位电路数码管显示电路矩阵键盘图 2-2 系统的整体方案设计图注:文中出现的所有框图、流程图都要用 VISI

5、O 画,不允许从文档中裁剪然后粘贴。要注意图的格式,图中的文字大小不要大于正文,图题用五号宋体,居中。3. 系统硬件电路设计3.1 时钟电路本设计采用外部时钟方式,使用外部振荡器产生脉冲信号,采用 12MHz 的石英晶体振荡器,结构如图 3-1。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2

6、/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C11nFC21nFX1 CRYSTALR110kR2 10kC31uF图 3-1 时钟电路和复位电路3.2 复位电路本设计采用按键手动电平复位电路,通过 RST 端经电阻与电源 Vcc 接通而实现,结构如图 3-1。3.3 数码管显示电路本设计所用数码管显示电路采用 4 位红色共阴极数码管接上拉电阻实现,其结构如图

7、 3-2。哈尔滨工业大学(威海)课程设计报告R2 10kC31uF234567891RP1 RESPACK-8图 3-2 数码管显示电路 3.4 键盘输入电路本设计采用 4*4 矩阵键盘实现数据和运算法则的输入。按键设置在行、列线的交点上,行列线分别连接的按键开关的两端,并通过上来电阻街道+5V 上。无按键按下时,行、列线均处于高电平,当有按键按下是,相对应的行和列电平为低电平。此特点也用于单片机 I/O 口对矩阵键盘的扫描。矩阵键盘和单片机的连接如图 3-2 所示。789/456*-321复位0=+XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1

8、/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51234567891RP2 RESPACK-8图 3-2 矩

9、阵键盘与单片机的连接图注:以上各部分按照电路功能模块化介绍器件选型、器件特性、电路设计思路、电路功能等,要注意与第 2 小节中的整体方案设计图相对应。文中出现的电路原理图同样不能从资料中裁剪,可从自己设计的 Proteus 图中拷贝。4. 系统程序设计4.1 主程序流程图单片机控制 I/O 口循环扫描键盘状态,当检测到有按键按下时,将按键信号输入单片机,处理并输出显示,若无按键按下,则保持前一个数据的显示状态。系统主程序流程图如图 4-1 所示。开始键盘扫描是否有按 键按下输入单片机Y保持上一次的显示结果N数据处理刷新显示图 4-1 主程序流程图4.2 键盘扫描子程序流程图先检测是否有按键按下

10、,当有按键按下时,逐行检测每一行的列状态,将准确的键盘信号输入单片机。哈尔滨工业大学(威海)课程设计报告键盘扫描流程图如图 4-2 所示。开始扫描键盘是否有按 键按下对第一行检测YN第一行是 否被按下检测第二行N第二行是 否被按下检测第三行N第三行是 否被按下扫描第四行列状态N行列信号输出给单片机结束扫描第一行列状态Y扫描第二行列状态Y扫描第三行列状态Y图 4-2 键盘扫描流程图4.3 按键处理输出显示子程序流程图输出的子程序包括运算数的输出和结果输出,当有数字键按下,之前的数 字左移一位,最新按下的数字显示在第一位,当有符号键按下,屏幕清零,当 有等号键按下,判断运算结果是否符合要求,若符合

11、要求,输出结果,不符合 要求,输出报错提示。输出显示子程序流程图如图 4-3 所示。开始有按键按下是否是数 字键上一次输出结果左移一位 最新结果显示在个位YN结束是否是运 算键对屏幕清零处理, 将之前的数据保存以作 运算用Y是否是等 号键N之前输入的数据保存Y是否是清 零键清零所有数据和显示Y对保存的数据进行运算对计算结果进行判断是否超出 运算范围N输出运算结果输出报错Y图 4-3 按键处理显示输出子程序流程图5. 系统调试这一部分分为 Proteus 软件仿真调试和硬件调试两部分,分别给出调试过程、调试时应注意的问题,分析遇到的问题及问题的解决方法,Proteus 调试可截屏运行结果图形并加

12、以分析。5.1 Proteus 软件仿真调试哈尔滨工业大学(威海)课程设计报告5.2 硬件调试6. 程序清单#include #include #include #include #includeunsigned char key_scan();void delay10ms();unsigned char key_free();void display();void display1(unsigned int number1);void display2(unsigned int number2);void display3(unsigned int number3);void display

13、4(unsigned int number4);void display_result();void delay(unsigned int time);void key_deal();void display_error();void caculate();void put_offleds();unsigned char numbertable=0x3F,0x06,0x5B,0x4F,0x66,0x6d,0x7D,0x07,0x7f,0x6f;/1 至 9 的共阴显示段码 unsigned char errortable=0x86;/报错时使用的段码unsigned char weitable

14、=0xfe,0xfd,0xfb,0xf7; /共阴数码 管位选unsigned int temp,temp1,temp2,number1,number2,number3,number4,a1,a2,a3,a4,b1,b 2,b3,b4,c1,c2,c3,c4,way,k,k1,waytest,result_test;unsigned int Result;result1,result2,result3,result4,E_test;unsigned char key;void main()while(1) key_scan();key_free();key_deal(); /新的显示函数voi

15、d display() display1(number1);delay(6);display2(number2);delay(6);display3(number3);delay(6);display4(number4);delay(6);void display1(unsigned int number1)P2= weitable3; P1=numbertablenumber1;void display2(unsigned int number2)P2= weitable2; P1=numbertablenumber2;void display3(unsigned int number3)P

16、2= weitable1; P1=numbertablenumber3;void display4(unsigned int number4)P2= weitable0; P1=numbertablenumber4;/结果显示程序void display_result()哈尔滨工业大学(威海)课程设计报告display1(result1);delay(6);display2(result2);delay(6);display3(result3);delay(6);display4(result4);delay(6);/定义延时程序void delay(unsigned int time)unsigned int i,j; for(i=time;i0;i-) for(j=112;j0;j-); ;/按键扫描子程序unsigned char key_scan() P0=0x0f;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号