內容簡介
在簡要講述普通51單片機和C51編程的基礎上,《基於51系列單片機的LED顯示屏開發技術》還對具有40MHz工作頻率、單指令周期的增強型51單片機——VRS51L3074及其在LED顯示屏控制系統中的套用做了詳細介紹。《基於51系列單片機的LED顯示屏開發技術》是國內第一本針對鐵電單片機的書籍,為初學鐵電單片機或是希望了解該單片機的讀者提供了較為全面的資料和開發例程。此外還對通用LED顯示屏上位機控制軟體設計、LED顯示屏控制系統常用時鐘晶片DS1302、溫度感測器DS18B20、二極體等模組控制程式和硬體電路進行分析和講解。這些內容是作者近幾年來部分開發工作的實踐總結,有些是根據實際生產產品的提煉和推廣。
《基於51系列單片機的LED顯示屏開發技術》內容豐富實用,圖文並茂,適用於從事單片機開發和套用以及從事LED控制系統的研發人員和工程技術人員使用,也可以作為單片機愛好者、鐵電單片機初學者,以及使用C51編程的研究生、本科生、專科生畢業設計的參考用書。
目錄
第1章51系列單片機系統結構概述
1.151單片機概述1
1.1.1單片機的分類1
1.1.28051單片機的套用3
1.1.38051單片機的開發3
1.1.48051單片機型號的選擇4
1.1.5單片機學習的要點4
1.251單片機基本系統結構4
1.2.151單片機的結構框圖及引腳4
1.2.2MCS51系列單片機主要功能部件6
1.2.3典型時鐘電路和復位電路7
1.2.48051單片機I/O結構7
1.351單片機存儲器結構8
1.3.1程式存儲器9
1.3.2外部數據存儲器10
1.3.3內部數據存儲器空間11
1.3.4MCS51單片機特殊功能暫存器13
1.3.5常用特殊功能暫存器14
1.451單片機的指令系統及彙編語言設計要點16
1.4.1指令格式16
1.4.2偽指令17
1.4.3定址方式19
1.4.4指令類型21
1.5彙編程式設計34
1.5.1三種基本的程式結構34
1.5.2彙編程式設計的要點35
1.651單片機主要擴展功能部件39
1.6.1MCS51單片機定時/計數器39
1.6.2中斷系統47
1.6.3串列口54
第2章C51套用基礎
2.1KeilC51簡介62
2.2C51程式設計基礎知識63
2.2.1C語言的特點63
2.2.2一個簡單的C51例子63
2.2.3C51的基礎知識64
2.2.4存儲空間定義64
2.2.5C51數據類型65
2.2.6C51存儲空間的定義67
2.2.7C51的常量67
2.2.8C51常用運算符68
2.2.9C51表達式73
2.2.10C51的基本語句74
2.3C51的函式與數組80
2.3.1函式的定義81
2.3.2數組83
2.3.3結構(struct)86
2.3.4聯合(union)87
2.4C51基本套用90
2.4.1I/O口位元組操作套用90
2.4.2I/O口位操作套用90
2.4.3計數器套用91
2.4.4外部中斷套用91
2.4.5串列口中斷套用92
2.4.6鍵盤顯示程式93
第3章鐵電單片機VRS51L3074
3.1VRS51L3074概述104
3.1.1功能說明104
3.1.2引腳說明106
3.1.3指令系統109
3.2VRS51L3074的存儲器結構113
3.2.1內部數據存儲區114
3.2.2特殊功能暫存器區114
3.2.3外部數據存儲器組織120
3.2.4外部數據匯流排訪問123
3.2.5FRAM鐵電存儲器的使用127
3.3VRS51L3074晶片配置133
3.3.1系統時鐘配置133
3.3.2處理器工作模式控制135
3.3.3功能模組使能控制136
3.3.4功能模組I/O映射與優先權137
3.4通用I/O口138
3.4.1I/O口結構139
3.4.2I/O口方向配置139
3.4.3I/O口輸入使能控制140
3.4.4I/O口鎖存器140
3.4.5I/O口驅動能力141
3.4.6I/O口狀態變化監控141
3.5定時/計數器142
3.5.1定時/計數器T0、T1143
3.5.2定時/計數器T2147
3.5.3定時器級聯150
3.5.4定時器套用例程151
3.6脈衝寬度計數器(PWC)151
3.6.1PWC模組配置暫存器153
3.6.2PWC模組配置操作155
3.6.3PWC模組例程155
3.7串列口156
3.7.1串列口UART0157
3.7.2串列口UART1159
3.7.3串列通信波特率計算161
3.7.4UART0和UART1引腳映射162
3.7.5串列口例程163
3.8SPI接口166
3.8.1SPI運行控制167
3.8.2SPI配置和狀態監控168
3.8.3SPI傳輸字長171
3.8.4SPI數據暫存器172
3.8.5SPI數據輸入/輸出173
3.8.6可變位數據傳輸174
3.9I2C接口175
3.9.1I2C運行控制175
3.9.2I2C從機線上狀態檢查178
3.9.3從機ID設定與I2C高級配置180
3.9.4I2C例程181
3.10脈衝寬度調製器(PWMs)184
3.10.1PWM輸出波形控制185
3.10.2PWM模組時鐘配置188
3.10.3PWM模組例程188
3.10.4PWM模組的定時器工作模式191
3.11增強型算術單元(AU)194
3.11.1算術單元控制暫存器195
3.11.2算術單元數據暫存器198
3.11.3桶式移位器200
3.11.4增強型算術單元整體結構201
3.11.5算術單元基本運算例程201
3.12看門狗定時器(WDT)202
3.12.1看門狗定時器的控制203
3.12.2採用外部時鐘的情況下WDT的復位控制204
3.12.3WDT基本配置例程204
3.13中斷系統205
3.13.1中斷系統概述205
3.13.2中斷允許控制207
3.13.3中斷源選擇208
3.13.4中斷優先權209
3.13.5引腳變化中斷209
3.14VRS51L3074JTAG接口211
3.14.1激活JTAG接口對系統的影響211
3.14.2板級JTAG接口的實現212
3.14.3VRS51L3074調試器212
3.15Flash編程接口(FPI)212
3.15.1與FPI模組相關的特殊功能暫存器212
3.15.2Flash存儲器讀操作215
3.15.3Flash存儲器擦除217
3.15.4Flash存儲器寫操作218
第4章LED顯示屏工作原理
4.1LED發光原理及其發展狀況、趨勢224
4.1.1LED發光原理224
4.1.2LED發展歷史及趨勢225
4.2LED顯示屏基本模組介紹226
4.2.1光學和人眼視覺知識226
4.2.2LED器件主要參數227
4.2.3雙基色點陣LED模組簡介228
4.3常用雙基色LED顯示屏基本控制單元229
4.3.1室內雙基色led單元板結構介紹229
4.3.2驅動方式分析230
4.3.3室內雙基色單元板電路分析232
4.4LED顯示屏分類及亮度、灰度控制237
4.4.1LED顯示屏分類237
4.4.2LED顯示屏亮度及灰度控制理論238
4.5LED顯示屏工程套用及維護概述241
4.5.1LED顯示屏的方案設計241
4.5.2LED顯示屏的安裝243
4.5.3LED顯示屏的維修244
第5章LED顯示屏顯示數據的組織
5.1LED顯示屏控制系統對單片機的基本要求245
5.1.1LED顯示屏對單片機控制系統的基本要求245
5.1.2LED顯示屏對單片機數據處理方式的基本要求247
5.1.3指令最佳化對位元組處理時間的影響248
5.2LED顯示屏靜態顯示數據的組織251
5.2.1靜態顯示的LED顯示屏數據組織251
5.2.2靜態屏的滾動顯示255
5.3LED顯示屏動態顯示數據的組織258
5.3.1動態顯示的LED顯示屏數據組織258
5.3.2顯示區域中X、Y坐標與存儲單元位元組地址i、位地址j之間的關係261
5.4顯示效果與占用顯示數據存儲器大小的關係263
5.4.1顯示效果與占用顯示數據存儲器大小的關係263
5.4.2採用雙RAM並行輸出降低顯示數據存儲器的占用267
5.4.3多RAM並行輸出時雙RAM並行輸出方式的擴展270
第6章基於51系列單片機的小型LED顯示屏控制系統
6.1單片機直接驅動LED顯示屏272
6.1.1顯示數據存儲在程式存儲器中272
6.1.2顯示數據存儲在擴展的外部並行數據存儲器中278
6.2利用單片機外部讀寫信號驅動LED顯示屏279
6.2.1單片機外部數據存儲器擴展279
6.2.2多個外部數據存儲器擴展280
6.3利用單片機SPI接口驅動LED顯示屏287
6.3.1SPI接口的特點287
6.3.2利用SPI接口驅動LED顯示屏288
6.4單片機直接驅動LED顯示屏套用實例291
第7章單片機擴展外部地址計數器驅動大型LED顯示屏
7.1單片機訪問外部數據存儲器時間上的限制297
7.2利用單片機多RAM技術驅動大型LED顯示屏301
7.2.1並行RAM方式301
7.2.2串列存儲器方式307
7.3利用LED顯示屏單元板排列方式驅動超長LED顯示屏308
7.3.1超長LED顯示屏面臨的問題308
7.3.2LED顯示屏的雙向排列方式308
7.3.3超長LED顯示屏的數據組織與硬體實現309
7.4利用多單片機系統驅動超大型LED顯示屏313
7.5基於DSP與FPGA的LED顯示屏控制系統的設計315
7.5.1DSP的特點及在LED顯示屏控制系統中的套用315
7.5.2基於FPGA的系統時序電路設計316
7.5.3顯示存儲器模組設計317
7.5.4LED顯示屏分區317
7.5.5顯示存儲器掃描時序控制電路318
第8章LED顯示屏的系統軟體編程
8.1漢字字型檔的生成與使用320
8.1.1漢字編碼簡介321
8.1.2點陣漢字字型檔321
8.1.3在Windows環境下提取字模的工作原理322
8.1.4提取字模的程式設計322
8.2控制卡與PC機的協定制定324
8.2.1控制命令字約定325
8.2.2配置文本編輯326
8.2.3直接數據格式定義329
8.2.4存儲器地址位置331
8.2.5PC機端串列口通信模組331
8.3漢字字形的提取及圖片的嵌入333
8.3.1漢字字形提取334
8.3.2圖片的嵌入339
8.4PC機對下載數據的預處理339
8.4.1LED屏顯示信息編輯及提取340
8.4.2LED顯示數據生成340
8.4.3INTER格式數據轉換342
第9章LED顯示屏單片機控制系統編程
9.1基於SPI的Flash存儲器讀寫346
9.1.1SST25系列串列Flash存儲器346
9.1.2基於51單片機SPI接口的串列Flash驅動程式350
9.2字元控制及處理程式設計359
9.2.1字元控制處理程式設計360
9.2.2字元點陣字模提取程式設計367
9.3顯示程式372
9.3.1顯示程式指令表372
9.3.2讀顯示程式指令表378
9.3.3執行顯示程式指令表381
9.3.4單場顯示程式設計384
9.4串列口通信模組設計385
9.4.151單片機端串列口收發模組385
9.4.251單片機端串列口擴展程式模組388
9.5基於DS1302時鐘模組程式設計391
9.5.1DS1302的結構及工作原理391
9.5.2DS1302的控制位元組說明391
9.5.3復位392
9.5.4數據輸入/輸出392
9.5.5DS1302的暫存器392
9.5.6DS1302在LED控制卡上的硬體電路及軟體設計393
9.6基於DS18B20溫度感測器的模組設計395
9.6.1DS18B20的工作時序396
9.6.2DS18B20的程式設計397
第10章VRS51L3074在LED顯示屏控制系統中的套用
10.1VRS51L3074與標準51單片機的比較401
10.1.1VRS51L3074運行速度401
10.1.2VRS51L3074的高速增強型SPI接口402
10.1.3VRS51L3074的定時/計數器402
10.1.4VRS51L3074的增強型算術運算單元402
10.1.5VRS51L3074的其他部件403
10.2VRS51L3074的基本套用403
10.3VRS51L3074的RAM擴展套用407
10.4VRS51L3074擴展硬體地址計數器409
10.5VRS51L3074的擴展“雙連線埠”串列FRAM412
附錄AASCII碼錶415
附錄BMCS51單片機常用資料416
附錄CC51中的關鍵字和常用函式425
附錄DKeilμVision3中高性能鐵電單片機(VRS51L2xxx/3xxx)的相關配置簡介435
附錄E常用晶片引腳圖440
E.1CPU440
E.2驅動晶片442
E.3其他444
附錄F異步室內雙基色LED顯示屏故障排查簡明手冊449
附錄GLED雙基色單元板原理圖451
參考文獻455
序言
我國開始使用單片機是在1982年,20世紀90年代中期單片機技術和市場發展非常迅速。近年來,單片機已經成為科技領域的有力工具,人類社會生活的得力助手。它的廣泛套用,不僅僅體現在工業控制、機電套用、智慧型儀表、實時控制、航空航天、尖端武器等行業和領域的智慧型化、高精度化,而且在人類日常生活中也隨處可見它的身影。洗衣機、電冰櫃、電子玩具、收錄機等家用電器配上單片機後,不僅提高了智慧型化程度,增強了功能,也使人類生活更加方便、舒適、豐富多彩。
20世紀90年代後,嵌入式系統設計由以嵌入式微處理器為核心的“積體電路”級設計,逐漸轉向“集成系統”級設計,在MCU(Micro Controller Unit)提出了系統晶片SoC(System on a Chip)的基本概念,例如,ARM公司的ARM、HP公司的PARISC及Sun公司的Sparc等等,它們為高性能嵌入式系統開發提供了功能豐富的硬體平台,也為實時嵌入式作業系統的廣泛套用奠定了基礎。這些高性能微處理器的推廣套用是否就意味著單片機即將退出嵌入式微處理器的舞台呢?目前,單片機正朝著高性能和多品種方向發展,其趨勢將進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發展,其功能也將越來越豐富,速度也越來越快,甚至有些方面並不遜於ARM或DSP。還有最為重要的是生產成本問題,普通ARM或DSP的價格是一般單片機的幾倍甚至數10倍,因此在大批量工業生產時,這也成為了廠商選擇的重要因素。據相關部門統計,我國的單片機年容量已達1億~~3億片,且每年以大約16%的速度增長,所以綜合單片機技術和市場需求等多方面情況來看,它仍然有自己廣闊的套用前景。例如,本書所講的鐵電單片機——VRS51L3074,它內部自帶精確的40 MHz振盪器,擁有ISP、IAP功能的JTAG及FPI等眾多外圍接口,32 KB外部數據匯流排訪問接口等等,具有許多普通51單片機所無法比擬的功能。與PIC高端單片機18系列比較,它在定時/計數器、PWC、PWM等方面都有較大優勢,甚至和ARM7相比較很多技術指標也是不分伯仲,例如鐵電的32位滾桶計數器、16位乘除法和32位加法運算單元、鐵電存儲器等。而且鐵電公司預計在2008年底還將推出100 MHz鐵電單片機,所以就目前單片機技術來看,其發展步伐沒有減緩,反而在大幅度推進,原因不僅僅在於電子製造工藝的提高和電子科技的發展,最重要的還是因為市場對於它的大量需求。
隨著LED顯示屏在廣告傳媒領域逐漸嶄露頭角,其控制系統也如雨後春筍,層出不窮。由於它的控制系統均是基於嵌入式微處理器開發,所以單片機在其中也占有一席之地。但是,由於LED顯示屏控制較複雜,特別是對於顯示特殊效果,如循環移動、覆蓋、霓虹燈效果,要求處理器運算速度快、執行效率高,所以很多控制卡生產廠家採用高端嵌入式系統進行設計。這樣做雖然能在一定程度上提高數據處理速度,但是並不能完全滿足所有顯示效果要求,而且開發和產品成本也會隨之成倍增加,甚至由於其設計不當可能在顯示時出現抖動、閃爍、重影等現象。歸根結底,LED顯示屏控制卡的設計中硬體是一方面因素,同時還要考慮到顯示數據組織方式,通過軟硬結合的方法才能設計出一款性價比較高的控制卡。本書就如何高效率組織LED顯示屏數據做了深度剖析,從顯示基本原理到實際套用實現,都有詳盡分析,並且在此基礎上提出基於普通51系列單片機實現LED顯示屏控制的原理及方法。通過單片機在LED顯示屏控制卡中的套用,同時也印證MCU和SoC是嵌入式系統當今發展的兩大分支,它們之間相互滲透、交叉,在硬體系統設計選擇時,應根據實際需要,綜合考慮開發、生產成本和技術難度等多方面因素。
本書共10章,每章內容概括如下:
第1章: 簡要介紹51單片機結構體系和主要功能部件,以及指令系統和彙編語言設計的要點。
第2章: 分析當前比較流行的C51編程要點、技巧,並列舉常用實例輔助說明。
第3章: 詳細講解鐵電單片機——VRS51L3074,對其功能部件進行深度探討和解析,彌補這一新器件中文資料不足的缺陷。
第4章: 以市面上普遍使用的雙基色單元板為平台,分析LED單元板驅動方式,並對LED顯示屏亮度和灰度控制深入探討、總結。
第5章: 通過對LED顯示屏數據組織方式的討論,歸納總結出靜態顯示和動態顯示的規律,以及對應顯示效果和存儲器大小之間的關係。
第6章: 基於第5章中所提出的算法,以51系列單片機為例,通過具體套用實例說明該算法的可行性,並詳細介紹如何利用單片機SPI接口驅動LED顯示屏的方法。
第7章: 採用實例講解如何利用單片機擴展外部地址計數器驅動大型LED顯示屏。
第8章: 介紹LED顯示屏的系統軟體編程。
第9章: 介紹LED顯示屏單片機控制系統編程,包括常用串列口驅動、溫度感測器(DS18B20)驅動、時鐘晶片(DS1302)驅動等。
第10章: 介紹VRS51L3074在LED顯示屏控制系統中的套用。
此外,為方便讀者查詢資料,在附錄中添加了常用指令表、晶片引腳圖、功能表、簡明LED維修表等實用資料。
本書的編寫宗旨是:以增強型51單片機為平台,結合當前比較流行的LED控制卡設計,通過軟體算法最佳化、程式設計最佳化和硬體配合的方式,通過實例設計,向讀者展示單片機的優勢和特點,也從另一個方面說明,硬體設計最重要的是一種思想和理念,即:器件的選擇並不是唯一決定硬體設計思路的因素。
本書中所有原始碼和電路圖均通過實際套用驗證,並已經有部分長期在科研項目中使用,如果讀者在驗證過程中有疑問,歡迎來電或通過電子郵件的方式聯繫。
本書由西南交通大學峨眉校區計算機與通信工程系的部分教師編寫。靳桅編寫第5、6、7、10章,鄔芝權編寫第1、8、9章,李騏編寫第2、4章和附錄,劉全編寫第3章。還有趙煜、楊莉、肖波、楊德友、朱雲芳、張占軍、陳詩偉、王飛、白海峰、翟旭、江樺等承擔了本書部分章節資料整理工作,全書由靳桅統稿、主編。
本書編寫過程中,得到了北京航空航天大學出版社的大力支持和關心,西南交通大學各級領導的幫助,以及許多專家的指導,特別是鐵電公司西南區銷售經理李丹同志、北天星公司和南安市佳彩光電電子有限公司在資料收集、整理上的鼎力支持,在此一併表示感謝!
由於作者水平有限,時間倉促,書中難免有錯誤和不妥之處,懇請廣大讀者批評指正。