資源簡介
G2553 12864的程序 很有用的 已測
代碼片段和文件信息
/*
時間:2012-6-30
作者:蔡能
注釋:
????這個程序能夠實現LCD12864的有ASCII碼的數據輸入,而漢字還沒有解決!!
修改:2012-7-1???1:43
????已經解決漢字的輸入,沒有什么特別的,就是注意輸入法的切換~~~中文的;和英文的
????;是不同的。
*/
#include?“msp430g2553.h“
#define?uchar?unsigned?char
/*
#define?CS?P2.2;
#define?SID?P2.1;
#define?CLCLK?P2.0;
*/
#define?CS_1??P2OUT|=0x04;//注意位的操作
#define?CS_0??P2OUT&=~0x04;
#define?SID_1?P2OUT|=0x02;
#define?SID_0?P2OUT&=~0x02;
#define?CLK_1?P2OUT|=0x01;
#define?CLK_0?P2OUT&=~0x01;
#define?nop?_NOP();
char?tab[]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘};
//#define?nop???__no_operation();//可以用這個代替的
void?W_str(uchar?xuchar?yuchar?*s);
void?write_com(uchar?x);
void?write_data(uchar?x);
void?write_string(uchar?xuchar?yuchar?*s);
void?delay(uchar?z)
{
uchar?xy;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
void?W_8bits(uchar?W_bits)
{
??uchar?itemp;
??for(i=0;i<8;i++)
??{
????temp=W_bits;
????temp<<=i;
????if((temp&0x80)==0)
????{
??????SID_0;
??????nop;
??????CLK_1;
??????nop;
??????nop;
??????CLK_0;
??????nop;
??????SID_0;
????}
????else
????{
??????SID_1;
??????nop;
??????CLK_1;
??????nop;
??????nop;
??????CLK_0;
??????nop;
??????SID_0;
????}
??}
}
/*
??rw=1??則表示讀出
??rw=0??則表示輸入
??rs=1??則表示寫數據
??rs=0??則表示寫命令
??W_byte(00x)寫命令x;
??W_byte(01y)寫數據y;
*/
void?W_byte(uchar?rwuchar?rsuchar?W_data)
{
??uchar?H_dataL_datas_id=0xf8;
??if(rw==0)
??{
????s_id&=~0x04;
??}
??else
??{
????s_id|=0x04;
??}
??if(rs==0)
??{
????s_id&=~0x02;
??}
??else
????{
??????s_id|=0x02;
????}
??H_data=W_data;
??H_data&=0xf0;
??L_data=W_data;
??L_data&=0x0f;
??L_data<<=4;
??CS_1;
??W_8bits(s_id);
??W_8bits(H_data);
??W_8bits(L_data);
??CS_0;
}
void?lcdinit()
{
??delay(10);
??W_byte(000x38);
- 上一篇:給予模糊控制單片機溫度控制
- 下一篇:用匯編語言實現的記事本
評論
共有 條評論