日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年08月12日(星期二)

2018年08月12日 | [STM8L]TAB段式LCD液晶驅(qū)動(dòng)程序

發(fā)布者:annye_cheng 來(lái)源: eefocus關(guān)鍵字:STM8L  TAB  段式LCD  液晶驅(qū)動(dòng) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

    STM8L152XX系列帶有片上段式LCD驅(qū)動(dòng)程序,這為低成本應(yīng)用和高密度系統(tǒng)設(shè)計(jì)提供了保證,利用片上LCD驅(qū)動(dòng)模塊,可以有效的控制系統(tǒng)整體功耗,簡(jiǎn)化系統(tǒng)結(jié)構(gòu),從整體來(lái)說(shuō)可靠性得到提高。


    此處不介紹LCD驅(qū)動(dòng)模塊的原理以及驅(qū)動(dòng)時(shí)序,請(qǐng)參考STM8原版英文說(shuō)明文檔,已描述的很詳細(xì),以下介紹其寄存器的配置方法以及編程方法。


    時(shí)鐘,系統(tǒng)時(shí)鐘同樣用來(lái)產(chǎn)生LCD驅(qū)動(dòng)時(shí)鐘,通過(guò)時(shí)鐘模塊配置:


    CLK_PCKENR2|=S3;   //LCD        使能LCD模塊時(shí)鐘


    CLK_CRTCR=S7|S6|S5|S1;    //RTC&LCD->FCLK/128      注意RTC和LCD是共同一路時(shí)鐘


    以上配置根據(jù)實(shí)際時(shí)鐘進(jìn)行調(diào)整,我在此處采用FCLK=HSI=16MHZ,所以LCDclk=16M/128=125KHZ


我的LCD為六個(gè)數(shù)字的段式LCD,1/3偏壓方式,4根COM線,12根COM線,這兩個(gè)參數(shù)請(qǐng)讀者自己查找自己的LCD資料找到,對(duì)于驅(qū)動(dòng)LCD來(lái)說(shuō)這兩個(gè)參數(shù)最重要,以下為寄存器配置:


LCD_CR1=S5|S2|S1; //1/3偏壓   1/4占空比

LCD_CR2=S6|S4|S0; //3.3V

LCD_FRQ=5<<4;   //FCK=125000/2^5*16=128000/512=244 Frame=244/4=61HZ

LCD_PM0=0xFF;

LCD_PM1=0x0F;

LCD_CR3|=S6;

    首先由偏壓方式?jīng)Q定了驅(qū)動(dòng)到LCD段碼上的電壓種類(lèi),占空比(標(biāo)準(zhǔn)并非如此翻譯)Duty值決定掃過(guò)每根COM線的時(shí)序比例,由于我將VLCD與VCC接在一起了,所以選擇外部電源參考3.3V,若選擇內(nèi)部,則可以進(jìn)一步選擇最高輸出電壓大小,實(shí)測(cè)發(fā)現(xiàn)選大些對(duì)比度可提高一些。LCD_FRQ用于配置掃描更新頻率,具體計(jì)算不想說(shuō),文檔里都有。最后是配置那些接在LCD上的COM線和SEG線為L(zhǎng)CD驅(qū)動(dòng)復(fù)用有效模式,否則仍可以作為IO口使用,最后開(kāi)啟LCD驅(qū)動(dòng)模塊掃描。


    配置完以上寄存器之后,LCD模塊已開(kāi)始工作,它是通過(guò)從LCD_RAM0-LCD_RAM12這一組寄存器來(lái)控制顯示內(nèi)容的,這時(shí)向LCD_RAM0-LCD_RAM12寫(xiě)入數(shù)據(jù)會(huì)發(fā)現(xiàn)有段碼顯示在LCD上,作為應(yīng)用層,需要找到這種關(guān)系。


   查手里這塊LCD資料列出段碼表如下所示:


/*-----------------------------------------------------

SEG:  0  1  2  3  4  5  6  7  8  9  10 11

      1D X2 2D X3 3D  X1 4D 4P 5D 5P 6D 6P

      1E 1C 2E 2C 3E  3C 4E 4C 5E 5C 6E 6C

      1G 1B 2G 2B 3G  3B 4G 4B 5G 5B 6G 6B

      1F 1A 2F 2A 3F  3A 4F 4A 5F 5A 6F 6A

CODE: A  F  B  G  C  E  P  D

-----------------------------------------------------*/

  于是我把一個(gè)字節(jié)最高位至最低位從A段到D段按如上CODE順序進(jìn)行排列,并得到段表碼如下:

[cpp] view plain copy

const uint8 LCD_CodeTable[]={0xED,0x28,0xB5,0xB9,0x78,0xD9,0xDD,0xA8,0xFD,0xF9,0xFC,0x5D,0x15,0x3D,0xD5,0xD4,0x5C,0x10,0xC5,0xA9,0x00};  

   這些段碼表分別對(duì)應(yīng)于以下字符:0,1,2,3,4,5,6,7,8,9,A,b,c,d,E,F,h,-,[,],   [注,最后一個(gè)為空格]

   為編程方便,我對(duì)字符進(jìn)行編碼:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U  [依次和上面的字符相對(duì)應(yīng)]

   為六個(gè)字符定義顯示內(nèi)容緩沖區(qū):

uint8 LCD_DisplayBuffer[6];

void LCD_SetSegValue(void)

{

 uint16 T,SEG[4];

 uint8 i,j,Code[6];

 for(i=0;i<6;i++){

  Code[5-i]=LCD_CodeTable[LCD_DisplayBuffer[i]&0x7F];

  if(LCD_DisplayBuffer[i]&0x80)Code[5-i]|=0x02;

 }

 for(i=0;i<4;i++){

  for(T=0,j=0;j<6;j++){

   T<<=2;

   T|=(Code[j]&0x03);

   Code[j]>>=2;

  }  

  SEG[i]=T;

 }

 LCD_RAM0=(uint8)(SEG[0]);      //COM0->B[7:0]

 LCD_RAM1=(uint8)(SEG[0]>>8);    //COM0->B[11:8]

 LCD_RAM3=(uint8)(SEG[1]<<4);    //COM1->B[3:0]->H

 LCD_RAM4=(uint8)(SEG[1]>>4);    //COM1->B[11:4]

 LCD_RAM7=(uint8)(SEG[2]);      //COM2->B[7:0]

 LCD_RAM8=(uint8)(SEG[2]>>8);    //COM2->B[11:8]

 LCD_RAM10=(uint8)(SEG[3]<<4);    //COM3->B[3:0]->H

 LCD_RAM11=(uint8)(SEG[3]>>4);    //CoM3->B[11:4]

}

 

以上這段程序?qū)CD_DisplayBuffer[]中的六個(gè)字符解碼后寫(xiě)入LCD模塊的顯示緩沖區(qū)中,最終顯示成相應(yīng)字符,這其中用每個(gè)字符的最高位代表是否含有小數(shù)點(diǎn)位,若為高則點(diǎn)亮相當(dāng)?shù)男?shù)點(diǎn),否則關(guān)閉。至于LCD_RAM的更新和拆分方法,此外不再描述,文檔中已相當(dāng)詳細(xì)。


    圍繞以上刷新程序,可得到如下常用方法:


//清顯示

void LCD_Clear(uint8 Index)

{

uint8 i;

if(Index==0xFF)for(i=0;i<6;i++)LCD_DisplayBuffer[i]='U'-'A';

else LCD_DisplayBuffer[Index]='U'-'A';

LCD_SetSegValue();

}

 

//寫(xiě)顯示緩沖區(qū)點(diǎn)

void LCD_ShowSpecial(uint8 Saddr,uint8 Char)

{

if(Char>0)LCD_DisplayBuffer[Saddr]|=0x80;

else      LCD_DisplayBuffer[Saddr]&=0x7F;

}

 

//顯示字符

void LCD_ShowChar(uint8 Saddr,uint8 Char)

{

LCD_DisplayBuffer[Saddr]&=0x80;

LCD_DisplayBuffer[Saddr]|=Char;

LCD_SetSegValue();

}

 

//顯示字符串

void LCD_ShowString(uint8 Saddr,void *Text)

{

uint8 T,P,*Str;

Str=(uint8 *)Text;

while(*Str>0){

T=*Str++;

P=LCD_DisplayBuffer[Saddr];

LCD_DisplayBuffer[Saddr++]=(P&0x80)|(T-'A');

}

LCD_SetSegValue();

}

 

//顯示數(shù)字

void LCD_ShowNumber(uint8 Saddr,uint16 Number,uint8 Length)

{

uint8 P;

Saddr+=Length-1;

while(Length--){

P=LCD_DisplayBuffer[Saddr];

LCD_DisplayBuffer[Saddr]=(P&0x80)|(Number%10);

Saddr--;Number/=10;

}

LCD_SetSegValue();

}


由以上函數(shù)庫(kù),可以方便的顯示出如LCD_ShowString(0,"BCDEF")(顯示“12345"),LCD_ShowNumber(0,1244,4)(顯示"1244"),等等。配合一些簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),便可得到一個(gè)相對(duì)復(fù)雜點(diǎn)的菜單操作界面。


關(guān)鍵字:STM8L  TAB  段式LCD  液晶驅(qū)動(dòng) 引用地址:[STM8L]TAB段式LCD液晶驅(qū)動(dòng)程序

上一篇:keil調(diào)試出現(xiàn)反匯編的解決方法
下一篇:段式LCD液晶顯示屏的底層驅(qū)動(dòng)程序

推薦閱讀

隨著云計(jì)算,,移動(dòng)互聯(lián)對(duì)于 IT 基礎(chǔ)設(shè)施的重構(gòu),的快速發(fā)展,以及各行各業(yè)網(wǎng)絡(luò)安全法的落地,我國(guó)網(wǎng)絡(luò)信息安全行業(yè)迎來(lái)了全新的發(fā)展階段,增長(zhǎng)迅速。預(yù) 計(jì) 2018-2021 年的國(guó)內(nèi)信息安全行業(yè)復(fù)合增速接近 25%,2021 年行業(yè)整體規(guī)模(安全硬件, 安全與安全服務(wù)合計(jì))將超過(guò) 620 億。 安全行業(yè)正在由軟硬件產(chǎn)品銷(xiāo)售模式向服務(wù)模式轉(zhuǎn)型。2021 年...
榮耀將在東莞籃球中心召開(kāi)榮耀智慧屏系列新品發(fā)布會(huì)。作為榮耀推出的首款智能時(shí)代新物種,榮耀智慧屏在首次亮相后便得到諸多消費(fèi)者的關(guān)注。昨日下午,爆料人放出了榮耀智慧屏的真機(jī)圖片,并公布了其具體的配置信息。據(jù)消息顯示,榮耀智慧屏將搭載鴻鵠818芯片+獨(dú)立NPU,采用一塊55英寸的HDR顯示屏,擁有3840×2160分辨率,支持8K@30fps和4K@120fps的視頻解...
8月7日消息,iQOO 5微博發(fā)布會(huì)正在進(jìn)行中?! 〗裉旃俜浇視粤薸QOO 5的音頻部分:高保真Hi-Fi芯片+雙揚(yáng)聲器。  官方介紹,iQOO 5搭載120dB高動(dòng)態(tài)Hi-Fi芯片,從低音到高音細(xì)節(jié)豐富,同時(shí)獲得Hi-Res有線、無(wú)線雙認(rèn)證,帶來(lái)超CD級(jí)別的無(wú)損音質(zhì)。  更重要的是,iQOO 5搭載超線性大振幅立體聲雙揚(yáng)聲器,官方稱(chēng)能帶來(lái)震撼的環(huán)繞立體聲,低音下...
“如果您覺(jué)得一切都在掌握之中,那就是您的速度還不夠快。”— Mario Andretti 多年來(lái),汽車(chē)制造商不斷面臨對(duì)更大功率需求的挑戰(zhàn)。在早期,汽車(chē)使用 6V 電池供電,直到 20 世紀(jì) 50 年代中期,汽車(chē)系統(tǒng)演變?yōu)?12V 電源,以滿(mǎn)足對(duì)更大功率的永久需求。汽車(chē)制造商不僅需要為車(chē)窗、轉(zhuǎn)向系統(tǒng)和座椅預(yù)測(cè)新的供電需求,而且更多電源對(duì)于新型高壓發(fā)動(dòng)機(jī)...

史海拾趣

問(wèn)答坊 | AI 解惑

濾波的問(wèn)題誰(shuí)能幫忙解釋一下

這是從本壇下載的一段程序,繞得頭暈,哪位能在后面注釋一下啊。先謝了! ;中值濾波,采樣值分別放在R2,r3,r4中, 結(jié)果從小到大排序放在R2,R3,R4中 ;R3為中值 FILT2:MOV A,R2        CLR C      &nbs ...…

查看全部問(wèn)答∨

智能循跡小車(chē)全部資料.rar

本帖最后由 paulhyde 于 2014-9-15 03:14 編輯 循跡 [ 本帖最后由 open82977352 于 2009-12-20 16:27 編輯 ]  …

查看全部問(wèn)答∨

超酷的未來(lái)筆記本~~

http://digibbs.tech.163.com/bbs/article.jsp?boardid=notebook&articleid=155219764 如果可以嵌入優(yōu)酷的視頻就好了 [ 本帖最后由 空氣 于 2009-11-3 13:35 編輯 ]…

查看全部問(wèn)答∨

protel99原理圖元器件庫(kù)詳細(xì)說(shuō)明

1.電阻 固定電阻:RES 半導(dǎo)體電阻:RESSEMT 電位計(jì);POT 變電阻;RVAR 可調(diào)電阻;res1 2.電容 定值無(wú)極性電容;CAP 定值有極性電容;CAP 半導(dǎo)體電容:CAPSEMI 可調(diào)電容:CAPVAR 3.電感:INDUCTOR 4.二極管:DIODE.LIB 發(fā)光 ...…

查看全部問(wèn)答∨

EVC開(kāi)發(fā)響應(yīng)左右軟鍵

EVC4.0開(kāi)發(fā)一個(gè)界面,卻不知左右軟鍵功能開(kāi)發(fā),用哪一個(gè)類(lèi),模擬器上沒(méi)有這兩個(gè)鍵的,也不知是VK_??啥子?望哪位仁兄不吝賜教?!?

查看全部問(wèn)答∨

包含了ntddndis.he為什么會(huì)出這樣的錯(cuò)誤。

rawethernet\\ntddndis.h(101) : error C2146: syntax error : missing \';\' before identifier \'Offset\' rawethernet\\ntddndis.h(101) : error C2501: \'ULONG_PTR\' : missing storage-class or type specifiers rawethernet\\ntddndis.h ...…

查看全部問(wèn)答∨

【打聽(tīng)帖】派睿電子大家知道不?用起來(lái)感覺(jué)怎么樣?

  聽(tīng)朋友說(shuō)是小批量分銷(xiāo)商,很多大的企業(yè)都通過(guò)它購(gòu)買(mǎi),   大家使用過(guò)么?用起來(lái)怎么樣?速度???質(zhì)量啊??jī)r(jià)格?。康鹊取?

查看全部問(wèn)答∨

電設(shè)討論群

本帖最后由 paulhyde 于 2014-9-15 09:44 編輯 電子設(shè)計(jì)大賽討論群,交流模塊準(zhǔn)備情況和相關(guān)問(wèn)題 群號(hào):161413266 歡迎大家積極加入! [ 本帖最后由 baijunyan 于 2011-8-25 21:06 編輯 ]  …

查看全部問(wèn)答∨

收到【EEWORLD大學(xué)堂——玩轉(zhuǎn)LaunchPad及G2xx系列超值單片機(jī)】禮品啦!

  經(jīng)測(cè)試使用,一切 [ 本帖最后由 zdhm_Web 于 2011-11-30 12:05 編輯 ]…

查看全部問(wèn)答∨

MSP-EXP43G2或LAUNCHXL-F28027或EK-LM4F120XL

請(qǐng)問(wèn)大神這三個(gè)芯片具體有什么特點(diǎn)  還有我打算做機(jī)器人對(duì)抗方面應(yīng)該選擇哪個(gè)?…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved