娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月17日(星期二)

2020年09月17日 | MSP430單片機對12864液晶模塊顯示的測試設計

發布者:快樂的旅程 來源: elecfans關鍵字:MSP430  單片機  12864液晶模塊顯示 手機看文章 掃描二維碼
隨時隨地手機看文章

//DM430開發板控制帶字庫型12864液晶模塊顯示測試程序


//顯示模式為漢字模式,直接將12864插入12864接口即可



//注意選擇液晶的電源,位于電位器附近,可選5V或3.3V,根據液晶電壓進行選擇


//調試環境:EW430 V5.30


MSP430單片機對12864液晶模塊顯示的測試設計


//


********************************************************************/


#include


#define CPU_F ((double)8000000)


#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))


#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))


#define uchar unsigned char


#define uint unsigned int


#define ulong unsigned long


/*12864應用指令*/


#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值為00H


#define AC_INIT 0x02 //將AC設置為00H。且游標移到原點位置


#define CURSE_ADD 0x06 //設定游標移到方向及圖像整體移動方向(默認游標右移,圖像整體不動)


#define FUN_MODE 0x30 //工作模式:8位基本指令集


#define DISPLAY_ON 0x0c //顯示開,顯示游標,且游標位置反白


#define DISPLAY_OFF 0x08 //顯示關


#define CURSE_DIR 0x14 //游標向右移動:AC=AC+1


#define SET_CG_AC 0x40 //設置AC,范圍為:00H~3FH


#define SET_DD_AC 0x80


#define P10 0


#define P11 1


#define P12 2


#define P13 3


#define P14 4


#define P15 5


#define P16 6


#define P17 7


#define RS_CLR P3OUT &= ~(1 《《 P13) //RS置低


#define RS_SET P3OUT |= (1 《《 P13) //RS置高


#define RW_CLR P3OUT &= ~(1 《《 P16) //RW置低


#define RW_SET P3OUT |= (1 《《 P16) //RW置高


#define EN_CLR P3OUT &= ~(1 《《 P17) //E置低


#define EN_SET P3OUT |= (1 《《 P17) //E置高


#define PSB_CLR P5OUT &= ~(1 《《 P11) //PSB置低,串口方式


#define PSB_SET P5OUT |= (1 《《 P11) //PSB置高,并口方式


#define RST_CLR P5OUT &= ~(1 《《 P12) //RST置低


#define RST_SET P5OUT |= (1 《《 P12) //RST置高


#define DataPort P4OUT //P4口為數據口


//*************************************************************************


// 系統時鐘初始化


//*************************************************************************


void Clock_Init()


{


uchar i;


BCSCTL1&=~XT2OFF; //打開XT振蕩器


BCSCTL2|=SELM1+SELS; //MCLK為8MHZ,SMCLK為8MHZ


do{


IFG1&=~OFIFG; //清除震蕩標志


for(i=0;i《100;i++)


_NOP(); //延時等待


}


while((IFG1&OFIFG)!=0); //如果標志為1,則繼續循環等待


IFG1&=~OFIFG;


}


//*************************************************************************


// MSP430內部看門狗初始化


//*************************************************************************


void WDT_Init()


{


WDTCTL = WDTPW + WDTHOLD; //關閉看門狗


}


//*************************************************************************


// 初始化IO口子程序


//*************************************************************************


void Port_init()


{


P4SEL = 0x00;


P4DIR = 0xFF;


P3SEL = 0x00;


P3DIR|= BIT3 + BIT6 + BIT7;


P5SEL = 0x00;


P5DIR|= BIT1 + BIT2;


PSB_SET; //液晶并口方式


RST_SET; //復位腳RST置高


}


//***********************************************************************


// 顯示屏命令寫入函數


//***********************************************************************


void LCD_write_com(unsigned char com)


{


RS_CLR;


RW_CLR;


EN_SET;


DataPort = com;


delay_ms(5);


EN_CLR;


}


//***********************************************************************


// 顯示屏數據寫入函數


//***********************************************************************


void LCD_write_data(unsigned char data)


{


RS_SET;


RW_CLR;


EN_SET;


DataPort = data;


delay_ms(5);


EN_CLR;


}


//***********************************************************************


// 顯示屏清空顯示


//***********************************************************************


void LCD_clear(void)


{


LCD_write_com(0x01);


delay_ms(5);


}


//***********************************************************************


//函數名稱:DisplayCgrom(uchar hz)顯示CGROM里的漢字


//***********************************************************************


void DisplayCgrom(uchar addr,uchar *hz)


{


LCD_write_com(addr);


delay_ms(5);


while(*hz != ‘

主站蜘蛛池模板: 太康县| 石台县| 隆化县| 安庆市| 穆棱市| 遂昌县| 阿勒泰市| 河西区| 宁晋县| 巨野县| 平原县| 孝义市| 霍山县| 曲靖市| 泽普县| 广平县| 兴宁市| 略阳县| 巴彦淖尔市| 宜阳县| 攀枝花市| 武清区| 廊坊市| 远安县| 神农架林区| 德保县| 搜索| 开封市| 美姑县| 自治县| 河北省| 蓬安县| 沁阳市| 武胜县| 德钦县| 广丰县| 淳安县| 黎川县| 西青区| 改则县| 瑞安市|