當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]ATMEGA16L單片機(jī)是一款基于AVR RISC 的、低功耗CMOS 8 位單片機(jī),具有16K字節(jié)的自編程FLASH, 512字節(jié)的EEPROM, 1K字節(jié)的SRAM, 通過AVR單片機(jī)來控制LED的顯示,結(jié)構(gòu)簡(jiǎn)單,應(yīng)用靈活,并且易于擴(kuò)展。

1引言

  LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,應(yīng)用越來越廣泛。ATMEGA16L單片機(jī)是一款基于AVR RISC 的、低功耗CMOS 8 位單片機(jī),具有16K字節(jié)的自編程FLASH, 512字節(jié)的EEPROM, 1K字節(jié)的SRAM, 通過AVR單片機(jī)來控制LED的顯示,結(jié)構(gòu)簡(jiǎn)單,應(yīng)用靈活,并且易于擴(kuò)展。

2 系統(tǒng)設(shè)計(jì)原理

2.1 編碼設(shè)計(jì)

  編碼設(shè)計(jì)有兩個(gè)過程:字庫(kù)提取以及字模編碼轉(zhuǎn)換。字庫(kù)的提取涉及到的兩個(gè)字庫(kù)文件,一個(gè)為ASC16,專門存放ASCII編碼;另一個(gè)為HZK16,專門存放漢字字庫(kù)編碼。要提取字庫(kù),首先要對(duì)它進(jìn)行初始化,即打開字庫(kù)。然后根據(jù)一個(gè)字符提取它相應(yīng)的編碼。首先取出字符的內(nèi)碼后(注意區(qū)分單字節(jié)和雙字節(jié)的內(nèi)碼),接著通過內(nèi)碼得到該字符對(duì)應(yīng)的字模的編碼在ASCII或HZK16內(nèi)的偏移量,最后就可以根據(jù)這個(gè)地址在文件中的偏移位置找到相應(yīng)的字模編碼,我們可以通過這個(gè)公式來計(jì)算:

  在ASCII中,偏移量=(內(nèi)碼的低地址)*16,

  在HZK16中,偏移量= ((內(nèi)碼的高地址-161)*94 + (內(nèi)碼的低地址-161))*32。

  此時(shí)得到的字模編碼不是最終所要的編碼(單字節(jié)數(shù)據(jù)如英文是按8*16點(diǎn)陣來顯示,而雙字節(jié)數(shù)據(jù)時(shí)如漢字是按16*16點(diǎn)陣來顯示的)。這里統(tǒng)一使用8*16點(diǎn)陣,這就需要對(duì)其轉(zhuǎn)換。下圖左表格表示的是漢字編碼在字庫(kù)內(nèi)存放順序,右表格表示的是經(jīng)過轉(zhuǎn)換過后的編碼存放順序。編碼轉(zhuǎn)換過程如圖1所示:

           圖1 編碼轉(zhuǎn)換

2.2 矩陣轉(zhuǎn)換移位算法

  
矩陣轉(zhuǎn)換移位算法目的就是如何把這些原始的數(shù)據(jù)轉(zhuǎn)換成串行的數(shù)據(jù), 以便把數(shù)據(jù)正確的輸入到74HC595。原始的數(shù)據(jù)必須要對(duì)其轉(zhuǎn)換。下面為它的算法實(shí)現(xiàn)。

for(m=0;m<8;m++)       //m表示的是第幾個(gè)LED

  {? for(j=0;j<8;j++)   //j表示的是某個(gè)LED的第幾排數(shù)據(jù)

  {? for(i=0;i<8;i++)   //i表示的是取某個(gè)LED的第某排數(shù)據(jù)的第幾位

  { displayport_a[m][j]|=((displaycode_a[i][m]&0x01)<

      displaycode_a[i][m]=displaycode_a[i][m]>>1;

               // displayport_a[m][j]表示存放已轉(zhuǎn)換好數(shù)據(jù)

               // displaycode_a[i][m]表示存放的是原始數(shù)據(jù)

//‘|’表示相或,‘&’表示相與,‘<<’表示左移

}

}

}

2.3 上位機(jī)和下位機(jī)的通信

  
上位機(jī)和下位機(jī)的通信主要是通過RS232接口進(jìn)行的,對(duì)于上位機(jī)的數(shù)據(jù)傳輸?shù)乃俾蕿?600bps。為了便于數(shù)據(jù)的傳輸和接收,可以給要傳輸數(shù)據(jù)的前后加上標(biāo)志位。如果數(shù)據(jù)發(fā)送量大,在發(fā)送數(shù)據(jù)時(shí)還可采用線程的方式來發(fā)送。而下位機(jī)接收數(shù)據(jù)則可采用單片機(jī)內(nèi)全雙工的通用異步收發(fā)器(UART)來進(jìn)行。

  UART有中斷和查詢兩種工作方式,UART初始化需要設(shè)置相關(guān)幾個(gè)控制寄存器,我們可以把UART幾個(gè)控制寄存器的初始化情況表示出來:

  UCR = 0x00 設(shè)置波特率時(shí)要先關(guān)閉UART

  UBRR = 0x33 設(shè)置波特率為9600bps

  UCR = 0xD8 打開串口:8位數(shù)據(jù)

  UART如何接收和發(fā)送數(shù)據(jù)通過數(shù)據(jù)寄存器UDR完成。UDR雖然只有一個(gè)地址,但是在物理上分離了二個(gè)寄存器,一個(gè)用于發(fā)送,一個(gè)用于接收。對(duì)于數(shù)據(jù)的接收和發(fā)送采用中斷的方式,其中斷向量為12,即是interrupt handler uart0_rx_isr:12。接收和發(fā)送方式如下:

  Receive=UDR 接收一個(gè)數(shù)據(jù)

  UDR= Send  發(fā)送一個(gè)數(shù)據(jù)

2.4 顯示原理

  要想點(diǎn)亮LED,必須把LED的位選數(shù)據(jù)信號(hào)置成低電平。顯示的過程如下:首先是將74HC595的RCK置0,再?gòu)南鄳?yīng)數(shù)組中取出要顯示的數(shù)據(jù)和位選信號(hào),通過SCK的一個(gè)上升沿脈沖,就可以將這個(gè)數(shù)據(jù)輸入74HC595,等所有的數(shù)據(jù)打入相應(yīng)的芯片后最后再把RCK置1,這些數(shù)據(jù)就可以通過74HC595并行的傳輸出去。

3 系統(tǒng)的設(shè)計(jì)方案

  硬件總體框架的設(shè)計(jì)是根據(jù)上位機(jī)與下位機(jī)通信原理以及LED點(diǎn)陣顯示原理和74HC595的特性所構(gòu)成的。下面的圖2說明的是LED點(diǎn)陣顯示驅(qū)動(dòng)原理圖及其連線方式。


        圖2 LED點(diǎn)陣顯示驅(qū)動(dòng)原理圖

  PA、PB口將作為數(shù)據(jù)輸出口,一共連接16個(gè)8*8的LED。端口的每一個(gè)引腳將作為74HC595的數(shù)據(jù)輸入端。RCK、SCK的并聯(lián)的使用的目的是為了實(shí)現(xiàn)LED字符的同步顯示。在線路連接中Q`H必須連接SI,因?yàn)楦鶕?jù)74HC595的特性,如果輸入的數(shù)據(jù)數(shù)大于8,那么前面的數(shù)據(jù)將會(huì)被自動(dòng)溢出,根據(jù)這一思想就將兩個(gè)芯片連接起來,按照先輸入8位數(shù)據(jù)信號(hào),再輸入8位位選信號(hào)的順序,那么正好前一個(gè)74HC595存放位選信息,后一個(gè)74HC595存放數(shù)據(jù)信息。

  根據(jù)系統(tǒng)的設(shè)計(jì)原理,得出如下圖3的軟件流程框架:

 


                    圖3  軟件流程框架

4 結(jié)論

  對(duì)于目前這個(gè)顯示系統(tǒng),優(yōu)點(diǎn)在于電路實(shí)現(xiàn)簡(jiǎn)單,成本較低。如果系統(tǒng)需要更大的字符顯示庫(kù),只需要擴(kuò)展AVR的RAM或EEPROM,并且用多個(gè)AVR單片機(jī)進(jìn)行的通訊即可。當(dāng)然,這時(shí)需要注意數(shù)據(jù)寫入時(shí)間問題,以免造成顯示的不同步。

參考文獻(xiàn)
[1]丁化成,耿德根,李君凱. AVR單片機(jī)應(yīng)用設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2002
[2]沈文,Eagle lee,詹衛(wèi)前. AVR單片機(jī).C語言開發(fā)入門指導(dǎo)[M].北京:清華大學(xué)出版社,2003
[3] 金春林, 邱慧芳, 張皆喜. AVR系列單片機(jī)---C語言編程與應(yīng)用實(shí)例[M].北京:清華大學(xué)出版社 2003
[4] 劉樂善, 歐陽星明 ,劉學(xué)清. 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].武漢:華中科技大學(xué)出版社,2000

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉