51单片机计算器(4)

2019-04-22 22:34

湖北师范学院物理与电子科学学院13级单片机课程设计

简易计算器主要包括:键盘电路,显示电路。

下图为总体硬件结构。(如图4.1 所示为整个系统的原理图)

图4.1 计算器原理图

前面叙述了该系统的设计说明,系统采用了比较简单的设计方案,所以该系统的硬件设计的总外围电路不会产生过多的干扰。在下面的阐述中,对系统的外围电路分别予以介绍。键盘部分采用编码键盘,显示部分采用LCD液晶显示屏完全能够很好的实现显示方面的要求。

键盘电路的设计:

键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。非编码键盘成本低廉。

13

湖北师范学院物理与电子科学学院13级单片机课程设计

从成本角度出发,本设计选用的是非编码键盘。如图4.2

图4.2 编码键盘电路

显示电路的设计:

当系统需要显示少量数据时,采用LCD液晶显示屏进行显示是一种经济实用的方法。P0口作为液晶显示的数据端口,P3.5-P3.7口作为其控制端口,控制LCD液晶显示屏显示输出数据。

最终电路如图4.3所示:

4.3 LCD液晶显示屏显示

14

湖北师范学院物理与电子科学学院13级单片机课程设计

第五章 计算器的软件设计

5.1计算器的软件规划

简易计算器的程序主要包括以下功能模块:

1、定时查键模块,分为读键程序、判键程序段、运算操作子程序等部分; 2、基于LCD液晶显示屏的显示模块; 3、主模块,为系统的初始化。 5.2 键盘扫描的程序设计

键盘扫描子程序,首先读出P1的低四位,然后读出P1口的高四位。然后键值并显示缓存。然后将键如的值转换为ASCII码然后就可以软件来设置硬件按键各个键代表的内容。

读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。

数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。 5.3 显示模块的程序设计

显示模块程序首先要对显示模块进行初始化;然后控制光标的位置;定义液晶显示的控制端口,用SBIT指令完成;然后设置清屏、关闭显示、归位、开显示、显示位置的首地址等等。

第六章 课程设计总结

在硬件的制作过程中我走了好多的弯路,主要是在系统还没有设计很有把握就开始动手制作了。后来发现与设计的要求还有偏差,反复的改过了几次,浪费了大量的时间和体力。感受到设计人员要有耐心,要认真的从要求开始研究。软件的编写过程中费了很大的力气,因为软件的编写要求很高,要很细心,一不小心就会调用错误,很深刻的体会到作为软件编程人员是绝不能粗心大意的。一个程序的完成的速度和质量高低与细心与否有着很大联系。编程时,我充分使用了结构化的思想。这样因为语句较少,程序调试比较方便,功能模块可以逐一的调试,充分体现了结构化编程的优

15

湖北师范学院物理与电子科学学院13级单片机课程设计

势。当每个模块都完成时,将其功能加到一起就完成了整体的设计。

附录 程序: /*

接盘按键说明:

-------------------------------------------------- | 1 | 2 | 3 | + | - - - - - - - - - - - - - | 4 | 5 | 6 | - | - - - - - - - - - - - - - | 7 | 8 | 9 | * | - - - - - - - - - - - - -

| C | 0 | = | / |

--------------------------------------------------*/ //操作简介

// 按第一个数,再按'+-*/',再按'='显示出结果,然后按C清屏 // 加最大9999+9999=19998 // 减最大9999-0 =9999 // 乘最大9999*9999=99980001 // 除 1/9=0.1111 保留小数点后4位 #include #define uint unsigned int #define uchar unsigned char

//--------LCD1602------------------- //P00-07==== D0-7

sbit rs=P2^7; //指令or数据 sbit wela=P2^6; //读or写 sbit lcden=P2^5; //使能信号

16

湖北师范学院物理与电子科学学院13级单片机课程设计

//--------LCD1602------------------- //--------KEY----------------------- //P1口

//--------KEY----------------------- uchar code table[]= \

long int data_a,data_b; //第一个数和第二个数 long int data_c;

uchar dispaly[10]; //显示缓冲

//************************************************************************/

// 描述: 延时t us函数

//************************************************************************/

void LCD_Delay_us(unsigned int t) { }

//************************************************************************/

// 描述: 延时t ms函数

//************************************************************************/

void LCD_Delay_ms(unsigned int t) {

//计算结果

while(t--); //t=0,退出

unsigned int i,j; for(i=0;i

//执行t次循环

17


51单片机计算器(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于单片机的空调温度控制系统设计毕业论文(设计)word格式

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: