日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]手上有一片1602的LCD,ks0066的驅(qū)動芯片,帶LED背光.參考網(wǎng)站上的一些資料,寫了個驅(qū)動程序,寫完了才發(fā)現(xiàn),跟網(wǎng)上流傳的代碼基本上差不多/*======================================= 1602lcd模塊驅(qū)動程序===============

手上有一片1602的LCD,ks0066的驅(qū)動芯片,帶LED背光.參考網(wǎng)站上的一些資料,寫了個驅(qū)動程序,寫完了才發(fā)現(xiàn),跟網(wǎng)上流傳的代碼基本上差不多

/*=======================================

1602lcd模塊驅(qū)動程序

==========================================

說明:1.晶體:11.0592MHz

2.1602驅(qū)動:ks0066

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

#i nclude

#i nclude

#define lcm_rs P2_7 //寄存器選擇

#define lcm_rw P2_6 //讀/寫控制

#define lcm_e P2_5 //讀/寫使能

#define lcm_blk P2_4 //背光led 1.off 0.on

#define lcm_data P0

//函數(shù)聲明

void delay5ms(void);

void delay400ms(void);

void lcm_write_command(unsigned char wc_lcm,busy_c);

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

//函數(shù)名稱: void lcm_ini(void)

//傳遞參數(shù): 無

//返 回 值: 無

//函數(shù)功能: LCM初始化

//函數(shù)說明:

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

void lcm_ini(void)

{

lcm_data = 0;

lcm_write_command(0x38,0); //16*2顯示,5*7點陣,8位數(shù)據(jù)接口,不檢測忙

delay5ms();

lcm_write_command(0x38,0);

delay5ms();

lcm_write_command(0x38,0); //三次顯示模式, 不檢測忙

delay5ms();

lcm_write_command(0x38,1); //16*2顯示,5*7點陣,8位數(shù)據(jù)接口,需要檢測忙

lcm_write_command(0x80,1); //關(guān)閉顯示

lcm_write_command(0x01,1); //clear顯示

lcm_write_command(0x06,1); //指針和光標(biāo)+1,不滾屏

lcm_write_command(0x0c,1); //開顯示,不顯示光標(biāo)

}

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

//函數(shù)名稱: unsigned char lcm_read_status(void)

//傳遞參數(shù): 無

//返 回 值: unsigned char

//函數(shù)功能: 讀lcm狀態(tài),等待lcm空閑

//函數(shù)說明: DB7=1,忙

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

unsigned char lcm_read_status(void)

{

lcm_data=0xff;

lcm_rs=0;

lcm_rw=1;

lcm_e=0;

lcm_e=0;

lcm_e=1;

while(lcm_data & 0x80);

return lcm_data;

}

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

//函數(shù)名稱: void lcm_write_data(unsigned char wd_lcm)

//傳遞參數(shù): unsigned char wd_lcm

//返 回 值: 無

//函數(shù)功能: lcm寫數(shù)據(jù)

//函數(shù)說明:

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

void lcm_write_data(unsigned char wd_lcm)

{

lcm_read_status(); //判斷l(xiāng)cm忙標(biāo)志

lcm_data = wd_lcm;

lcm_rs = 1;

lcm_rw = 0;

lcm_e = 0;

lcm_e = 0;

lcm_e = 1;

}

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

//函數(shù)名稱: void lcm_write_command(unsigned char wc_lcm, busy_c)

//傳遞參數(shù): unsigned char wc_lcm, busy_c

//返 回 值: 無

//函數(shù)功能: lcm寫命令

//函數(shù)說明: busy_c=0是,不用檢測忙信號

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

void lcm_write_command(unsigned char wc_lcm, busy_c)

{

if (busy_c)

lcm_read_status();

lcm_data = wc_lcm;

lcm_rs=0;

lcm_rw = 0;

lcm_e = 0;

lcm_e = 0;

lcm_e = 1;

}

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

//函數(shù)名稱: void disp_one_char(unsigned char x, unsigned char y,unsigned char disp_data)

//傳遞參數(shù): unsigned char x, unsigned char y,unsigned char disp_data

//返 回 值: 無

//函數(shù)功能: 指定位置顯示一個字符

//函數(shù)說明:

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

void disp_one_char(unsigned char x,unsigned char y,unsigned disp_data)

{

y = y&0x01;

x = x&0x0f; //限制2行,沒行15個字

if (y)

x =x + 0x40; //算RAM地址

x = x + 0x80;

lcm_write_command(x,0);

lcm_write_data(disp_data);

}

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

//函數(shù)名稱: void disp_one_char(unsigned char x, unsigned char y,unsigned char *disp_data)

//傳遞參數(shù): unsigned char x, unsigned char y,unsigned char *disp_data

//返 回 值: 無

//函數(shù)功能: 指定位置顯示一串字符

//函數(shù)說明:

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

void disp_list_char(unsigned char x,unsigned char y,unsigned char *disp_data)

{

unsigned char char_length,j;

char_length = strlen(disp_data);

y = y&0x1;

x = x&0x0f;

for (j=0;j

{

disp_one_char( x,y,disp_data[j]); //顯示一個字符

x++;

}

}

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

//函數(shù)名稱: void delay5ms(void)

//傳遞參數(shù): 無

//返 回 值: 無

//函數(shù)功能: 延時5MS

//函數(shù)說明:

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

void delay5ms(void)

{

unsigned int TempCyc = 5552;

while(TempCyc--);

}

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

//函數(shù)名稱: void delay400ms(void)

//傳遞參數(shù): 無

//返 回 值: 無

//函數(shù)功能: L延時400MS

//函數(shù)說明: LCM開機延時

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

void delay400ms(void)

{

unsigned char TempCycA = 5;

unsigned int TempCycB;

while(TempCycA--)

{

TempCycB=7269;

while(TempCycB--);

};

}

/*****d******************************

//函數(shù)名稱: void main(void)

//傳遞參數(shù): 無

//返 回 值: 無

//函數(shù)功能: 主函數(shù)

//函數(shù)說明:

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

void main(void)

{

delay400ms();

lcm_ini();

disp_list_char(1,0,"Welcome");

disp_list_char(1,0,"www.dzkjcn.com")

while(1);

}

以上的程序只是簡單的顯示兩行字符,沒有滾屏和背光

4線液晶1602的C51程序

----------------------------------

| LCM-----51  | LCM-----51 | 

----------------------------------

|RS-----P2.1 | DB4-----P1.4 |

|RW-----P2.0 | DB5-----P1.5 |

|E -----P2.2 | DB6-----P1.6 |

|VLCD接1K電阻到GND| DB7-----P1.7 |

---------------------------------------------------

[注:AT89S51使用12M晶振]

=============================================================*/

void writelcd(bit command,unsigned char ddata)

{

ReadStatusLCM(); //檢測忙

LCM_Data = (ddata&0xf0)|(P1&0x0f);

LCM_RW = 0;

if(command==0) LCM_RS = 0; else LCM_RS=1;

LCM_E = 1;

LCM_E = 0;

LCM_E = 0;

LCM_Data = ((ddata<<4)&0xf0)|(P1&0x0f);

if(command==0) LCM_RS = 0; else LCM_RS=1;

LCM_E = 1;

LCM_E = 0;

LCM_E = 0;

}


//讀狀態(tài)

unsigned char ReadStatusLCM(void)

{

P1_7=1;

LCM_RS = 0;

LCM_RW = 1;

LCM_E = 0;

LCM_E = 0;

LCM_E = 1;

while(P1_7&0x01);//檢測忙信號

return(P1_7);

}

void LCMInit(void) //LCM初始化

{

LCM_Data=0xff;

writelcd(0,0x28); //三次顯示模式設(shè)置,不檢測忙信號

Delay5Ms();

writelcd(0,0x28);

D

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉