基于8051与1601lcd设计的计算器内容摘要:
算器系统存储的数据,从而可以根据需要随时的读入和写出。 虽然处理速度比ARM 速度慢,但是用来设计计算器还是能满足要求,而且单片机的接口简单,方便我们使用,同时降低了我们的设计成本。 因此我们选择单片机来实现的方案。 用 8051 单片机作为中央处理单元进行计算器的设计。 针对软件编程,看个人习惯,用汇编来实现或者用 C 语言程序来实现都可以。 C语言可能会更加简短和容易理解,实现起来比汇编要快一点。 总结 采 用 方案四利用 单片机来实现,对单片机快速发展的时代, 单片机的应用正在不断地走向深入。 研究单片机,熟练单片机的开发流程对应届毕业生来说是很有难度且有重要意义的,通过自己对这次简易计算器的设计和实践,能够掌握单片机的设计流程及基本原理,对单片机的认识有个质的飞跃。 作为大学生的我们,尤其是电子信息专业的我们,对于开发单片机,探 索单片机,增强自己的专业技术技能,为我国的高科技技术贡献一份自己力所能及的力量更是特别重要。 系统模块图 : 单 片 机 显示 模块 输入 模块 第三章 硬件模块介绍 单片机 80C51 单片机是在一块芯片中集成了 CPU、 RAM、 ROM、定时器 /计数器和多功能 I/O等一台计算机所需要的基本功能部件。 如果按功能划分,它由如下功能部件组成,即微处理器( CPU)、数据存储器( RAM)、程序存储器( ROM/EPROM)、并行 I/O 口、串行口、定时器 /计数器、中断系统及特殊功能寄存 器( SFR)。 单片机是靠程序运行的,并且可以修改。 通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性。 因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能 ,如图 21所示: 输入模块:键盘扫描 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的 I/O 口资源,因此在很多情况下都不采用这种方式。 为此,我们引入了矩阵键盘的应用,采用四条I/O 线作为行线,四条 I/O 线作为列线组成键盘。 在行线和列线的每个交叉点上设置一个按键。 这样键盘上按键的个数就为 4 4 个。 这种行列式键盘结构能有效地提高单片机系统中 I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图 2 所示:一般有 16 个键组成,在单片机中正好可以用一个 P 口实现 16 个按键功能,这种形式在单片机系统中也最常用。 图 2:矩阵键盘布局图 0 1 2 3 4 5 6 7 8 9 + = * / P30 P31 P32 P33 P34 p35 p36 p37 图 3:矩阵键盘内部电路图 由图 3 矩阵键盘内部电路图可以知道, 当无按键闭合时, P30~P33 与P34~P37 之间开路。 当有键闭合时,与闭合键相连的两条 I/O 口线之间短路。 判断有无按键按下的方法是:第一步,置列线 P34~P37 为输入状态,从行线 P30~P33 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。 第二步,行线轮流输出低电平,从列线 P34~P37 读入数据,若有某一列为低电平,则对应行线上有键按下。 综合一二两步的结果,可确定按键编 号。 但是键闭合一次只能进行一次键功能操作, 因此须等到按键释放后, 再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。 运算模块:单片机控制 AT80C51 单片机是在一块芯片中集成了 CPU、 RAM、 ROM、定时器 /计数器和多功能 I/O 等一台计算机所需要的基本功能部件。 如果按功能划分,它由如下功能部件组成,即微处理器( CPU)、数据存储器( RAM)、程序存储器( ROM/EPROM)、并行 I/O 口、串行口、定时器 /计数器、中断系统及特殊功能寄存器( SFR)。 [3][5] 单片机是靠程序运行的,并且可以修改。 通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高 智能,高效率,以及高可靠性。 因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能。 显示模块: LCD1602 本设计采用 LCD 液晶显示器来显示输出数据。 通过 D0D7引脚向 LCD 写指令字或写数据以使 LCD 实现不同的功能或显示相应数据。 第四章 软件设计 读键输入程序流程图设计 为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码 —— 键码。 为了得到被按键 的键码,现使用行扫描法识别按键。 列扫描信号进行读入行的信号判断该列是否有列的输出 —— 是则进行按照行列计算键盘的值,查表取得键码并返回 —— 若否则进行再次扫描。 其程序框图如下: 是 否 开始 初始化地址参数 输出列扫描信号 列扫描信号移位 读入行信号 该列有键输入。 4 列扫描完。 返回 按照行列计算键值 查表得键码 等待按键释放 返回 主程序流程图设计 运算主程序设计 首先初始化参数,送 LED 低位显示“ 0”,高位不显示。 然后扫描键盘看是否有键输入,若有,读取键码。 判断键码是数字键、 清零键还是功能键(“ +”“ ”“ *”“ /”“ =” ) ,是数值键则送 LED 显示并保存数值,是清零键则做清零处理,是功能键则又判断是“ =”还是运算键,若是“ =”则计算最后结果并送 LED 显示,若是运算键则保存相对运算程序的首地址。 运算主程序框图如34 所示 : 图 运算主程序框图 开 始 初始化参数 LCD 显示 有键输入 读取键码 数 字键盘 输入数值 数值送显示缓冲 键码是。 清零键 功能键盘 状态清零 根据上次功能键和输入的数据计算结果 本次功能键 是“ =” 其它键 计 算最 后结果 保存结果和功能键 结果送显示缓冲 等待数值键入 最后总结 : 本设计采用 80S51 芯片,实现了利用单片机进行了一个简单计算器设计。 允许对输入数据进行加减乘除运算及 LCD 显示。 如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。 另外,实例所设计的计算器是用 LCD 液晶显示的,当然也可以用其他的 器件显示,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。 设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。 第五章 硬软件的调试 调试 一般 LCD 易出现的现象,我再做实验的时候遇到过以下几种情况: 状态 1 上电之后, 1601 的第一行全黑,即 16 个 5x8 黑块 产生原因:液晶根本就没有进行初始化操作,需要检查连线或 者程序。 运气不好的情况下就是整块 LCD 是坏的。 状态 2 运算结果显示乱码 产生原因:在本作品的程序中,我只设计了最多三位数运算,结果最多只能显示四位数,超过了就不能够正常的运算或显示,如果要实现更多的位的运算或显示更多的位的数则需要在程序中做些改动。 实验结果与性能达标 我的计算器只能进行最多三位数结果最多显示四位数的四则运算,如果要进行更大的数的运算则只需要在程序中稍加改动即可。 结论 经过近两个月的努力,终于顺利完成了毕业设计。 刚开始,我们头绪不是很清楚,不知道从哪里入手,但通过老师的耐心指导并和同学认真研究设计课题, 跑图书馆查资料、确定基本设计方案、对所用芯片功能进行查找、调试、上机仿 真等,经历了一次次的困难,却积累了很多宝贵的经验。 在整个设计的过程中遇到的问题主要有以下三点,第一:基础知识掌握的不牢固,主要表现在一些常用到的应用软件缺少应用,体现在画电路图和系统的仿真的时候,对这些软件的操作不熟练,浪费了很 多 时间。 第三:相关知识掌握的不够全面,缺少系统设计的经验。 这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半。基于8051与1601lcd设计的计算器
相关推荐
8253 有 6 种工作方式,由方式控制字确定。 区分这 6种工 作方式的主要标志由 3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号 GATE 对计数器操作的控制不同。 1. .方式 0低电平输出( GATE 信号上升沿继续计数) 2.方式 1低电平输出( GATE 信号上升沿重新计数) 3.方式 2周期性脉冲输出 4.方式 3周期性方波输出 OUT 输出低电平
机在完成控制处理后总是以数字信号通过 IO 口或数据总线送给控制对象这些数字信号形态主要有开关量二进制数字量和频率量可直接用于开关量数字量系统及频率调制系统但对于一些模拟量控制系统则应通过数/模转换成模拟量控制信号 根据单片机输出信号形态及控制对象 要求后向通道应解决 功率驱动将单片机输出信号进行功率放大以满足伺服驱动的功率要求 干扰防治主要防治伺服驱动系统通过信号通道
s,共有 75 个带宽为 1MHz 的跳频信道。 调制方式为恒定包络的 FSK调制。 在 2FSK 方式下,最大数据传输率为 1Mb/s, 4FSK 方式下,速率可达 2Mb/s。 最新的 中,其数据峰值可达 10Mb/s。 ZigBee[5]是一种近年来才兴起的无线网络通信技 术标准。 它出现的时间较短,2020 年底才由 ZigBee 联盟发布了 版本规范,尚未进入大规模的商业化生产和应用
,故被测距离为 S=1/2vt ( 22) 本测量电路采用第二种方案。 由于超声波的声速与温度有关,如果温度变化不大,则可认为声速基本不变。 如果测距精度要求很高,则应通过温度补偿的方法加以校正。 超声波测距适用于高精度的中长距离测量。 因为超声波在标准空气中的传播速度为 米 /秒,由单片机负责计时,单片机使用 晶振,所以此系统的测量精度理论上可以达 到毫米级。 CPU 的选型
9 图 33 定时器 /计数器方式 1 逻 辑结构图 3 方式 2: 方式 0 和方式 1 的最大特点是计数溢出后,计数器为全 计数用时就存在反复装入计数初值的问题。 这不仅影响定时精数,而且也给程序设计带来麻烦。 方式 2 就是针对此问题而设置的。 当 M M2 为 10 时,定时器 /计数器处于工作方式 2,这时定时器 /计数器得等效框图如图 34 所示。
函数值调用 unsigned char Hour=0,Min=0,Sec=0。 u8 Returnnumber = 0。 //按键值返回 bit flag=0。 //1分时间到标志 bit Brush_flag = 0。 //更新显示器 1:更新 sbit LED1=P2^3。 //二个指示灯 sbit LED2=P2^4。 sbit CS =P2^5。 //液晶接口 sbit SID=P2^6