下载此文档

MSP430-电子万年历.pdf


文档分类:高等教育 | 页数:约38页 举报非法文档有奖
1/38
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/38 下载此文档
文档列表 文档介绍
该【MSP430-电子万年历 】是由【秋江孤影】上传分享,文档一共【38】页,该文档可以免费在线阅读,需要了解更多关于【MSP430-电子万年历 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
如有侵权,请联系网站删除,仅供学****与交流
MSP430-电子万年历
【精品文档】第1页:.
如有侵权,请联系网站删除,仅供学****与交流
目录
.....................................................0
....................................................0
................................................0
................................................0
..........................................................1
........................................1
.................................................1
...........................................1
........................................1
.......................2
..............................................2
..............................................2
............................2
......................................2
................................2
..............................3
.............3
...........................................3
.........................................3
...................................3
.................................4
................4
........................................4
.........................................................5
................................................5
............................................5
................................................6
......................................6
......................................6
..........................................7
【精品文档】第2页:.
如有侵权,请联系网站删除,仅供学****与交流
....................................................8
......................................9
........................................9
.........................................10
........................................10
........................................10
........................................10
........................................10
.....................................11
.........................................................12
.....................................................12
....................................................12
......................................................12
....................................................12
..................................................13
........................................................13
............................................................13
【精品文档】第3页:.
如有侵权,请联系网站删除,仅供学****与交流


本次课程设计的要求是制作一个电子万年历,要求在显示屏上显示年、月、
日、时、分、秒、周、温度等信息,并且能够自行修改相关信息,且在修改信息
时时钟停振。根据要求所设计的系统的总体框架如图1所示:
矩阵键盘
MSP430F5338A
DS130212864DS18B20
时钟芯片显示屏温度芯片
图1系统总体框架图
1、单片机最小系统
要求系统设计使用TexasInstrument公司的MSP430F5438A单片机作为系
统的核心控制器。
2、时钟芯片DS1302
DS1302是dallas公司推出的一种高性能、定功耗的实时时钟芯片,内含
一个实时时钟和31字节的静态RAM,采用SPI三线接口与CPU通信。
3、温度芯片DS18B20
DS18B20的数字温度计提供9位到12位的摄氏温度测量,并具有报警功
能,DS18B20通过定义仅需要一个数据线(和地面)与中央微处理器通信。
它的工作范围为-55°C至+125°C,在-10°C至+85°C的范围内精确
到±℃。
4、矩阵键盘
使用4*3的矩阵键盘,可以通过矩阵键盘得到0~9的数字也可以生成“*”
和“#”,用户可通过显示屏与矩阵键盘对DS1302的时间进行自定义修改。
5、液晶屏12864
液晶屏为128*64点阵屏幕,在液晶上显示时间和温度信息,用户可以通过
显示屏查看时间和温度,并根据提示对DS1302内时间进行修改。


单片机开机后(第一次开机会对DS1302初始化赋初值),会在显示屏上显示
从DS1302中读取的时间信息和从DS18B20中读出的温度信息,在不对矩阵键盘
进行操作的情况下,系统正常读取时间和温度显示。当需要修改时间信息时,按
对应键进入修改界面,进入修改后,DS1302停止工作,通过矩阵键盘选择所要
【精品文档】第0页:.
如有侵权,请联系网站删除,仅供学****与交流
修改的内容,修改完成后将修改值存入DS1302,修改完成,使DS1302继续工作,
退回显示时间和温度的界面。

此次课设课题中硬件部分的选取与设计主要包含以下模块:MSP430F5438A
单片机,液晶屏12864,4*3矩阵键盘,DS1302时钟芯片,DS18B20温度芯片,
若干连接线。

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位
超低功耗、具有精简指令集(RISC)的混合信号处理器(MixedSignalProcessor)。
称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电
路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。该
系列单片机多应用于需要电池供电的便携式仪器仪表中。在超低功耗方面,其处
理器功耗(-,-400uA)和口线输入漏电流(最大50nA)在业界都是最低
的,在运算性能上,指令速度可以达到16MIPS,在开发工具上,支持最先进的
JTAG调制,在系统整合方面,根据其不同产品,集成了许多功能模块,性能稳
定,可靠性高。MSP430F5438A主要性能参数:
(1)高达25MHz的CPU速度。
(2)-。
(3)高达256KB的闪存。
(4)高达18KB的RAM。
(5)独特的USB开发套件。
(6)超低功耗5us之内快速从待机模式唤醒。
图2MSP430F5438A单片机实物图


矩阵键盘将键盘以矩阵形式排列,本次课设使用的是4*3矩阵键盘,4行3
列,用来修改时间,如图3所示。在矩阵式键盘中,每条水平线和垂直线在交叉
处不直接连通,而是通过一个按键加以连接,将按键当作一个开关,以行扫描为
例,在矩阵键盘函数中会对四行不断进行扫描,直到有按键按下后(扫描到对应
行时),该键即可导通,从而使单片机收到按键信息。

【精品文档】第1页:.
如有侵权,请联系网站删除,仅供学****与交流
图3矩阵键盘实物图

图4矩阵键盘电路接口
~,每行分别于单片机的
~。


12864汉字图形点阵液晶显示模块,可显示汉字及图形。其主要特征有如下
几点:
(1)显示分辨率:128*64
(2)内置汉字字库,提供8192个16*16点阵汉字
(3)内置128个8*16点阵字符
(4)通信方式:串口、并口
(5)低电源电压(3~)
(6)工作温度:0~55度
图512864液晶的引脚图
本次的课程设计使用的液晶屏是12864。具有8位并行和3线串行连接方式,
内部含有简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置
8192个16*16点阵的中文汉字,和128个8*16点阵的字符,可以显示4行8列
16*16点阵的汉字,也可完成图形显示,具有光标显示、画面移位、自定义字符、
睡眠模式等功能,操作简单。

图612864与单片机的接口电路
液晶的DB0-~,,,
,,,置高,表示并行。


DS1302是DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,内含一个
实时时钟/日历和31字节静态RAM,采用SPI三线接口与CPU通信。
(1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、
月、年的能力,还有闰年调整的能力。
(2)内部含有31个字节静态RAM,可提供用户访问。
(3)采用串行数据传送方式,使得管脚数量最少,简单SPI3线接口。
【精品文档】第2页:.
如有侵权,请联系网站删除,仅供学****与交流
(4)工作电压范围宽:~。
(5)工作电流:,小于300nA。
(6)时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。
(7)采用8脚DIP封装或SOIC封装。
(8)与TTL兼容,Vcc=5V。
(9)可选工业级温度范围:-40C~+85C。
(10)具有涓流充电能力。
(11)采用主电源和备份电源双电源供应。
(12)备份电源可由电池或大容量电容实现。
图7DS1302芯片的引脚图

图8DS1302芯片实物图

DS1302与单片机的连接仅需要3条线:时钟线SCLK、数据线I/O和复位线
RST。连接图如下图。,数据线I/,复位
,x1和x2之间连接了一个基频为32768HZ的外部晶振,GND
接地,Vcc1为备用电源,Vcc2接单片机上3V电压。
图9DS1302接口电路图

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:
一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于CPU与各
种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串
行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲
突保护;总线竞争保护等。


图10DS18B20芯片图
该芯片仅需一个端口引脚进行通信,每个器件有唯一的64位的序列号存储在
存储器中,高速暂存器中含有两个字节的温度寄存器,这两个寄存器用来存储温
度传感器输出的数据,除此之外,高速暂存器提供一个直接的温度报警值寄存器
【精品文档】第3页:.
如有侵权,请联系网站删除,仅供学****与交流
(TH和TL),和一个字节的配置寄存器,它们是非易失性的可擦除程序寄存器
(EEPROM),所以存储的数据在器件掉电时不会消失。可通过数据线供电,供
,测温范围为-55℃到+125℃,在-10℃到+85℃范围内精确
度为±5℃。温度计分辨率可以被使用者选择为9-12位,DS18B20芯片图如图9
所示。
GND:电源地。
VDD:电源引脚。
DQ:数据I/O。

图11DS18B20芯片实物图

图12DS18B20接口电路图
(1)DS18B20的VDD接单片机的电源(),GND接地,DQ为
数据接口,负责发送和接收数据。
(2)DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精
度为用户可编程的9,10,11或12位,℃,℃,℃℃
增量递增。在上电状态下默认的精度为12位。
(3)DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换
时,总线控制器必须发出[44h]命令。在那之后,产生的温度数据以两个字节的形
式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当
DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”,
DS18B20正在温度转换中返回0,转换结束返回1。如果DS18B20由寄生电源供电,
除非在进入温度转换时总线被一个强上拉拉高,否则将不会由返回值。
(4)VDD连接5V电压,GND接地,。
(5)DS18B20储存器如图13所示,位0和位1为测得温度信息的LSB和
MSB。这两个字节是只读的。第2和第3字节是TH和TL的拷贝。位4包含配
置寄存器数据。位5,6和7被器件保留,禁止写入;这些数据在读回时全部表现
为逻辑1。所以当读取温度时,需要连续读取两次(位0和位1)才能将温度信息
完全读出。
图13DS18B20存储器图

【精品文档】第4页:.
如有侵权,请联系网站删除,仅供学****与交流
DS18B20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。当全部
器件经由一个3态端口或者漏极开路端口(DQ引脚在DS18B20上的情况下)与总
线连接的时候,控制线需要连接一个弱上拉电阻。在这个总线系统中,微控制器
(主器件)依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的
器件地址。由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上
是无限的。


课设中单片机连接显示屏12864、实时时钟芯片DS1302、温控芯片DS18B20
以及矩阵键盘,在正常情况下矩阵键盘不工作,单片机从DS1302和DS18B20中
读取相应信息并显示在显示屏12864上,具体读写代码在附录中有详细说明,当
需要修改时间时,矩阵键盘开始工作。按矩阵键盘“0”键进入修改界面,选择要
修改的内容(年、月、日、时、分、秒、周),修改过程中DS1302停振(通过将
秒寄存器中的最高位CH置1使其停振),DS18B20正常工作。选择修改内容时,
每一个键盘值对应修改一个内容(其中一个键代表退出),选择后即可进入修改,
修改后,将修改内容发送给DS1302,最后退出修改界面,正常显示时间和温度。

开始
存入
DS1302MSP430F5
438A
12864显示时间、温度
单片机
DS18B20

“0”键是否

按下?
1-7键进入界面,判其他键
断键值?
#键
进入对应修改退出无操作
图14系统流程图
单片机在未收到矩阵键盘信号时,只是读取DS1302和DS18B20的时间和温度
信息并在12864上进行显示,当有“0”按键按下时,进入按键中断,1-7号按键
【精品文档】第5页:.
如有侵权,请联系网站删除,仅供学****与交流
分别对应年、周、月、日、时、分、秒的修改,“#”为退出修改,修改时间时,
DS1302停止工作,时间修改结束后从上一次进入中断的时间开始运行。


if(P2IFG!=0X00)
delay_ms(30);
if(P2IFG!=0X00)
_EINT();
1、首先要进行按键进行修改界面的部分,由于程序采用按键中断,所以在判
断时没有进行扫描,而是直接判断终端标志位,当有按键按下时,P2IFG将不等
于0X00,以此判断出有按键按下,所以按下任意键都可以进入修改程序,但在本
程序中,在液晶屏上显示为按“0”键进入修改,原因是本次课设矩阵键盘不太灵
敏,1-7键在进入修改界面后都有选择修改内容的作用,而“0”键在进入修改界
面后不再做功能键使用,即使出现消抖不到位的情况也不会对修改产生影响。
2、在确认有键按下后,进入中断,DS1302停振,进入修改界面,屏幕上显示
供给用户修改的选择。

#pragmavector=PORT2_VECTOR
__interruptvoidPort2(void)//进入中断
do
change_disp();//修改界面
delayms(50);
key2();//key2用来取数值,选择对应修改内容
}while(j);//j初始化为1,当取到键值后变为0
1、进入修改界面后,用户可以选择修改内容(、、、、5.
时、、、#.退出),key2函数就是用来选择这些功能。变量j初始化为1,
一直进行循环,当在循环时有按键按下时进入key2函数,对矩阵键盘进行行扫描
(0XFE、0XFD、0XFB、0XF7),当按键按下时,对应按键的开关被打开(由列控制),
当行扫描扫到时,按键出形成通路,相应的按键信息将发送给单片机,按键成功。
2、key2函数中,不同键值实质代表不同的s值,s是选择修改哪种信息的变
量,键盘值1-7代表s值1-7;而s值(1-7)分别代表进入年、周、月、日、时、
【精品文档】第6页:.
如有侵权,请联系网站删除,仅供学****与交流
分、秒修改,s值为11时表示按下为“#”键,意为退出修改。当按键成功后,
将j置为0,表示跳出当前DO-WHILE循环,程序继续向下执行。
__interruptvoidPort2(void)
if(s==1)//s=1时修改年
change_year();
if(s==7)//s=7时修改秒
change_second();
if(s==11)//s=11时退出修改
P2IFG=0X00;
lcd_clr();
if(s!=7)//如果修改的不是秒,则将中断前的秒还原
//这是将之前时钟停振进行复原的操作
TIME[0]=TIME1[0];
Ds1302Init();
3、该段为选择修改内容的部分,键值1-7在上一阶段已经介绍,当s=11时
意为按下“#”键,退出修改界面,回到主界面。
4、最后if(s!=7)TIME[0]=TIME1[0];意为假如用户之前修改的内容不是秒,
则修改完成后,时钟恢复运转后将秒数还原成停振时的秒数,也就是满足题目要
求的修改过程中时钟停振的要求(TIME1[0]是暂存停振前秒数的数组,TIME[0]
是用来存储时间信息的数组),如果修改的是秒(s=7),则停振后秒数已经发生改
变,所以不用进行此操作(秒数已经有了新值),但并不影响时钟恢复工作(因为
正常的秒数为0-59,CH位为0)。

key1():键入个位内容函数
key0():键入十位内容函数
1、当进入修改时间函数后(如change_year()...change_second()),用key1
()和key0()函数分别键入所要修改值的个位和十位,根据我们平时的****惯,
我们一般先输入十位,再输入个位,所以先调用key0()函数,再调用key1()
函数,矩阵键盘扫描原理与之前相同。假设我们要输入的年份为16年,则调用
key0()函数时,按下按键“1”,得到p=0X10,然后调用key1()函数,按下键
“6”,得到h=0X06,然后通过q=h|p,得到BCD码0X16,写入DS1302中,修改
【精品文档】第7页:.
如有侵权,请联系网站删除,仅供学****与交流
成功。

电子万年历中,液晶的作用是显示时间和温度,以及给用户提供修改的显示界
面,显示用户修改的信息。
显示功能在之前的实验中已经多次涉及,只需要注意汉字为16X16的点阵,一
个屏幕上只能显示4X8个汉字即可,用数组存储汉字,通过for循环将所需要显
示的相关信息读出。
需要注意的是在修改时间的时候,输入的时间需要显示在屏幕上,且输入的数
字要实时显示在屏幕上,以修改年为例:
voidchange_year()
dis[16]=
{0xd6,0xd0+12,0xc9,0xe0+8,0xd6,0xc0+3,'',0,0,0,0,0,0,0,0,0};
Lcd_WriteCmd(0x90);
for(inti=0;i<7;i++)
Lcd_WriteData(dis[i]);
do
u=1;
key0();
temp1=p>>4;
dis[7]=askii[temp1];
}while(u==1);
Lcd_WriteData(dis[6]);
Lcd_WriteData(dis[7]);
do
u=1;
key1();
temp2=h&0x0f;
dis[8]=askii[temp2];
}while(u==1);
Lcd_WriteData(dis[8]);
delayms(1000);
【精品文档】第8页:.
如有侵权,请联系网站删除,仅供学****与交流
在未按键输入的时候先显示“设置年”三个字,然后扫描键盘,当输入了数字
后,将第一个数字存入dis[7]中(前六个存了设置年三个字),然后显示在屏幕
上,然后继续扫描,将输入的按键存在dis[8]中,然后进行显示,延时一秒后返
回初始界面。
其他相关函数:
voidWaitBusy(void)//延时一小段时间,等待LCD空闲
voidlcd_clr(void)//清除LCD的显示内容
voidLcd_WriteCmd(ucharcmdcode)//写指令
voidLcd_WriteData(uchardispdata)//写数据
voidLcd_Init()//初始化LCD
voidhanzi_Disp()//初始界面
voidchange_disp()//修改时间界面

首先要对DS1302的各个寄存器进行操作,那就要熟悉它的控制寄存器,控
制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写
入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如
下:
表2DS1302的控制命令的格式
D7D6D5D4D3D2D1D0
1RAM/CKA4A3A2A1A0R/W
3.

MSP430-电子万年历 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数38
  • 收藏数0 收藏
  • 顶次数0
  • 上传人秋江孤影
  • 文件大小1.33 MB
  • 时间2023-03-18