分类: 嵌入式
2014-10-29 19:19:47
原文地址:基于51的简单计算器设计 作者:一生有你llx
/******************************************************/
基于MCS-51的简易计算器
/******************************************************/
整体规划(1课时)
1、用protues进行原理图绘制
2、用keil软件进行代码编写与调试
3、Keil + protues进行仿真实验
4、处理器采用Atmel公司的AT89C51,晶振频率12MHz,源代码用C语言编写
5、此项目可以分为3个模块:LCD1602显示部分、按键扫描部分、核心计算部分
LCD1602模块(3课时)
1、阅读LCD1602手册,明白每一个引脚的用途,按照手册连接原理图
2、仔细阅读1602控制指令,编写LCD1602控制程序
指令1:清显示,指令码01H,光标复位到地址00H位置
指令2:光标复位,光标返回到地址00H
指令3:光标和显示模式设置 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:读数据
点击(此处)折叠或打开
LCD1602控制程序
按键模块
1、阅读课本第10章按键扫描方法
2、绘制按键原理图
3、编写按键扫描程序
点击(此处)折叠或打开
核心计算模块
1、测试LCD1602显示程序是否正确
2、测试按键扫描程序是否正确
3、在Linux环境下调试计算程序。
首先将扫描到的按键存储在数组中,然后从数组提取操作数和操作码,调用计算子程序进行计算,最后输入计算结果。
以上过程需要先在Linux环境下模拟,因此需要少许Linux知识。
点击(此处)折叠或打开