亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM7 STM32控制點陣液晶屏的設(shè)計

        2015-11-21 02:18:57呂鵬欒童童
        橡塑技術(shù)與裝備 2015年24期
        關(guān)鍵詞:液晶屏寄存器時鐘

        呂鵬,欒童童

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

        基于ARM7 STM32控制點陣液晶屏的設(shè)計

        ARM7 based design of STM32 controlled dot matrix LCD screen

        呂鵬,欒童童

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

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

        STM32;點陣液晶屏;動畫顯示

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

        1 STM32開發(fā)平臺簡介

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

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

        2 TOPWAY LM16080點陣屏功能和原理

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

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

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

        詳細操作說明及STM32連接情況:

        (1)VSS 電源地;

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

        表1 時序關(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 使用并行接口時,為讀信號/RD,低電平有效。連接STM32->PB10;

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

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

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

        (15)/CS1 片選信號當/CS1=0時選通模塊,/ CS1=1時封鎖模塊。連接STM32->PA7;

        (16)BLA 背光連接。

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

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

        下面是部分初始化代碼:

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

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

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

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

        SdCmd(0x81);

        SdCmd(ContrastLevel); // 對比度設(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);

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

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

        首先開啟時鐘。本項目用到的IO口共三組:GPIOC、 GPIOB 、GPIOA(本項目采用寄存器,沒有采用固件庫)。

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

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

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

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

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

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

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

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

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

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

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

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

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

        圖3 公司LOGO效果圖

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

        // 坐標(x,y),x為水平方向像素列;y為垂直方向頁(8點像素/頁)

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

        {uchar i,j,k,Dtemp;

        uint m,Ddata;

        // 啟動窗口操作

        SdCmd(0xf4);

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

        SdCmd(0xf6);

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

        SdCmd(0xf5);

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

        SdCmd(0xf7);

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

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

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

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

        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); // 先列地址再頁地址

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

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

        5 文字顯示方法

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

        6 動畫顯示方法

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

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

        下面是控制像素程序:

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

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

        { uchar k,m;

        k=y/4;

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

        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位頁地址

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

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

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

        }

        只需要知道液晶屏X,Y的坐標即可。圖4是動畫顯示效果圖。

        7 結(jié)論

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

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

        (R-01)

        圖4 動畫顯示效果圖

        TQ330.493

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

        B

        10.13520/j.cnki.rpte.2015.24.076

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

        2015-08-18

        猜你喜歡
        液晶屏寄存器時鐘
        別樣的“時鐘”
        古代的時鐘
        Lite寄存器模型的設(shè)計與實現(xiàn)
        基于STM32F4的多通道串口驅(qū)動TFT液晶屏顯示系統(tǒng)設(shè)計
        液晶與顯示(2020年5期)2020-05-06 13:46:58
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        FPGA的TFT-LCD真彩液晶屏顯示控制
        有趣的時鐘
        基于機器視覺的液晶屏字符缺陷檢測系統(tǒng)設(shè)計
        時鐘會開“花”
        基于圖像處理的電能表液晶屏質(zhì)量檢測方法
        電測與儀表(2014年9期)2014-04-15 00:27:02
        久久精品国产亚洲片| 日日摸天天摸人人看| 成人性生交大片免费看r| www.日本一区| 成人在线免费视频亚洲| 日本一二三区在线视频观看| 亚洲综合精品中文字幕| 国产精品久久久久9999无码| 国产真人性做爰久久网站| 亚洲精品视频久久| 99久久亚洲精品加勒比| 日本熟妇另类一区二区三区| 夜鲁很鲁在线视频| 精品人妻VA出轨中文字幕| 成人短篇在线视频夫妻刺激自拍| 国产韩国一区二区三区| 精品国产一区二区三区不卡在线| 粗大的内捧猛烈进出少妇 | 国产精品一区二区三区自拍| 国产美女在线精品免费观看| 99国产精品久久久蜜芽| 免費一级欧美精品| 国产一区二区精品人妖系列在线| 猫咪av成人永久网站在线观看| 精精国产xxxx视频在线| 国产高清精品在线二区| 亚洲精品456在线播放狼人| 色哟哟亚洲色精一区二区| 成年女人免费视频播放体验区| 精品福利视频一区二区三区| 精品的一区二区三区| 丝袜美腿亚洲综合第一页| 男吃奶玩乳尖高潮视频| 亚洲精品无码久久久| 无码aⅴ在线观看| 开心激情站开心激情网六月婷婷| 黄色国产一区二区99| 亚洲欧美中文字幕5发布| 精品久久综合亚洲伊人| 国产精品污一区二区三区在线观看 | 国产精品亚洲专区在线播放|