单片机课程综合设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与应用
2013年课程综合设计报告
设计题目
基于单片机的电热水杯设计
院系名称
计算机科学与技术
专业(班级)
计算机科学与技术
计本(2)班
姓名(学号)
指导教师
完成时间
2013年6月16日
课程设计任务书
摘要
随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中,电子万年历作为一种功能十分强大的日常计时工具,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长、误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间校准等功能,已逐步的出现在我们的日常生活中。一般日常生活中大都使用的是纸质日历。纸质日历显示效果不太好并且使用寿命不长,造成了一定的资源浪费。
beepoff();//关闭蜂鸣器
while(1)
{
TNL=shuju1302();//读-年-月-日-时-分-秒,并将万年历函数变量返回值送给闹铃变量TNL
if(TNL==1)
beepon();//蜂鸣器报警
else
beepoff();
disply1302();//送液晶显示屏显示
}
}
4.2 LCD12864函数
writecommand(0x01); //清屏,DDRAM的地址归零
writecommand(0x02); //地址归位
writecommand(0x0c); //显示开,光标关,反白关
writecommand(0x06); //DDRAM地址加1
}
void display(uchar y, uchar x, uchar *p)
#include "beep.h"//报警模块头文件
#define uchar unsigned char
#define uint unsigned int
uchar temp,TNL,almtemp;
void main()
{
Set_RTC(); //设置万年历初始时间
delay(500);
lcdset();//液晶显示屏初始化
针对传统的纸质日历局限性,本论文设计了一款基于单片机的电子万年历系统。本设计以AT89S52单片机为核心,构成系统主控制电路。AT89S52是一种带8K字节闪速可编程可擦除只读存储器的低电压、高性能CMOS 8位为控制器,全部信息用12864液晶显示时间、日期、闹铃及界面的切换由四个独立按键来实现,并可对闹铃开关进行设置。日历能显示阳历和阴历年、月、日以及星期、时、分、秒。如有节气及生日都会有提醒显示的功能。
19
A
VDD
背光源电压+5V(见注释3)
20
K
VSS
背光源负端0V (见注释3)
表2 液晶屏管脚功能
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
方案二:采用LED数码管动态扫描
数码管价格适中,对于显示数字最合适,但不能显示汉字、图形、显示效果比较差,并且采用LED数码管连接时接线多,硬件电路较为复杂。所以在此设计中不采用LED数码管显示。
方案三:采用LCD液晶显示屏
液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,所以在此设计中采用FYD12864-0402B液晶显示屏。
2.3.5液晶FYD12864-0402B基本特性
(1)低电源电压(VDD:+3.0--+5.5V)
(2)显示分辨率:128×64点
(3)内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
(4)内置 128个16×8点阵字符
(5)2MHZ时钟频率
(6)显示方式:STN、半透、正显
(7)驱动方式:1/32DUTY,1/5BIAS
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:8位或4位并口方式,L:串口方式(见注释1)
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(见注释2)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
VSS
背光源负端(见注释3)
(8)视角方向:6点
(9)背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
(10)通讯方式:串行、并口可选
(11)内置DC-DC转换电路,无需外加负压
(12)无需片选信号,简化软件设计
2.3.6液晶FYD12864-0402B串口接口管脚信号如表1、表2所示:
表1 液晶屏管脚
管脚号
电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:电子万年历;AT89S52;TLC549;12864液晶显示屏
1 设计要求与方案
1.1 设计要求
1.4系统工作原理说明
本电路包括基本的时钟电路模块、液晶显示模块、语音报时模块。各功能模块通过控制芯片连接起来,完成本设计要求。
电路实现的基本功能是电子万年历。通过液晶LCD12864,可显示年月日、时分秒、等基本信息。增强功能是具备时钟语音报时功能。即每到整点,系统会自动语音报时,报时信息包括日期及时间。
{
switch (y)
{
case 1:writecommand(0x7f+x); break; //液晶第一行
case 2:writecommand(0x8f+x); break; //0x90+(x-1)
case 3:writecommand(0x87+x); break;
case 4:writecommand(0x97+x); break;
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=L,E=H→L,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
2.3单元电路设计
2.3.1时钟电路
时钟芯片DS1302,控制电路如图4所示:
图4 时钟电路
时钟电路采用的是ds1302芯片,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。工作电压与单片机的输入电压比较适合。上面是它的一些基本的应用介绍。
default:break;
}
while(*p)
writedata(*p++);
}
4.3显示程序
#include "ds1302.h"
#include "LCD12864.h"
#include"delay.h"
#include<intrins.h>
#include <reg52.h>
#define uchar unsigned char
ds1302程序流程框图:
图3ds1302程序流程框图
2硬件系统的设计
2.1时钟芯片的选择方案
采用DS1302时钟芯片实现时钟。DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区。工作电压2.5V--5.5V范围内,2.5V时耗电小于300nA。按照系统设计功能的要求,初步确定系统由主控模块、时控模块、及显示模块和键盘接口模块共4个模块组成。主控芯片使用51系列AT89S52单片机时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。采用DS1302作为计时芯片可以做到计时准确。更重要的是DS1302可以在很小电流的后备电源2.5--5.5V电源,再2.5V时耗电小于300nA,而且DS1302可以编程选择多种充电电流来为备电源进行慢速充电,可以保证后备电源基本不耗电,显示模块采用液晶显示屏。
2.2单片机主控制模块的设计
AT89S52系列单片机是宏品科技生产的单片机,它是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统80C51,但速度快8~12倍。内部集成MAX810专用复位电路,250K/S即25万次/秒,针对电机控制、强干扰场合。它有高速、高可靠、低功耗、超低价、强抗静电、强抗干扰的功能。
#define uint unsigned int
3、课程设计整体电路
整体原理图如图7所示:
图7 原理图
4、课程设计部分程序
4.1 main主程序
#include <reg52.h>
#include <intrins.h>
#include "LCD12864.h"//液晶显示木块头文件
#include "ds1302.h"//时钟模块头文件
#include "delay.h"//延时模块头文件
名称
LEVEL
功能
1
VSS
0V
电源地
2
VDD
+5V
电源正(3.0V——5.5V)
3
V0
-
对比度(亮度)调整
4
CS
H/L
模组片选端,高电平有效
5
SID
H/L
串行数据输入端
6
CLK
H/L
串行同步时钟:上升沿时读取SID数据
15
PSB
L
L:串口方式(见注释1)
17
/RESET
H/L
复位端,低电平有效(见注释2)
(1)具有年、月、日、时、分、秒显示和校准功能。
(2)闹钟功能,提示时间到后以3分钟每次的频率报警提示用户,直到用户通过按键确定。
1.2系统基本方案选择和论证
方案一:采用89C51芯片作为硬件核心
采用Flash ROM内部只具4KBROM存储空间,由于本设计程序比较长,单片机内部的Flash ROM不够,需要加外部扩展ROM芯片24C016,电路设计较为复杂。同时此单片机也具有89C51的功能,且具有在线编程可能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时。由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
{
delay(100);
rs=0;
rw=0;
en=1;
P0=command; //液晶数据线P0
en=0;
}
void writedata(uchar date)
{
delay(100);
rs=1;
rw=0;
en=1;
P0=date;
en=0;
}
void lcdsetຫໍສະໝຸດ Baiduvoid)
{
writecommand(0x30); //基本指令集
2.3.2单片机最小控制系统
控制芯片使用AT89S52,控制部分最小系统如图5所示:
图5 单片机系统
2.3.3液晶显示模块
显示模块使用液晶FYD12864-0402B,电路原理图如图6所示
图6 液晶显示
2.3.4液晶FYD12864-0402B概述
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多。
AT89S52系列工作电压5.5V ~3.5V,工作频率范围0MHz~35MHz相当于普通8051的0MHz~420MHz。在芯片上,拥有灵巧的8 位CPU 和在系统,可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
#include "LCD12864.h"
#include"delay.h"
#include <reg52.h>
#define uchar unsigned char
sbit rs = P3^1;
sbit rw = P3^6;
sbit en = P3^7;
void writecommand(uchar command)
2013年课程综合设计报告
设计题目
基于单片机的电热水杯设计
院系名称
计算机科学与技术
专业(班级)
计算机科学与技术
计本(2)班
姓名(学号)
指导教师
完成时间
2013年6月16日
课程设计任务书
摘要
随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中,电子万年历作为一种功能十分强大的日常计时工具,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长、误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间校准等功能,已逐步的出现在我们的日常生活中。一般日常生活中大都使用的是纸质日历。纸质日历显示效果不太好并且使用寿命不长,造成了一定的资源浪费。
beepoff();//关闭蜂鸣器
while(1)
{
TNL=shuju1302();//读-年-月-日-时-分-秒,并将万年历函数变量返回值送给闹铃变量TNL
if(TNL==1)
beepon();//蜂鸣器报警
else
beepoff();
disply1302();//送液晶显示屏显示
}
}
4.2 LCD12864函数
writecommand(0x01); //清屏,DDRAM的地址归零
writecommand(0x02); //地址归位
writecommand(0x0c); //显示开,光标关,反白关
writecommand(0x06); //DDRAM地址加1
}
void display(uchar y, uchar x, uchar *p)
#include "beep.h"//报警模块头文件
#define uchar unsigned char
#define uint unsigned int
uchar temp,TNL,almtemp;
void main()
{
Set_RTC(); //设置万年历初始时间
delay(500);
lcdset();//液晶显示屏初始化
针对传统的纸质日历局限性,本论文设计了一款基于单片机的电子万年历系统。本设计以AT89S52单片机为核心,构成系统主控制电路。AT89S52是一种带8K字节闪速可编程可擦除只读存储器的低电压、高性能CMOS 8位为控制器,全部信息用12864液晶显示时间、日期、闹铃及界面的切换由四个独立按键来实现,并可对闹铃开关进行设置。日历能显示阳历和阴历年、月、日以及星期、时、分、秒。如有节气及生日都会有提醒显示的功能。
19
A
VDD
背光源电压+5V(见注释3)
20
K
VSS
背光源负端0V (见注释3)
表2 液晶屏管脚功能
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
方案二:采用LED数码管动态扫描
数码管价格适中,对于显示数字最合适,但不能显示汉字、图形、显示效果比较差,并且采用LED数码管连接时接线多,硬件电路较为复杂。所以在此设计中不采用LED数码管显示。
方案三:采用LCD液晶显示屏
液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,所以在此设计中采用FYD12864-0402B液晶显示屏。
2.3.5液晶FYD12864-0402B基本特性
(1)低电源电压(VDD:+3.0--+5.5V)
(2)显示分辨率:128×64点
(3)内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
(4)内置 128个16×8点阵字符
(5)2MHZ时钟频率
(6)显示方式:STN、半透、正显
(7)驱动方式:1/32DUTY,1/5BIAS
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:8位或4位并口方式,L:串口方式(见注释1)
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(见注释2)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
VSS
背光源负端(见注释3)
(8)视角方向:6点
(9)背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
(10)通讯方式:串行、并口可选
(11)内置DC-DC转换电路,无需外加负压
(12)无需片选信号,简化软件设计
2.3.6液晶FYD12864-0402B串口接口管脚信号如表1、表2所示:
表1 液晶屏管脚
管脚号
电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:电子万年历;AT89S52;TLC549;12864液晶显示屏
1 设计要求与方案
1.1 设计要求
1.4系统工作原理说明
本电路包括基本的时钟电路模块、液晶显示模块、语音报时模块。各功能模块通过控制芯片连接起来,完成本设计要求。
电路实现的基本功能是电子万年历。通过液晶LCD12864,可显示年月日、时分秒、等基本信息。增强功能是具备时钟语音报时功能。即每到整点,系统会自动语音报时,报时信息包括日期及时间。
{
switch (y)
{
case 1:writecommand(0x7f+x); break; //液晶第一行
case 2:writecommand(0x8f+x); break; //0x90+(x-1)
case 3:writecommand(0x87+x); break;
case 4:writecommand(0x97+x); break;
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=L,E=H→L,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
2.3单元电路设计
2.3.1时钟电路
时钟芯片DS1302,控制电路如图4所示:
图4 时钟电路
时钟电路采用的是ds1302芯片,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。工作电压与单片机的输入电压比较适合。上面是它的一些基本的应用介绍。
default:break;
}
while(*p)
writedata(*p++);
}
4.3显示程序
#include "ds1302.h"
#include "LCD12864.h"
#include"delay.h"
#include<intrins.h>
#include <reg52.h>
#define uchar unsigned char
ds1302程序流程框图:
图3ds1302程序流程框图
2硬件系统的设计
2.1时钟芯片的选择方案
采用DS1302时钟芯片实现时钟。DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区。工作电压2.5V--5.5V范围内,2.5V时耗电小于300nA。按照系统设计功能的要求,初步确定系统由主控模块、时控模块、及显示模块和键盘接口模块共4个模块组成。主控芯片使用51系列AT89S52单片机时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。采用DS1302作为计时芯片可以做到计时准确。更重要的是DS1302可以在很小电流的后备电源2.5--5.5V电源,再2.5V时耗电小于300nA,而且DS1302可以编程选择多种充电电流来为备电源进行慢速充电,可以保证后备电源基本不耗电,显示模块采用液晶显示屏。
2.2单片机主控制模块的设计
AT89S52系列单片机是宏品科技生产的单片机,它是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统80C51,但速度快8~12倍。内部集成MAX810专用复位电路,250K/S即25万次/秒,针对电机控制、强干扰场合。它有高速、高可靠、低功耗、超低价、强抗静电、强抗干扰的功能。
#define uint unsigned int
3、课程设计整体电路
整体原理图如图7所示:
图7 原理图
4、课程设计部分程序
4.1 main主程序
#include <reg52.h>
#include <intrins.h>
#include "LCD12864.h"//液晶显示木块头文件
#include "ds1302.h"//时钟模块头文件
#include "delay.h"//延时模块头文件
名称
LEVEL
功能
1
VSS
0V
电源地
2
VDD
+5V
电源正(3.0V——5.5V)
3
V0
-
对比度(亮度)调整
4
CS
H/L
模组片选端,高电平有效
5
SID
H/L
串行数据输入端
6
CLK
H/L
串行同步时钟:上升沿时读取SID数据
15
PSB
L
L:串口方式(见注释1)
17
/RESET
H/L
复位端,低电平有效(见注释2)
(1)具有年、月、日、时、分、秒显示和校准功能。
(2)闹钟功能,提示时间到后以3分钟每次的频率报警提示用户,直到用户通过按键确定。
1.2系统基本方案选择和论证
方案一:采用89C51芯片作为硬件核心
采用Flash ROM内部只具4KBROM存储空间,由于本设计程序比较长,单片机内部的Flash ROM不够,需要加外部扩展ROM芯片24C016,电路设计较为复杂。同时此单片机也具有89C51的功能,且具有在线编程可能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时。由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
{
delay(100);
rs=0;
rw=0;
en=1;
P0=command; //液晶数据线P0
en=0;
}
void writedata(uchar date)
{
delay(100);
rs=1;
rw=0;
en=1;
P0=date;
en=0;
}
void lcdsetຫໍສະໝຸດ Baiduvoid)
{
writecommand(0x30); //基本指令集
2.3.2单片机最小控制系统
控制芯片使用AT89S52,控制部分最小系统如图5所示:
图5 单片机系统
2.3.3液晶显示模块
显示模块使用液晶FYD12864-0402B,电路原理图如图6所示
图6 液晶显示
2.3.4液晶FYD12864-0402B概述
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多。
AT89S52系列工作电压5.5V ~3.5V,工作频率范围0MHz~35MHz相当于普通8051的0MHz~420MHz。在芯片上,拥有灵巧的8 位CPU 和在系统,可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
#include "LCD12864.h"
#include"delay.h"
#include <reg52.h>
#define uchar unsigned char
sbit rs = P3^1;
sbit rw = P3^6;
sbit en = P3^7;
void writecommand(uchar command)