MSP430单片机实验指导书Word文档格式.docx
《MSP430单片机实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《MSP430单片机实验指导书Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
六、实验步骤
1、运用PROTEU仿真软件绘制电路图;
2、运用IARforMSP43C编写流水灯程序,并且生成.h'
ex'
或“.d90”文件
3、将.h'
或“.d90”文件软件加载到PROTEU仿真软件中;
4、换一种流水灯的亮灭顺序,改变延时时间的大小,多次实验,灵活使用
七、参考程序
#include"
msp430f249.h"
#defineuintunsignedint
/********************
-主^函^数**************************/
voidmain(void)
{
UintI;
WDTCTL=WDTPW+WDTHOLD;
P1DIR=ox0ff;
while
(1)
PIOUT=0x00;
For(I=0;
I<
65565;
I++);
PIOUT=0x0ff;
}
八、心得体会(二页以上)
实验二
实验目的
1.掌握IARforMSP430软件与proteus软件仿真调试的方法;
2.掌握LCD1602液晶模块显示西文的原理及使用方法;
3.掌握用8位数据模式驱动LCM1602液晶的C语言编程方法;
4.掌握用LCM1602液晶模块显示数字的C语言编程方法。
实验仪器与设备
1.微机一台2.IARforMSP430集成开发环境3.Proteus仿真软件实验内容
1.用Proteus设计一LCD1602液晶显示接口电路。
要求利用P4口接LCD1602液晶的数据端,P5.0~P5.2做LCD1602液晶的控制信号输入端。
参考电路见后面。
2.编写程序,实现字符的静态和动态显示。
显示字符为
第一行中间位置:
“学号”,第二行中间位置:
“姓名全拼”。
(实验报告中要有显示自己名字和学号的截图)
四、实验原理
液晶显示的原理:
采用的LCD显示屏都是由不同部分组成的分层结构,位于最后面的一层是由荧光物质组成的可以发射光线的背光层,背光层发出的光
线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层,液晶
层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏
幕上的一个像素。
当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。
1.LCD1602采用标准的14引脚(无背光)或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
背光源负极
2.1602液晶模块内部的控制器共有11条控制指令,如表所示:
序号
ffi令
卧
RAV
ir
1)6
[>
IM
IB
1)2
1)1
1)0
淸显示
(1
n
■
光林遞回
II
什
置输人轅式
卄
ID
a
显示开,关控制
朴
1)
('
B
光标或字符移也
S/C
RL*
胃功能
h
山”
\
■1
置字符发生存储器地址
H
字於发生ffii器地址
S
置数据存储器地址
品不数据奇储器地址
读忙标志或地址
in
讣数器地址
HI
好数到(GRAM^DDRAM
戏写的敌摇內容
J1
从tGRW或1»
|毗和【读数
读岀的救据内容
3.芯片时序表:
功能
下降沿
斥指令代码
高电平
读忙尿占和AC值
写数据
读数锯
4.1602LCD的时序图
<
-IC
4-1LCD1602读操作时序图
4-2LCD1602写操作时序图
5.1602LCD勺一般初始化(复位)过程
(1)延时15mso
(2)写指令38H(不检测忙信号)o
(3)延时5ms
(4)写指令38H(不检测忙信号)。
(5)延时5ms
(6)写指令38H(不检测忙信号)。
(7)以后每次写指令、读/写数据操作均需要检测忙信号
(8)写指令38H:
显示模式设置。
(9)写指令08H:
显示关闭。
(10)写指令01H:
显示清屏。
(11)写指令06H:
显示光标移动设置
(12)写指令0CH显示开及光标设置
五、实验步骤
1.用Proteus设计1602液晶显示接口电路;
2.在iarforMSP430中编写液晶显示控制程序,编译通过后,与Proteus联
3.
合调试;
六、电路设计调试及程序
1)实验电路
2)程序设计与调试
静态显示
#include"
#defineucharunsignedchar
#defineuintunsignedint
#defineSET_RSP5OUT|=BIT0
#defineRST_RSP5OUT&
=~BIT0
#defineSET_RWP5OUT|=BIT1
#defineRST_RWP5OUT&
=~BIT1
#defineSET_EP5OUT|=BIT2
#defineRST_EP5OUT&
=~BIT2voiddelay_us(uintms)
uinti,j;
for(i=0;
i<
ms;
i++)
for(j=0;
j<
1141;
j++);
voidwrite_com(ucharcom)
RST_RS;
RST_RW;
P4OUT=com;
SET_E;
delay_us(5);
RST_E;
voidwrite_dat(uchardat)
SET_RS;
P4OUT=dat;
voidwrite_zfc(uchar*p)
while(*p!
=0)
write_dat(*p++);
voidLcd_init()
write_com(0x38);
write_com(0x01);
write_com(0x0C);
write_com(0x06);
voidmain(void)
P4DIR=0x0ff;
P5DIR=BIT0+BIT1+BIT2;
Lcd_init();
write_com(0x80+3);
write_zfc("
2018-05-03"
);
write_com(0x80+0x40+3);
TLoveyou!
"
while
(1);
七、心得体会(不少于2页)