欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
msp430驅(qū)動LCD1602液晶顯示C語言程序
[打印本頁]
作者:
xueer
時間:
2013-7-14 16:17
標題:
msp430驅(qū)動LCD1602液晶顯示C語言程序
#include "msp430x14x.h"
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F)*(double)x/2000000.0)
#define delay_ms(x) __delay_cycles((long)(CPU_F)*(double)x/20000.0)
#define uint unsigned int
#define uchar unsigned char
#define RS_H P5OUT|=BIT5
#define RS_L P5OUT&=~BIT5 //P1OUT&=~BIT0
#define RW_H P5OUT|=BIT6
#define RW_L P5OUT&=~BIT6
#define E_H P5OUT|=BIT7
#define E_L P5OUT&=~BIT7
#define BF BIT7
#define DataDIR P4DIR
#define DataOUT P4OUT
#define DataIN P4IN
uchar lcd_shuju[]="0123456789-";//定義字符數(shù)組顯示數(shù)字
uchar lcd_tab[]="abcde";
uchar lcd_tab1[]="XYZ";
/*void LCDable(void) //忙檢測不寫也可以
{
DataDIR&=0X00;//數(shù)據(jù)端設(shè)置為輸入(讀取液晶狀態(tài)字,判斷液晶狀態(tài))
RS_L;
RW_H;
E_H;
delay_us(4);
while((DataIN & BF!=0));
E_L;
DataDIR|=0xff;
}*/
void shizhong()
{
BCSCTL1=0X37; //使用高速晶振XT2,低速模式,8分頻
BCSCTL2=0XBE; //選擇時鐘源為XT2,8分頻,DC0震蕩電阻選擇內(nèi)部電阻
}
void WriteCommond(uchar Commond) //寫指令
{
//LCDable();
DataDIR|=0xff;//數(shù)據(jù)端設(shè)置為輸出
RS_L;
RW_L;
E_L;
delay_ms(4);
DataOUT=Commond;
delay_ms(4);
E_H;
delay_ms(4);
E_L;
RW_H;
RS_H;
}
void WriteAddress(uchar x) //寫地址
{
WriteCommond(0x80|x);
}
void Writedata(uchar data) //寫數(shù)據(jù)
{
//LCDable();
DataDIR|=0xff;//數(shù)據(jù)端設(shè)置為輸出
RS_H;
RW_L;
E_L;
delay_ms(4);
DataOUT=data;
delay_ms(4);
E_H;
delay_ms(4);
E_L;
RW_H;
RS_L;
}
void LCD_Init()
{
DataDIR|=0xff;//數(shù)據(jù)口設(shè)置為輸出
P5DIR|=0XE0;//控制端設(shè)置為輸出
WriteCommond(0X38);//顯示模式設(shè)置 16X2
WriteCommond(0X0C);//開顯示,光標設(shè)置為不顯示
WriteCommond(0X06);//開顯示,光標移動模式設(shè)置為:讀寫一個字符后光標及地址指針加1
WriteCommond(0x80+0x00);//顯示起始地址
WriteCommond(0X01);//清屏設(shè)置
}
void display_ZFC()
{
uchar i;
WriteAddress(0x05);//顯示起始地址:第1行第6個位置
i=0;
while(lcd_tab[i]!='\0')
{
Writedata(lcd_tab[i]);
i++;
delay_ms(50);
}
}
void display_ZFC1()
{
uchar i;
WriteAddress(0x42);//顯示起始地址:第2行第3個位置
i=0;
while(lcd_tab1[i]!='\0')
{
Writedata(lcd_tab1[i]);
i++;
delay_ms(50);
}
}
void display_SJ()
{
uchar i;
WriteAddress(0x03);//顯示起始地址:第1行第1個位置
i=0;
while(lcd_shuju[i]!='\0')
{
Writedata(lcd_shuju[i]);
i++;
delay_ms(50);
}
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD;//關(guān)閉看門狗
shizhong();//配置時鐘
P5DIR=0xE0;//控制端設(shè)置為輸出
LCD_Init();//液晶初始化
display_ZFC();//顯示字符串
display_ZFC1();//顯示字符串1
delay_ms(2000);
display_SJ();//顯示數(shù)據(jù)串0123456789-
}
復(fù)制代碼
完整代碼下載:
http://www.raoushi.com/bbs/dpj-78454-1.html
作者:
yanp
時間:
2013-7-30 00:09
謝謝分享
作者:
在云一方
時間:
2013-9-7 14:27
謝謝分享啊~
作者:
hgvh
時間:
2014-8-9 10:40
編譯顯示錯誤,自己又不會改。。。哎
作者:
Pathfinder
時間:
2014-8-10 17:40
看看
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1