单片机课程设计报告简易计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实训报告
———简易计算器
姓名***
学号***
专业***
学校***
指导教师 ***
实训时间
目录
中文摘要............................................................1
关键词.............................................................1
1 实训任务.........................................................1
主要功能设计................................................1
任务目的....................................................1
2 整体设计方案.....................................................1
方案论证....................................................1
系统框图....................................................2
3 控制软件设计....................................................2
程序时序总图...............................................2
液晶显示软件设计............................................3
键盘输入软件设计...........................................5
计算函数设置...............................................7
4 软件调试........................................................8
个人小结...........................................................8参考文献...........................................................9附录...............................................................9
摘要:计算器是人们的日常生活中是最常见的电子产品之一,它应用极广、发展迅猛,并且不断出现着拥有更加强大功能的计算器。为了解和研究计算器,本次实训设计制作了一个简易计算器,能够在五位的计算范围内进行“+”、“-”、“*”、“/”的基本运算,能进行负数的精确结果显示。该计算器以AT89C51单片机芯片作为核心。采用LCD1602工业字符液晶进行显示。完成的计算器经过检验能够完整的实现预设功能,各种细节完善,具有很高的使用价值。
关键词:单片机;简易计算器;AT89C51;LCD1602
1实训任务
主要功能设计
以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602工业字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
任务目的
通过本次实训提高我们的单片机硬件设计、软件编程能力,自主学习到更多的单片机应用知识。
2 整体设计方案
方案论证
计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。具体如下:
(1)LCD显示电路
LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,但是初学者往往要注意结合LCD本身的时序图来完善初始化程序。又以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,故采用LCD.
(2)4*4键盘扫描电路
对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。
根据读到的值组合就可以查表 1 得到的键码,因为编程的方式,本次实训采用逐行扫描来读取键值,方便程序编写。
(3)单片机微控制电路:
微控制电路就是以AT89C51为核心的控制核心,主要注意晶振电路的接法和复位电路的接法。
系统框图
系统框图
3 控制软件设计:
实训中采用C语言对单片机进行编程,采用的是自下而上的设计方式,先设计出每一个模块(子程序),然后再慢慢扩大,最后组成程序。
程序总时序图
液晶显示软件设计
(1)显示流程
(2)1602液晶显示时序图,通过时序图,所有编程问题都可以得以解决。
(3)由时序图可以写出液晶的初始化函数、功能设置函数、清屏函数、写指令函数、写数据函数。
void delay1() //采用软件实现延时,5个机器周期
{
_nop_();
_nop_();
_nop_();
}
void int1() //LCD初始化
{
lcd_w_cmd(0x3c);
lcd_w_cmd(0x0c);
lcd_w_cmd(0x01);
lcd_w_cmd(0x06);
lcd_w_cmd(0x80);
}
unsigned char lcd_r_start() //读状态字
{
unsigned char s;
RW=1;
delay1();
RS=0;
delay1();
E=1;
delay1();
s=P1;
delay1();
E=0;
delay1();
RW=0;