MSP430写的1602液晶显示程序
#include"msp430x14x.h"
#define uint unsigned int
#define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0);
unsigned char table0[]="diansai 2010-7";
unsigned char table1[]="0123456789";
//**************延时***********************************
void delay(uint z)
{
uint t,y;
for(t=z;t>0;t--)
for(y=110;y>0;y--);
}
//*******写命令*****************************************
void write_com(unsigned char com)
{
P3OUT&=~BIT5;//作为RS选择端低电平有效
rw(0);
P4OUT=com;
delay(5);
P3OUT|=BIT7;
//delay(5);
P3OUT&=~BIT7;
}
//*******写数据***************************************************
void write_data(unsigned char date)
{
P3OUT|=BIT5;//作为RS选择端高电平有效劳
rw(0);
P4OUT=date;
delay(5);
P3OUT|=BIT7;//作为E选择端=1;
// delay(5);
P3OUT&=~BIT7;
}
//********初始化******************************************
void init()
{
P3DIR=0xff;//P3输出 作控制口
P3SEL=0;
P3OUT=0x00;
P3OUT&=~BIT7;//E
P3OUT&=~BIT5;//RS
P4DIR=0XFF;//P4输出 作数据口
P4SEL=0;
P4OUT=0X00;
write_com(0x38);//显示模式设置
write_com(0x0c);//开显示,不显光标
write_com(0x06);//数据地址指针
write_com(0x01);//清屏
_BIS_SR(GIE);//两个开总中断的方法随便用哪一个
// _EINT();
}
//************显示函数2********************
display2(unsigned char x,unsigned char *p)
{
unsigned char y=0; //y要给其初值0否则出乱码
write_com(x);
while(p[y]!=0x00)
{
write_data(p[y]);
y++;
delay(5);
}
}
//***************主函数****************************************************
void main()
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
init();
display2(0x80+0x01,table0);
display2(0x80+0x40+0x03,table1);
}
MSP4301602液晶显示程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)