基于89c51的计算器设计内容摘要:
和显示模式设置 I/D:光标移 动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8位总线 N:低电平时为单 行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符。 指令 7:字符发生器 RAM 地址设置。 指令 8: DDRAM 地址设置。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令 10:写数据。 指令 11:读数据 单片机系统课程设计 15 写时序: 读时序 : 程序下载电路 串口 ISP 下载线, ISP(insystem programming)在线系统编程,一种无需将存储芯片(如 EPROM)从嵌入式设备上取出就能对其进行编程的过程,缩略为 ISP。 ISP(insystem programming)在线系统编程 ,一种无需将 存储芯片 (如EPROM)从嵌入式设备上取出就能对其进行编程的过程,缩略为 ISP。 在系统编程需要在目标板上有额外的电路完成编程任务。 其优点是,即使器件焊接在电路板上,仍可对其(重新)进行编程。 在系统可编程是 Flash 存储器的固有特性(通 单片机系统课程设计 16 常无需额外的电路), Flash 几乎都采用这种方式编程。 ISP 下载线就是一根用来在线下载程序的线,类似 USB 线,但不一样。 串口 ISP 下载线。 可以用 MAX232 芯片进行搭建。 需要 104 电容等基本原件。 相关原件及电路图都可在网上找到。 值得注意的是 104 电容应选择电解电容而不是瓷片电容。 后者不能很好传输数据,而且容易失败。 建议使用电解电容。 +5I S P 下载口1P 1. 535R S T7P 1. 79P 1. 6108642I S P 4 系统软件设计 系统软件设 计主要包括显示子程序,键盘子程序,输入处理程序。 主程序软件设计 主程序的流程图如图所示。 单片机系统课程设计 17 初 始 化是 否 按 键 按 下开 始输 入 处 理1602显 示NY结 束 图 主流程图 主程序 构成无限循环,主要完成单片机初始化, 之后是程序进入一个死循环,从而不断地检测是否有按键按下,如果有按键按下则进入按键处理,在按键处理函数中有显示函数来进行数值显示。 单片机系统课程设计 18 输 入 处 理按 键 是 0 ~ 9且 w = 1N u m 1 采 集按 键 是 “ = ”且 w = 2调 用 初 始 化 程序 清 屏N u m 2 采 集 并 记录 运 算 符按 键 是 否 为 0 ~ 9按 键 为 “ = ”调 用 计 算 函 数并 显 示调 用 计 算 函 数并 显 示记 录 运 算 符f h , 以 这 次 的结 果 为 N u mNYNYNYNY 图 输入处理流程图 处理函数式主程序中的关键环节主要进行一些输入处理和显示,硬件图中共有按键 16个分别是: 7 8 9 + 4 5 6 1 2 3 * 0 = / % 单片机系统课程设计 19 输入识别部分可以分为三类, 数值输入( 0~9), 等于( =) 运算符号输入( +、 、 /、 *、 %)。 对于数值输入,可以先判断是数值 1还是数值 2输入,通过标记符 W来判断,如果 W=1,则是数值 1 输入,再进行输入类型判断,如果是数值输入值 num1=num1*10+key,如果是等于输入,而且还是在对数值 1进行处理则进行初始化,如果是符号输入,则将符号位 W=2,进入数值 2输入处理,并记录符号,在对数值 2 进行处理是同数值 1一样只有当输入是‘ =’号是不再是初始化而是进行运算数值 1和数值 2处理并输出结果。 在输出结果后如果想利用前一次运算结果进行计算,则直接输入符号,不用进行 num1 输入,这时系统会自动将将上一次运算结果 的值赋给数值 1,然后将标记 W=2,进行数值 2输入。 键盘程序设计 在操作按键时,无论是按下还是松开,触点在闭合和断开时均会产生抖动,此时逻辑电平是不稳的,如果得不到正确处理,可能会引起单片机对按键命令的错误执行。 解决这个问题的简单方法是利用软件延时。 在单片机处理按键操作后都延时 5ms,如果确定是按键后再延时 20ms,这样基本可以避免键盘的抖动。 然后由单片机进行键码分析,并执行相应的命令,显示并且返回。 下图 是键盘程序设计流程图。 单片机系统课程设计 20 开 始有 按 键 闭合。 调 用 延 时 子 程序 20ms有 按 键 闭 合键 码 分 析执 行 对 应 功 能并 显 示结 束YYNN 图 键盘程序流程图 按键 设置采用了扫描法,要判断键盘中有无键按下时将全部行线 Y0Y3 置低电平,列线置高电平,然后检测列线的状态。 只要有一列的电平为低, 则表示键盘中有键被按下,而 且闭合的键位于低电平线与 4 根行线相交叉的 4 个按键之中。 若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置时,在确认有键按下后,即可进入确定具体闭合键的过程。 其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。 在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。 若某列为低,则该列线与置为低电平的行线 交叉处的按键就是闭合的按键。 例如将单片机的 P1 口用作键盘 I/O 口,键盘的列线接到 P1 口的低 4 位,键盘的 单片机系统课程设计 21 行线接到 P1 口的高 4 位。 列线 分别接有 4 个上拉电阻到正电源 +5V,并把列线 设置为输入线,行线 设置为输出线。 4 根行线和 4根列线形成 16 个相交点,这些交点即为键盘按键。 在单片机应用系统设计中,系统有两性能很大一部分取决于键盘处理程序。 在按 键时按得快了没有反应,按慢了一连响应几次,总给人迟钝感,不能使人满意。 在该设计中用以下思路设计的键处理程序。 首 先要判断有没有键值,若有键值,再判断是否为首次按下: ( 1)若首次按下:判断是否与上次按下的键值相同 :是否已经按下了 300ms。 1).若已经按下 300ms 则将此键做为连键处理。 2).若不是连键则判断:是否按下 20ms。 1.若确认按下 20ms,得到有效键值等待弹起 2.若不是按下 20ms 直接结束处理( ret)。 ( ret)。 ( 2)若不 是首次按下:将键值暂存起来,标志置位结束处理。 如果无键值,则判断是否有键值已被确认 ( 1)若有键已被确认:判断按键是否首次抬起 :判断抬起延时时间( 20ms)是否到达 1.若延时到则将标志处理结束处理。 2.若延时未到直接结束处理( ret)。 :直接结束处理( ret)。 ( 2)若没有键被确认:直接结束处理( ret)。 5 系统仿真与调试 仿真部分采用 proteus 软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。 首先打开 proteus 软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择已经编译好的 *.hex 文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。 以下是本次实验通过 proteus 的结果的截图: 单片机系统课程设计 22 图 proteus 仿真结果 1 图 proteus 仿真结果 2 通过 proteus 软件仿真,已经能够满足本次课程设计任务书中的要求,下面通过实物的单片机开发板来进行调试,通过 usb 连接电脑拷入程序,运行,也能 单片机系统课程设计 23 够 完成任务书的要求,结果如下: 图 单片机开发板调试结果 1 单片机系统课程设计 24 图 单片机开发板调试结果图 2 单片机系统课程设计 25 图 单片机开发板调试结果 2 6 总结 课程设计是培养学生运用所学的专业知识,发现,提出,分析和解决实际问题,锻炼实际动手能力的重要环节,是对学生实际工作能力的具体训练和考察,随着科学技术日新月异的发展,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说遍布我们生活之中。 这次设计进一步端正了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求。 急于求成是不好的,通过此 次毕业设计我深有体会。 如果省略了 单片机系统课程设计 26 那些必要的步骤,急于求成,不仅会浪费时间,还会适得其反。 我觉得动手之前,应该有清楚的步骤,这一步是很重要的。 就目前来说,我的动手能力虽然还有差距,但我知道,通过我的不懈努力,在动手方面,我会得到提高。 这一点,我坚信。 在此次的毕业设计中我最大的体会就是进一步认识到了理论联系实践的重要性。 一份耕耘,一份收获。 通过这段时间的设计,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够有很高的效率,才能够让自己的工作更完美。 总而言之,此次毕业设计让我学到了好多平时在课堂上学不到的东西,增加了我的知识运用能力,增强我的实际操作能力。 谢谢老师给我们提供这么好的机会,为我们之后走向社会奠定了一个好的基础。 参考文献 [1] 杨家成. 单片机 原理与应用及 C51 程序设计 [M]. 北京 :清华大学 出版社 ,2020 [2] 夏路易 石宗义 . Protel 99se 电路原理图与电路板设计教程 [M]. 北京:北京希望电子 出版社, 2020 [6] 阎石 .数字电子技术基础 [M].北京 :高等教育出版社 ,2020. 附录 1 系统原理图 单片机系统课程设计 27 1 2 MC R Y S T A LC13 0 p FC23 0 p FR11 0 KV C CS1C31 0 p FVSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D714L C D 1 6 0 2L C D 1 6 0 2G N D1 0 kP O T 2S07S18S29S31S44S55S66S7+S81S92S 1 03S 1 1*S 1 20S 1 3=S 1 4%S 1 5/P 1 .0P 1 .1P 1 .2P 1 .3R21KR31KR41KR51KR61KR71KR81KR91K+5P 1 .78P 1 .67P 1 .56P 1 .45P 1 .34P 1 .2。基于89c51的计算器设计
相关推荐
统电路搭建起温度测量系统的硬件部分。 图 电源电路的硬件设计 5 图 温度测量系统硬件连接图 2. 2 各电路模块分析 2. 2. 1 电源电路 单片机、温度传感器、数码管都支持 5V 电源工作,因此电源只需要单一 5V 供电即可,然后用芯片 7805 将直流电压降到稳定到 5V,特别的芯片 7805 的输入电压应比输出电压高47V,所以最好选用输出电压 9~12V 的变压器。 如 图 1,
实被按下了,此时就跳转至相应的程序标号处,执行相应的功能。 (3)开始计时 若确认“开始计时”键被按下,则跳转至程序标号“ RUN”处,将定时器 0 计时允许控制位 TR0 置位 ,则定时器开始运行。 此动作完成后,返回按键检测程序,等待操作者的下一次指令。 (4)计时程序 定时器 0 计时至 10ms,溢出,引发中断,程序跳转至定时器 0 中断服务程序入口 000BH 处执行。
单片机LCD显示模块集成功放 报警器键盘模块AD 转换运算放大器 模拟温度传感器 4 该方案使用了 AT89C51单片机作为控制核心 ,以智能温度传感器 DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过 4 4 键盘模块对正常温度进行设置显示电路采用 128 64 LCD 模块,使用 LM386 作为报警电路中的功率放大器。 图 22 基于数字温度传感器测量系 统方案
PO 线 饱和区 性 区 0 IF 图 ( b)红外发光二极管的输出特性曲线 由图可见,在工作电流 较小时,输出光功率 与工作电流 成线性关系。 当工作电流 IF较大时,曲线产生了弯曲,红外发光二极管饱和, PO与 IF就不再成线性关系了,形成了非线性工作区。 在红外线遥控电路中,红外发光二极管一般多工作 在开关状态(数字调制)。 因此,对于输出特性是否在线性区没有要求。 三
3 02 图 DS1302 芯片引脚图 其的引脚功能参照表。 表 DS1302 引脚功能说明 引脚号 名称 功能 1 VCC1 备份电源输入 2 X1 晶振输入 3 X2 晶振输出 4 GND 地 5 RST 控制移位寄存器 /复位 6 I/O 数据输入 /输出 7 SCLK 串行时钟 8 VCC2 主电源输入 电子时钟硬件电路设计 电子闹钟至少要包括秒信号发生器、时间显示电路、按键电路
业、解惑”,是一件任重道远的事情,我更加需要不断努力提高自身的综合素质和教学水平。 三、班主任工作方面 在班主任日常管理工作中,积极负责,认真到位,事事留心。 从早晨的卫生监督,作业上交,早读到课间纪律,课堂纪律,午休管理,自习课,晚自修等等,每样事务都负责到底,细致监督。 当然,在监督他们的同时不忘结合他们的个性特点进行思想道德教育,以培养他们正确的学习目标 ...... 本文来自公务员之家