A. 單片機畢業設計,基於51單片機的電梯控制系統的設計
基於51單片機的電梯控制系統的設計
引 言
隨著現代高科技的發展,住房和辦公用樓都已經逐漸向高層發展。電梯是高層賓館、商店、住宅、多層倉庫等高層建築不可缺少的垂直方向的交通運輸工具。1889年美國奧梯斯升降機公司推出的世界上第一部以電動機為動力的升降機,同年在紐約市馬累特大廈安裝成功。隨著建築物規模越來越大,樓層也越來越高,對電梯的調速精度、調速范圍等靜態和動態特性都提出了更高的要求。由於傳統的電梯運行邏輯控制系統採用的是繼電器邏輯控制線路。採用這種控制線路,存在易出故障、維護不便、運行壽命較短、佔用空間大等缺點。從技術發展來看,這種系統將逐漸被淘汰。
目前,由可編程控制器(PLC)或微型計算機組成的電梯運行邏輯控制系統,正以很快的速度發展著。可編程式控制制器,是微機技術與繼電器常規控制技術相結合的產物,是在順序控制器和微機控制器的基礎上發展起來的新型控制器,是一種以微處理器為核心用作數字控制的專用計算機,它有良好的抗干擾性能,適應很多工業控制現場的惡劣環境,所以現在的電梯控制系統主要還是由可編程式控制制器控制。但是由於PLC的針對性較強,每一台PLC都是根據一個設備而設計的,所以價格較昂貴。而單片機價格相當便宜,如果在抗干擾功能上有所提高的話完全可以代替PLC實現對工控設備的控制。當然單片機並不象PLC那麼有針對性,所以由單片機設計的控制系統可以隨著設備的更新而不斷修改完善,更完美的實現設備的升級。
電梯控制系統是比較復雜的一個大型系統,在計算機誕生的幾十年裡,繼電器控制系統為電梯控制的發展做了巨大的貢獻,但在性能上和PLC還是有本質上的差距。在科技的不斷發展下,我想單片機控制系統很快可以解決抗擾性,成為方便有效的電梯控制系統。
由於時間和能力有限,在設計過程中難免有很多疏漏和不足之處,懇請老師批評指正,我將努力改正,爭取做出完美的畢業設計。
目錄
目錄 1
引 言 2
第1章 緒 論 3
1.1 電梯的發展 3
1.2電梯的分類 4
第2章 方案的比較和確定 6
2.1 方案的選擇 6
2.1.1 電梯繼電器控制系統的優缺點 6
2.1.2 PLC控制系統的特點 6
2.1.3 電梯變頻調速控制的特點 7
2.2 單片機控制方案的選擇 7
2.3 變頻器的選型 8
第3章 硬體系統的設計 10
3.1 硬體結構圖 10
3.2 系統硬體原理圖 10
3.3 89C51單片機的原理及其外圍電路的設計 10
3.3.1 89C51單片機的原理與結構 10
3.3.2 單片機外圍電路的設計 14
3.4 輸入模塊的設計 18
3.4.1 鎖存器74LS373及其擴展功能簡介 20
3.4.2 光電感測器 20
3.4.3 KC778B紅外感測器基本應用電路 21
3.4.4 輸入信號的採集 22
3.5 輸出模塊設計 24
3.5.1 DAC0832的功能簡介 25
3.5.2 變頻器功能簡介 26
3.5.3 LED驅動器功能簡介 29
3.5.4 控制信號的輸出 32
第4章 系統軟體的設計 34
4.1 主程序流程圖 34
4.2 讀入信息並顯示子程序的流程圖 37
4.3 延時去抖動子程序 37
4.4 設置目標層子程序流程圖 38
4.5 電機拖動子程序流程圖 39
4.6 電梯載客子程序流程圖 40
4.7 中斷服務流程圖 41
小結與展望 42
致謝 43
參考文獻 44
附錄部分: 45
附錄A 電氣原理圖 45
附錄B 外文文獻及其譯文 46
附錄C 主要參考文獻及其摘要 50
B. 單片機開發與典型工程項目實例詳解的目 錄
1.1 單片機的應用和特點 1
1.1.1 單片機的應用 1
1.1.2 主流單片機的種類及特點 3
1.2 MCS-51系列單片機的內部結構 7
1.3 MCS-51單片機的引腳功能與時序 9
1.3.1 MCS-51系列單片機引腳說明 10
1.3.2 MCS-51單片機的時序 16
1.4 MCS-51單片機的存儲器組織 17
1.4.1 程序存儲器 18
1.4.2 數據存儲器 19
1.4.3 特殊功能寄存器 21
1.5 單片機最小系統 24
1.5.1 單片機最小系統 24
1.5.2 彩燈控制器的設計 25
1.5.3 順序控制器的設計 27
1.6 本章小結 29 2.1 單片機C語言宏配置介紹 30
2.1.1 處理器的配置 30
2.1.2 ID區域 31
2.1.3 EEPROM數據 31
2.2 單片機數據結構 31
2.2.1 類型限定詞 32
2.2.2 常數 33
2.2.3 變數 34
2.2.4 構造數據類型 38
2.2.5 函數 46
2.2.6 中斷 49
2.2.7 C語言和匯編語言的嵌套使用 53
2.2.8 偽指令 54
2.3 MPLAB IDE編譯器簡介 57
2.3.1 MPLAB工程管理器(MPLAB Project Manager) 57
2.3.2 MPLAB文本編輯器(MPLAB Editor) 57
2.3.3 MPLAB軟體模擬器(MPLAB-SIM Simulator) 58
2.3.4 MPLAB在線模擬器(MPLAB-ICE Simulator) 58
2.4 MPLAB IDE的安裝和使用 58
2.4.1 MPLAB IDE的安裝要求 58
2.4.2 MPLAB IDE的使用 59
2.4.3 實例應用 59
2.4.4 MPLAB IDE中的工程 62
2.4.5 MPLAB IDE工程的編譯 65
2.4.6 MPLAB IDE的軟體模擬 66
2.5 MCC18基礎 68
2.5.1 MCC18的安裝目錄瀏覽 68
2.5.2 MCC18的語言執行流程 70
2.5.3 MCC18舉例 70
2.5.4 MCC18的編譯環境 72
2.5.5 MCC18和單片機的比較 73
2.6 單片機的混合開發 74
2.6.1 C51和匯編語言的性能比較 74
2.6.2 C51和匯編語言的混合編程 74
2.7 本章小結 79 3.1 單片機應用系統設計的流程 80
3.2 單片機應用系統兩設計原則 82
3.2.1 硬體系統設計原則 82
3.2.2 應用軟體設計原則 83
3.3 單片機的選型 83
3.3.1 單片機選型的原則 83
3.3.2 單片機選型參考 85
3.3.3 開發工具的選擇 86
3.4 系統常見故障與調試 87
3.5 本章小結 88 4.1 數字濾波演算法 89
4.1.1 算術平均值濾波 90
4.1.2 滑動平均值濾波 92
4.1.3 防脈沖干擾平均值濾波 93
4.1.4 中值濾波 95
4.1.5 一階滯後濾波 96
4.2 數字PID控制演算法 97
4.2.1 位置式PID控制演算法 98
4.2.2 增量式PID控制演算法 100
4.2.3 積分分離的PID控制演算法 102
4.2.4 變速積分PID控制演算法 103
4.3 本章小結 104 5.1 鍵盤設計的組成和分類 105
5.1.1 鍵盤的物理結構 106
5.1.2 鍵盤的組成形式 106
5.2 鍵盤介面的工作過程和工作方式 111
5.2.1 鍵盤的抖動干擾和消除方法 111
5.2.2 盤介面的工作過程 112
5.2.3 鍵盤的工作方式 112
5.3 鍵位置的判別方法 113
5.4 鍵盤介面設計的儲存晶元和
5.4 相關協議 114
5.4.1 鍵盤介面設計的儲存晶元 114
5.4.2 AT24CXX系列的晶元及I2C協議 114
5.4.3 A93CXX系列的晶元及SPI協議 124
5.5 鍵盤介面實現的工程實例 132
5.5.1 矩陣鍵盤介面的工程實例 132
5.5.2 矩陣式中斷掃描鍵盤的設計 137
5.5.3 二進制編碼鍵盤介面的工程實例 139
5.6 重點與難點 141 6.1 交通燈順序控制 143
6.1.1 硬體系統的設計 143
6.1.2 反向器74F06 145
6.1.3 控制字 145
6.1.4 程序設計 145
6.2 設計一種基於模糊理論的單片機控制交通路口調度系統 148
6.2.1 系統的總體設計 148
6.2.2 十字路口調度系統模糊控制器的設計 149
6.2.3 電路設計 151
6.2.4 車流量檢測電路 154
6.2.5 系統主程序和模糊控製程序設計 155
6.2.6 系統顯示程序設計 157
6.3 重點與難點 159 7.1 顯示屏顯示原理及串列通信基本概念 161
7.1.1 顯示屏顯示原理 161
7.1.2 串列通信 163
7.1.3 陣列式LED顯示屏的實現 166
7.2 顯示屏硬體電路設計 166
7.2.1 硬體電路介紹 168
7.2.2 外擴數據存儲器電路 170
7.3 列式LED顯示屏顯示程序的171
7.3.1 漢字點陣數據的提取 171
7.3.2 顯示主程序 174
7.3.3 串口中斷處理程序 176
7.3.4 顯示驅動函數 179
7.3.5 外部存儲器讀寫程序 181
7.3.6 串口通信程序 181
7.3.7 文字顯示特效程序 182
7.4 本章小結 191 8.1 IC卡基礎 192
8.1.1 IC卡的分類 192
8.1.2 IC卡的標准 194
8.2 接觸型IC卡讀寫系統的開發 194
8.2.1 IC卡讀寫系統的時序 195
8.2.2 IC卡讀寫系統的硬體連196
8.2.3 IC卡讀寫系統的軟體系統 197
8.3 基於SLE4442加密卡讀寫系統的開發 201
8.3.1 SLE4442卡的介紹 201
8.3.2 SLE4442的模式 203
8.3.3 SLE4442的操作命令 205
8.3.4 SLE4442讀/寫系統的軟硬體設計 208
8.4 重點與難點 215 9.1 無刷直流電機控制原理 216
9.1.1 無刷直流電機的組成 217
9.1.2 無刷直流電機的工作原理 217
9.1.3 無刷直流電機的控制方法 219
9.2 無刷直流電機的工作特性 220
9.3 直流無刷電機控制的應用實現 221
9.3.1 總體設計概述 221
9.3.2 直流無刷電機控制的硬體設計 222
9.3.3 直流無刷電機控制的軟體設計 224
9.3.4 無刷直流電機速度閉環控制系統 227
9.4 本章小結 230 10.1 永磁同步電機的結構與分類 231
10.2 永磁同步電機的矢量控制 232
10.3 永磁同步電機控制 236
10.3.1 控制電路設計 237
10.3.2 光電隔離電路設計 238
10.3.3 功率電路設計 239
10.4 永磁同步電機控制的軟體實現 239
10.4.1 電壓SVPVM的DSPIC33f軟體實現 241
10.4.2 轉子位置檢測 243
10.4.3 AD轉換模塊 245
10.5 本章小結 246 11.1 汽車行駛記錄儀功能介紹 247
11.2 簡易汽車行駛記錄儀的設計 249
11.2.1 汽車行駛記錄儀的考慮因素 250
11.2.1 MSP430 251
11.2.2 車模擬信號的採集 254
11.2.4 數字信號採集電路 255
11.2.5 SST39VF160晶元介紹 257
11.3 記錄儀的軟體設計 257
11.3.1 軟體流程圖 258
11.3.2 數據存儲格式 259
11.3.3 SST39VF160存儲器數據讀寫的實現 259
11.4 數據採集的程序實現 263
11.5 本章小結 264 12.1 USB-GPIB控制器簡介 265
12.1.1 認識USB 266
12.1.2 GPIB 269
12.2 USB-GPIB控制器的硬體電路設計 271
12.2.1 器件的選擇 272
12.2.2 USB-GPIB控制器電路設計 278
12.3 USB-GPIB控制器的軟體程序的實現 287
12.3.1 USB單片機協議控制晶元與主機(計算機)的數據交互 288
12.3.2 USB協議控制晶元與GPIB控制器的數據交互 299
12.4 USB-GPIB控制器固件的調試與固化 300
12.4.1 USB-GPIB控制器固件的調試 301
12.4.2 USB-GPIB控制器固件程序的固化 302
12.5 本章小結 303 13.1 研究抗干擾技術的重要性 304
13.2 干擾的分類 305
13.2.1 按雜訊產生的原因分類 306
13.2.2 按雜訊傳導模式分類 306
13.2.3 按雜訊波形及性質分類 307
13.3 干擾的耦合方式 308
13.4 單片機系統可靠性的設計任務與方法 310
13.4.1 單片機系統可靠性設計的任務 310
13.4.2 可靠性設計一般方法 311
13.5 本章小結 313 14.1 無源濾波器抗干擾 314
14.1.1 電容濾波器 315
14.1.2 電感濾波器 316
14.1.3 RC低通濾波器 316
14.1.4 1LC低通濾波器 318
14.1.5 低通濾波器的結構選擇 319
14.1.6 低通濾波器的平衡結構與串聯形式 319
14.2 有源濾波器抗干擾 321
14.2.1 一級低通有源濾波器 321
14.2.2 二級低通有源濾波器 322
14.3 去耦電路 324
14.3.1 尖峰電流的形成原理 324
14.3.2 去耦電容的配置 325
14.3.3 光電隔離 326
14.3.4 繼電器隔離 328
14.3.5 變壓器隔離 328
14.3.6 布線隔離 329
14.4 接地技術 330
14.5 本章小結 334 15.1 概述 335
15.2 指令冗餘技術 336
15.2.1 單位元組指令冗餘 337
15.2.2 重要指令冗餘 337
15.3 軟體陷阱技術 337
15.3.1 未使用的中斷向量區設置陷阱 338
15.3.2 RAM數據區中設置陷阱 338
15.3.3 未使用的EPROM數據區設置陷阱 339
15.3.4 非EPROM單片機空間設置陷阱 339
15.3.5 運行程序區設置陷阱 339
15.4 看門狗技術 339
15.4.1 硬體看門狗技術 340
15.4.2 軟體看門狗技術 342
15.5 本章小結 345
C. 幫忙:「單片機最小系統」用層次原理圖設計出來
一 、層次原理圖的概念
層次原理圖主要包括兩大部分:主電路圖和子電路圖。其中主電路圖與子電路圖的關系是父電路與子電路的關系,在子電路圖中仍可包含下一級子電路。(如圖1 圖1
) 1.主電路圖主電路圖文件的擴展名是.prj。主電路圖相當於整機電路圖中的方框圖,一個方塊圖相當於一個模塊。圖中的每一個模塊都對應著一個具體的子電路圖。 2.子電路圖 子電路圖文件的擴展名是.sch。 一般地子電路圖都是一些具體的電路原理圖。子電路圖與主電路圖的連接是通過方塊圖中的埠實現的。(如圖2 圖2
)
D. 怎樣設計一個用ADE7755和用AT89S51的單片機設計出一個電能表
隨著電力的需求越來越大,不同時間段用電量不均衡的現象日趨嚴重。為了合理地調控電力負荷和節約能源,電力公司已開始鼓勵使用多費率電能表。傳統的多費率電能表一般採用機械轉盤式計量方式,計量精度隨機械磨損而降低,時段設置單一,人工抄表勞動強度大,且偶有竊電情況發生等諸多弊端。本文給出基於AT89S52單片機一種新型多費率單相電能表設計,採用AD7755電能計量晶元,電能計量准確。該電能表具有分時段計量,液晶顯示,自動回抄,時段設置靈活,時間校正及時,新穎的防竊電,功耗低的特點。並對該電能表實驗測試數據進行性了誤差分析,指出電能計量中減小與消除誤差的方法。
1硬體電路設計
1.1總體結構
基於AT89S52單片機完成多費率單相電能表的設計,AT89S52有以下功能,8k位元組Flash閃速存儲器,三級加密程序存儲器,256位元組內部RAM,32個可編程I/O口線,3個16位定時/計數器,一個6向量兩級中斷結構,一個全雙工串列通信口,片內振盪器及時鍾電路,兩種低功耗電工作方式。是一個比較適合於以開關量信號輸入檢測的性價比較高的8位單片機。電能表硬體設計主要包括六大模塊,電壓和電流檢測電能計量電路AD7755模塊,串列存儲與看門狗X25045電路模塊,HT1621液晶顯示電路模塊,串列時鍾S3530A電路模塊,
RS485匯流排通訊電路模塊,防竊電檢測電路模塊,總體結構如圖1所示。
圖1:系統總體結構框圖
1.2電能計量
單相電能計量採用美國ADI公司的AD7755低功耗晶元實現。AD7755內部除了ADC和濾波、相乘電路外都採用了數字電路,有效的消除了尖脈沖等干擾信號,使得它在惡劣的環境條件下仍能保持極高的正確度和穩定性。對單相迴路中的電壓、電流信號采樣,計算出功率並積分將其轉換為電能脈沖輸出,CPU對來自AD7755輸出端CF的脈沖進行計量,計算出電能表的累計用電量。電能與脈沖的關系為:W=M/C,式中的W為電能,單位為千瓦時,M為脈沖累計個數,C為電表脈沖常數,選取C=1600,每千瓦時為1600個脈沖。
1.3RS485通訊MAX487晶元實現多費率電能表的RS485通訊控制
MAX487晶元具有RS485通訊協議,可以帶下位機128個、傳輸間隔大於1km、傳輸速率達250kb/s。電能表通過RS485匯流排與用電治理計算機相連,每隻電能表都有一個確定的唯一的八位十六進制的表號,初次安裝,電工需要把用戶信息與表號記錄後輸進用電治理計算機中,完成用戶與治理計算機的連接。治理計算機採用廣播式通訊方式下傳時段設置與校時信息,此時不帶有地址信息,而電能表中斷接收;上位機採用呼喚地址的方式上傳信息,即呼喚誰的地址,那隻電能表便把信息及其校驗碼打包向上傳送給用電治理計算機,實現電能回抄。MAX487的DE為發送器使能端,DE為1時發送器可以工作,DI為輸進端,A、B為輸出端。當DE為0時,停止發送輸出端為高阻。RE為輸進使能端,RE為0時答應接收器工作,A、B為輸進端,RO為輸出端;RE為1時,接收器被禁止,RO為高阻狀態。因此,採用半雙工通訊方式,把DE和RE相連然後接AT89S52的P1.4,通過AT89S52的P1.4引腳來控制收發工作狀態。
1.4串列存儲器
串列存儲器採用美國XICOR公司的X25045低功耗晶元,它具備看門狗定時器WTD、電源電壓監控和具有512位元組的串列E2PROM存儲器三種功能。WTD可以設置為200ms、600ms、1400ms喂狗定時間隔,軟體編程寫進X25045中。在程序正常運行期間,WTD在定時間隔內收到觸發信號,確保程序正常運行,一端WTD在定時間隔內沒有收到觸發信號,X25045便通過RESET引腳輸出一個高電平信號,觸發電能表復位來防止程序跑飛。X25045作為串列存儲晶元,512位元組分別用於存儲電能表編碼,多費率時段設置,上月和當月分時段的峰、平、谷電量和總累計電量等信息,存儲次數可改寫十萬次,數據可保存一百年,它與AT89S52可採用SPI協議匯流排介面相連。
1.5時鍾電路
時鍾電路採用S3530A晶元完成,它是一種支持I2C匯流排的低功耗時鍾晶元,它按照CPU經RS485通訊接收校時的數據來設置時鍾和日歷,靠自身的振盪繼續走時。在S3530A的Xin和Xout引腳之間跨接32.768kHz的晶體器振盪器。它通過兩線式與CPU連接,SDA腳和SCL腳分別接AT89S52的P2.0和P2.1,並有兩個中斷報警引腳可設置為輸出秒或分同步脈沖,向AT89S52提供周期為1秒的中斷信號,單片機系統將根據該信號通過I2C通訊介面讀取當前的時間,計算出該時刻所屬的時段,實現多費率電能表的分時段計量電能。該時鍾電路帶有備用鋰電池,正常工作時有電源Vcc供電,同時給3.6V鋰電池充電;當出現停電時,自動切換鋰電池為時鍾電路供電,即使停電時鍾走時也正確。
1.6液晶顯示
採用HOLTEK公司HT1621的LCD顯示驅動晶元,實現十六位LCD數字顯示。HT1621是具有128段(32×4)內置存儲器的LCD驅動器,它片內包括控制與計時電路、顯示RAM、LCD驅動及偏置、監視定時器等,採用了48腳SSOP封裝,具有體積小和功耗低的優點,非常適合於應用電能表中,其介面電路和外圍電路簡單,它和AT89S52之間採用串列介面,只需三根線。AT89S52的P2.4、P2.5、P2.6分別接到它的CS片選、WR寫答應、DATA串列數據三個引腳上,來控制刷新顯示RAM緩沖區。另外應用中,在VDD、VLCD間接一個20kΩ可調電阻,用來調節LCD顯示對比度,調節電阻,使得VDD=5V,VLCD=4V對比度較好。
1.7防竊電檢測等
記錄電能表接線端子蓋被人為打開的次數而分析是否竊電。電能表被安裝好後將表殼打上鉛封,用戶不能私自打開電能表接線的表蓋破壞鉛封,否則屬於竊電行為。因此我們採用霍爾感測器,檢測接線端子蓋是否被打開。假如接線端子蓋被打開,AT89S52的P1.6引腳的電平變化,就檢測到開蓋一次,記錄表的接線端子蓋被人為打開和破環的次數,判定是否有竊電發生,當發現有竊電現象時,給出報警、斷電並及時上傳到上位治理計算機。實踐證實該新奇的防竊電技術有效的防止竊電情況發生,效果較好。檢測電路框圖如圖2所示。
圖2:防竊電檢測框圖
掉電保護電路,用AT89S52的P1.7輸進引腳檢測掉電信號,當系統正常工作是P1.7位高電平,當忽然發生斷電時,P1.7變成低電平,採用查詢方式檢測到P1.7的變為低電平後,將進進掉電保護程序。電源電路中有個大濾波電容1000uf/25v,當掉電後能維持系統十多秒的工作時間,確保電能表存儲好重要數據。光電隔離電路,在系統中AD775的脈沖輸出端,繼電器控制端,RS485通訊端分別使用了4N35光電隔離器。通過光的耦合作用傳遞電信號,把干擾源和易受干擾的部分隔離開來,進步系統抗干擾的能力。
2軟體程序設計
2.1軟體程序資源分配
多費率單相電能表軟體程序共包括初始化及主程序,X25045讀寫程序,RS485串列通訊處理程序,中斷處理程序,定時器處理程序,HT1621顯示控製程序,電能分時段計量與掉電處理程序,系統自檢與軟體抗干擾處理八大程序模塊。系統的中斷資源分配為INT0中斷用於AD7755脈沖檢測,INT1用於秒同步檢測,定時器T0用於定時100ms,T1未使用,T2用於串列通訊程序波特率發生器,串列口中斷設置為RS485非同步通訊接收中斷。
2.2程序模塊的設計
電能表的工作過程主程序模塊如圖3所示,每次上電要進行初始化,初始化包括對AT89S52單片機定時器、串列口、中斷等工作方式的設定,寫進串列存儲晶元X25045的控制字,串列時鍾晶元S3530A控制字,串列液晶驅動晶元HT1621控制字。新電能表的初次工作要對X25045初始值設定,包括電能表表號的設置,時段的設置,時鍾的設置,存儲地址的分配等。本系統設置了三個時段,單片機每秒從時鍾晶元S3530A中讀取時鍾值,然後根據串列存儲晶元X25045中預先設置好的時段,分析該時刻屬於哪個時段,根據相應的時段把電能存儲AT89S52的RAM存儲器中,然後電能每累計夠1度便寫進到X25045相應的地址中。16位液晶顯示器輪流顯示時段與電能信息。若有通訊請求將採用中斷方式與上位機進行數據通訊。若停電,將執行掉電保護程序。其它程序模塊流程圖略。
圖3:主程序流程圖
測試結果
該電能表在淄博貝林電子有限公司進行了誤差測試和運行試驗,上位計算機完成用電治理時段設置,設置三個費率時段,第一時段00點00分點到06點30分,為谷電量時段,第二時段06點30點到22點30分,為峰電量時段,第三時段22點30點到24點00分,為平電量時段。費率時段設置由電力供電公司根據國家政策規定設定到計算機治理系統中,通過RS485串列通訊傳送到電能表中,並存儲於X25045中。每月峰、平、谷、累計電量存進電能表中,並打包傳送到上位計算機治理系統,通訊波特率設為9600bit/s。用0.1級標准電子式電能表校驗台作為標准表,該多費率電能表為被測表,貝林電子有限公司針對不同負荷的情況下進行測試,限於篇幅僅列出負荷為5KW時的實測數據如表1所示。測試結果表明該復費率電能表誤差小於1%,屬於1.0級標准。經實驗得知減小電能計量誤差方法,一是通過調節AD7755的匹配電阻調整到精確值;二是該匹配電阻阻值要求隨溫度變化阻值變化較小;三是在電能計量過程中,在時間段的切換時,計量電能的尾數部分不足0.01度的電能計進下一個時間段中,避免了不足0.01度的電能丟失而造成累計電量有誤差。
表1:標准表與被測表丈量值符合5KW
結束語
多費率電能表根據不同的時段設置,實現電能分時計量,採用RS485串列通訊,實現電量自動回抄,實時校時。該電能表經淄博貝林電子有限公司生產表明,設計技術新奇,計量正確,走時精確,時段設置靈活,防竊電設計新奇,各項技術指標均達到國家多費率電能表的技術標准,具有廣闊的應用遠景。
本文作者創新點在於採用AD7755電能計量晶元計量正確;串列X25045存儲靈活可靠,串列時鍾S3530A走時精確,RS485匯流排傳輸可靠性高,防竊電新奇設計。採用I2C匯流排結構多費率單相電能表設計更加公道,具有性價比高的特點
E. 求單片機課程設計 用匯編語言設計計數器(要求從0~9999,在數碼管上顯示)!!!!!!!!!!!!!
單片機課程設計報告
題 目 計時器設計
班 級 電 信 093
學 號 090301334
姓 名 周 劍
時 間 2010.12.20
成 績
指導教師 石巧雲
目錄
一、 前言………………………………………………………………1
單片機的應用介紹…………………………………………………1
二、 課程設計的目的和要求…………………………………………2
(一)課程設計的目的…………………………………………… 2
(二)課程設計的基本要求……………………………………… 3
三、 總體設計…………………………………………………………3
(一)工作原理…………………………………………………… 3
(二)硬體總體設計……………………………………………… 4
(三)軟體總體設計……………………………………………… 5
四、綜合調試………………………………………………………… 7
(一)keil調試 …………………………………………………… 8
(二)Proteus調試………………………………………………… 9
五、結束語…………………………………………………………… 9
六、參考文獻 …………………………………………………………10
前言
單片機的應用介紹
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應用單片機的應用介紹
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應
智能化控制的科學家、工程師。
與智能化控制的科學家、工程師。
單片機廣泛應用於儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程式控制制等領域,大致可分如下幾個范疇:
(1.在智能儀器儀表上的應用
(2.在工業控制中的應用
(3.在家用電器中的應用
(4.在計算機網路和通信領域中的應用
(5.單片機在醫用設備領域中的應用
(6.在各種大型電器中的模塊化應用
此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。
二、 課程設計的目的和要求
(一)課程設計的目的
1. 進一步熟悉和掌握8051單片機的結構及工作原理。
2. 掌握單片機的介面技術及相關外圍晶元的外特性,控制方法
3. 通過課程設計,掌握以單片機核心的電路設計的基本方法和技術,了解表關電路參數的計算方法。
4. 通過實際程序設計和調試,逐步掌握模塊化程序設計方法和調試技術。
5. 通過完成一個包括電路設計和程序開發的完整過程,使學生了解開發一單片機應用系統的全過程,為今後從事相應打下基礎。
(二)課程設計的基本要求
用AT89C51 單片機的定時/計數器T0產生一秒的定時時間,作為秒計數時間,但一秒產生時,秒計數加1,秒計數加到60時,自動從0開始。單片機晶振頻率為12MHz。
二、 總體設計
(一) 工作原理
LED顯示器的結構與原理
1、結構種類
七段LED顯示器(數碼管)系發光器件的一種。常用的LED發光器件有兩類:數碼管和點陣。數碼管內部有七個條形發光二極體和一個小圓點發光二極體組成,根據各管的亮暗組成字元。常見數碼管有10根管腳。管腳排列如下圖(a)所示。其中COM為公共端,根據內部發光二極體的接線形式可分為共陰極和共陽極兩種。如下圖(b)(c)所示,使用時,共陰極數碼管公共端接地,共陽極數碼管公共端接電源。發光二極體需5~10mA的驅動電流才能正常發光,一般需加限流電阻控制電流的大小。
2、顯示原理
LED數碼管的a~g七個發光二極體。加正電壓的發光加零電壓的不能發光,不同亮暗的組合能形成不同的字元,這種組合稱為字型碼。共陽極和共陰極的字型碼是不同的,如下圖所示。
LED字元顯示代碼表
顯示 段符號 十六進制代碼
dp g f e d c b a 共陰極 共陽極
0 0 0 1 1 1 1 1 1 3FH C0H
1 0 0 0 0 0 1 1 0 06H F9H
2 0 1 0 1 1 0 1 1 5BH A4H
3 0 1 0 0 1 1 1 1 4FH B0H
4 0 1 1 0 0 1 1 0 66H 99H
5 0 1 1 0 1 1 0 1 6DH 92H
6 0 1 1 1 1 1 0 1 7DH 82H
7 0 0 0 0 0 1 1 1 07H F8H
8 0 1 1 1 1 1 1 1 7FH 80H
9 0 1 1 0 1 1 1 1 6FH 90H
(二) 硬體總體設計
1、主要元器件選擇
主要元器件選用型號和數量如下:
1個AT89C51(單片機) 1個CRYSTAL(晶振) 2個CAP(電容)
3個RES(電阻) 2個7SEG-COM-CATHOD(共陰極數碼管)
1個CAP-ELEC(電解電容)
2、系統板上硬體連線
(1. 把「單片機系統」區域中的P0.0/AD0-P0.7/AD7埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。
(2. 把「單片機系統」區域中的P2.0/A8-P2.7/A15埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P2.0/A8對應著a,P2.1/A9對應著b,……,P2.7/A15對應著h。
3、計時器電原理圖
(三)軟體總體設計
1、程序設計內容
(1.在設計過程中我們用一個存儲單元作為秒計數單元,當一秒鍾到來時,就讓秒計數單元加1,當秒計數達到60時,就自動返回到0,從新秒計數。
(2.對於秒計數單元中的數據要把它十位數和個數分開,方法仍採用對10整除和對10求余。
(3.在數碼上顯示,仍通過查表的方式完成。
(4.一秒時間的產生在這里我們採用軟體精確延時的方法來完成,經過精確計算得到1秒時間為1.002秒。
2、延時1秒子程序
DELY1S: MOV R5,#100
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
3、程序流程圖
4、匯編源程序設計
Second EQU 30H
ORG 0
START: MOV Second,#00H ;設置顯示初值為00
NEXT: MOV A,Second
MOV B,#10
DIV AB ;十位數存於A中,個位數存於B中
MOV DPTR,#TABLE ;字型碼地址送DPTR
MOVC A,@A+DPTR ;查十位字型碼
MOV P1,A ;送P1口顯示
MOV A,B
MOVC A,@A+DPTR ;查個位字型碼
MOV P2,A ;送P2口顯示
LCALL DELY1S ;調用延時1秒子程序DELY1S
INC Second ;顯示值加1
MOV A,Second
CJNE A,#90,NEXT ;顯示值不為90轉到NEXT執行
LJMP START ;返回到主程序
DELY1S: MOV R5,#100 ;1S延時子程序
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共陰數碼管字型碼
END
四、綜合調試
(一)Keil調試
程序調試完成圖
(二)Proteus調試
五、結束語
完成情況:經過兩個星期的努力,我們一組成員終於完成了秒錶控制方案的設計,主要是用AT89C51單片機實現0-99秒計時器控制方案。本設計還包含數碼管顯示部分,可直接顯示時間可方便觀察。通過這次課程設計,使我得到了一次用專業知識和專業技能去分析問題、解決問題全面系統的鍛煉。使我在單片機的基本原理、單片機應用系統開發過程,以及用匯編語言設計程序的思路技巧等方面都能向前邁了一大步,為日後成為合格的應用型人才打下良好的基礎。
六、參考文獻
[1]. 江力主編,單片機原理與應用技術,清華大學出版社,2008年4月第6次印刷
[2].蔡駿主編,單片機實驗指導教程,安徽大學出版社,2008年7月第一次印刷
[3]. http://www.51c51.com/51test/cc411.htm
F. 跪求單片機課程設計 要完全呦
題 目:單片機課程設計報告
目 錄
一、設計目的
二、程設計具體要求
三、單片機發展簡史
四、8051單片機系統簡介
五、8051單片機內部定時器/計數器簡介
六、程序電路
七、程序流程
八、程序代碼
九實驗總結-要求寫出完整的論文以及心得體會
十參考資料及小結
原 文 : 一.目的
1. 進一步熟悉和掌握8051單片機的結構及工作原理。
2. 掌握單片機的介面技術及相關外圍晶元的外特性,控制方法。
3. 通過課程設計,掌握以單片機核心的電路設計的基本方法和技術,了解表關電路參數的計算方法。
4. 通過實際程序設計和調試,逐步掌握模塊化程序設計方法和調試技術。
5. 通過完成一個包括電路設計和程序開發的完整過程,使學生了解開發一單片機應用系統的全過程,為今後從事相應打下基礎。
二.課程設計的體要求
a) 原理圖設計。
1. 原理圖設計要符合項目的工作原理,連線要正確,端了要不得有標號。
2. 圖中所使用的元器件要合理選用,電阻,電容等器件的參數要正確標明。
3. 原理圖要完整,CPU,外圍器件,擴器介面,輸入/輸出裝置要一應俱全。
b) 程序調計
1. 根據要求,將總體項能分解成若干個子功能模塊,每個功能模塊完成一個特定的功能。
2. 根據總體要求及分解的功能模塊,確定各功能模塊之間的關系,設直出完整的程序流程圖。
c) 程序調試將設計完的程序輸入,匯編,排除語法錯誤,生成*OBJ文件。
1. 按所設計的原理圖,在實驗平台上連線,檢查無誤。
2. 將匯編後生成的*OBJ文件傳送到實驗裝置的,執行該程序,檢查該程序、是否達到設計要求,若未達到,修改程序,直到達到要求為止,
d) 說明書
1. 原理圖設計說明
簡要說明設計目的,原理圖中所使用的元器件功能及在圖中的作用,各器件的工作過程及順序。
2. 程序設計說明
對程序設計總體功能及結構進行說明,對各子模塊的功能以及各子模塊之間的關系作較詳細的描述。
3. 畫出工作原理圖,程序流程圖並給出程序清單。
目前,單片機已廣泛應用到圖民經濟建設和日常生活的許多領域,成為測控技術現代化必不可少的重要工具。下面介紹一本單片機課程設計的好書,介紹了很多實例有興趣者可以去買哦,價格不貴【圖書目錄】 - 8051單片機課程設計實訓教材
第1章 緒論
1.1 課程設計所需硬體工具
1.2 專題製作所需軟體使用工具
1.3 8051程序開發測試平台
1.4 使用免費匯編編譯器
1.5 89CXX燒錄模擬器操作實例
1.6 自製8051微電腦單板IO51
1.7 IO51操作實例
1.8 以Windows98 工作模式結合DOS模式來執行
第2章 8051單片機課程設計中的基本軟硬體設計
2.1 8051各種基本的硬體設計
2.2 工作指示燈LED
2.3 8051延遲時間計算
2.4 基本按鍵設計
2.5 建立8051通信介面
2.6 簡易8051調試界面
2.7 壓電喇叭測試
2.8 鍵盤掃描
2.9 掃描控制七段顯示器
2.10 LCD介面控制
2.11 8051定時器模式的工作
2.12 定時器模式0測試
2.13 定時器模式1測試
2.14 定時器模式2測試
2.15 以定時器產生各種頻率的聲音
2.16 以定時器演奏—段旋律
第3章 帶單片機的LCD時鍾
第4章 定時鬧鈴
第5章 定時鬧鈴LCD
第6章 音樂倒數定時器
第7章 密碼鎖控制
第8章 可存儲式電子琴
第9章 8051八音盒
第10章 紅外線遙控器研究
10.1 紅外線遙控器動作原理
10.2 如何觀察紅外線遙控器信號
10.3 紅外線遙控器解碼功能說明
第11章 紅外線家電遙控
第12章 8051伺服機控制
12.1 伺服機工作原理及改裝
第1.3章 8051伺服車控制
13.1 功能說明
13.2 伺服車組裝及實驗
第14章 紅外線遙控伺服車
14.1 功能說明
14.2 遙控伺服車組裝及實驗
14.3 控制電路
14.4 控製程序
第15章 無線電家電遙控
15.1 功能說明
15.2 遙控編碼解碼控制
第16章 8051聲控設計
16.1 聲控基本知識介紹
16.2 系統組成
16.3 聲控模塊介紹
16.4 基本控制電路
16.5 基本控製程序
16.6 聲控課題設計
附錄H 如何使用KEIL 8051開發系統匯編和編譯程序及調試
附錄I EPM89 890XX燒錄模擬器特性
附錄J 1051 8051 10控制板特性
附錄K VCMM聲控模塊特性
附錄L IO51控制板完整電路圖
附錄M 需要從網站下載的相關資料的使用說明
附錄N 硬體介面板版權聲明及如何訂購
附錄A 簡易穩壓電源製作
附錄B 本書實驗所需軟硬體工具及零件
附錄C 8051內部控制寄存器介紹
附錄D 8051指令集
附錄E 如何自製8051單板
附錄F 課程設計報告參考內容
附錄G IO51控制板窗口版驅動程序使用說明
G. 基於單片機的畢業設計題目哪些簡單點
基於單片機的畢業設計簡單點的題目如下:
一、智能家居控制系統
在單片機、感測器、通訊技術和家電控制等方面進行設計,實現智能家居的自動化管理,如溫度控制、照明控制、窗簾控制等功能,實現智能家居系統的智能化、舒適化。
二、智能綠植養護系統
基於單片機、感測器、液晶屏和控制器等硬體設計,將溫度、濕度光照等環境參數進行檢測和記錄,並通過控制器實現水肥自動喂養.光照調控、溫濕度自動調節等功能,保證綠植的正常生長。
五、智能醫療診斷系統
基於單片機、感測器、采樣電路、信號處理演算法、人工智慧等硬體及軟體技術,構建一個智能醫療診斷系統,能夠檢測患者的生理指標,並根據患者的身體狀況和歷史病例,提供醫攜襪學診斷結果和治療建議。
六、智能家庭安防系統
該系統可以通過單片機、配合感測器、通晌隱卜訊模塊等硬體,實現對家庭室內和室外環境的實時監測,防盜報警、行程化控制、視頻監控等多個功能,提高家庭的安全系數。
H. 8051單片機的內部硬體結構包括哪五大部分
8051單片機的內部硬體結構包括:
1、中央處理器CPU:它是單片機內部的核心部件,決定了單片機的主要功能特性,由運算器和控制器兩大部分組成。
2、存儲器:8051單片機在系統結構上採用了哈佛型,將程序和數據分別存放在兩個存儲器內,一個稱為程序存儲器,另一個為數據存儲器在物理結構上分程序存儲器和數據存儲器,有四個物理上相互獨立的存儲空間,即片內ROM和片外ROM,片內RAM和片外RAM。
3、定時器/計數器(T/C):8051單片機內有兩個16位的定時器/計數器,每個T/C既可以設置成計數方式,也可以設置成定時方式,並以其定時計數結果對計算機進行控制。
4、並行I/O口:8051有四個8位並行I/O介面(P0~P3),以實現數據的並行輸入輸出。
5、串列口:8051單片機有一個全雙工的串列口,可實現單片機和單片機或其他設備間的串列通信。
6、中斷控制系統:8051共有5個中斷源,非為高級和低級兩個級別它可以接收外部中斷申請、定時器/計數器申請和串列口申請,常用於實時控制、故障自動處理、計算機與外設間傳送數據及人機對話等。
(8)寶坻區推廣單片機結構設計擴展閱讀:
單片機不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
I. 用單片機設計製作一個模擬的十字路口交通信號燈控制系統。
摘 要
在日常生活中,交通信號燈的使用,使交通得以有效管理,對於疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。交通燈控制系統由80C51單片機、鍵盤、LED顯示、交通燈延時組成。系統除具有基本交通燈功能外,還具有時間設置、LED信息顯示功能,市交通實現有效控制。
關鍵字:交通燈;單片機;自動控制;LED
Abstract
In daily life, the use of traffic lights, so traffic can be managed effectively in smoothing traffic flow, increase road capacity and rece traffic accidents have remarkable results. Traffic light control system consists of 80C51 microcontroller, keypad, LED display, traffic light delay component. In addition to the traffic light system has the basic functions, but also with time settings, LED information display function, achieving effective control of city traffic
Key Words:traffic lights; SCM; control; LED
目 錄
1 交通燈任務、功能要求說明及總體方案介紹 …………………………………1
1.1 交通燈任務…………………………………………………………………1
1.2 功能要求說明………………………………………………………………1
1.3 設計總體方案介紹及工作原理說明………………………………………2
2 交通燈硬體系統的設計 …………………………………………………………4
2.1 硬體系統各模塊功能介紹…………………………………………………4
2.2 電路原理圖 ………………………………………………………………5
2.3 電路PCB圖 ………………………………………………………………5
2.4 元器件布局圖 ……………………………………………………………5
2.5 元器件清單 ………………………………………………………………5
3 交通燈軟體系統的設計 …………………………………………………………7
3.1 單片機的使用資源情況 …………………………………………………7
3.2 軟體模塊功能介紹 ………………………………………………………8
3.3 程序流程圖 ………………………………………………………………8
3.4 程序清單 …………………………………………………………………10
4 設計總結…………………………………………………………………………11
4.1 使用說明 …………………………………………………………………11
4.2 誤差分析 …………………………………………………………………11
4.3 設計體會 …………………………………………………………………11
4.4 教學建議 …………………………………………………………………12
參考文獻 ……………………………………………………………………………13
致 謝 ………………………………………………………………………………14
附錄一 電路原理圖 ………………………………………………………………15
附錄二 電路PCB頂層圖 …………………………………………………………16
附錄三 電路PCB底層圖 …………………………………………………………17
附錄四 元器件布局圖 ……………………………………………………………18
附錄五 元器件清單 ………………………………………………………………19
附錄六 程序清單…………………………………………………………………20
1 交通燈任務、功能要求說明及總體方案介紹
1.1 交通燈任務
設計一個具有特定功能的十字路口交通燈。該交通燈上電或按鍵復位後能自動顯示系統提示符「P.」, 進入准備工作狀態。按開始鍵則開始工作,按結束鍵則返回「P.」狀態。要求甲車道和乙車道兩條交叉道路上的車輛交替運行,甲車道為主車道,每次通車時間為60秒,乙車道為次車道,每次通車時間為30秒,要求黃燈亮3秒,並且1秒閃爍一次。有應急車輛出現時,紅燈全亮,應急車輛通車時間10秒,同時禁止其他車輛通過。
1.2 功能要求說明
本次課程設計在硬體方面的接法如下:P2口接二極體,P2.0、P2.1、P2.2口線分別來控制東西方向的綠燈、黃燈和紅燈;P2.3、P2.4、P2.5口線分別控制南北方向的紅燈、黃燈和綠燈。P0口作為數碼管的位控(這里只用到了P0.0、和P0.1兩根口線),P1口作為數碼管的段控,P3口作為輸入部分(這里用到了P3.0、P3.1、P3.2口線),控制數碼管的顯示情況和二極體的亮滅情況。
當交通燈上電或按鍵復位後能自動顯示系統提示符「P.」,進入准備工作狀態。
當按下啟動按鈕K1並釋放後,數碼管顯示將會從「60」開始倒計時,每隔一秒減1,此時南北方向開始一直亮綠燈,東西方向一直亮紅燈,直到顯示為「00」時,數碼管將會從「03」開始倒計時,每隔一秒減1,此時南北方向每隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為「00」時,數碼管將會從「30」開始倒計時,此時南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為「00」時,數碼管又將從「03」開始倒計時,此時南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當沒有其他鍵按下時,交通燈將這樣一直循環下去。
當按下結束鍵K2並釋放後,數碼管將顯示「P.」,東西南北方向無燈亮。
當按下緊急鍵K3並釋放後,數碼管將顯示「09」,並且每隔一秒就減1,
東西南北方向全部紅燈亮。
單片機採用AT89S52,fosc=12MHZ。其按鍵功能如表1.1所示。
表1.1 按鍵功能
按鍵 鍵名 功能
P3.4 K1鍵 啟動鍵
P3.7 K2鍵 結束鍵
P3.6 K3鍵 緊急鍵
1.3 設計總體方案介紹及工作原理說明
1.3.1 總體方案介紹
該交通燈電路由單片機AT98S52、鍵盤介面電路、顯示介面電路、發光二極體控制電路、時鍾電路和復位電路構成,原理框圖如圖1.1所示。
圖1.1 原理框圖
(1) 電源提供方面
採用獨立的穩壓電源,此方案的優點是穩定可靠,且有各種成熟電路可供使用。
(2) 顯示方面
完全採用數碼管顯示,用來顯示有限符號和數碼字元。
(3) 鍵盤輸入方面
直接在I/O口線上接按鍵開關,因為設計時精簡和優化了電路,所以剩餘的口資源還比較多。我們共用到了4個按鍵,分別為:K0、K1、K2、K3。
1.3.2 工作原理
首先時鍾電路產生單片機工作時所需要的時鍾信號,這是單片機能夠正常工作的前提,而單片機有無定時的基礎以及定多長的時間,這些還需要我們人為的確定。我是採用10ms延時程序來反復調用來定時,在我們的硬體電路中,按鍵的鍵功能程序在中斷服務中,在正常情況下會不斷運行主程序,當有鍵按下時,CPU去轉去執行中斷程序,而中斷程序可以執行三種鍵功能:第一個是十秒倒計時緊急紅燈亮;第二個是結束倒計時,顯示P.;第三個是重新開始倒計時。其原理是INTO=P3.4&P3.6&P3.7,當有鍵按下時,外部中斷0口線就會變成低電平,通過鍵掃程序來具體判斷到底是哪個鍵按下,CPU才會去執行中斷裡面的某個鍵功能。12個發光二極體是由P0口控制的,P0口與二極體之間串接一個限流電阻使二極體不易燒壞,採用送低電平有效。
2 交通燈硬體系統的設計
2.1 硬體系統各模塊功能介紹
2.1.1 顯示電路
在本次課程設計中,我們採用的是四位一體共陽數碼管。本設計的顯示驅動是採用三極體作為驅動。並且,無論是位控線上還是段控線上都串接一個電阻,以提高其輸出功率,在這里採用220歐母電阻。
2.1.2 指示燈控制電路
本次課程設計採用P3口控制二極體的發光情況,口線送低電平有效,具體設計如下:P3.2控制東西方向的綠燈,P3.4口控制東西方向的黃燈,P3.5控制東西方向的紅燈,P3.1控制南北方向的紅燈,P3.7控制南北方向的黃燈,P3.0控制南北方向的綠燈。
2.1.3 鍵盤控制電路
鍵盤是最常用的輸入設備,是實現人機對話的紐帶。按其結構形式可分為非編碼鍵盤和編碼鍵盤。
編碼鍵盤採用硬體方法產生鍵碼。每按下一個鍵,鍵盤能自動生成鍵盤代碼,鍵數較多,且具有去抖動功能。這種鍵盤使用方便,但硬體較復雜。非編碼鍵盤僅提供按鍵開關工作狀態,其鍵碼由軟體確定,這種鍵盤鍵數較少,硬體簡單,廣泛應用於各種單片機應用系統,在單片機控制電路中,可把單片機使用的鍵盤分為獨立式和矩陣式兩種。獨立式實際上就是一組獨立的按鍵,這些按鍵可直接與單片機的I/O口連接,即每個按鍵獨佔一條口線,這種接法簡單。矩陣式鍵盤也稱行列式鍵盤,因為鍵的數目較多,所以鍵按行列組成矩陣。本設計中鍵盤數目較少,且為安裝方便,因此在本設計中採用獨立式接法。
按從一個鍵到鍵的功能被執行主要應包括兩項工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,另一項是鍵功能的實現。第一項工作是使用介面電路實現的,而第二項工作則是通過執行中斷服務程序來完成。具體來說,鍵盤介面應完成以下操作功能:
(1) 鍵盤掃描,以判定是否有鍵被按下(稱之為「閉合鍵」)。
(2) 鍵識別,以確定閉合鍵的行列位置。
(3) 產生閉合鍵的鍵碼。
(4) 排除多鍵、串鍵(復鍵)及去抖動。
以上這些內容通常是以軟硬體結合的方式來完成的,即在軟體的配合下由介面電路來完成。但具體哪些由硬體哪些由軟體完成,要看介面電路的情況。總的原則是,硬體復雜軟體就簡單,硬體簡單軟體就得復雜一些。
2.1.4 時鍾電路
時鍾電路用來產生單片機工作所需要的時鍾信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鍾信號控制下嚴格地按時序進行工作。通過在晶元的外部XTAL1和XTAL2兩個引腳跨接晶體振盪器和微調電容,形成反饋電路,就構成了一個穩定的自激振盪電路。時鍾電路為單片機產生時鍾脈沖序列,本設計中採用的晶振頻率為12MHz,電容為33pF。
2.1.5 復位電路
復位電路用於產生復位信號,通過RST引腳送入單片機,復位是單片機的初始操作,其主要功能是:為一些專用寄存器設置初始狀態、程序狀態字PSW清0、程序計數器PC被賦值為0000H等,除了進入系統的正常初始化之外,當由於程序運行出錯或操作錯誤使系統處於死鎖狀態時,為擺脫困境,也需安裝復位鍵以重新啟動。RST引腳是復位信號的輸入端,復位信號是高電平有效,完成復位操作共需要24個狀態周期,復位結束後,單片機從地址0000H單元開始執行程序,SP為07H,其它寄存器大多數被置為00H,本設計使用頻率為12MHz的晶振,所以復位信號持續時間應超過2μs才能完成復位操作。復位電路分為上電復位、按鍵復位、按鍵脈沖復位三種,本次課程設計採用的是按鍵復位。
2.1.6 單片機最小系統
它採用單片機AT89S52晶元,能實現基本I/O口實驗,定時計數器實驗等等。具有單片機並口的輸入、輸出的功能特點。
2.2 電路原理圖
電路原理圖見附錄一所示。
2.3 電路PCB圖
電路PCB頂層圖見附錄二所示;
電路PCB頂層圖見附錄三所示。
2.4 元器件布局圖
元器件布局圖見附錄四所示。
2.5 元器件清單
元器件清單見附錄五所示。
3 交通燈軟體系統的設計
3.1 單片機的使用資源情況
3.1.1 硬體資源使用說明
P0口為二極體的控制端
P1口用作地址/數據匯流排
P2口用作地址/數據匯流排
P3.4、P3.6、P3.7口線作為鍵盤輸入端
採用了INTO外部中斷
既在AT89S52的P0口用來接十二個發光二極體的陰極,控制其亮與滅,P1口和P2口外接由2個LED數碼管(LED1、LED0)構成的顯示器,用P2口作LED的段碼輸出口(P2.0~P2.7對應於LED的a~dp),P1口作LED的位控輸出線(P1.1、P1.0分別對應於LED1、LED0),其中在P1的串列口外接2個三極體作為顯示驅動,顯示為2個數碼管(LED0~LED1)進行動態顯示。P3口外接三個個按鍵K1、K2、K3(分別對應於P3.4、P3.7、P3.6口)用於調整顯示介面電路。
3.1.2 交通燈的分配表
交通燈的口線分配如表3.1所示,「1」表示送高電平,「0」表示送低電平。
表3.1 交通燈分配表
P0.2 東西綠燈 1 1 0 1
P0.3 東西黃燈 1 1 1 0
P0.4 東西紅燈 0 0 1 1
P0.5 南北紅燈 1 1 0 0
P0.6 南北黃燈 1 0 1 1
P0.7 南北綠燈 0 1 1 1
控制碼 6FH AFH DBH D7H
狀態說明 南北放行,東西禁止 南北警告,東西禁止 南北禁止,東西放行 南北禁止,東西放行
3.2 軟體模塊功能介紹
主程序模塊的主要任務是程序的初始化顯示「P.P.」,當沒任何鍵按下時,顯示模塊將一直不變,交通燈全部是熄滅的,當K0鍵按下並松開後開始倒計時,
其中在時間顯示的過程中判斷是否有K0、K1和K2鍵按下,當再次按下K0時,顯示將重新開始倒計時,如果是K1按下,將顯示「P.」,並且發光二極體全部熄滅,如果是K2按下,數碼管將開始十秒倒計時,並且東西南北全部亮起紅燈。
3.3 程序流程圖
主程序的流程圖如圖3.1所示,按鍵判斷程序流程圖如圖3.2所示
圖3.1 主程序流程圖
圖3.2 判斷按鍵程序流程圖
3.4 程序清單
程序清單詳見附錄六 。
4 設計總結
4.1 使用說明
本實驗主要是利用單片機AT89S52、數碼管和發光二極體組成,整個電路結構比較簡單,它能實現以下幾個功能:
時間的顯示。
紅黃綠燈的發光與熄滅。
具體操作說明如下: 當交通燈上電或按鍵復位後能自動顯示系統提示符「P.」,進入准備工作狀態。當按下啟動按鈕K1並釋放後,數碼管顯示將會從「60」開始倒計時,每隔一秒減1,此時南北方向開始一直亮綠燈,東西方向一直亮紅燈,直到顯示為「00」時,數碼管將會從「03」開始倒計時,每隔一秒減1,此時南北方向沒隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為「00」時,數碼管將會從「30」開始倒計時,此時南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為「00」時,數碼管又將從「03」開始倒計時,此時南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當沒有其他鍵按下時,交通燈將這樣一直循環下去。當按下結束鍵K2並釋放後,數碼管將顯示「P.」,東西南北方向無燈亮,當有其它鍵按下時,就退出,去執行該鍵的鍵功能。當按下緊急鍵K3並釋放後,數碼管將顯示「10」,並且每隔一秒就減1,東西南北方向全部紅燈亮,當沒亮到顯示「00」就有其它鍵按下時,就退出,執行該鍵的鍵功能,當顯示到「00」時,就會自動退出中斷繼續完成主程序。
4.2 誤差分析
本次課程設計的誤差就在於顯示時間,我採用的是調用延時程序來讓顯示器上數字共顯示一秒鍾,而循環一次的時間並不僅僅只是2次調用延時程序的時間,其間CPU還執行其它指令,例如說將緩存區的內容送給累加器A、查表指令、將段控碼送給P2口等等,因為它們都是微秒級的,而延時程序是毫秒級的,因此在計算的過程中就可以省略了,每次循環除兩次調用延時程序外,所用時間為22微秒,而顯示一秒鍾共循環了50次,因此在顯示器上只需要顯示1秒數字,事實上多顯示了1100微秒,誤差率=1.1%。
4.3 設計體會
經過一個多星期的時間,終於完成了這次的課程設計。在這期間,其他同學提出了許多寶貴的意見,使這次設計終於完滿成功了。
我覺得作為一名自動化專業的學生,單片機的課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對於這門課懂的並不多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個多禮拜的「學習」,在同學的幫助和講解下,漸漸對這門課逐漸產生了些許的興趣,自己開始主動學習並逐步從基礎慢慢開始弄懂它。我認為這個收獲應該說是相當大的。
經過這次課程設計,也讓我更加深刻的認識到學好單片機的重要意義。當今單片機滲透到我們生活的各個領域比如從導彈的導航裝置、飛機上各種儀表的控制、計算機的網路通訊與數據傳輸、自動控制領域的機器人、智能儀表、醫療器械、工業自動化過程的實時控制和數據處理等等到我們生活中接觸到的各種智能IC卡、民用豪華轎車的安全保障系統、錄像機、攝像機、全自動洗衣機的控制以及程式控制玩具、電子寵物等等,這些都離不開單片機。它主要是作為控制部分的核心部件。因此,單片機的學習、開發在各行各業異常重要。在今後的學習中,我會更加努力的學習鞏固單片機,為以後的工作打下堅固的基礎。
4.4 教學建議
在王韌老師的嚴格要求與耐心指導下,經過一個學期對單片機技術這門課程的學習,使我對單片機這一技術的應用有了一定的了解,並對單片機的學習產生了濃厚的興趣。
通過本次單片機控制交通燈的設計,結合本人的學習過程與切身感受向老師提出以下幾點教學意見:希望老師以後能夠在一開始教這門課的時候就讓整個班分好小組,讓那些對單片機比較熟悉的同學幫助基礎較差的同學,那樣可以提高學習的效率與熱情;另外,王老師可以多介紹些與單片機相關的資料書給學生,培養學生查閱資料書的能力;最後一點,就是王老師在單片機擴展方面不必講解的過細,重點在於引導思路,形成單片機的整體框架結構。
附錄一 電路原理圖
附錄二 PCB頂層圖
附錄三 PCB底層圖
附錄四 元器件布局圖
附錄五 交通燈元器件清單
元器件及材料名稱 規格 數目 備注
AT89S52加底座 1
四位一體共陽數碼管加底座 2 0.5寸
晶振 12MHz 1 三晶
發光二極體 大個的 9
單排插 40腳 1
三極體 9012 9
蜂鳴器 1 5V
小按鍵 9 6*6*4.3mm
下載口座子 十芯 1 FC-10P
18b20溫度感測器 1
六腳按鍵開關 1 6*6*4.3mm
Usb電源線加介面 1 USB線加USB介面
電阻 200 1
電阻 4.7K 1
電阻 1K 3
電阻 470 24
電解電容 22uf 1
瓷片電容 33pf 2
排阻 10k 2
短路帽 3
杜邦線8P 1
PCB板子 150mm*200mm 1
電源白色插座 1
附錄六 程序清單
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP LOOP1
ORG 0030H
MAIN: MOV PSW, #00H; 初始化
MOV SP, #7FH
MOV TMOD, #10H;
MOV TH1, #3CH;
MOV TL1, #0B0H;
MOV TH0, #0FCH;
MOV TL0, #18H;
MOV 78H, #11H;
MOV 79H, #10H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
MOV R7, #0FAH;
MOV R6, #32H;
MOV R5, #05H;
MOV R4, #39H;
MOV R1, #20;
SETB EA;
SETB ET1;
PP: LCALL DIR;
START: LCALL KEY;
JB 20H.0, K0;
LJMP PP;
K0: MOV R4, #39H;
MOV R1, #20;
SETB TR1;
MOV 78H, #07H;
MOV 79H, #05H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
LCALL DIR;
CYCLE0: MOV P3, #0DEH;主綠副紅
JB 20H.2, OUT;
KK0: JB 20H.1, JINJI;
CJNE R4, #00, CYCLE0;延時60秒
MOV R4, #03H;
MOV 78H, #03H;
MOV 79H, #00H;
CYCLE1: MOV P3, #0DFH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #10, CYCLE1;
CYCLE2: MOV P3, #0DDH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #20, CYCLE2;
CJNE R4, #00H, CYCLE1;
MOV R4, #1EH;
MOV 78H, #07H;
MOV 79H, #02H;
CYCLE3: MOV P3, #0F3H;主紅副綠
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R4, #00, CYCLE3;延時30秒
MOV R4, #03H;
MOV 78H, #03H;
MOV 79H, #00H;
CYCLE4: MOV P3, #0DFH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #10, CYCLE4;
CYCLE5: MOV P3, #0DDH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #20, CYCLE5;
CJNE R4, #00H, CYCLE4;
MOV R4, #39H;
LJMP K0;
JINJI: MOV R4, #10;緊急車輛按鍵
CYCLE6: MOV P3, #0DBH
CJNE R4, #00, CYCLE6;
LJMP K0;
OUT: MOV P3, #0FFH;
MOV 78H, #11H;
MOV 79H, #10H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
MOV R7, #0FAH;
LJMP PP;
DIR: PUSH DPH; 顯示子程序
PUSH DPL;
PUSH ACC;
PUSH PSW;
SETB RS0;
CLR RS1;
MOV R0, #78H;
MOV R3, #0FEH;
MOV A, R3;
LD0: MOV P2, A;
MOV DPTR, #TABLE;
MOV A, @R0;
MOVC A, @A+DPTR;
MOV P0, A;
LCALL DELAY;
INC R0;
MOV A, R3;
JB ACC.7, LD1;
RL A;
MOV R3, A;
LJMP LD0;
LD1: CLR RS0; 恢復當前通用寄存器組組號
CLR RS1;
POP PSW;
POP ACC; 恢復現場
POP DPL;
POP DPH;
RET;
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H; 0--6
DB 0F8H,80H,90H,88H,83H,0C6H,0A1H; 7--D
DB 86H,8EH,0FFH,0CH; E--F,滅,P.
KEY: LCALL KEYCHULI;鍵掃程序
JZ EXIT;
LCALL XX0;
LCALL KEYCHULI
JZ EXIT;
MOV B, 20H;
KEYSF: LCALL KEYCHULI;
JZ KEY1;
LCALL XX0;
LJMP KEYSF;
KEY1: MOV 20H, B;
EXIT: RET;
KEYCHULI: MOV P1, #0FFH;
MOV A, P1;
CPL A;
ANL A, #0FH;
MOV 20H, A;
RET;
DELAY: DJNZ R7, DELAY;顯示延時子程序
MOV R7, #0FAH;
DJNZ R5, DELAY;
MOV R5, #05H;
RET;
; 定時1秒中斷程序:
LOOP1:
MOV TH1, #3CH;定時器0賦初值,定時50ms
MOV TL1, #0B0H;
LCALL DIR;
LCALL KEY;
DJNZ R1, RETURN;
DEC R4;
MOV R1, #20;
MOV R0, #79H;
LCALL DADD1;
RETURN: RETI;
; 去抖延時子程序:
XX0: DJNZ R7, XX0;
MOV R7, #0FAH;
DJNZ R6, XX0;
MOV R6, #32H;
RET;
減一子程序:
DADD1: MOV A, @R0;
DEC R0;
SWAP A;
ORL A, @R0;
SUBB A, #01H;
DA A;
MOV R2, A;
ANL A, #0FH;
MOV @R0, A;
MOV A, R2;
INC R0;
ANL A, #0F0H;
SWAP A;
MOV @R0, A;
RET;
END