标题:
基于msp430单片机的1602显示源程序
[打印本页]
作者:
鳏独境谛
时间:
2018-3-26 17:40
标题:
基于msp430单片机的1602显示源程序
基于430单片机的1602简单显示
单片机源程序如下:
#include "io430.h"
#define RS_di P5OUT &= ~BIT5 //RS置低
#define RS_gao P5OUT |= BIT5 //RS置高
#define RW_di P5OUT &= ~BIT6 //RW置低
#define RW_gao P5OUT |= BIT6 //RW置高
#define EN_di P5OUT &= ~BIT7 //E置低
#define EN_gao P5OUT |= BIT7 //E置高
unsigned char DATA[30]= "feeling tipsy;dispersed;forgot";
//*************************************************************************
// 初始化IO口子程序
//*************************************************************************
void Port_init()
{
P4SEL = 0x00;
P4DIR = 0xFF; //数据口输出模式
P5SEL = 0x00;
P5DIR|= BIT5 + BIT6 + BIT7; //控制口设置为输出模式
}
//***********************************************************************
// 显示屏命令写入函数
//***********************************************************************
void LCD_write_com(unsigned char com)
{
RS_di;
RW_di;
EN_gao;
P4OUT = com; //命令写入端口
__delay_cycles(5000);
EN_di;
}
//***********************************************************************
// 显示屏数据写入函数
//***********************************************************************
void LCD_write_data(unsigned char data)
{
RS_gao;
RW_di;
EN_gao;
P4OUT = data; //数据写入端口
__delay_cycles(5000);
EN_di;
}
//***********************************************************************
// 显示屏清空显示
//***********************************************************************
void LCD_clear(void)
{
LCD_write_com(0x01); //清屏幕显示
__delay_cycles(5000);
}
//***********************************************************************
// 显示屏初始化函数
//***********************************************************************
void LCD_init(void)
{
LCD_write_com(0x38); //显示模式设置
__delay_cycles(5000);
LCD_write_com(0x08); //显示关闭
__delay_cycles(500);
LCD_write_com(0x01); //显示清屏
__delay_cycles(5000);
LCD_write_com(0x06); //显示光标移动设置
__delay_cycles(5000);
LCD_write_com(0x0C); //显示开及光标设置
__delay_cycles(5000);
}
//***********************************************************************
// 主程序
//***********************************************************************
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
unsigned char i = 0;
Port_init();
LCD_init();
//LCD_write_data(data);
while(1)
{
if(i<=15)
{
LCD_write_com(0x80+0x00);
for(i=0;i<=15;i++)
{
LCD_write_data(DATA[i]);
}
}
else
{
LCD_write_com(0x80+0x40+0x00);
for(i=16;i<=29;i++)
{
LCD_write_data(DATA[i]);
}
}
// LCD_write_data(data);
}
}
复制代码
所有资料51hei提供下载:
1602xian_shi.zip
(178.43 KB, 下载次数: 6)
2018-3-26 17:39 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1