999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM7 STM32控制點(diǎn)陣液晶屏的設(shè)計(jì)

2015-11-21 02:18:57呂鵬欒童童
橡塑技術(shù)與裝備 2015年24期
關(guān)鍵詞:動(dòng)畫程序設(shè)置

呂鵬,欒童童

(天津賽象科技股份有限公司,天津 300384)

基于ARM7 STM32控制點(diǎn)陣液晶屏的設(shè)計(jì)

ARM7 based design of STM32 controlled dot matrix LCD screen

呂鵬,欒童童

(天津賽象科技股份有限公司,天津 300384)

采用STM32 驅(qū)動(dòng)的點(diǎn)陣液晶屏具有顯示速度快、成本低廉、便于維護(hù)等特點(diǎn);采用LM16080型號(hào)點(diǎn)陣屏,文中詳述此屏的功能和原理,以及它的初始化和控制程序編寫。敘述了靜態(tài)圖形和動(dòng)畫的顯示方法。

STM32;點(diǎn)陣液晶屏;動(dòng)畫顯示

使用STM32F103RBT6單片機(jī)驅(qū)動(dòng)TOPWAY LM16080型號(hào)點(diǎn)陣屏完成控制器動(dòng)畫設(shè)計(jì),形象顯示出設(shè)備工作情況及運(yùn)行情況而且具有人機(jī)交互界面和設(shè)備參數(shù)設(shè)置功能。

1 STM32開發(fā)平臺(tái)簡(jiǎn)介

STM32開發(fā)軟件Keil μVision4是由美國(guó)Keil Software公司出品,2005年由ARM公司收購(gòu)。該軟件具有程序下載、工程編譯、在線調(diào)試等功能。開發(fā)STM32 常采用固件庫(kù)和寄存器兩種方法。

固件庫(kù)ST(意法半導(dǎo)體)為了方便用戶開發(fā)程序,提供了一套豐富的 STM32 固件庫(kù)能讓使用者根據(jù)官方說(shuō)明進(jìn)行操作,使其編程十分方便,因此得到廣泛應(yīng)用。另一種方法是用了寄存直接操作,就是直接對(duì)STM32內(nèi)部寄存器操作,這種操作效率非常高,尤其是對(duì)時(shí)間要求苛刻的時(shí)候更能體現(xiàn)其優(yōu)點(diǎn);但是由于STM32內(nèi)部資源豐富,寄存器數(shù)量十分龐大,記憶起來(lái)十分麻煩,因此,除特殊工程需要外,基本不建議采用。

2 TOPWAY LM16080點(diǎn)陣屏功能和原理

圖1 并行接口時(shí)序關(guān)系(適配INTEL8080時(shí)序)

TOPWAY LM16080液晶屏內(nèi)部采用UC1610控制器控制,其功能如下:工作電壓3.3 V,顯示功能為4級(jí)灰度,溫度補(bǔ)償,驅(qū)動(dòng)玻璃熔值,對(duì)比設(shè)置,刷屏速度等。數(shù)據(jù)接口方式采用 8位并行接口,傳輸數(shù)據(jù)量大。圖1為并行接口時(shí)序圖,表1為時(shí)序關(guān)系表。

使用STM32編寫驅(qū)動(dòng)程序操作TOPWAY LM16080液晶屏,首先需要了解液晶屏管腳功能,參見手冊(cè)。

詳細(xì)操作說(shuō)明及STM32連接情況:

(1)VSS 電源地;

(2)VDD 電源正極電壓為+3.3 V;

表1 時(shí)序關(guān)系表

(3)并行總線IO口,連接STM32->PC0;

(4)并行總線IO口,連接STM32->PC1;

(5)并行總線IO口,連接STM32-> PC2;

(6)并行總線IO口,連接STM32-> PC3;

(7)并行總線IO口,連接STM32-> PC4;

(8)并行總線IO口,連接STM32-> PC5;

(9)并行總線IO口,連接STM32-> PC6;

(10)并行總線IO口,連接STM32-> PC7;

(11)/RD 使用并行接口時(shí),為讀信號(hào)/RD,低電平有效。連接STM32->PB10;

(12)/WR使用并行接口時(shí),為寫信號(hào)/WR,低電平有效。連接STM32->PB11;

(13)CD 通道選擇信號(hào),當(dāng)CD=0時(shí)選擇指令通通道,當(dāng)CD=2時(shí)選擇數(shù)據(jù)通通道。連接STM32->PB1;

(14)/RST 復(fù)位信號(hào)。連接STM32->PB0;

(15)/CS1 片選信號(hào)當(dāng)/CS1=0時(shí)選通模塊,/ CS1=1時(shí)封鎖模塊。連接STM32->PA7;

(16)BLA 背光連接。

3 TOPWAY LM16080初始化和控制程序編寫

必須了解TOPWAY LM16080 寄存器的功能,才能正確編寫驅(qū)動(dòng)程序。下面是液晶屏寄存器表通過(guò)程序?qū)懭霐?shù)值,正確操作液晶屏。首先需要把液晶屏進(jìn)行初始化設(shè)置(對(duì)比參數(shù)、灰度值、掃描速度、顯示方向),設(shè)置結(jié)束行和起始行等。

下面是部分初始化代碼:

SdCmd(0x24); //溫度補(bǔ)償-0.05%/℃

SdCmd(0x23); //驅(qū)動(dòng)玻璃容值16~21 nf

SdCmd(0x2f); //啟用內(nèi)部DC-DC電路8X

SdCmd(0xe9); //Bias=1/10

SdCmd(0x81);

SdCmd(ContrastLevel); // 對(duì)比度設(shè)置

SdCmd(0xaf); //開顯示

SdCmd(0xD3); // 灰度差24%

SdCmd(0xa3); //行掃描速度16.1 Kips

SdCmd(0x84); //禁用部分區(qū)域顯示效果功能

SdCmd(0xc6); //顯示方向,IC在上方,MY=0,MX=0,LC0=0

SdCmd(0xf1);

SdCmd(0x4f); //設(shè)置顯示結(jié)束行80

SdCmd(0xf2);

SdCmd(0x00); //設(shè)置顯示起始行0

SdCmd(0xf3);

SdCmd(0x4f); //設(shè)置行輸出范圍最大80

Clear_Lcd();

delay_ms(500);

需要注意的是,初始化中的對(duì)比參數(shù)設(shè)置是保證上電后能夠獲得較好的顯示效果,但也不是一成不變的,每個(gè)批次產(chǎn)品電壓偏差、系統(tǒng)的電源波動(dòng)以及使用環(huán)境的不一致,都會(huì)影響到顯示效果,所以要求對(duì)比參數(shù)是可調(diào)整和可設(shè)置的。上電后執(zhí)行初始化,在模塊顯示屏上應(yīng)該能看到有一定對(duì)比的“穩(wěn)定花瓶”。這是因?yàn)樵诔跏蓟袥](méi)用對(duì)RAM進(jìn)行清“0”,所以在屏幕上顯示出來(lái)的都是ARM在電腦上的隨機(jī)數(shù)。這是正常的。由此我們可以把初始化函數(shù)作為接口的調(diào)試程序,如果沒(méi)出現(xiàn)上述現(xiàn)象則需重新檢查電路和接口時(shí)序關(guān)系。

使用KEIL編寫 STM32 程序,搭建好STM32工程后(詳細(xì)搭建工程請(qǐng)參考網(wǎng)絡(luò)),操作TOPWAY LM16080液晶屏其實(shí)只用到了 STM32 IO口功能,但必須要按照說(shuō)明書編寫。首先開啟STM32 IO口時(shí)鐘,由于STM32時(shí)鐘結(jié)構(gòu)非常復(fù)雜,這里只介紹ABP2。ABP2是外設(shè)復(fù)位寄存器控制STM32 IO口時(shí)鐘,如圖2所示。

首先開啟時(shí)鐘。本項(xiàng)目用到的IO口共三組:GPIOC、 GPIOB 、GPIOA(本項(xiàng)目采用寄存器,沒(méi)有采用固件庫(kù))。

RCC->APB2ENR|=1<<3; //使能 PORTB 時(shí)鐘

RCC->APB2ENR|=1<<6; //使能 PORTE 時(shí)鐘

圖2 ABP2外設(shè)復(fù)位寄存器(RCC_APB2RSTR)

RCC->APB2ENR|=1<<2; //使能 PORTA 時(shí)鐘

這樣三組IO口時(shí)鐘開啟完畢。然后配置IO口輸入、輸出模式。 STM32 一共有8種模式:模擬輸入、浮空輸入、下拉輸入、上拉輸入、開漏輸出、通用推挽輸出、復(fù)用開漏輸出、復(fù)用推挽。本項(xiàng)目采用通用推挽輸出。

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_ Out_PP; //推挽輸出

還需要配置IO口速度。STM32一共有3種速度:2 MHz、10 MHz、50 MHz 。本項(xiàng)目設(shè)置為50 MHz。

GPIO_InitStructure.GPIO_Speed=GPIO_ Speed_50 MHz;//速度 50 MHz

然后初始化這組IO口就可以了。

GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化 GPIOC

4 顯示靜態(tài)圖形方法

通過(guò)使用軟件制作圖形庫(kù)。利用copyleft by horse2000制作液晶屏圖片和字模,自動(dòng)生成圖形數(shù)組和字庫(kù)數(shù)組。通過(guò)程序調(diào)用這些數(shù)組就可以了。參見圖3。

下面是顯示圖片主函數(shù):

圖3 公司LOGO效果圖

void LOGO_BMP(uchar x,uchar y,uchar width,uchar high) //描述公司圖標(biāo)函數(shù)

// 坐標(biāo)(x,y),x為水平方向像素列;y為垂直方向頁(yè)(8點(diǎn)像素/頁(yè))

//width:圖形水平像素點(diǎn)數(shù);high:圖形垂直頁(yè)數(shù);bmp[]:圖形數(shù)組名

{uchar i,j,k,Dtemp;

uint m,Ddata;

// 啟動(dòng)窗口操作

SdCmd(0xf4);

SdCmd(x); //設(shè)置工作區(qū)起始像素列

SdCmd(0xf6);

SdCmd(x+width-1); //設(shè)置工作區(qū)結(jié)束像素列

SdCmd(0xf5);

SdCmd(y); //設(shè)置工作區(qū)起始頁(yè)0

SdCmd(0xf7);

SdCmd(y+high*2-1); //設(shè)置工作區(qū)結(jié)束頁(yè)

SdCmd(0x8b); // 先頁(yè)地址再列地址

SdCmd(0xf9); // 窗口操作使能//設(shè)置起始地址

SdCmd(0x60|(y&0x1f)); // 設(shè)置5位頁(yè)地址

SdCmd(0x00|(x&0x0f)); // 設(shè)置低4位列地址

SdCmd(0x10|(x>>4)); // 設(shè)置高4位列地址

for(i=x;i

{ for(j=0;j

{ m = i+width*j;

Dtemp = LCD_LOGO[m];

Ddata = 0x0000;

for(k=0;k<8;k++)

{ Ddata = Ddata>>2;

if ((Dtemp&0x01)==0x01)

{ Ddata = Ddata+0xc000; }

Dtemp=Dtemp>>1; }

SdData(Ddata); // 寫圖形數(shù)據(jù)

SdData(Ddata>>8); // 寫圖形數(shù)據(jù)

} }

SdCmd(0x88); // 先列地址再頁(yè)地址

SdCmd(0xf8); // 關(guān)閉窗口操作

通過(guò)該程序就可以調(diào)用圖形數(shù)組,顯示提前設(shè)計(jì)好的圖形。

5 文字顯示方法

文字圖形顯示由于TOPWAY LM16080型號(hào)屏不帶字庫(kù)芯片,需要自己設(shè)計(jì)字庫(kù)。依然使用copyleft by horse2000 軟件來(lái)完成此項(xiàng)工作,程序不再詳述。

6 動(dòng)畫顯示方法

動(dòng)畫顯示在理論上是十分簡(jiǎn)單的,一次循環(huán)加載一張圖片,利用軟件把畫面做成幀。例如:實(shí)現(xiàn)一個(gè)人的跳舞動(dòng)畫,可利用截圖軟件,每100 ms生成一張圖片(亦即幀),然后通過(guò)程序讓這些圖片按照100 ms時(shí)間逐個(gè)顯示出來(lái)就變成動(dòng)畫了。不過(guò)這種方法在這里并不適用,因?yàn)镾TM32 內(nèi)核最快速度只有72 MHz,而且普通IO口速度才2 MHz ,這種液晶屏RAM顯存空間非常少。這種方法會(huì)造成屏幕閃爍,容易造成花屏甚至死機(jī)。

我在這里采用一種像素操作法控制像素顯示。再?gòu)?fù)雜的圖形都是由像素組成的,利用像素的變化直接變成想要的圖形和動(dòng)畫,這種方法效率高,但是程序相對(duì)較復(fù)雜,不過(guò)比起直接操作圖片顯示可以節(jié)省大量的程序空間,合理使用芯片內(nèi)部程序存儲(chǔ)空間是重中之重。因?yàn)閱纹瑱C(jī)的資源是有限的,絕對(duì)不可以超過(guò)存儲(chǔ)空間。

下面是控制像素程序:

void Draw_Dot(uchar x,uchar y) //繪制點(diǎn)

// 坐標(biāo)(x,y),x為水平方向像素列;y為垂直方向像素行(4像素行/頁(yè))

{ uchar k,m;

k=y/4;

SdCmd(0x60|(k&0x1f)); // 設(shè)置低4位頁(yè)地址

SdCmd(0x00|(x&0x0f)); // 設(shè)置低4位列地址

SdCmd(0x10|(x>>4)); // 設(shè)置高4位列地址

k=y%4;

m=3;

k=m<<(k*2);

m=RdData(); // 空讀操作

m=RdData(); // 讀數(shù)據(jù)

m=m|k;

k=y/4;

SdCmd(0x60|(k&0x1f)); // 設(shè)置5位頁(yè)地址

SdCmd(0x00|(x&0x0f)); // 設(shè)置低4位列地址

SdCmd(0x10|(x>>4)); // 設(shè)置高4位列地址

SdData(m); // 寫數(shù)據(jù)

}

只需要知道液晶屏X,Y的坐標(biāo)即可。圖4是動(dòng)畫顯示效果圖。

7 結(jié)論

利用上述方法,便可以隨心所欲地做成想要的圖形或文字。這種屏幕主要應(yīng)用在中低端工業(yè)設(shè)備上,具有抗干擾能力強(qiáng)、不受外界光線干擾影響、價(jià)格低廉等特點(diǎn)。

氣動(dòng)糾偏操作面板就是采用這種液晶屏,可以形象地反映設(shè)備工作狀態(tài)、物料當(dāng)前位置、氣缸位置、設(shè)備運(yùn)行參數(shù)等。而且STM32系列單片機(jī)具有價(jià)格低、開發(fā)周期短、抗干擾能力強(qiáng)等優(yōu)勢(shì),因此被工業(yè)儀器儀表大量使用。

(R-01)

圖4 動(dòng)畫顯示效果圖

TQ330.493

1009-797X (2015) 24-0186-05

B

10.13520/j.cnki.rpte.2015.24.076

呂鵬,男,主要從事工業(yè)自動(dòng)化系統(tǒng)的設(shè)計(jì)工作。

2015-08-18

猜你喜歡
動(dòng)畫程序設(shè)置
中隊(duì)崗位該如何設(shè)置
做個(gè)動(dòng)畫給你看
動(dòng)畫發(fā)展史
我的動(dòng)畫夢(mèng)
文苑(2019年22期)2019-12-07 05:28:56
試論我國(guó)未決羈押程序的立法完善
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
我是動(dòng)畫迷
本刊欄目設(shè)置說(shuō)明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
主站蜘蛛池模板: 久久精品中文无码资源站| jizz在线免费播放| 99在线观看国产| 亚洲日韩日本中文在线| 亚洲欧美综合另类图片小说区| 亚洲AⅤ永久无码精品毛片| 中文字幕1区2区| 国产性生大片免费观看性欧美| 九一九色国产| 在线日韩一区二区| 免费一级毛片| 欧美a在线看| 又爽又黄又无遮挡网站| 再看日本中文字幕在线观看| 久久精品中文字幕免费| 99久久精品无码专区免费| 国产成人调教在线视频| 片在线无码观看| 国产成a人片在线播放| 91福利国产成人精品导航| 国产又爽又黄无遮挡免费观看| 国产成人乱无码视频| 另类综合视频| 性视频一区| 国产靠逼视频| 国产免费网址| 日韩欧美国产另类| 亚洲清纯自偷自拍另类专区| 亚洲天堂视频在线观看| 国产区在线看| 无码精油按摩潮喷在线播放| 91青草视频| 亚洲精品第一在线观看视频| 一边摸一边做爽的视频17国产 | 国产在线视频自拍| 国产精品香蕉| 亚洲V日韩V无码一区二区| 国产裸舞福利在线视频合集| 伊人婷婷色香五月综合缴缴情| 亚洲日本一本dvd高清| 538精品在线观看| 国产欧美日本在线观看| 国产美女在线观看| 72种姿势欧美久久久久大黄蕉| 亚洲欧美日韩另类在线一| 国内a级毛片| 欧美国产日韩一区二区三区精品影视| 婷婷综合亚洲| 欧美在线免费| 国产99精品视频| 香蕉国产精品视频| 亚洲高清在线播放| 无遮挡国产高潮视频免费观看 | 日本欧美一二三区色视频| 国产一区亚洲一区| 日韩欧美国产区| 亚洲最大福利网站| 日韩国产精品无码一区二区三区| 超碰色了色| 国产毛片基地| 国产九九精品视频| 高潮爽到爆的喷水女主播视频| 国产99视频精品免费观看9e| 国产成人精彩在线视频50| 免费一级毛片在线播放傲雪网| 亚洲香蕉久久| 无码在线激情片| 免费国产一级 片内射老| 国产精品专区第1页| 狠狠综合久久| 亚洲精品亚洲人成在线| 国产精彩视频在线观看| 制服丝袜在线视频香蕉| 婷婷久久综合九色综合88| 亚洲狼网站狼狼鲁亚洲下载| 国内a级毛片| 欧美日韩一区二区在线免费观看| 久久久久国产精品嫩草影院| 亚洲丝袜第一页| 欧美日韩一区二区在线免费观看| 国产91小视频| AV网站中文|