freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

觸摸式lcd人機(jī)接口的設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-07-24 16:30 本頁面
 

【文章內(nèi)容簡介】 CD模塊來顯示字符和數(shù)字了, 并且可以顯示各種顏色的背景。 基于XPT2406的控制電路:圖39 xpt2046控制電路4 系統(tǒng)軟件設(shè)計(jì) 我們傳統(tǒng)的鼠標(biāo)是一種相對定位系統(tǒng),只和前一次鼠標(biāo)的位置坐標(biāo)有關(guān)。而觸摸屏則是一種絕對坐標(biāo)系統(tǒng),要選哪就直接點(diǎn)哪,與相對定位系統(tǒng)有著本質(zhì)的區(qū)別。絕對坐標(biāo)系統(tǒng)的特點(diǎn)是每一次定位坐標(biāo)與上一次定位坐標(biāo)沒有關(guān)系,每次觸摸的數(shù)據(jù)通過校準(zhǔn)轉(zhuǎn)為屏幕上的坐標(biāo),不管在什么情況下,觸摸屏這套坐標(biāo)在同一點(diǎn)的輸出數(shù)據(jù)是穩(wěn)定的。不過由于技術(shù)原理的原因,并不能保證同一點(diǎn)觸摸每一次采樣數(shù)據(jù)相同,不能保證絕對坐標(biāo)定位,點(diǎn)不準(zhǔn),這就是觸摸屏最怕出現(xiàn)的問題:漂移。對于性能質(zhì)量好的觸摸屏來說,漂移的情況出現(xiàn)并不是很嚴(yán)重。所以很多應(yīng)用觸摸屏的系統(tǒng)啟動后,進(jìn)入應(yīng)用程序前,先要執(zhí)行校準(zhǔn)程序。通常應(yīng)用程序中使用的LCD坐標(biāo)是以像素為單位的。比如說:左上角的坐標(biāo)是一組非0的數(shù)值,比如(20,20),而右下角的坐標(biāo)為(620,460)。這些點(diǎn)的坐標(biāo)都是以像素為單位的,而從觸摸屏中讀出的是點(diǎn)的物理坐標(biāo),其坐標(biāo)軸的方向、XY值的比例因子、偏移量、縮放因子都與LCD坐標(biāo)不同,所以,可以在IAL的某個(gè)函數(shù)(比如wait_event函數(shù))中把物理坐標(biāo)首先轉(zhuǎn)換為像素坐標(biāo),然后再賦給POS結(jié)構(gòu),達(dá)到坐標(biāo)轉(zhuǎn)換的目的.觸摸屏校正思路:在IAL的某個(gè)函數(shù)(比如wait_event函數(shù))中加入調(diào)試信息,開發(fā)板上運(yùn)行Calibrate程序,那么觸摸屏上任何一點(diǎn)的坐標(biāo)就可以在主機(jī)監(jiān)視屏上回顯出來。于是,就采集到了4個(gè)角的物理坐標(biāo),640X480分辨率,則它們的像素坐標(biāo)分別是(20,20)、(20,460)、(620,460)和(620,20)。這樣,使用待定系數(shù)法就可以算出坐標(biāo)系之間的平移關(guān)系。比如:Vx = xFactor*Px + xOffset Vy = yFactor*Py + yOffset主程序流程圖如下圖41所示否開始硬件初始化刷新并不斷檢測觸摸屏狀延時(shí)讀取坐標(biāo)點(diǎn)的坐標(biāo)值獲取初始值的坐標(biāo)值觸摸屏仍被觸摸嗎是觸摸屏被觸摸么圖41 C語言的簡介C語是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。C 語言具有下列特點(diǎn):1)C是中級語言。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。2)C是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。3)C語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。4)C語言適用范圍大。適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語言對編寫需要硬件進(jìn)行操作的場合,明顯優(yōu)于其它解釋型高級語言,有一些大型應(yīng)用軟件也是用C語言編寫的。C語言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。它是數(shù)值計(jì)算的高級語言。//初始化液晶接口void LCD_Port(void){ = 1。 //WR = 1。 //RD = 1。 //RD = 1。 //WR = 1。 //RS = 1。 //CS = 1。 = 1。}//延時(shí)void DelayMs(unsigned short k){ unsigned short i。 unsigned int j。 for(i = k。i 0。i) for(j = 1000。j 0。j)。 }//向HC573寫入數(shù)據(jù)void Write_HC573(unsigned short Dat){ unsigned char dat。 dat = (unsigned char)(Datamp。0xFF)。 IO1SET |= (((unsigned int)dat)16)。 IO1CLR |= ((~(((unsigned int)dat)16))amp。((0XFF16)))。 = 1。 = 1。 dat = (unsigned char)((Dat8)amp。0xFF)。 IO1SET |= (((unsigned int)dat)16)。 IO1CLR |= ((~(((unsigned int)dat)16))amp。((0XFF16)))。 = 1。 = 1。}//向液晶屏寫入數(shù)據(jù)void TFTWriData(unsigned short ch){ LCD_RS_H()。 //RS = 1 LCD_CS_L()。 //CS = 0 Write_HC573(ch)。 LCD_WR_L()。 //WR = 0 LCD_WR_H()。 //WR = 1 LCD_CS_H()。 //CS = 1}//向液晶屏寫入命令void TFTWriCom(unsigned short ch){ LCD_RS_L()。 //RS = 0 Write_HC573(ch)。 LCD_WR_L()。 //WR = 0 LCD_CS_L()。 //CS = 0 LCD_WR_H()。 //WR = 1 LCD_CS_H()。 //CS = 1}//寫入控制字void write_(unsigned short address,unsigned short num){ TFTWriCom(address)。 TFTWriData(num)。}//液晶屏初始化void TftInit(void){ LCD_RESET_L()。 //低電平復(fù)位 Delayn(10000)。 LCD_RESET_H()。define DelayNS Delayn write_(0x0000,0x0001)。 DelayNS(1000)。 //打開晶振 write_(0x0003,0xA8A4)。 DelayNS(1000)。 //0xA8A4 write_(0x000C,0x0000)。 DelayNS(1000)。 write_(0x000D,0x080C)。 DelayNS(1000)。 write_(0x000E,0x2B00)。 DelayNS(1000)。 write_(0x001E,0x00B0)。 DelayNS(1000)。 write_(0x0001,0x2B3F)。 DelayNS(1000)。 //驅(qū)動輸出控制320*240 0x6B3F write_(0x0002,0x0600)。 DelayNS(1000)。 write_(0x0010,0x0000)。 DelayNS(1000)。 write_(0x0011,0x6070)。 DelayNS(1000)。 //0x4030 //定義數(shù)據(jù)格式 16位色 write_(0x0005,0x0000)。 DelayNS(1000)。 write_(0x0006,0x0000)。 DelayNS(1000)。 write_(0x0016,0xEF1C)。 DelayNS(1000)。 write_(0x0017,0x0003)。 DelayNS(1000)。 write_(0x0007,0x0233)。 DelayNS(1000)。 //0x0233 write_(0x000B,0x0000)。 DelayNS(1000)。 write_(0x000F,0x0000)。 DelayNS(1000)。 //掃描開始地址 write_(0x0041,0x0000)。 DelayNS(1000)。 write_(0x0042,0x0000)。 DelayNS(1000)。 write_(0x0048,0x0000)。 DelayNS(1000)。 write_(0x0049,0x013F)。 DelayNS(1000)。 write_(0x004A,0x0000)。 DelayNS(1000)。 write_(0x004B,0x0000)。 DelayNS(1000)。 write_(0x0044,0xEF00)。 DelayNS(1000)。 write_(0x0045,0x0000)。 DelayNS(1000)。 write_(0x0046,0x013F)。 DelayNS(1000)。 write_(0x0030,0x0707)。 DelayNS(1000)。 write_(0x0031,0x0204)。 DelayNS(1000)。 write_(0x0032,0x0204)。 DelayNS(1000)。 write_(0x0033,0x0502)。 DelayNS(1000)。 write_(0x0034,0x0507)。 DelayNS(1000)。 write_(0x0035,0x0204)。 DelayNS(1000)。 write_(0x0036,0x0204)。 DelayNS(1000)。 write_(0x0037,0x0502)。 DelayNS(1000)。 write_(0x003A,0x0302)。 DelayNS(1000)。 write_(0x003B,0x0302)。 DelayNS(1000)。 write_(0x0023,0x0000)。 DelayNS(1000)。 write_(0x0024,0x0000)。 DelayNS(1000)。 write_(0x0025,0x8000)。 DelayNS(1000)。 write_(0x004f,0)。 //行首址0 write_(0x004e,0)。 //列首址0}5 下載與調(diào)試在代碼編譯成功之后,我們通過下載代碼到ALIENTEK MiniSTM32開發(fā)板上,可以看到LCD顯示如下內(nèi)容: 圖51程序運(yùn)行效果如果已經(jīng)校準(zhǔn)過了,同時(shí)DS0開始閃爍,界面如下圖所:圖52手寫界面此時(shí),我們就可以在該界面下用筆或者手指輸入信息
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1