天天爽天天看-日本少妇xxxx动漫-亚洲av成人精品毛片-欧美一区二区三区激情啪啪-91精品国产成-欧美牲交a欧美牲交aⅴ-欧美日韩国产免费观看-九九99精品久久久久久综合-欧美理论影院-国内老熟妇乱子伦视频-www在线观看av-黄色裸体网站-少妇高潮惨叫久久久久久-国产偷国产偷av亚洲清高-国产午夜精品理论片小yo奈-高大丰满熟妇丰满的大白屁股

閱讀 | 訂閱
閱讀 | 訂閱
芯片/顯示

基于單片機的LED顯示屏硬件設計方案(二)

星之球激光 來源:電子工程網2012-03-26 我要評論(0 )   

3 總體設計 3.1 屏體接口模塊 屏體接口包括屏體接口頭文件、屏幕緩沖區的定義、屏體接口初始化、刷新定時器中斷服務程序和 SPI 中斷服務程序幾個部分。 屏體接口的頭文...

3 總體設計

  3.1 屏體接口模塊

  屏體接口包括屏體接口頭文件、屏幕緩沖區的定義、屏體接口初始化、刷新定時器中斷服務程序和SPI中斷服務程序幾個部分。

  屏體接口的頭文件screen.h 應該使屏幕緩沖區對其他應用可見, 并提供屏體初始化函數。具體定義如下:

  #ifndef _SCREEN_H_

  #define _SCREEN_H_

  #include “inc\board.h”

  extern u8 xdata SCR_BUF[16][16];

  void screen_init(void);

  #endif

  這樣就把屏幕緩沖區的結構暴露給應用, 但應用不必關心具體的屏幕刷新操作。

  具體屏體接口的實現集中在一個文件screen.c 中定義。具體如下:

  首先是屏幕緩沖區定義:

  u8 xdata SCR_BUF[16][16]_at_0x0000;//~0x00ff 256Bytes其次是當前顯示行和輸出列變量定義, 屬于靜態變量, 應用程序不可見。

  static u8 data row,col;

  然后是屏幕初始化, 包括刷新定時器0 的初始化、SPI 的初始化、鎖存bLatch 信號的初始化、屏幕緩沖區的初始清零以及定時器和SPI 中斷的優先權和使能位的初始化代碼略。

  SPI 和定時器0 的中斷服務程序是屏體接口的關鍵。

  定時器0 的中斷服務程序首先進行掃描行增量取模運算,并將掃描行輸出。然后依據掃描行取出屏幕緩沖區對應行的第一個字節發送到SPI 端口。同時列增量。

  void display_ONe_screen(void)interrupt 1 using 3{

  row = (++row)&0x0f;

  P0 = (P0 & 0xf0)|((~row)& 0xf);

  col = 0;SPDAT = ~SCR_BUF[row][col++];

  }

  這樣編寫的屏體驅動, 應用只要在初始化屏體后,向屏幕緩沖區中寫入要顯示的數據即可, 而不必關心屏幕顯示的細節。

  3.2 UART 接口

  UART 接口負責與上位機的數據收發, 盡管發送可以同步進行, 但接收必須異步進行。因而UART 接口的核心仍然應該是一個中斷服務程序。

  UART 接口的頭文件uart.h 隱藏了接收緩沖區的信息, 用戶可調用的函數只有初始化、發送和接收。

  #ifndef _UART_H_

  #define _UART_H_

  void uart_init(void);

  void uart_put_c(u8 ch);

  u8 uart_get_c(u8 *);

  #endif

  UART 的接口實現首先定義一個接收緩沖FIFO, 以及對FIFO 的讀下標uart_rd 和寫下標uart_wr, 他們都是文件內可見的靜態變量:

  static u8 xdata uart_buf[64];

  static u8 uart_rd,uart_wr;

  bit fSend

  UART 的初始化包括進行FIFO 的初始化和UART格式、波特率、中斷的初始化。代碼略。

  UART 的ISR 主要是服務于接收, 無條件地將數據裝入FIFO, 并調整寫入指針。

  static void uart_isr(void)interrupt 4 using 1{

  if(RI){RI = 0;

  uart_buf[uart_wr++] = SBUF;

  uart_wr &= 0x0f;

  }

  }

  提供給用戶的發送程序首先檢測發送結束標記, 如果為0, 表示上次發送尚未結束, 直接返回錯誤信息1。

  否則將要發送的信息發送并清零發送結束標記。這樣設計的發送程序, 其目的是將發送等待不限制在接口底層, 而是給上層一個決定是否等待發送結束的機會。

  u8 uart_put_c(u8 ch){

  if(! TI)return 1;

  TI = 0;SBUF = ch; return 0;

  }

  同樣, 接收程序也給上層一個選擇等待的機會。接收函數首先判斷接收FIFO 是否為空, 如果為空或輸入指針參數錯誤, 則直接返回錯誤, 否則才從FIFO 中讀取數據并將數據存儲到指針指向的地址, 然后返回成功。

  u8 uart_get_c(u8 *ch){

  u8 i;

  if(! ch)return 1;

  if((i = (uart_rd+1)&0x0f) == uart_wr)return 1;

  uart_rd = i; *ch = uart_buf[i];return 0;

  }

3.3 閃存接口

  閃存的存取有特殊的時序, 閃存的內部結構也和具體應用要求有很大的不同。因此閃存的接口需要仔細設計。

  K9F4008 閃存芯片的存儲結構組織如圖2所示。

  K9F4008的存儲組織

  K9F4008 閃存的存儲以塊為單位, 每個芯片共有128 塊。每塊有32 行, 每行有4 個幀, 每幀含有32 B.全部芯片為512 KB。

  閃存接口提供的閃存初始化函數中就包括對這樣情況的處理。初始化函數要從閃存的第一個塊中讀出一個塊映射表, 該表下標是邏輯扇區, 表內每項存儲的是該邏輯扇區對應的物理塊編號。初始化函數在必要時對閃存進行讀寫校驗, 然后將壞塊從表中刪除。再尋找新的良好塊, 將其編號填入到對應邏輯扇區的表項中。這樣對應用來說, 只見到連續的扇區編號, 而不知道扇區究竟對應到那個塊。

  閃存的接口頭文件Flash.h 如下:

  #ifndef _K9F4008_H_

  #define _K9F4008_H_

  void read_log_page(u8 sector,u8 page,u8 xdata *buf);

  u8 prog_log_page(u8 sector,u8 page,u8 xdata *buf);

  void erase_log_blk(u8 sector);

  bit flash_init(void);

  #endif

  實現閃存的接口, 首先就是依據說明書的時序定義閃存的基本操作。這里是以宏定義實現基本操作的。

  #define W_CMD(cmd_)\

  bCLE=1; bWE=0; P2=(cmd_); bWE=1; bCLE=0

  #define W_ADDR(addr1_,addr2_,addr3_)\

  bALE=1; bWE=0; P2=(addr1_); bWE=1; \

  bWE=0; P2=(addr2_); bWE=1; \

  bWE=0; P2=(addr3_); bWE=1; \

  bALE=0

  #define W_DAT(dat_) bWE=0; P2=(dat_); bWE=1

  #define wait_RB while(! bRB)

  #define l2p(x_) fat_tbl[(x_)]

  3.4 EEPROM

  內部集成的EEPROM 是與程序空間分開的, 利用ISP/IAP 技術可將內部DATAFLASH 當EEPROM,擦寫次數10 萬次以上。EEPROM 可分為若干個扇區, 每個扇區包含512 B.使用時, 建議同一次修改的數據放在同一個扇區, 不是同一次修改的數據放在不同的扇區, 不一定要用滿。數據存儲器的擦除操作是按扇區進行的。

  sfr IAP_DATA = 0xC2; //Flash data register

  sfr IAP_ADDRH = 0xC3; //Flash address HIGH

  sfr IAP_ADDRL = 0xC4; //Flash address LOW

  sfr IAP_CMD = 0xC5; //Flash command register

  sfr IAP_TRIG = 0xC6; //Flash command trigger

  sfr IAP_CONTR = 0xC7; //Flash control register

  根據使用說明對EEPROM 的寄存器進行定義。

 

轉載請注明出處。

暫無關鍵詞
免責聲明

① 凡本網未注明其他出處的作品,版權均屬于激光制造網,未經本網授權不得轉載、摘編或利用其它方式使用。獲本網授權使用作品的,應在授權范圍內使 用,并注明"來源:激光制造網”。違反上述聲明者,本網將追究其相關責任。
② 凡本網注明其他來源的作品及圖片,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本媒贊同其觀點和對其真實性負責,版權歸原作者所有,如有侵權請聯系我們刪除。
③ 任何單位或個人認為本網內容可能涉嫌侵犯其合法權益,請及時向本網提出書面權利通知,并提供身份證明、權屬證明、具體鏈接(URL)及詳細侵權情況證明。本網在收到上述法律文件后,將會依法盡快移除相關涉嫌侵權的內容。

網友點評
0相關評論
精彩導讀
天天爽天天看-日本少妇xxxx动漫-亚洲av成人精品毛片-欧美一区二区三区激情啪啪-91精品国产成-欧美牲交a欧美牲交aⅴ-欧美日韩国产免费观看-九九99精品久久久久久综合-欧美理论影院-国内老熟妇乱子伦视频-www在线观看av-黄色裸体网站-少妇高潮惨叫久久久久久-国产偷国产偷av亚洲清高-国产午夜精品理论片小yo奈-高大丰满熟妇丰满的大白屁股
  • <abbr id="a4qk0"><tfoot id="a4qk0"></tfoot></abbr>
    <fieldset id="a4qk0"></fieldset>
    午夜在线视频免费观看| 能看的毛片网站| 成人在线看视频| 精品久久久无码人妻字幂| 不卡影院一区二区| 精品人妻一区二区三区四区在线| 国产美女18xxxx免费视频| 男人揉女人奶房视频60分| 精品国产一区二区三区在线| 久久久久久久久久毛片| 亚洲娇小娇小娇小| 三上悠亚av一区二区三区| 男人操女人免费软件| 国产视频一视频二| 免费无码毛片一区二三区| 青青草免费在线视频观看| 欧美午夜精品理论片| 亚洲77777| 一区二区三区欧美精品| 手机在线成人免费视频| 999精彩视频| 黄色小视频免费网站| 自拍偷拍21p| 欧美性受xxxx黒人xyx性爽| 午夜大片在线观看| 国产 国语对白 露脸| 97在线国产视频| 777米奇影视第四色| 99免费视频观看| 日韩不卡一二三| 日韩精品第1页| 欧美老熟妇喷水| 欧美三级午夜理伦三级富婆| 怡红院亚洲色图| 强开小嫩苞一区二区三区网站| 国产日韩第一页| 欧美a在线视频| 中文字幕第66页| 国产69精品久久久久999小说| 国产午夜福利在线播放| 三上悠亚在线一区二区| www.九色.com| 色噜噜狠狠一区二区| 嫩草影院中文字幕| 嫩草影院国产精品| 日韩成人手机在线| 久久久久久久片| 国产一区二区三区乱码| 美女喷白浆视频| 日本a在线免费观看| 亚洲另类第一页| 黄色国产精品视频| 国产av熟女一区二区三区 | 久久精品久久99| 亚洲午夜精品久久久久久人妖| 污网站在线免费| 日批视频在线免费看| 7777在线视频| 国产亚洲视频一区| 少妇性l交大片| 成年人网站国产| 色网站在线视频| 成年人三级黄色片| 黄色片久久久久| 日本少妇高潮喷水视频| wwwwww欧美| 91视频成人免费| 熟女视频一区二区三区| 天美星空大象mv在线观看视频| 欧美不卡在线播放| av网站手机在线观看| 国产免费xxx| 日本人妻伦在线中文字幕| 日本精品一区在线| www.51色.com| 色姑娘综合天天| av噜噜在线观看| 亚洲一级片av| 一级黄色录像免费看| 亚洲一区二区偷拍| 男人j进女人j| 日本一本中文字幕| 日本a在线免费观看| 久在线观看视频| 成人三级视频在线播放| 天天操天天爽天天射| 不卡影院一区二区| 成人免费毛片播放| 日韩精品视频一二三| 色婷婷综合在线观看| 久久久天堂国产精品| 成年人深夜视频| 国产a级一级片| 国产美女18xxxx免费视频| 日韩欧美中文视频| 日韩久久久久久久久久久久| 国产二级片在线观看| 中文字幕欧美人妻精品一区| 国产视频1区2区3区| 四虎4hu永久免费入口| 97超碰在线人人| 亚洲综合色在线观看| 九九九久久久久久久| 国产黄色片免费在线观看| 热久久精品国产| 91麻豆天美传媒在线| 欧美亚洲日本一区二区三区| 毛葺葺老太做受视频| 男女爱爱视频网站| 国产情侣av自拍| 成人免费播放器| 一女二男3p波多野结衣| 国产真人做爰毛片视频直播| 久久久久久蜜桃一区二区| 97av中文字幕| 中文字幕国产免费| 黄色大片在线免费看| 97超碰免费观看| 中文字幕第21页| 激情伊人五月天| 成人污网站在线观看| 高清av免费看| 亚洲熟女乱色一区二区三区| 欧洲xxxxx| 一二三av在线| 色婷婷狠狠18| 国产av无码专区亚洲精品| 一二三四中文字幕| 亚洲视频一二三四| 男女污污的视频| 日韩 欧美 高清| 国产免费成人在线| 久久精品视频16| 日韩欧美不卡在线| 人妻无码一区二区三区四区| 特级西西444www| 午夜免费一级片| 最新免费av网址| 亚洲高清免费在线观看| 欧美日韩在线成人| 成人在线免费播放视频| 日日摸天天爽天天爽视频| jizzjizzxxxx| 日本免费黄视频| 国产日韩成人内射视频| 99热成人精品热久久66| 欧美激情国产精品日韩| 中文字幕乱码人妻综合二区三区| 婷婷五月综合缴情在线视频| 精品无码一区二区三区在线| 欧美深夜福利视频| 国产成人精品无码播放| 一本久道中文无码字幕av| 牛夜精品久久久久久久| 特级黄色片视频| 国产免费裸体视频| www.中文字幕在线| 欧美日韩在线免费播放| 日韩在线一区视频| 精品人妻人人做人人爽| 久久综合色视频| 污污网站免费看| 免费看黄色a级片| 欧美s码亚洲码精品m码| 国产精品99久久免费黑人人妻| 999精彩视频| www.国产亚洲| 美女黄色片视频| 激情图片qvod| 日日碰狠狠躁久久躁婷婷| 日韩va在线观看| 毛片在线播放视频| 中文字幕亚洲欧洲| 又大又硬又爽免费视频| 手机视频在线观看| 国产乱子伦精品视频| 亚洲欧洲日本精品| 国产精品久久中文字幕| 亚洲第一天堂久久| 国产美女无遮挡网站| 97超碰人人看| 三年中国国语在线播放免费| 国产成人精品免费看在线播放| 久久无码高潮喷水| 青娱乐国产精品视频| 亚欧在线免费观看| 亚洲熟妇无码一区二区三区导航| 中文字幕66页| 日本精品久久久久中文字幕| 日韩中文在线字幕| 欧美视频国产视频| 成年人网站大全| 日本精品免费在线观看| 996这里只有精品| 亚洲精品乱码久久久久久动漫| 免费在线激情视频| 欧美一级视频免费看| 免费观看中文字幕| www.日本久久| 久久出品必属精品|