① 簡論單片機課程中單片機實驗教學探究
簡論單片機課程中單片機實驗教學探究
論文摘要:單片機的開發與應用、學習將造就一批計算機智能化控制的工程師、科學家。一些中等院校也相繼開設了單片機課程設計及相關的課程。在單片機及介面技術課程的教學過程中,實驗教學是重要的組成部分。針對單片機課程的教學改革,不斷加強單片機課程實驗環節,改革教學方法,虛擬模擬實驗在單片機教學中的應用,實踐表明,該方法有利於激發學生的學習興趣,培養學生的工程素養和創新能力,提高了教學效果。
論文關鍵詞:單片機;教學;模擬實驗
「單片機原理」是一門理論性、邏輯性、實踐性很強的學科,是電類專業一門非常重要的專業基礎課,把微機介面部分、匯編語言部分、通信技術部分的知識點等綜合在一起,屬於邏輯性、工程性、技術性、實踐性很強的一門專業基礎課。該課程作為電類專業最重要的核心課程之一,它是電類專業高素質技能型人才所需全部自動控制類知識結構的載體,占據著非常重要的位置。
然而,傳統的單片機教學一般注重課程本身的體系結構和前後的邏輯聯系,均以學科體系為出發點,忽略了「可學性」,致使學生學得吃力,老師教得辛苦,教學效果卻沒有顯現出來。
一、研究背景及意義
目前,全國將單片機列入單獨的比賽項目,在考查中注重學生的能力培養,學生的技能素養教育成為重中之重,加之社會需求高技能人才,許多學校為了適應社會的發展和市場需求在不同的專業開設了單片機課程,然而單片機課程是一門實踐性很強的課程,要想在教學過程中取得很好的效果,就必須要求學生在學習過程中多動手實踐,但有的學校教學設備有限,怎樣解決這個問題。模擬實驗課可以讓學生在單片機工作室里做中學,真正玩轉單片機,也同時解決了學生學起來枯燥,老師教起來吃力的尷尬局面。
目前單片機教學中存在諸多問題。如單片機課程理論為主,實驗教學多是進行驗證性實驗。單片機實驗室存在場地和時間限制,學生除了課上,很難有機會接觸到所需要的設備,如模擬器、實驗板等,個人配備成本太高,個體無法承擔。而且實驗箱只能驗證試驗的基本作用和意義,就無從談起學生動手能力的訓練和提升。單片機在當今社會中的應用速度發展迅速,然而單片機教材陳舊,實驗設備很容易落後、老化等問題,必然會帶來耗資等問題。由此可見,構建成本低廉的單片機模擬實驗系統對於單片機教學意義重大。它不僅可以降低實驗設備投資,而且能培提高學生的工程素質,養學生的創新精神。在單片機控制系統的設計開發過程中,我們不單要突出設備的自動化程度及智能性,另一方面也要重視控制系統的工作穩定性,否則就無法體現控制系統的優越性。
由於單片機控制系統應用系統的工作環境往往是比較惡劣和復雜的,其應用的可靠性、安全性就成為一個非常突出的問題。單片機控制系統應用必須長期穩定、可靠地運行,否則將導致控制誤差加大,嚴重時會使系統失靈,甚至造成巨大的損失。
影響單片機控制系統應用的可靠、安全運行的主要因素是來自系統內部和外部的各種電氣干擾,以及系統結果設計、元器件選擇、安裝、製造工藝和外部環境條件等。這些因素對控制系統造成的干擾後果主要表現在下述幾個方面。(1)數據採集誤差加大。(2)控制狀態失靈。(3)數據受干擾發生變化。(4)程序運行失常。
由於受到干擾後計數器的值是隨機的,因而導致程序混亂。通常的情況是程序將執行一系列毫無意義的指令,最後進入「死循環」,這將使輸出嚴重混亂或系統失靈。
隨著單片機及其介面技術的飛速發展,目前面對職業教育存在的突出問題:質量能力與規模能力不相適應,教學信息化程度低,古老的填鴨式課堂教學模式仍應用普遍,「雙師型」教師隊伍建設機制缺乏完善性,科學管理水平和改革創新能力就提到了日程,管理制度不健全,學校基本辦學規范不健全,科學的職業教育評價標准和評價機制達不到標准,學生成長的「通道」不暢通。
從新的教學要求來看,這類課程僅在課堂上講授基本原理是不夠的,必須在教學中加強實踐環節,開出一定數量的高質量的配套實驗課活獨立的實驗課程,讓學生有足夠的實驗機會。那麼對於單片機實驗教學環境建設就相應提出了高要求。怎樣解決這個問題,單片機模擬實驗應運而生。
二、「單片機模擬實驗」初探
伴隨著計算機技術的飛速發展,在各個領域都出現了各種模擬系統,為各種實際系統的開發提供了准確可靠的保證,同時為很多學校、企業等節約了大量的人力和物力。在電子信息技術領域也同樣出現了大量的模擬工具,如課堂上用到的各種EDA工具;模數混合模擬的Protel、Multisim等常見的電子應用模擬軟體,數字系統設計的Fundation、Maxplus II、Expert等。
所謂「模擬」,就是通過開發工具真實地模擬用戶系統的運行環境,使用戶能夠在透明和可控的條件下觀察系統運行過程中的狀態和結果,模擬實際上也是一種軟體和硬體的綜合調試手段,它能提高應用系統開發的效率。
用通俗的話來描述「單片機模擬實驗」就是在一塊虛擬電路板上按照真實電路的設計構想放置一些虛擬的元器件,並模擬實際燒ROM的過程鏈接上程序代碼,「接通」電路觀察效果,如果不理想的話可以反復修改電路或程序代碼,直至符合設計要求為止。
模擬實驗的好處是顯而易見的。在沒有模擬實驗的年代,每架構一個真實的電路都需要費時費力費錢,稍有不慎還有可能前功盡棄,再加上單片機中的ROM晶元是有擦寫次數的,而一段程序可能需要修改擦寫多次,無形中減少了ROM晶元的使用壽命。模擬實驗是在計算機上進行的(可能會費點兒電),以上問題都不存在,而且就現在的模擬軟體來說,模擬出來的電路效果與真實電路一模一樣,毫不誇張地說,只要模擬是成功的,就可以直接下工廠的流水線生產了。
② 單片機初學者該看什麼書
《51單片機工程師是怎樣煉成的:基於C語言+Proteus模擬》老楊 電子工業出版社
《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》彭偉 電子工業出版社
《新概念51單片機C語言教程——入門、提高、開發、拓展》 郭天祥 電子工業出版社
《實例解讀51單片機完全學習與應用》 電子工業出版社
《手把手教你學單片機》 北航
《單片機基礎》李廣弟 北航
《單片機原理及介面技術》李朝青 北航
《51單片機應用從零開始》匯編 楊欣 清華出版社
《愛上單片機》 杜洋 人民郵電出版社
《例說51單片機(C語言版)》 張義和 人民郵電出版社
《單片機原理與技術》
《51單片機開發與應用技術詳解》
《單片機技術與原理教材》
《匠人手記》
《手把手教你學單片機》
《8051單片機》
《單片機原理及應用》 張毅剛
《51單片機原理與實踐》
《單片機應用技術》 哈爾濱工業大學出版社
《8051單片機教程》 平凡
《單片機輕松入門》平凡
③ 單片機英文參考文獻
單片機英文參考文獻
[1] 李廣弟等 單片機基礎 北京航空航天出版社, 2001.7
[2] 樓然苗等 51 系列單片機設計實例 北京航空轎宴航天出版社, 2003.3
[3] 唐俊翟等 單片機原理與應用 冶金工業出版社, 2003.9
[4] 劉瑞新等 單片機原理及應用教程 機械工業出版社, 2003.7
[5] 吳國經等 單片機應用技術 中國電力出版社, 2004.1
[6] 李全利,遲榮強編著 單片機原理及介面技術 高等教育出版社,2004.1
[7] 侯媛彬等,凌陽單片機原理及其畢業設計精選 2006年,科學出版社
銀羨[8] 羅亞非,凌陽十六位單片機應用基礎2003年 北京航空航天大學出版社
[9] 北京北陽電子有限公司,061A凌陽單片機及其附帶光碟2003年
[10] 張毅剛等, MCS-51單片機應用設計,哈工大出版社,2004年第2版
[11] 霍孟友等,單片機原理與應用,機械工業出版社,2004.1
[12] 霍孟友等,單片機原理與應用學習概要及題解,機械工業出版社,閉搏銀2005.3
[13] 許泳龍等,單片機原理及應用,機械工業出版社,2005.1
[14] 馬忠梅等,單片機的C語言應用程序設計,北京航空航天大學出版社,2003修訂版
[15] 薛均義 張彥斌 虞鶴松 樊波,凌陽十六位單片機原理及應用,2003年,北京航空航天大學出版社 ;
④ 單片機原理與介面技術的圖書目錄
第1篇 基 礎 篇
第1章 單片機概論 3
1.1 單片機的發展概況 3
1.1.1 單片機概述 3
1.1.2 MCS-51系列單片機主要產品介紹 5
1.2 單片機的特點及應用領域 9
1.2.1 單片機的特點 9
1.2.2 單片機的應用領域 9
思考與練習 10
第2章 MCS-51系列單片機的硬體結構 11
2.1 MCS-51單片機總體結構 11
2.2 MCS-51系列單片機的中央處理器 13
2.3 MCS-51單片機存儲器結構 15
2.3.1 程序存儲器 16
2.3.2 數據存儲器 16
2.4 單片機並行輸入/輸出口(Parallel I/O口) 18
2.4.1 P0口 18
2.4.2 P1口 20
2.4.3 P2口 21
2.4.4 P3口 22
2.5 MCS-51單片機引腳功能 23
2.5.1 MCS-51單片機的封裝形式和邏輯符號圖 23
2.5.2 MCS-51單片機引腳及其功能 24
思考與練習 26
第3章 MCS-51單片機指令系統 27
3.1 概述 27
3.1.1 指令的組成、表示形式及分類 27
3.1.2 指令的格式 28
3.2 MCS-51系列單片機指令的定址方式 31
3.2.1 寄存器定址 31
3.2.2 寄存器間接定址 32
3.2.3 直接定址 32
3.2.4 立即定址 33
3.2.5 變址定址 33
3.2.6 相對定址 34
3.2.7 位定址 34
3.3 數據傳送指令 36
3.3.1 內部數據傳送指令(15條) 37
3.3.2 外部數據傳送指令(7條) 37
3.3.3 堆棧操作指令(2條) 38
3.3.4 數據交換指令(5條) 40
3.4 算術運算指令 41
3.4.1 加法指令(13條) 41
3.4.2 減法指令(8條) 42
3.4.3 乘法指令(1條) 44
3.4.4 除法指令(1條) 44
3.4.5 十進制調整指令(1條) 45
3.5 邏輯運算指令 46
3.5.1 單操作數邏輯運算指令(6條) 46
3.5.2 雙操作數邏輯運算指令(18條) 46
3.6 控制轉移指令 48
3.6.1 無條件轉移指令(4條) 48
3.6.2 條件轉移指令(8條) 49
3.6.3 子程序調用與返回指令(4條) 51
3.6.4 空操作指令(1條) 52
3.7 位操作指令 53
3.7.1 位傳送指令(2條) 53
3.7.2 位修改指令(4條) 53
3.7.3 位邏輯運算指令(6條) 54
3.7.4 位控制轉移指令(5條) 54
3.8 常用偽指令 55
思考與練習 57
第4章 MCS-51單片機匯編語言程序設計 59
4.1 匯編語言概述 59
4.1.1 匯編語言源程序 59
4.1.2 匯編語言的構成 60
4.2 匯編語言源程序的設計步驟 60
4.3 匯編語言程序的結構 61
4.4 典型問題程序設計舉例 62
思考與練習 65
第5章 MCS-51單片機中斷系統 67
5.1 中斷概述 67
5.2 MCS-51單片機的中斷系統 70
5.2.1 中斷源與中斷標志位 70
5.2.2 與中斷有關的特殊功能寄存器SFR 70
5.2.3 中斷響應過程 72
5.2.4 中斷請求的撤除 74
5.3 典型實例任務解析 75
思考與練習 78
第6章 MCS-51單片機定時器/計數器 79
6.1 定時器/計數器的結構及工作原理 79
6.1.1 定時/計數器的結構 79
6.1.2 定時/計數器的工作原理 80
6.1.3 定時/計數器的控制 80
6.2 定時器/計數器的工作方式 81
6.3 典型實例任務解析 83
思考與練習 85
第2篇 接 口 篇
第7章 MCS-51單片機介面技術概述 89
7.1 MCS-51單片機的最小應用系統 89
7.1.1 8051/8751最小應用系統 90
7.1.2 8031最小應用系統 90
7.2 MCS-51單片機的擴展基本知識 90
7.2.1 外部並行擴展性能 91
7.2.2 外部串列擴展性能 97
思考與練習 99
第8章 存儲器的擴展 100
8.1 程序存儲器的擴展 100
8.1.1 程序存儲器擴展概述 101
8.1.2 擴展程序存儲器EPROM 101
8.1.3 擴展程序存儲器EEPROM 105
8.1.4 常用程序存儲器 107
8.2 數據存儲器的擴展 112
8.2.1 數據存儲器擴展概述 112
8.2.2 擴展SRAM 114
8.2.3 典型SRAM晶元舉例 115
8.2.4 擴展新型存儲器 119
8.3 外擴存儲器電路的工作原理及軟體設計 120
8.4 典型實例任務解析 122
8.5 存儲器擴展的應用設計 123
思考與練習 123
第9章 並行介面技術 125
9.1 簡單的I/O介面的擴展 125
9.1.1 利用TTL電路擴展I/O口 126
9.1.2 串列口擴展並行I/O口 128
9.2 8255A可編程並行介面 130
9.2.1 8255內部結構及引腳功能 130
9.2.2 8255A的控制字 132
9.2.3 8255A的3種工作方式 133
9.2.4 8255與單片機的介面 136
9.3 帶有I/O介面和計數器的靜態RAM8155 138
9.3.1 8155的內部結構和引腳配置 138
9.3.2 並行埠的傳送方式 139
9.3.3 8155晶元內置的計數器 140
9.3.4 8155H並行介面的編程 140
9.3.5 MCS-51系統與8155電路的介面設計 142
9.4 典型實例任務解析 143
思考與練習 145
第10章 人機介面技術 146
10.1 LED顯示器及其介面 146
10.1.1 LED顯示及顯示器介面 147
10.1.2 LED顯示器的介面與編程 148
10.1.3 LED顯示器介面實例 150
10.2 鍵盤及其介面 154
10.2.1 鍵盤工作原理 154
10.2.2 獨立式鍵盤 156
10.2.3 矩陣式鍵盤 161
10.3 8279鍵盤顯示器介面晶元 167
10.3.1 8279的內部結構和工作原理 167
10.3.2 8279的引腳和功能 169
10.3.3 8279的工作方式 169
10.3.4 8279的命令格式和命令字 170
10.3.5 8279狀態格式與狀態字 173
10.3.6 8279的數據輸入/輸出 174
10.3.7 8279的內部解碼與外部解碼 174
10.3.8 8279的介面應用 174
10.4 典型實例任務解析 177
思考與練習 182
第11章 A/D和D/A介面技術 183
11.1 D/A轉換器介面 183
11.1.1 D/A轉換器概述 183
11.1.2 MCS-51與8位DAC0832的介面 185
11.1.3 MCS-51與12位DAC1208和DAC1230的介面 189
11.2 A/D轉換器介面 193
11.2.1 A/D轉換器概述 193
11.2.2 MCS-51與8位ADC0809的介面 194
11.2.3 MCS-51與ADC0809介面 195
11.2.4 MCS-51與12位A/D轉換器的介面 198
11.3 典型實例任務解析 201
思考與練習 202
第12章 串列介面技術 204
12.1 串列通信基礎 204
12.2 串列通信匯流排標准及其介面 205
12.3 MCS-51與PC的通信 206
12.3.1 串列口的結構和工作原理 206
12.3.2 串列口的控制寄存器 207
12.3.3 串列口的工作方式 209
12.3.4 串列口波特率的設置 209
12.4 多機通信 210
思考與練習 211
第3篇 應 用 篇
第13章 單片機應用系統的開發 215
13.1 單片機應用系統的任務分析及實現方案 215
13.2 單片機應用系統硬體電路的設計 218
13.2.1 單片機控制器 218
13.2.2 輸入電路 218
13.2.3 顯示電路 220
13.2.4 系統硬體總電路 220
13.3 單片機應用系統的軟體設計 223
13.3.1 GPS25-LVS的信息輸出格式 223
13.3.2 單片機的信息接收處理 224
13.3.3 內存中的信息存放地址分配 224
13.3.4 主程序 225
13.3.5 控制源程序 225
13.4 單片機應用系統的模擬調試 229
13.4.1 模擬開發系統簡介 229
13.4.2 單片機應用系統的模擬調試過程 231
13.5 單片機應用系統的程序固化 253
13.6 單片機應用系統開發的一般步驟 256
13.6.1 確定總體設計方案 256
13.6.2 系統的詳細設計與製作 257
思考與練習 260
第14章 單片機應用系統的抗干擾設計 261
14.1 單片機應用系統的硬體抗干擾設計 261
14.1.1 供電系統的抗干擾設計 262
14.1.2 長線傳輸的抗干擾設計 263
14.1.3 印製電路板的抗干擾設計 264
14.1.4 地線系統的抗干擾設計 265
14.2 單片機應用系統的軟體抗干擾設計 266
14.2.1 數據採集中的軟體抗干擾 266
14.2.2 控制失靈的軟體干擾 269
14.2.3 程序運行失常的軟體抗干擾 271
思考與練習 275
附錄A MCS-51系列單片機指令表 276
附錄B ASCII碼字元表 281
參考文獻 282
⑤ 單片機原理及應用技術的目錄
第1章 單片機概述
1.1 單片機相關的基本概念
1.1.1 什麼是單片機
1.1.2 什麼是單片機系統
1.1.3 單片機應用系統
1.2 單片機技術的發展
1.2.1 單片機的發展歷程
1.2.2 單片機的發展趨勢
1.3 單片機應用系統開發過程
1.4 單片機的應用領域
1.5 常用51系列單片機介紹
1.6 本書配套單片機開發板簡介
第2章 單片機的結構及工作原理
2.1 AT89s51單片機的主要特性
2.2 單片機的硬體結構
2.2.1 中央處理器
2.2.2 存儲器
2.2.3 I/0介面
2.2.4 特殊功能部件
2.3 51系列單片機的引腳及功能
2.3.1 51單片機的引腳分類
2.3.2 三匯流排結構
2.4 單片機的存儲器配置
2.4.1 程序存儲器
2.4.2 數據存儲器
2.5 時鍾電路與CPU時序
2.5.1 振盪器和時鍾電路
2.5.2 CPU時序
2.5.3 51單片機的指令時序
2.6 單片機的工作方式
2.6.1 復位方式
2.6.2 程序執行方式
2.6.3 低功耗工作方式
2.7 單片機最小系統
習題
第3章 80C51單片機的指令系統
3.1 51單片機指令系統概述
3.1.1 指令格式
3.1.2 指令位元組
3.1.3 指令類型
3.1.4 常用符號說明
3.2 定址方式
3.2.1 直接定址
3.2.2 立即定址
3.2.3 寄存器定址
3.2.4 寄存器間接定址方式
3.2.5 變址定址
3.2.6 位定址
3.2.7 相對定址
3.3 80C51指令集
3.3.1 數據傳送與交換指令
3.3.2 算術運算指令
3.3.3 邏輯運算及移位指令
3.3.4 控制轉移指令
3.3.5 位操作類指令
3.4 51單片機匯編語言程序設計
3.4.1 設計步驟
3.4.2 偽指令
3.4.3 順序程序設計
3.4.4 分支程序設計
3.4.5 循環程序設計
3.4.6 子程序設計
3.4.7 小結
習題
第4章 單片機C程序設計基礎
4.1 C51程序開發概述
4.2 C51數據類型
4.2.1 C51的標識符與關鍵字
4.2.2 數據類型
4.2.3 數據的存儲器類型
4.2.4 常量和變數
4.2.5 51單片機硬體結構的C51定義
4.3 C51運算符和表達式
4.3.1 賦值運算符
4.3.2 算術運算符和算術表達式
4.3.3 關系運算符和關系表達式
4.3.4 邏輯運算符和邏輯表達式
4.3.5 位運算符和位運算
4.3.6 復合運算符及其表達式
4.4 C51控制語句和結構化程序設計
4.4.1 C51語句和程序結構
4.4.2 表達式語句、復合語句和順序結構程序
4.4.3 選擇語句和選擇結構程序
4.4.4 循環語句和循環結構程序
4.5 C51構造數據類型簡介
4.5.1 數組
4.5.2 指針
4.5.3 結構體
4.5.4 聯合體
4.6 C51函數
4.6.1 函數的說明與定義
4.6.2 函數的調用
4.6.3 中斷函數
4.6.4 重人函數
4.7 預處理命令、庫函數
4.7.1 預處理命令
4.7.2 庫函數
4.8 匯編語言與C語言混合編程
4.8.1 C程序與匯編程序之間的參數傳遞
4.8.2 C語言與匯編語言混合編程實例
4.9 模塊化程序設計
4.1 051單片機C程序開發過程
4.10.1 C51程序開發過程及程序結構
4.10.2 C51程序設計的步驟及注意事項
習題
第5章 KeilVision2編譯環境
5.1 初識Keil軟體
5.1.1 KeilC軟體的初始化界面
5.1.2 KeilC菜單與窗口
5.2 KeilC工程建立
5.2.1 新建工程
5.2.2 添加代碼文件
5.2.3 配置工程
5.2.4 編譯鏈接
5.3 Keil軟體的調試方法及技巧
5.3.1 Keil軟體的調試方法
5.3.2 常用調試窗口介紹
5.3.3 通過Peripherals菜單觀察模擬結果
習題
第6章 80C51單片機內部功能單元及應用
6.1 並行I/O埠
6.1.1 PO口
6.1.2 P1口
6.1.3 P2口
6.1.4 P3口
6.1.5 I/O埠的負載能力和埠要求
6.1.6 基本I/O口的應用舉例
6.2 中斷系統
6.2.1 中斷系統概述
6.2.2 中斷的控制與實現
6.2.3 中斷的處理過程
6.2.4 中斷服務程序的設計步驟
6.2.5 外部中斷的應用舉例
6.3 定時器/計數器:
6.3.1 定時器/計數器的基本結構與工作原理
6.3.2 定時器/計數器的控制與實現
6.3.3 定時器/計數器的工作方式
6.3.4 定時器/計數器的綜合應用
6.4 串列通信
6.4.1 串列通信基礎
6.4.2 串列口的結構
6.4.3 串列口相關特殊功能寄存器
……
第7章 單片機常用介面電路設計
第8章 常用串列匯流排介紹及應用
第9章 單片機PROTEUS模擬
第10章 51單片機應用系統開發與設計
附錄1 開發板實驗目錄表
附錄2 80C51單片機指令表
附錄3 C語言優先順序及其結合性
附錄4 ASCII碼表
參考文獻 本書配套開發板
l 主晶元為ATMELh或stc的51系列單片機
l 晶振:基本配置為11.0592MHz,也可由用戶自己選定適合的晶振。l P0、P1、P2、P3的每一個I/O口均引至實驗用戶板上,方便實驗。
l Watchdog:配置有帶復位的看門狗電路。l 程序存貯器為64KB。
l 數據存貯器為4KB(24C04)。
l 提供20個發光二極體,供實驗使用。
l 標准RS232串列通信介面。l 標准微型列印機介面。
l 液晶顯示介面,液晶為LCD1602。
l 具有動態共陰數碼管8個。
l 8 ×8點陣顯示。l 具有4×4矩陣鍵盤。
l 具有4個獨立的鍵盤輸入。
l 串列數轉並行數電路採用74HC595晶元。
l 配有日歷時鍾電路(DS1302晶元)。l
1路8位A/D三線串列轉換晶元:採用TLC549,每個通道均引出其測試點。l
提供8位D/A,使用TLC。具有0~-5V、-5V~0V、-5V~+5V輸出。l
日歷時鍾晶元使用DS1302,可在數碼管上顯示年、月、日、星期、時、分、秒。l
提供揚聲器驅動電路,提供不同的頻率,輸出多種音樂。l
提供蜂鳴器電路。l 脈沖電路。l
在系統編程,提供在線下載,方便調試。