基于msp430片内传感器和1602液晶显示器的温度计综述Word格式.docx
《基于msp430片内传感器和1602液晶显示器的温度计综述Word格式.docx》由会员分享,可在线阅读,更多相关《基于msp430片内传感器和1602液晶显示器的温度计综述Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
引言3
第一章、总体分析5
1.1、功能和系统原理介绍5
1.2、元件清单6
第二章、硬件设计6
2.1、msp430的参数介绍6
2.2、1602液晶显示器7
第三章、电路设计8
3.1、系统原理图9
3.2、液晶显示电路图9
第四章、软件设计11
4.1、系统流程图11
4.2、程序12
第五章、感悟12
引言
单片机诞生于20世纪70年代,象Fairchid公司研制的F8单片微型计算机。
所谓单片机是利用大规模集成电路技术把中央处理单元(CenterProcessingUnit,也即常称的CPU)和数据存储器(RAM)、程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成一个最小的计算机系统,而现代的单片机则加上了中断单元,定时单元及A/D转换等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛。
80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个全新阶段,应用领域更广泛,许多家用电器均走向利用单片机控制的智能化发展道路。
1990年美国INTEL公司推出了80960超级32位单片机引起了计算机界的轰动,产品相继投放市场,成为单片机发展史上又一个重要的里程碑。
单片机的应用越来越广泛,msp430更是拥有极低功耗的优点。
而且430内部有温度传感器,还有ADC10模数转换模块,刚好可以用来显示温度。
第一章、总体分析
1.1、功能和系统原理介绍
功能介绍:
本设计可以通过片内温度传感器采集温度,然后用1602液晶显示器显示温度。
原理:
ADC10通过温度传感器采集温度值,然后输出到液晶显示器显示。
1.2、元件清单
msp430芯片1块
1602液晶显示器1个
滑动变阻器1个
杜邦线19根
第二章、硬件设计
2.1、msp430的参数介绍
1.msp430是一种低功耗性单片机。
如
(1)运行模式:
230uA在1MHZ频率和2.2V电压条件下。
(2)待机模式:
0.5uA。
(3)关闭模式:
0.1uA。
2.工作电压:
1.8V~3.6V
3.基本的时钟模块配置:
(1)内部具有超低功耗低频振荡器。
(2)具有四种校准频率并达到16MHz的内部频率。
(3)32kHz晶体。
(4)外部数字时钟。
4.具有快速的唤醒功能。
5.两个16的timer_A,分别具有三个捕获/比较寄存器。
6.20个支持触摸感应的I/O引脚。
7.通用串行通信接口(USCI)。
(1)支持自动波特率检测增强型通用异步收发器(UART)
(2)lrDA编译器和解码器。
(3)同步SPI和I2C.
8.用于模拟信号比较功能或者斜率模数(A\D)转换的片载比较器。
9.具有看门狗功能
10.带内部基准、采样与保持以及自动扫描功能的ADC10。
11.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
2.2、1602液晶显示器介绍
1.1602字符型液晶显示器实物如图:
1602字符型液晶显示器实物图
2.1602LCD的基本参数及引脚功能
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图所示:
1602LCD尺寸图
1602LCD主要技术参数:
显示容量:
16×
2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×
4.35(W×
H)mm
引脚功能说明
1602LCD采用标准的16脚(带背光)接口,各引脚接口说明如表所示:
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
表:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
第三章、电路原理图
3.1、系统原理图
3.2、液晶图
第四章、软件设计
4.1、系统流程图
4.2、程序
#include"
msp430.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineRSBIT0
#defineRWBIT1
#defineENBIT2
voidlcd_busy(void);
//测试LCD忙碌状态程序
voidlcd_wcmd(unsignedcharcmd);
//写入指令到LCD程序
voidlcd_wdat(unsignedchardat);
//写入数据到LCD程序
voidlcd_init(void);
//LCD初始化设定程序
unsignedcharmun[]={"
0123456789abcdef"
};
staticunsignedcharwendu=0;
/*******延时1***************************/
voiddelay_nms(unsignedintn)
{
unsignedinti=0,j=0;
for(i=n;
i>
0;
i--)
for(j=0;
j<
800;
j++);
//800
}
/***********延时2**********************/
voiddelay_mini(unsignedcharn)
while(n--)
{
_NOP();
}
/***********延时3**********************/
voiddelay(unsignedintcnt)//延时
while(cnt)
cnt--;
/*------------------------------------------------------------------------------*/
//测试LCD忙碌状态
voidlcd_busy(void)
{unsignedcharbz;
do{
P2OUT&
=~(EN);
//ep=0;
=~(RS);
//rs=0;
//指令
P2OUT|=RW;
//rw=1;
//读出
P1OUT=0xff;
//io=0xff;
P2OUT|=EN;
//ep=1;
delay_mini(10);
//_nop_();
//高电平读出1us
P1DIR=0;
;
bz=(P1IN&
BIT7)>
>
7;
//bz=0;
P1DIR=0xff;
}while(bz);
//bz=1表示忙,bz=0表示空闲
delay_mini(100);
//写入指令到LCD
voidlcd_wcmd(unsignedcharcmd)
lcd_busy();
//检测忙
=~(RW);
//rw=0;
//写入
delay_mini(5);
P1OUT=cmd;
//下降沿有效
//写入数据函数
voidlcd_wdat(unsignedcharData)
P2OUT|=RS;
//rs=1;
//数据
//rw=0;
P1OUT=Data;
//LCD初始化设定
voidlcd_init()
{P1DIR=0xff;
//设P6口为输入方式
P1SEL=0;
//设P6口为一般I/O口
P2DIR|=BIT0;
P2DIR|=BIT1;
P2DIR|=BIT2;
P2SEL=0;
lcd_wcmd(0x38);
//设置LCD为16X2显示,5X7点阵,八位数据接口
lcd_wcmd(0x06);
//LCD显示光标移动设置(光标地址指针加1,整屏显示不移动)
lcd_wcmd(0x0f);
//LCD开显示及光标设置(光标不闪烁,不显示"
_"
)
lcd_wcmd(0x01);
//清除LCD的显示内容
/******************主函数***************************