第一篇:單片機原理及應用教學日志(2011暑期)
2011年暑期SST單片機原理及應用教學日志
第一講
授課內(nèi)容:
第一章 單片機概述及數(shù)字電路基礎(chǔ)
單片機基本概念,單片機的發(fā)展過程與趨勢,51系列單片機簡介,單片機應用系統(tǒng),單片機的應用領(lǐng)域,單片機應用系統(tǒng)開發(fā)過程(20分鐘);
計算機的嵌入式應用、嵌入式系統(tǒng)的定義及特點、嵌入式系統(tǒng)的應用技術(shù)、嵌入式操作系統(tǒng)(10分鐘);
模擬、數(shù)字電路基礎(chǔ):MOS管、三態(tài)門、觸發(fā)器的基本原理(30分鐘)。第五章 SST51 單片機開發(fā)板(30分鐘)。
第四章 Keil C51及SST單片機調(diào)試(講20分鐘、練習30分鐘)單片機仿真調(diào)試的一般過程介紹,Keil uVision2 IDE簡介;以講義第212頁的匯編程序為例練習建立工程、編譯文件,匯編,編譯,外設仿真;IAP簡介及SoftICE介紹,以講義第212頁的匯編程序為例練習將程序下載至開發(fā)板。課堂作業(yè)(40分鐘):
創(chuàng)建一個工程,將第188頁的匯編程序添加到該工程,編譯、仿真。并將目標代碼下載到單片機運行,觀察程序執(zhí)行結(jié)果。課后作業(yè):
第35頁“思考與練習”的第4、5題,第233頁“思考與練習”的第1、4題。
第二講
授課內(nèi)容:
第二章
MCS–51單片機原理(講120分鐘)
51單片機功能方框圖講解,存儲器結(jié)構(gòu)和地址空間介紹,單片機時序及單片機工作過程介紹。MCS–51單片機的指令系統(tǒng)概述、單片機七種尋址方式的簡要介紹,具體指令介紹略;重點講述MOVX、MOVC、PUSH、POP、DA等指令的應用;匯編語言程序設計概述、匯編語言的語句格式及偽指令。課堂作業(yè)(60分鐘):
熟悉匯編語言,對第89頁例3.2.1和3.2.11中的例程進行調(diào)試并仿真。課后作業(yè):
第121頁“思考與練習”的第6––13題、14題選做。課后練習(選做):
完成3.2.2匯編語言工具鏈應用舉例實驗。
第三講
/ 6
授課內(nèi)容:
第三章
C51應用基礎(chǔ)(70分鐘)第一講作業(yè)的講評。
重點介紹C51頭文件使用及定義規(guī)范,C51常用運算符,C51對SFR、可位尋址位、I/O口的定義方法,以及對存儲器和外接I/O口的絕對地址訪問方法、C語言與匯編語言程序參數(shù)的傳遞方法。課堂練習(110分鐘):
調(diào)試并仿真第143頁的程序,完善第153頁的程序并仿真。用KEIL調(diào)試工具仿真I/O口輸出波形。課后作業(yè):
1、請編寫程序,測試C51中int、char、double、float等類型的數(shù)據(jù)所占的字節(jié)數(shù)是多少??梢岳肒eil中的虛擬串口輔助進行測試。
2、本章介紹了sfr、sbit等數(shù)據(jù)類型,并介紹了預編譯指令的使用方法。請閱讀51單片機SST89E58RD的數(shù)據(jù)手冊,根據(jù)其在標準51單片機基礎(chǔ)上增加的功能,在頭文件REG51.H的基礎(chǔ)上,編寫一個適合SST89E58RD使用的頭文件。
3、用至少三種方法編寫程序,實現(xiàn)LED的閃爍控制。請盡量運用位運算符,以使程序顯得簡潔,并且有較高的執(zhí)行效率。LED發(fā)光二極管D1的負極與51單片機的P1.0腳相連。
4、改正下面程序的錯誤并解釋原因。#include
a=c;
int a=7,c;
delay(10);
void delay();
{
char i;
for(i=0;i<=255;i++);
}
第四講
授課內(nèi)容:
第六章
單片機I/O口工作原理(70分鐘)
/ 6
第二講作業(yè)的講評。
重點介紹各個I/O口的電路結(jié)構(gòu)和功能特點,讀引腳與鎖存器的區(qū)別,存儲器的擴展方法,I/O口的擴展方法。課堂練習(110分鐘):
第252頁例6.2.1程序仿真并在單片機開發(fā)板上完成實驗。第261頁LED跑馬燈實驗 課后作業(yè): 第263頁“思考與練習”的第1、3題,第265頁“思考與練習”的第1、2題。
第五講
授課內(nèi)容(60分鐘):
第三講作業(yè)的講評。
第七章
51單片機中斷系統(tǒng)及中斷實驗
介紹單片機中斷系統(tǒng)原理,中斷系統(tǒng)結(jié)構(gòu),相關(guān)寄存器設置,中斷響應過程及時間,中斷請求的撤銷,中斷程序的設計與實現(xiàn)。課堂練習(120分鐘): 調(diào)試第305頁例程7.2.1、第309頁例程7.2.3、第310頁例程7.2.4。調(diào)試第305頁例程7.2.2,第 318頁“思考與練習”第1題。
第六講
授課內(nèi)容(60分鐘):
第八章
定時器原理及實驗
介紹定時器/計數(shù)器T0、T1、T2結(jié)構(gòu)和工作原理,相關(guān)寄存器設置和使用,定時器/計數(shù)器工作方式及相關(guān)程序設計。課堂練習(120分鐘):
調(diào)試第325頁例8.2.3,第328頁例8.2.6,第329頁例8.2.7。
調(diào)試并仿真第339頁“簡易方波發(fā)生器”例程,并將程序下載到單片機開發(fā)板,用示波器觀察波形。課后作業(yè):
1、THX與TLX(X=0,1)是普通寄存器還是計數(shù)器?其內(nèi)容可以隨時用指令更改嗎?更改后的新值是立即刷新還是等當前計數(shù)器計滿之后才能刷新?
2、采用定時器/計數(shù)器T0對外部脈沖進行計數(shù),每計數(shù)100個脈沖后,T0轉(zhuǎn)為定時工作方式。定時1ms后,又轉(zhuǎn)為計數(shù)方式,如此循環(huán)不止。假定MCS-51單片機的晶體振蕩器的頻率為6MHz,請使用方式1實現(xiàn),要求編寫出程序。
3、編寫程序,要求使用T0,采用方式2定時,在P1.0輸出周期為400μs,占空
/ 6
課后作業(yè):
比為10:1的矩形脈沖。
4、編寫一段程序,功能要求為:當P1.0引腳的電平上跳變時,對P1.1的輸入脈沖進行計數(shù);當P1.2引腳的電平負跳變時,停止計數(shù),并將計數(shù)值寫入R0、R1(高位存R1,低位存R0)。
5、(選做)第342頁定時器應用實驗——數(shù)字鐘。
第七講
授課內(nèi)容(60分鐘):
第七章
定時器原理及實驗
(30分鐘)
PCA結(jié)構(gòu)與基本原理,PCA寄存器及設置,PCA的軟件定時器模式,PCA的捕獲模式,PWM模式,看門狗模式。
第十五章
單片機仿真
(30分鐘)
介紹單片機仿真軟件Proteus的使用方法,仿真電路的繪制,源代碼文件的導入以及Keil與Proteus的聯(lián)合調(diào)試方法。課堂練習(120分鐘):
調(diào)試第362頁PCA綜合應用例程。調(diào)試第521頁實驗5.1。課后作業(yè):
第365頁“思考與練習”第3題。第526頁“思考、練習與提高”第1題。
第八講
授課內(nèi)容(60分鐘):
第六章 單片機I/O口原理及實——I/O接口實驗
介紹獨立式按鍵、行列式按鍵、串行鍵盤的接口和相應的單片機編程方法。介紹LED數(shù)碼管結(jié)構(gòu),靜態(tài)顯示與動態(tài)顯示原理以及用單片機控制數(shù)碼管動態(tài)顯示的編程方法。介紹字符式液晶模塊驅(qū)動方法。
注:本節(jié)授課可安排3組學生講,第一組講鍵盤、第二組講數(shù)碼管、第三組講液晶。
課堂練習(120分鐘):
調(diào)試第271頁按鍵驅(qū)動例程。第274頁“思考、練習與提高”第2題。課后作業(yè):
第274頁“思考、練習與提高”第1題。第282頁“思考、練習與提高”第1、2題。(選做)第287頁實驗5.6.2。
第九講
授課內(nèi)容(60分鐘):
第九章
單片機串行通信原理
/ 6
講述串行通信的基本概念。介紹MCS-51單片機同步/異步收/發(fā)器USART模塊。重點講述4種串行通信工作方式及雙機通信原理,串口調(diào)試助手軟件的使用方法。通信程序中環(huán)形緩沖區(qū)的原理及作用介紹。課堂練習(120分鐘):
第391頁例9.1.2、第401頁例程仿真并下載到開發(fā)板實現(xiàn)通信功能。課后作業(yè):
第393頁例9.1.3和第395頁例9.1.4。第432頁“思考與練習”第13題。
第十講
授課內(nèi)容(50分鐘):
第九章
單片機串行通信原理
講述串行接口技術(shù)的基本概念。介紹I2C接口的基本知識,信號定義,傳送協(xié)議以及模擬子程序的設計。介紹SPI串行外設接口的系統(tǒng)結(jié)構(gòu),控制時序,SST 單片機SPI寄存器設置。
注:本節(jié)授課可安排2組學生講,第一組講I2C、第二組講SPI。課堂練習(130分鐘):
第432頁“思考與練習”第16、17題。
第十一講
授課內(nèi)容(40分鐘):
第十章
D/A轉(zhuǎn)換器原理及實驗
講述D/A轉(zhuǎn)換的基本原理,D/A轉(zhuǎn)換器的技術(shù)參數(shù)、分類。以8位串行D/A轉(zhuǎn)換器TLC5620為例說明串行D/A轉(zhuǎn)換器的使用方法,以MAX527為例說明并行D/A轉(zhuǎn)換器的使用方法。
注:本節(jié)授課可安排學生講授。課堂練習(140分鐘):
完成第449頁的D/A轉(zhuǎn)換基礎(chǔ)實驗。課后作業(yè):
第456頁的“思考、練習與提高”嘗試調(diào)用math.h文件中sin()函數(shù)實現(xiàn)正弦波輸出。
第十二講
授課內(nèi)容(40分鐘):
第十一章
A/D轉(zhuǎn)換器原理及實驗
結(jié)合圖11.1.1和圖11.1.2分析A/D轉(zhuǎn)換器的功能和基本原理,結(jié)合圖11.1.3介紹雙積分型A/D轉(zhuǎn)換器的轉(zhuǎn)換原理,結(jié)合圖11.1.4介紹逐次比較型A/D轉(zhuǎn)換
/ 6
器的轉(zhuǎn)換原理,分析A/D轉(zhuǎn)換器的主要技術(shù)參數(shù)(分辨率和速度等)指出A/D轉(zhuǎn)換器選型時應注意的問題:
1、A/D轉(zhuǎn)換器的精度
2、采樣速率
3、A/D轉(zhuǎn)換器的接口類型
4、電壓基準源的選擇;分析TLC549芯片的時序圖,解釋TLC549的驅(qū)動例程和A/D轉(zhuǎn)換的例程。以MAX197為例說明并行A/D轉(zhuǎn)換器的使用方法。
注:本節(jié)授課可安排學生講授。
課堂作業(yè)(140分鐘):
調(diào)試運行第469頁實驗程序。課后作業(yè):
完成第477頁A/D轉(zhuǎn)換器應用實驗“簡易數(shù)字電壓表” 大作業(yè)
授課內(nèi)容:單片機課程大作業(yè)實施要求
學生在規(guī)定時間內(nèi)、在8個可選項目中自由組隊選擇一個項目并完成。實施時間:2011年12月5日至2012年1月7日。驗收時間為2012年1月8日至9日。
項目名稱:基于SST51單片機的RFID傳輸模擬系統(tǒng) 基于SST51單片機的簡易數(shù)字存儲示波器 基于SST51單片機的夢幻搖搖棒 基于SST51單片機的寢室監(jiān)控系統(tǒng) 基于SST51單片機的音樂播放器 基于SST51單片機的銀行門禁系統(tǒng) 基于SST51單片機的智能照明系統(tǒng) 基于SST51單片機網(wǎng)絡的應用
組隊:學生可根據(jù)項目的難易程度及項目建議自由組隊完成任務。組隊人數(shù)最多不超過3人,最少不得少于2人。
物資保障:實驗室所有資源皆對學生開放,如項目所需器材中心不能提供,項目組可以向?qū)嶒炇姨岢鲆?,或由實驗籌措,或經(jīng)實驗批準自行采購。自行采購經(jīng)費需項目組自行墊付,項目完成后經(jīng)實驗領(lǐng)導批準方可報銷。組隊完畢的團隊,如需SST51最小系統(tǒng)版可向?qū)嶒炋岢錾暾垺?/p>
注:項目組提供的報銷票據(jù)必須符合學校財務要求。具體要求見校財務處網(wǎng)站。
/ 6
第二篇:單片機原理及應用課程設計
智能電子鐘(LCD顯示)
1、設計內(nèi)容及要求...............................................................................................2 1.1、設計內(nèi)容..............................................................................................2 1.2、設計要求..............................................................................................2 1.3、撰寫設計報告......................................................................................2
2、總體方案設計...................................................................................................2 2.1、方案圖................................................................................................2 2.2、面板布置圖.........................................................................................2 2.3、方案討論.............................................................................................3 2.4、明晰任務.............................................................................................4
3、電路原理圖......................................................................................................4
4、程序框圖.........................................................................................................5 4.1、顯示子程序流程圖............................................................................5 4.2、實時時鐘芯片 1302 讀/寫數(shù)據(jù)流程圖............................................6
5、編程序................................................................................................................6
6、調(diào)試....................................................................................................................6 6.1、軟件調(diào)試.............................................................................................6 6.2、仿真調(diào)試..............................................................................................7
7、自我感想............................................................................................................7
8、參考書目............................................................................................................8 附錄:C 語言編程源程序.......................................................................................8 1.設計內(nèi)容及要求 1.1、設計內(nèi)容:
以AT89C51 單片機為核心,制作一個 LCD 顯示的智能電子鐘。1.2、設計要求:
(1)計時:秒、分、時、天、周、月、年。(2)閏年自動判別。
(3)五路定時輸出,可任意關(guān)斷(最大可到16路)。(4)時間、月、日交替顯示。(5)自定任意時刻自動開/關(guān)屏
(6)計時精度:誤差≤1秒/月(具有微調(diào)設置)
(7)鍵盤采用動態(tài)掃描方式查詢。所有的查詢、設置功能均由功能鍵K1、K2完成 1.3、撰寫設計報告
單片機課程設計是以課題或項目設計方式開展的一門課程,具有較強的綜合性、實踐性,是工科、工程類院?;蚵殬I(yè)類院校電類專業(yè)在校生的必修課,是將單片機原理與應用課程的理論知識轉(zhuǎn)變?yōu)閼眉夹g(shù)的重要教學環(huán)節(jié)。這一環(huán)節(jié)不但能加深對單片機原理的理解,而且還能培養(yǎng)學生的實踐動手能力,開發(fā)學生的分析、解決問題的能力。單片機課程設計環(huán)節(jié)的訓練能夠讓學生知道單片機工程項目的制作過程,使學生盡早了解單片機系統(tǒng)的開發(fā)過程。
2.總體方案設計 2.1、方案圖
2.2、面板布置圖
2.3、方案討論
方案一:采用實時時鐘芯片
實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點計時功能,計時數(shù)據(jù)的更新每秒自動進行一次,不需程序干預。計算機可通過中斷或查詢方式讀取計時數(shù)據(jù)進行顯示,因此計時功能的實現(xiàn)無需占用 CPU 的時間,程序簡單。此外,實時時鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計時功能;具有可編程方波輸出功能,可用做實時測控系統(tǒng)的采樣信號等;有的實時時鐘芯片內(nèi)部還帶有非易失性 RAM,可用來存放需長期保存但有時也需變更的數(shù)據(jù),由于功能完善,精度高,軟件程序設計相對簡單,且計時不占用 CPU 時間,因此,在工業(yè)實時測控系統(tǒng)中多采用這一類專用芯片來實現(xiàn)實時時鐘功能。
方案二:軟件控制
利用單片機內(nèi)部的定時/計數(shù)器進行中斷定時,配合軟件延時實現(xiàn)時、分、秒的計時及秒表計時。該方案節(jié)省硬件成本,且能使設計者對單片機的指令系統(tǒng)能有更深入的了解,從而掌握單片機應用技術(shù) MCS-51 匯編語言程序設計方法,因此,本系統(tǒng)設計采用此種軟件控制方法來實現(xiàn)計時。而由于 Atmel 公司 的AT89C51 是一種自帶 4KB Flash 存儲器的低電壓、高性能的 CMOS 8 位微處理器。該器件采用 Atmel 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準 的MCS-51 指令集和輸出引腳相兼容。AT89C51 將多功能 8 位 CPU 和閃存集成在單個芯片中,是一種高效的微控制器,使用也更方便,壽命更長,可以反復擦除 1000 次。形成了功能強大、使用靈活和具有較高性能價格比的微控制器。它的功能強大而且也比較容易購買,故本設計中所選的單片機為 AT89C51 單片機。2.4、明晰任務
采用 AT89C51 單片機作為系統(tǒng)的控制核心。時鐘數(shù)據(jù)通過市場上流行的時鐘芯片 DS1302 來獲取。DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片,內(nèi)含一個實時時鐘/日歷和 31 字節(jié)靜態(tài) RAM,可以通過串行接口與計算機進行通信,使得管腳數(shù)量減少。實時時鐘/日歷電路能夠計算 2100 年之前的秒、分、時、日、星期、月、年的,具有閏年自動判斷調(diào)整的能力。定時電路能夠?qū)崿F(xiàn)自定任意時刻自動開/關(guān)屏,采用 LCD LM016L 顯示年、月、周、天、時、分、秒。通過按鍵開關(guān)實現(xiàn)微調(diào),確保計時精度:誤差≤1 秒/月。DS1302 時鐘芯片的主要功能特性:
(1)能計算 2100 年之前的年、月、日、星期、時、分、秒的信息;每月的天數(shù)
和閏年的天數(shù)可自動調(diào)整;時鐘可設置為 24 或 12 小時格式。(2)31B 的 8 位暫存數(shù)據(jù)存儲 RAM。(3)串行 I/O 口方式使得引腳數(shù)量最少。
(4)DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需 3 根線。
(5)寬范圍工作電壓 2.0-5.5V。
(6)工作電流為 2.0A 時,小于 300nA。
(7)功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于 1mW。
3.電路原理圖
4.程序框圖
4.1、顯示子程序流程圖
4.2、實時時鐘芯片 1302 讀/寫數(shù)據(jù)流程圖
5.編程序 源程序見附錄部分 6.調(diào)試 6.1、軟件調(diào)試
目前設計過程中容易造成元件和儀器儀表的損壞,而借助 Keil 和 Proteus進行單片機系統(tǒng)的開發(fā),可以節(jié)省設計成本,提高設計速度。Keil 軟件包是一個功能強大的開發(fā)平臺,它包括項目管理器、CX51 編譯器、AX51 宏匯編器、BL51/LX51 連接定位器、RTX51 實時操作系統(tǒng)、Simulator 軟件模擬器及 Monitor51 硬件目標調(diào)試器。它是一種集成化程度高的文件管理編譯環(huán)境,主要功能為編譯 C 語言源程序,匯編程序或混合語言源程序,連接和定位目標文件和庫,創(chuàng)建 HEX 文件,調(diào)試目標程序等。Keil 是目前最好的 51 單片機開
發(fā)工具之一。Keil 支持軟件模擬仿真(Simulator)和用戶目標調(diào)試(Monitor51)兩種工作模式。前者不需要任何單片機硬件即可完成用戶程序仿真、調(diào)試,后者利用硬件目標板中的監(jiān)控程序可以直接調(diào)試目標硬件系統(tǒng)。Proteus 是一個完整的嵌入式系統(tǒng)軟件、硬件設計仿真平臺,它包括原理圖輸入系統(tǒng) ISIS、帶擴展的 Prospice 混合模型仿真器、動態(tài)元件庫、高級圖形分析模塊和處理器虛擬系統(tǒng)仿真模型 VSM。ISIS 是 Proteus 系統(tǒng)的中心,具有超強的控制原理設計環(huán)境。ProteusVSM 最重要的特點是能把微處理器軟件作用在處理器上,并和該處理器的任何模擬和數(shù)字元件協(xié)同仿真,仿真執(zhí)行目標碼就像在真正的單片機系統(tǒng)上運行一樣,VSM CPU 模型能完整仿真 I/O 接口、中斷、定時器、通用外部設備口及其他與 CPU 有關(guān)的外部設備,甚至能仿真多個處理器。6.2、仿真調(diào)試 Proteus 仿真
7.自我感想
經(jīng)歷過這么多天不間斷的課程設計,我們有挺多感觸的,從最基本上說我們看到了,也意識到了自己的不足,對于不斷克服的各種阻礙也讓我們體會到了課程設計的意義所在。對于只接觸課本只動筆桿的我們,面臨實際的設計尺寸,讓我們很是尷尬,都說理論聯(lián)系實際,真正到聯(lián)系的時候才發(fā)現(xiàn)挺困難的,不過正是理論知識的各種補充才讓我們能最終完成任務,然后深深地體會到理論對現(xiàn)實的指導作用。我們現(xiàn)在最缺乏的就是實際工作經(jīng)驗,而理論聯(lián)系實踐并不像我們想象的那么簡單,他需要堅實的理論基礎(chǔ)和實際工作經(jīng)驗。堅實的理論基礎(chǔ)決定了我必須堅持學習新的知識新的理論,完善了自己的知識結(jié)構(gòu),才能在以后的實際中輕松面對,才能設計出更好的更有益于人們生活與工作的機械,才能跟上時代的步伐,不被淘汰。在這個一邊忙著復習忙著考試又要準備課程設計的日子里,真真正正的體會到了時間的寶貴,有點像高中忙忙碌碌的生活,不過能按時完成課程設計對我們來說也是一個莫大的安慰。嚴謹和細心是做機械設計的必要態(tài)度,要想做好一件事,就必須一絲不茍、態(tài)度認真。俗話說:“失之毫厘,謬之千里?!痹跈C械設計上尤其應該注意。在以后的工作中,你的很小的一個疏忽將會造成一個公司很大的損失,甚至給用戶帶去生命危險,而自己也會為自己的不負責任行為付出代價。再者就是設計中要嚴謹和細心,對于機械是不能出差錯的,任何的微小誤差都可能產(chǎn)生不可預計的后果,當然對于我們來說就是設計中要走一些彎路,而且在這個嚴重缺少時間又惦記回家問題的我們來說也是一個很嚴重的后果。不過,困難雖是難免的,但我們有信心就能并且已經(jīng)戰(zhàn)勝了困難,完成了這個無比揪心的課程設計。因為時間等各種關(guān)系設計中難免有些不足還請老師助教給予批評和幫助。
8.參考文獻
《MCS-51 系列單片機原理及應用》 孫涵芳 主編 《新概念 51 單片機 C 語言教程》 郭天祥 主編 《51 單片機課程設計》 周向紅 主編 《單片機原理及其應用教程》 張元良 主編 附錄:C 語言編程源程序
#include
uint year_data,t;//-----sbit SCLK=P3^5;//DS1302 通訊線定義 sbit DIO=P3^6;sbit RST=P3^7;sbit speak=P0^0;sbit DS=P2^0;//595 通訊線定義 sbit SH_CP=P2^1;sbit ST_CP1=P2^2;sbit ST_CP2=P2^3;sbit ST_CP3=P2^4;sbit ST_CP4=P2^5;sbit ST_CP5=P2^6;sbit ST_CP6=P2^7;sbit ST_CP7=P3^0;sbit ST_CP8=P3^1;sbit OE1=P1^0;sbit OE2=P1^1;sbit OE3=P1^2;sbit OE4=P1^3;sbit OE5=P1^4;sbit OE6=P1^5;sbit OE7=P1^6;sbit OE8=P1^7;sbit K1=P3^2;//按鍵接口定義 sbit K2=P3^3;sbit K3=P3^4;sbit K4=P0^1;sbit K5=P0^2;//-----void write_595(uchar temp)//寫 74HC595 一個字節(jié) { uchar temp_595,i;temp_595=temp;for(i=0;i<8;i++)
{
SH_CP=0;
_nop_();_nop_();_nop_();if(temp_595&0x80){ DS=1;} else { DS=0;} _nop_();_nop_();_nop_();SH_CP=1;temp_595<<=1;} } //--------------void delay(uint z)//Nms 延時 { uint x,y;for(x=z;x>0;x--)for(y=112;y>0;y--);} //-------------void delaynus(uint z)//ums 延時 { uint x,y;for(x=z;x>0;x--)for(y=10;y>0;y--);} //---------------void write(uchar date)//寫入 DS1302 一個字節(jié) { uchar temp,i;RST=1;SCLK=0;temp=date;for(i=0;i<8;i++){ SCLK=0;if(temp&0x01)DIO=1;else DIO=0;SCLK=1;temp>>=1;} } //-----uchar read()//讀出 DS1302 一個字節(jié) { uchar a,temp;RST=1;for(a=8;a>0;a--){ temp>>=1;SCLK=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();SCLK=0;if(DIO){ temp=temp|0x80;} else { temp=temp|0x00;} } return(temp);} //---void write_1302(uchar add,uchar dat)//寫 DS1302 數(shù)據(jù) { RST=0;SCLK=0;RST=1;write(add);write(dat);SCLK=1;RST=0;} //----------uchar read_1302(uchar add)// 讀 DS1302 數(shù)據(jù) { uchar temp;RST=0;SCLK=0;RST=1;write(add);temp=read();SCLK=1;RST=0;return(temp);} //------------void display()//顯示子程序 { miao=read_1302(0x81);//讀秒 fen=read_1302(0x83);//讀分
shi=read_1302(0x85)&0x3f;//讀時 date=read_1302(0x87);//讀日 month=read_1302(0x89);//讀月 year=read_1302(0x8d);//讀年 day=read_1302(0x8B);//讀星期 write_595(miao);//顯示秒 ST_CP1=0;ST_CP1=1;ST_CP1=0;delaynus(10);write_595(fen);//顯示分 ST_CP2=0;ST_CP2=1;ST_CP2=0;delaynus(10);write_595(shi);//顯示時 ST_CP3=0;ST_CP3=1;ST_CP3=0;delaynus(10);write_595(date);//顯示日 ST_CP4=0;ST_CP4=1;ST_CP4=0;delaynus(10);write_595(month);//顯示月 讀 ST_CP5=0;ST_CP5=1;ST_CP5=0;delaynus(10);write_595(year);//顯示年 ST_CP6=0;ST_CP6=1;ST_CP6=0;delaynus(10);write_595(xingqi[day]);//顯示星期 ST_CP7=0;ST_CP7=1;ST_CP7=0;delaynus(10);} //----------void ds1302_init()//1302 初始化 { RST=0;SCLK=0;/* write_1302(0x80,0x00);//設置初始值 SEC write_1302(0x82,0x00);//設置初始值 MIN write_1302(0x84,0x00);//設置初始值 HR write_1302(0x86,0x00);//設置初始值 DATE write_1302(0x88,0x00);//設置初始值 MONTH write_1302(0x8A,0x00);//設置初始值 DAY */ write_1302(0x8C,0x10);//設置初始值 YEAR } //--------------void PORT_INIT()//端口初始化 { P0=0XFE;P1=0X00;P2=0X00;P3=0XFC;} void time_init()//定時器初始化 { TMOD=0x11;//設置定時 器 01 都為工作方式 1 TH0=(65536-50000)/256;//裝入初值 TL0=(65536-50000)%256;TH1=(65536-10000)/256;//裝入初值 TL1=(65536-10000)%256;PT0=1;//T0 定時器優(yōu)先級最高 EA=1;//開總中斷
ET0=1;//開定時器 0 中斷 ET1=1;//開定時器 1 中斷 TR0=1;//啟動定時器 0 TR1=1;// 啟動定時器 1 } //--------------void main(void)//主程序 { PORT_INIT();ds1302_init();time_init();year=read_1302(0x8d);//讀年數(shù)據(jù) year_data=0x2000|year;write_595(year_data>>8);//顯示 2010 年的 20 字樣 ST_CP8=0;ST_CP8=1;ST_CP8=0;set_shi=0x09;//鬧鐘初始值設定 set_fen=0x39;time_flag=0;//標志位 set=0;while(1){ switch(set){ case 0: //設置秒 { display();// 顯 示 子 程 序
if((shi==set_shi)&&(fen==set_fen)&&(time_flag==0))小時和分鐘 { speak=~speak;if((K2==0)&&(time_flag==0))//按鍵 K2 停 止鬧鐘響 { P0&=0XFE;time_flag=1;} delay(10);} } break;} if(fen==set_fen+1)// 當 不 按 下 鬧 鐘 停止按鍵,一分鐘后自動停止鬧 鐘 { P0&=0XFE;time_flag=0;} } } //--------void time0()interrupt 1 // 定時 器 0 中斷 { TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;mun++;if(mun==15){ mun=0;switch(set){ case 1: //設置秒閃爍 {OE1=1;delay(300);OE1=0;} break;case 2: //設置分閃爍 { OE2=1;delay(300);OE2=0;} break;case 3: //設置時閃爍 { OE3=1;delay(300);OE3=0;} break;case 4: //設置日閃爍 { OE4=1;delay(300);OE4=0;} break;case 5: //設置月閃爍 { OE5=1;delay(300);OE5=0;} break;case 6: //設置年閃爍 { OE6=1;OE8=1;delay(300);OE6=0;OE8=0;} break;case 7: //設置星期閃爍 { OE7=1;delay(200);OE7=0;} break;case 8: //設置鬧鐘閃爍 { OE2=1;OE3=1;delay(200);OE2=0;OE3=0;} break;} } TR0=1;} //-----------void time1()interrupt 3 // 定時器 1 中斷 { TR1=0;//先關(guān)定時器 TH1=(65536-20000)/256;TL1=(65536-20000)%256;//-if(K1==0){ delay(10);if(K1==0){ set++;if(set==9){ set=0;write_1302(0x80,miao);//設置初始值 SEC write_1302(0x82,fen);//設置初始值 MIN write_1302(0x84,shi);//設置初始值 HR write_1302(0x86,date);//設置初始值 DATE write_1302(0x88,month);// 設置初始值 MONTH write_1302(0x8A,day);//設置初始值 DAY write_1302(0x8C,year_data);//設置初始值 YEAR } t=50000;while((!K1)&&t){ t--;} } } //-------if(K2==0){ delay(10);if(K2==0){ switch(set){ case 1: { miao++;if((miao&0x0f)>0x09){ miao+=0x10;miao&=0xf0;} if(miao==0x60){ miao=0x00;} write_595(miao);ST_CP1=0;ST_CP1=1;ST_CP1=0;} break;case 2: { fen++;if((fen&0x0f)>0x09){ fen+=0x10;fen&=0xf0;} if(fen==0x60){ fen=0x00;} ST_CP2=0;ST_CP2=1;ST_CP2=0;} break;case 3: { if((read_1302(0x85)&0x80)==0x00){ shi++;if((shi&0x0f)>0x09){ shi+=0x10;shi&=0xf0;} if(shi==0x24)//24 小時制 { shi=0x00;} } else { shi=(shi|0x80)+1;if((shi&0x0f)>0x09){ shi+=0x10;shi&=0xf0;} if(shi==0x12)//12 小時制 { shi=0X80;} } write_595(shi);//顯示時 ST_CP3=0;ST_CP3=1;ST_CP3=0;} break;case 4: { date++;if((date&0x0f)>0x09){ date+=0x10;date&=0xf0;} if((date==0x32)&&((month==0x01)||(month==0x03)||(month==0x05)||(month ==0x07)||(month==0x08)||(month==0x10)||(month==0x12))){ date=0x01;} else if((date==0x31)&&((month==0x04)||(month==0x06)||(month==0x09)||(month ==0x11))){ date=0x01;} else if((date==0x29)&&(month==0x02)&&((year_data|read_1302(0x8d))%100!=0)& &((year_data|read_1302(0x8d))%400!=0)){ date=0x01;} else if((date==0x30)&&(month==0x02)&&((year_data|read_1302(0x8d))%100==0)& &((year_data|read_1302(0x8d))%400==0)){ date=0x01;} write_595(date);ST_CP4=0;ST_CP4=1;ST_CP4=0;} break;case 5: { month++;if((month&0x0f)>0x09){ month+=0x10;month&=0xf0;} if(month==0x13){ month=0x01;} write_595(month);ST_CP5=0;ST_CP5=1;ST_CP5=0;} break;case 6: { year_data++;if((year_data&0x000f)==0x0a){ year_data+=0x0010;year_data&=0xfff0;} if((year_data&0x00ff)==0xa0){ year_data+=0x0100;//向前進 1 year_data&=0xff00;//后面尾數(shù)歸 0 } write_595(year_data);ST_CP6=0;ST_CP6=1;ST_CP6=0;write_595(year_data>>8);ST_CP8=0;ST_CP8=1;ST_CP8=0;} break;case 7: { day++;if((day&0x0f)==0x08){ day=0x01;} write_595(xingqi[day]);ST_CP7=0;ST_CP7=1;ST_CP7=0;} break;} t=50000;while((!K2)&&t){ t--;} } } //-------------------------if(K3==0){ delay(10);if(K3==0){ switch(set){ case 1: { miao--;if((miao&0x0f)==0x0F){ miao&=0xf9;//減到 0 后,再減一次就歸 0, } if(miao==0xF9)//當全部減到 00 時,再 減一次就為 59 { miao=0x59;} write_595(miao);ST_CP1=0;ST_CP1=1;ST_CP1=0;} break;case 2: { fen--;if((fen&0x0f)==0x0F){ fen&=0xf9;} if(fen==0xF9){ fen=0x59;} write_595(fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;} break;case 3: { if((read_1302(0x85)&0x80)==0x00){ shi--;if((shi&0x0f)==0x0F){ shi&=0xf9;} if(shi==0xF9)//24 小時制 { shi=0x23;} } else { shi=(shi|0x80)-1;if((shi&0x0f)==0x0F){ shi&=0xf9;} ST_CP4=0;} break;case 5: { month--;if((month&0x0f)==0x0F){ month&=0xf9;} if(month==0x00){ month=0x12;} write_595(month);ST_CP5=0;ST_CP5=1;ST_CP5=0;} break;case 6: { year_data--;if((year_data&0x000f)==0x0F){ year_data&=0xfff9;} if((year_data&0x00f0)==0xF0){ year_data&=0xf999;} write_595(year_data);ST_CP6=0;ST_CP6=1;ST_CP6=0;write_595(year_data>>8);ST_CP8=0;ST_CP8=1;ST_CP8=0;} break;case 7: { day--;if((day&0x0f)==0x00){ day=0x07;} write_595(xingqi[day]);ST_CP7=0;ST_CP7=1;ST_CP7=0;} break;} t=50000;while((!K3)&&t)//松手檢測 { t--;} } } //---switch(set){ case 8: { if(K4==0){ delay(10);if(K4==0){ if((read_1302(0x85)&0x80)==0x00){ set_shi++;if((set_shi&0x0f)>0x09){ set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x24)//24 小時制 { set_shi=0x00;} } else { set_shi=(set_shi|0x80)+1;if((set_shi&0x0f)>0x09){ set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x12)//12 小時制 { set_shi=0X80;} write_595(set_shi);// 顯示鬧 鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;t=50000;while((!K4)&&t){ t--;} } } //----if(K5==0){ delay(10);if(K5==0){ set_fen++;if((set_fen&0x0f)>0x09){ set_fen+=0x10;set_fen&=0xf0;}
if(set_fen==0x60)
{
set_fen=0x00;
} write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;t=50000;while((!K5)&&t){ t--;} } set_shi+=0x10;set_shi&=0xf0;} if(set_shi==0x12)//12 小時制 { set_shi=0X80;} write_595(set_shi);// 顯示鬧 鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;t=50000;while((!K4)&&t){ t--;} } } //----if(K5==0){ delay(10);if(K5==0){ set_fen++;if((set_fen&0x0f)>0x09){ set_fen+=0x10;set_fen&=0xf0;}
if(set_fen==0x60)
{
set_fen=0x00;
} write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;t=50000;while((!K5)&&t){ t--;} } } } } //------------------------if(((K4==0)||(K5==0))&&(set==0)){ delay(10);if(((K4==0)||(K5==0))&&(set==0)){ write_595(set_shi);//顯示鬧鐘的時 ST_CP3=0;ST_CP3=1;ST_CP3=0;write_595(set_fen);ST_CP2=0;ST_CP2=1;ST_CP2=0;P1=0XF9;while((!K4)||(!K5));P1=0X00;} } //----------TR1=1;//退出時開定時器 } } //----------
第三篇:《單片機原理及應用》課程
《單片機原理及應用》課程
自評報告
陜西理工學院電氣工程系《單片機原理及應用》課程組 二○一○年三月
目 錄
第一部分 課程簡介
第二部分
課程內(nèi)容與體系的改革 第三部分 實驗教材
第四部分 自評結(jié)果和評分依據(jù) 第五部分 存在的主要問題及整改措施 附件:自評評分依據(jù) 《單片機原理及應用》課程自評報告
第一部分 課程簡介
單片機技術(shù)廣泛地應用于工業(yè)控制、智能儀器儀表、機電一體化產(chǎn)品、家用電器等各個工業(yè)領(lǐng)域。因此,單片機原理及應用是工科院校各專業(yè)學生的一門重要的應用技術(shù)課程,對電類學生尤為重要,通過該課程可以了解工業(yè)高新技術(shù),培養(yǎng)綜合的工程設計能力。學生在課程設計、畢業(yè)設計、科研項目中會廣泛應用到單片機知識,而且,進入工作后,更會廣泛接觸到單片機的工程項目。近幾年,一些用人單位直接把單片機應用技術(shù)測試作為人才選用的條件。顯然,提高該門課程的教學質(zhì)量,對培養(yǎng)學生的綜合應用能力,提升學生在人才需求市場中的競爭能力,具有重要意義。
《單片機原理及應用》課程是自動化、電氣工程及其自動化、計算機科學與技術(shù)等專業(yè)的一門專業(yè)技術(shù)基礎(chǔ)課。單片機應用技術(shù)包含著廣泛的內(nèi)容(基本原理、接口技術(shù)、開發(fā)方法、開發(fā)工具、控制技術(shù)等),而且構(gòu)成完整的知識體系。也就是說,缺少某一個方面或某一個環(huán)節(jié)的知識,將會影響實踐應用能力。再者,單片機產(chǎn)品及其應用技術(shù)發(fā)展日新月異。在一門課程的有限教學時間內(nèi),如何讓學生比較系統(tǒng)全面的掌握單片機應用知識,同時能反映比較新的應用技術(shù),培養(yǎng)學生的工程設計能力,必須加強課程建設力度,在課程內(nèi)容與課程體系上進行重大改革。
《單片機原理及應用》課程在自動化、電氣工程及其自動化、計算機科學與技術(shù)3個本、專科專業(yè)中開設學時為40-60學時。多年來,該課程組師資隊伍建設穩(wěn)步提高,教學和實驗條件逐步完善,現(xiàn)已形成了相對穩(wěn)定的較高教學水平的師資隊伍和完全滿足實驗教學條件的實驗平臺。
目前,《單片機原理及應用》課程組共有6名課程主講教師和多位實驗技術(shù)人員,其中教授1人、副教授2人、講師3人,研究生5人,實驗師多人,承擔校內(nèi)相關(guān)3個專業(yè)本、專科學生的單片機原理及應用課程教學與實驗任務。
《單片機原理及應用》課程組在多年的具體教學與實踐過程中,在課程建設和教學改革方面取得了較為顯著的成效。從2000年開始,課程改革小組注重教育思想和教學觀念的轉(zhuǎn)變,開展了課程教學內(nèi)容、課程體系、教學方法及教學手段的改革研究與實踐,對課程的教學內(nèi)容與體系進行了優(yōu)化。目前已初步建立了以培養(yǎng)學生工程素質(zhì)和綜合應用能力為教學目標的新的課程體系,在教材建設、實踐性教學環(huán)節(jié)建設方面取得了可喜的成果。李建忠教授把課程組研究的理論成果變成了現(xiàn)實成果,編著的《單片機原理及應用》(第二版被評為國家十一五規(guī)劃教材)一書被全國30多個省市的100多所高校采用,在國內(nèi)產(chǎn)生較大影響。組織的實踐教學環(huán)節(jié)在本院多屆學生中也取得了顯著的成效。
《單片機原理及應用》教學儀器設備豐富,實驗開出率100%,同時開設一定的設計性、綜合性實驗。實驗室規(guī)章制度健全,管理人員到位,教學服務及時,為實驗課程教學提供了有力保障。
隨著“單片機原理及應用”課程內(nèi)容和課程體系改革的進行,課程教學質(zhì)量逐步明顯提高。伴隨著教學質(zhì)量的提高,浮現(xiàn)出了許多科研項目。例如,智能型家用有毒氣體探測語音報警呼救裝置、機車防帶電過分相裝置、消失模澆注充型速度的微機化測試的研制,科研項目的進行又推動了教學質(zhì)量的進一步提高。教師在教學中,結(jié)合自己的科研生動地講解原理、方法、技術(shù)。近幾年課程組成員結(jié)合自己的科研項目,在單片機應用技術(shù)方面發(fā)表論文多篇。
第二部分 課程內(nèi)容與體系的改革
教材是教育思想、教育理念體現(xiàn)的載體,是一門課程教學內(nèi)容與體系、教學方法及手段的集中表現(xiàn)。一本好的教材不能局限在知識的傳遞上,還應表現(xiàn)在科學思維方法、獲取知識的方法、綜合能力和創(chuàng)新設計能力培養(yǎng)方法的傳遞上,便于運用新的教學方法和手段組織實施教學。這是課程組改革研究的一個理論成果。
在理論研究的指導下,確定以教材建設為龍頭進行課程內(nèi)容與體系的優(yōu)化。由于單片機應用技術(shù)知識包含的內(nèi)容廣泛,單片機產(chǎn)品及其應用技術(shù)發(fā)展速度快,如何在有限的計劃課時內(nèi)讓學生比較完整的掌握單片機應用技術(shù)知識體系,同時了解一些比較新應用技術(shù),吸取了國內(nèi)外先進的教學思想和教學經(jīng)驗,廣泛收集和查閱國內(nèi)外優(yōu)秀教材和有關(guān)教學資料,又結(jié)合我們多年積累的教學經(jīng)驗和教訓,比較全面地考慮了各種因素,對課程內(nèi)容與課程體系進行整體優(yōu)化,編著了《單片機原理及應用》(第二版被評為國家十一五規(guī)劃教材)、《單片機原理及應用實踐教程》,形成了一套新的課程教學體系。教材內(nèi)容體系進行了優(yōu)化組合。既體現(xiàn)了系統(tǒng)全面,包含了基本原理、接口技術(shù)、開發(fā)方法、開發(fā)工具、控制技術(shù)等,又進行了濃縮精練,論述嚴謹透徹。教材內(nèi)容的組織上采用“以點見面,觸類旁通”的精練濃縮方法。例如,在每一章節(jié)前都概述出相關(guān)的一般性內(nèi)容和方法,然后再以具體的內(nèi)容或典型的實例進行說明。始終貫穿應用觀點。例如,在單片機原理的講解中,著重強調(diào)站在應用角度,掌握單片機的功能特性和配置結(jié)構(gòu)。即用戶站在單片機芯片外部看它所提供給用戶的使用功能和資源,達到正確、合理的使用單片機所提供的硬、軟件資源。這不僅給學生強調(diào)了達到應用的學習目標,而且給學生樹立了一個學習掌握應用知識的正確學習方法界面。這一點經(jīng)教學實踐檢驗,取得了良好的教學效果。又例如,在應用技術(shù)的講解中,大多數(shù)選自生產(chǎn)和科研中的應用實例,使學生學后就能用。注重科學思維方法、獲取知識的方法、綜合能力和創(chuàng)新設計能力的培養(yǎng)方法的傳遞。掌握一門學科知識的學習方法,其實質(zhì)是找出并抓住學科知識的內(nèi)在聯(lián)系,形成一個完整體系。該書突出了這方面的特色。例如,在指令系統(tǒng)的講述中,大多數(shù)教材采取按功能類逐條指令羅列講解,使初學者很難理解記憶。其實,指令系統(tǒng)中有一些操作指令的子集合是具有特征規(guī)律的,不同操作指令的子集合之間也具有一些可比性特征規(guī)律,在該書的講述中用歸納、類推、類比方法進行縱向歸類,橫向類推、比較。這不僅能使學生掌握知識,而且學習了科學思維方法和學習方法。在講解基礎(chǔ)知識的基礎(chǔ)上,反映新的應用技術(shù)成果。例如,緊密結(jié)合基礎(chǔ)知識講解了單片機應用程序開發(fā)設計方法。
第三部分 實驗教材
在廣泛調(diào)研現(xiàn)有實驗教材經(jīng)驗與問題的基礎(chǔ)上,引入新的教育理念,針對現(xiàn)代工程人才的培養(yǎng)模式、人才素質(zhì)及能力的要求,課程組認為實驗教材不能局限在對基礎(chǔ)知識的驗證上、不能局限在基本實驗的操作指導上、不能局限在某一門課程知識的動手實踐能力的培養(yǎng)上、不能局限在理論教材的輔助功能作用上,還應給學生提供廣闊的、自由靈活的動手實踐空間,要培養(yǎng)學生在基本理論知識的基礎(chǔ)上能夠吸收、使用新技術(shù)方法,培養(yǎng)學生一般的工程實踐能力和創(chuàng)新設計能力,使實驗教材成為相對獨立的綜合實踐能力培養(yǎng)的指導書。在這樣的思想指導下,組織編寫了《單片機原理及應用實踐教程》的,于2001年5月在本院內(nèi)部印刷使用。在多年的使用中取得了良好的效果。
《單片機原理及應用實踐教程》一書主要具有以下特色:(1)知識的系統(tǒng)完整性與實踐過程的系統(tǒng)完整性并重 實驗內(nèi)容的編寫上緊密結(jié)合理論教學,按照單片機原理及應用課程知識的內(nèi)在聯(lián)系,保持了知識的系統(tǒng)完整性。從宏觀結(jié)構(gòu)上,實驗內(nèi)容分為單片機系統(tǒng)功能、單片機系統(tǒng)擴展、單片機系統(tǒng)配置和綜合應用四大實驗組。在每個實驗組中又按照基礎(chǔ)→綜合→工程應用的方式安排了多個實驗項目,每個實驗項目中又按照基本原理、知識提要、基本技術(shù)、方法論證、實驗結(jié)果分析的方式進行組織。這樣,使該書成為學習、掌握單片機原理及應用知識的很有價值的參考書。從實踐應用過程看,該書宏觀上反映了單片機應用系統(tǒng)的開發(fā)環(huán)境、開發(fā)方法、開發(fā)過程。在每一個實驗項目中,又反映出了一個單片機應用系統(tǒng)立題概要分析、功能結(jié)構(gòu)論證分析、器件選擇、硬軟件設計、系統(tǒng)調(diào)試、性能分析與測試、文檔收集與整理的全過程。使學生能夠?qū)W習、掌握到一個單片機應用系統(tǒng)開發(fā)設計過程中各個環(huán)節(jié)的技術(shù)方法。
(2)知識掌握和科學思維能力培養(yǎng)并重
在每個實驗項目中都提示出所依據(jù)的基本原理知識,所采用的方法和技術(shù),通過實驗來加深對基本知識的理解,達到熟練掌握。在每個實驗項目后,提出一些很有價值的思考問題,主要圍繞實驗現(xiàn)象觀察與分析,培養(yǎng)學生科學細致地觀察與分析問題的方法和能力。每個實驗既給出了參考方案,又要求學生在參考方案的基礎(chǔ)上自行設計、調(diào)試,充分發(fā)揮學生的主觀能動性和創(chuàng)造力、有意識地培養(yǎng)學生對工程問題的分析與設計方法。每個實驗都要求學生按照嚴格的格式寫出實驗報告,在實驗報告中深入細致地分析、論證有關(guān)實驗現(xiàn)象與結(jié)果,通過實驗報告的書寫,培養(yǎng)學生嚴謹求實的科學方法和態(tài)度。
(3)既面向驗證性實驗又面向開放性、設計性實驗
根據(jù)單片機原理與應用的知識結(jié)構(gòu),實驗內(nèi)容分為單片機系統(tǒng)功能、單片機系統(tǒng)擴展、單片機系統(tǒng)配置和綜合應用四個實驗組。每個實驗組又按照基本原理、技術(shù)、方法的應用,綜合應用、工程設計的思路方式安排了多個實驗項目,為學生提供了廣泛的實驗內(nèi)容,即可以供課程實驗使用,也可以供開放實驗、設計實驗使用。
(4)實驗教學的目標確定在以下幾個方面:
驗證基本理論、方法和技術(shù)。通過驗證性實驗,使學生加深對基本理論、方法和技術(shù)理解,能夠熟練應用,并使學生進一步認識到:基本理論、方法和技術(shù)來源于實踐,又對實踐有強大的推動作用,在實踐中得到發(fā)展,得到創(chuàng)新。
基本實踐能力的培養(yǎng)?;緦嵺`能力包含:掌握小型單片機應用系統(tǒng)開發(fā)研制所采用的基本環(huán)境、方法、手段及所使用的儀器設備。
綜合工程實踐能力的培養(yǎng)。綜合工程實踐能力包含:掌握復雜單片機工程應用系統(tǒng)開發(fā)研制所采用的先進的環(huán)境、方法、手段及所使用的儀器設備,并能進行工程決策分析。
創(chuàng)新設計能力的培養(yǎng)。創(chuàng)新設計能力包含:在一些關(guān)鍵的技術(shù)環(huán)節(jié)上能夠激發(fā)出超常的思想方法或采用前沿性的技術(shù)手段分析解決問題。
(5)實驗教學的實施方式
根據(jù)現(xiàn)代工程人才的培養(yǎng)模式、人才素質(zhì)及能力的要求,我們設計出了形式多樣的實驗教學方式。
指導型實驗。這類實驗納入單片機原理及應用課程的教學計劃和教學大綱,在老師的指導下,進行規(guī)定要求實驗,實驗后要寫出實驗報告。實驗目標是基本實踐能力的培養(yǎng)。
開放型實驗。這類實驗是學生根據(jù)自己的要求自發(fā)地進行實驗,實驗室必須隨時滿足學生的實驗要求。在這種實驗中,學生可根據(jù)自己的情況實現(xiàn)多種目標。
設計型實驗。這類實驗學生帶著自己的設計問題,進入實驗室進行調(diào)試或測試,一般結(jié)合課程設計、畢業(yè)設計、大學生科技活動項目進行。實驗要有明確的目標,主要培養(yǎng)學生綜合工程實踐能力和創(chuàng)新設計能力。
第四部分 自評結(jié)果和評分依據(jù)
為了進一步提高課程教學質(zhì)量,努力做好課程建設與評估,電氣工程系專門成立了院系、教研室(課程組)兩級評估領(lǐng)導小組,負責對申報課程的指導、監(jiān)督和審查。課程組全體任課教師認真學習、領(lǐng)會相關(guān)課程建設與評估精神,認真對照精品課程建設評估指標體系的各項要求,總結(jié)多年來課程建設的成果,結(jié)合課程建設過程中存在的實際問題,進行了認真細致地資料整理、自查自評。通過本次自查自評活動,真正達到了“以評促改,以評促建”的目的。
自評結(jié)果:Q=102分(≥100),符合并達到了校級精品課程的條件。詳見附件:課程自評表。
第五部分 存在的主要問題及整改措施
1.網(wǎng)絡教學和資源共享方面還需進一步的豐富和完善。實現(xiàn)與本課程相關(guān)的信息查詢、輔導答疑、作業(yè)練習等多種功能,方便學生網(wǎng)上學習。
2.實驗教學設備更新不夠,試驗教學手段還不夠豐富、不夠先進,理論教學內(nèi)容和體系還需要進一步整合、優(yōu)化;
3.進一步加大教學改革力度,轉(zhuǎn)變教育教學理念,探索高教理論,不斷改進和提高教師的理論與實踐教學方法和手段。
同時還需要認清形勢,剖析自我,虛心向兄弟院校學習先進的課程建設經(jīng)驗,彌補自己的差距和不足,加快課程建設步伐,使《單片機原理及應用》課程教學全面上臺階、上水平。
附件:自評評分依據(jù) 師資結(jié)構(gòu):19分/20 1.1師資結(jié)構(gòu):A級,4分/4 課程組職稱結(jié)構(gòu)合理,有教授、副教授、講師、高級實驗師、實驗師共8人,主要由教授、副教授、講師上課。
1.2教學水平:A級,5 分/6 教學水平高,高、中級職稱教師均開課2門以上;教學工作量飽滿,教案齊全;有教改及科研項目。
1.3學術(shù)水平:A級,6 分/6近3年發(fā)表論文篇,人均6篇;主編、參編教材9部;完成省廳級科研項目3項,校級科研基金項目3項,院教改項目7項。
1.4教風建設:A級,4分/4 教風良好;教研室制度健全,堅持教學研究活動,每年教研活動大于18次,有記錄;能堅持相互聽課、評教;能收集學生對教學的反饋信息,并改進教學;教學組無任何教學事故。教學條件:24分/25 2.1教學大綱:A級,6分/6 教學大綱符合專業(yè)培養(yǎng)目標和教學計劃的基本要求,并能結(jié)合教學計劃適時修訂、完善;大綱能反映課程體系結(jié)構(gòu),項目完整,層次清晰,重點、難點突出,要求明確;教學過程中能夠嚴格執(zhí)行大綱。
2.2教材及教學參考書:A級,7 分/7 選用學校自編國家級規(guī)劃教材及相應教學參考書,滿足不同專業(yè)的培養(yǎng)計劃要求,使用效果好。
2.3課程教學管理及教學文件:A級,5分/6 教學參考資料豐富、齊全,能反映本課程發(fā)展現(xiàn)狀;課程有完整的教學工作總結(jié),教師有教學日歷和教案。
2.4教學設備和手段:A級,6分/6 使用多媒體、板書講解和現(xiàn)場教學等手段;與實驗室共同開發(fā)研制有相應的實驗教學設備,且符合本校學生情況,使用效果好,完全能滿足正常的教學需要。3 考核:15分/17 3.1考試說明:A級,3分/3 在教學大綱的指導下,能按要求進行命題考試工作,命題質(zhì)量高,考分分布合理。3.2題庫(卷庫)建設:B級,4分/5 有與教材配套使用的高質(zhì)量的試題庫,試題庫完全符合教學要求。3.3命題與評分:A級,4分/4 考試命題形式多樣,有外校試題、教研室組織命題、試題庫組題等,全部為考教分離;有評分標準,流水閱卷,有效控制了評分誤差。3.4試卷分析:B級,3分/5 試題內(nèi)容體現(xiàn)教學大綱的基本要求,難度適中,有一定的可信度和區(qū)分度;成績分布基本合理。4 教學改革:分/13 4.1教改方案:A級,4分/5 在切實可行的教改計劃,且能運用在教學過程中,有一定的總結(jié)。4.2教改效果:A級,7分/8 有專業(yè)教改項目的實施,完成教改項目7項,教改效果比較顯著,獲校教學成果獎二等獎3項。5 教學效果:21分/25 5.1講課質(zhì)量:A級,9分/10 根據(jù)師生對講課質(zhì)量的綜合評價,課程組總體講課水平較高。5.2課外指導:A級,5分/6 對學生課外學習有明確具體的要求,并認真落實、檢查;堅持課外輔導、答疑,效果較好。
5.3教學獲獎情況:A級,4分/4近幾年獲院級以上教學成果獎、講課大賽獎、教案評比獎的人數(shù)占課題組人數(shù)的70%;有畢業(yè)生調(diào)查信息表,畢業(yè)生反映本課程教學效果優(yōu)良。
5.4學習質(zhì)量:B級,3分/5 在嚴格組織考試、評分的情況下,學生考試成績真實,客觀反映了學生學習的現(xiàn)狀;學生基本知識掌握較扎實,但綜合解題能力一般。6 特色指標:A級,16分/20(1)兼顧教學的典型性和技術(shù)先進性
教學內(nèi)容的典型性有利于學生理解相關(guān)基礎(chǔ)知識,掌握基本原理和方法,觸類旁通。隨著單片機應用技術(shù)日異月新的發(fā)展,在未來的實際工作中又會廣泛接觸到新技術(shù)、新器件。在理論教學和實踐充分考慮了典型性問題,同時在每個實驗的實現(xiàn)方案中又提示學生在典型性問題的基礎(chǔ)上采用一些新器件、新方法自行設計,讓學生接觸一些先進性技術(shù)、方法。
(2)基礎(chǔ)訓練與實際應用相結(jié)合
在注重單片機原理、實用接口技術(shù)的基礎(chǔ)上、還突出教學內(nèi)容的實踐性和實用性。大多數(shù)實驗內(nèi)容都取材于生產(chǎn)和科研實際。綜合應用實驗集中鍛煉學生了解實際系統(tǒng)要求,設計應用系統(tǒng)的能力。有助于開拓視野,強化工程觀念,培養(yǎng)創(chuàng)新能力和協(xié)作精神,提高綜合素質(zhì)。
(3)注重綜合工程實踐能力和創(chuàng)新設計能力的培養(yǎng)
大多數(shù)實驗內(nèi)容都取材于生產(chǎn)和科研實際,使學生所學就能所用。
每一個實驗項目的實驗過程都突出一個單片機工程應用系統(tǒng)開發(fā)設計的各個關(guān)鍵技術(shù)環(huán)節(jié),尤其突出調(diào)試方法和手段。每一個實驗項目中都設置了若干問題,讓學生充分發(fā)揮主觀能動力和創(chuàng)新思維能力進行調(diào)試。每一個實驗項目除給出參考實驗方案外,還提示采用不同的方案、不同的器件、不同的方法自行設計、調(diào)試,給學生留下創(chuàng)新發(fā)揮的空間。
電氣工程系
《單片機原理及應用》課程組
2010.3
第四篇:《單片機原理及應用》課程教案
《單片機原理及應用》課程教案
第三次課 2學時 主要內(nèi)容: 第二部分 單片機的原理與結(jié)構(gòu)(3)2.5 并行I/O端口 2.6 時鐘電路與時序 2.7 復位操作和復位電路 重點: P0~P3端口功能及使用中應注意的問題 機器周期、時鐘周期、指令周期的定義,及時鐘周期、頻率的計算 復位后,特殊功能寄存器的初值 難點: P0端口的功能 2.5 并行I/O端口 4個雙向的8位并行I/O端口(Port),記作P0~P3 屬于特殊功能寄存器,還可位尋址。2.5.1 P0端口(講解時強調(diào)端口完成的功能)P0口某一位的電路包括:(1)一個數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存(2)兩個三態(tài)的數(shù)據(jù)輸入緩沖器。(3)一個多路轉(zhuǎn)接開關(guān)MUX,設置多路轉(zhuǎn)接開關(guān)的目的:P0口既作通用I/O口,又可作為系統(tǒng)的地址/數(shù)據(jù)線口。(4)數(shù)據(jù)輸出的驅(qū)動和控制電路,由兩只場效應管(FET)組成,上面的場效應管構(gòu)成上拉電路。P0口傳送地址或數(shù)據(jù)時,CPU發(fā)出控制信號為高電平,打開上面的與門,使多路轉(zhuǎn)接開關(guān)MUX打向上邊,使內(nèi)部地址/數(shù)據(jù)線與下面的場效應管處于反相接
通狀態(tài)。這時的輸出驅(qū)動電路由于上下兩個FET處于反相,形成推拉式電路結(jié)構(gòu),大大提高負載能力。P0口作通用的I/O口使用。這時,CPU發(fā)來的“控制”信號為低電平,上拉場效應管截止,多路轉(zhuǎn)接開關(guān)MUX打向下邊,與D鎖存器的Q*端接通。(1)作輸出口使用 來自CPU的“寫入”脈沖加在D鎖存器的CP端,內(nèi)部總線上的數(shù)據(jù)寫入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開路(因為這時上拉場效應管截止),必須外接上拉電阻才能有高電平輸出。(2)作輸入口使用 應區(qū)分“讀引腳”和“讀端口”(或稱“讀鎖存器”)。“讀引腳”信號把下方緩沖器打開,引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;“讀鎖存器”信號打開上面的緩沖器把鎖存器Q端的狀態(tài)讀入內(nèi)部總線。2.5.2 P1端口 字節(jié)地址90H,位地址90H~97H。P1口只作為通用的I/O口使用,在電路結(jié)構(gòu)上與P0口有兩點區(qū)別:(1)因為P1口只傳送數(shù)據(jù),不再需要多路轉(zhuǎn)接開關(guān)MUX。(2)由于P1口用來傳送數(shù)據(jù),因此輸出電路中有上拉電阻,這樣電路的輸出不是三態(tài)的,所以P1口是準雙向口。因此:(1)P1口作為輸出口使用時,外電路無需再接上拉電阻。(2)P1口作為輸入口使用時,應先向其鎖存器先寫入 “1”,使輸出驅(qū)動電路的FET截止。2.5.3 P2端口 字節(jié)地址為A0H,位地址A0H~A7H。在實際應用中,因為P2口用于為系統(tǒng)提供高位地址,有一個多路轉(zhuǎn)接開關(guān)MUX。但MUX的一個輸入端不再是“地址/數(shù)據(jù)”,而是單一的“地址”,因為P2口只作為地址線使用。當P2口用作為高位地址線使用時,多路轉(zhuǎn)接開關(guān)應接向“地址”端。正因為只作為地址線使用,口的輸出用不著是三態(tài)的,所以,P2口也是一個準雙向口。
P2口也可以作為通用I/O口使用,這時,多路轉(zhuǎn)接開關(guān)接向鎖存器Q端。2.5.4 P3端口 P3口的字節(jié)地址為B0H,位地址為B0H~B7H。P3口的第二功能定義,應熟記。P3口的第二功能定義: 口引腳 第二功能 P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INT0*(外部中斷0)P3.3 INT1*(外部中斷1)P3.4 T0(定時器0外部計數(shù)輸入)P3.5 T1(定時器1外部計數(shù)輸入)P3.6 WR*(外部數(shù)據(jù)存儲器寫選通)P3.7 RD*(外部數(shù)據(jù)存儲器讀選通)2.5.5 P0~P3端口功能總結(jié) 使用中應注意的問題:(1)P0~P3口都是并行I/O口,都可用于數(shù)據(jù)的輸入和輸出,但P0口和P2口除了可進行數(shù)據(jù)的輸入/輸出外,通常用來構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線,所以在電路中有一個多路轉(zhuǎn)接開關(guān)MUX,以便進行兩種用途的轉(zhuǎn)換。而P1口和P3口沒有構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線的功能,因此,在電路中沒有多路轉(zhuǎn)接開關(guān)MUX。由于P0口可作為地址/數(shù)據(jù)復用線使用,需傳送系統(tǒng)的低8位地址和8位數(shù)據(jù),因此MUX的一個輸入端為“地址/數(shù)據(jù)”信號。而P2口僅作為高位地址線使用,不涉及數(shù)據(jù),所以MUX的一個輸入信號為“地址”。(2)在4個口中只有P0口是一個真正的雙向口,P1~P3口都是準雙向口。原因:P0口作為系統(tǒng)的數(shù)據(jù)總線使用時,為保證數(shù)據(jù)的正確傳送,需要解決芯片內(nèi)外的隔離問題,即只有在數(shù)據(jù)傳送時芯片內(nèi)外才接通;不進行數(shù)據(jù)傳送時,芯片內(nèi)外應處于隔離狀態(tài)。為此,要求P0口的輸出緩沖器是一個三態(tài)門。在P0口中輸出三態(tài)門是由兩只場效應管(FET)組成,所以是一個真正的雙向口。而其它的三個口P1~P3中,上拉電阻代替P0口中的場效應管,輸出緩沖器不是三態(tài)的,因此不是真正的雙向口,只能稱其為準雙向口
(3)P3口的口線具有第二功能,為系統(tǒng)提供一些控制信號。因此在P3口電路增加了第二功能控制邏輯。這是P3口與其它各口的不同之處。2.6 時鐘電路與時序 時鐘電路用于產(chǎn)生MCS-51單片機工作所必需的時鐘控制信號。2.6.1 時鐘電路 時鐘頻率直接影響單片機的速度,電路的質(zhì)量直接影響系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:內(nèi)部時鐘方式和外部時鐘方式。2.6.2 機器周期、指令周期與指令時序 單片機執(zhí)行的指令的各種時序均與時鐘周期有關(guān)
一、時鐘周期 單片機的基本時間單位。若時鐘的晶體的振蕩頻率為fosc,則時鐘周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。
二、機器周期 CPU完成一個基本操作所需要的時間稱為機器周期。執(zhí)行一條指令分為幾個機器周期。每個機器周期完成一個基本操作。MCS-51單片機每12個時鐘周期為一個機器周期,一個機器周期又分為6個狀態(tài):S1~S6。每個狀態(tài)又分為兩拍:P1和P2。因此,一個機器周期中的12個時鐘周期表示為:S1P1、S1P2、S2P1、S2P2、?、S6P2。
三、指令周期 執(zhí)行任何一條指令時,都可分為取指令階段和指令執(zhí)行階段。取指令階段,PC中地址送到程序存儲器,并從中取出需要執(zhí)行指令的操作碼和操作數(shù)。指令執(zhí)行階段,對指令操作碼進行譯碼,以產(chǎn)生一系列控制信號完成指令的執(zhí)行。ALE信號是為地址鎖存而定義的,以時鐘脈沖1/6的頻率出現(xiàn),在一個機器周期中,ALE信號兩次有效(但要注意,在執(zhí)行訪問外部數(shù)據(jù)存儲器的指令MOVX時,將會丟失一個ALE脈沖)2.7 復位操作和復位電路 2.7.1 復位操作 單片機的初始化操作,擺脫死鎖狀態(tài)。
引腳RST加上大于2個機器周期(即24個時鐘振蕩周期)的高電平就可使MCS-51復位。復位時,PC初始化為0000H,使MCS-51單片機從0000H單元開始執(zhí)行程序。除PC之外,復位操作還對其它一些寄存器有影響,見表2-6(P34)。SP=07H,P0-P3的引腳均為高電平。在復位有效期間,ALE腳和PSEN*腳均為高電平,內(nèi)部RAM的狀態(tài)不受復位的影響。2.7.2 復位電路 片內(nèi)復位結(jié)構(gòu):
復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路:
按鍵手動復位,有電平方式和脈沖方式兩種。電平方式:
脈沖方式:
兩種實用的兼有上電復位與按鈕復位的電路。
圖2-19中(b)的電路能輸出高、低兩種電平的復位控制信號,以適應外圍I/O接口芯片所要求的不同復位電平信號。74LS122為單穩(wěn)電路,實驗表明,電容C的選擇約為0.1mF較好。第四次課 2學時 主要內(nèi)容: 第三部分 尋址方式,指令系統(tǒng)(1)3.1 指令系統(tǒng)概述 3.2 指令格式 3.3 指令系統(tǒng)的尋址方式 3.4.1 數(shù)據(jù)傳送類指令 重點:指令系統(tǒng)的尋址方式 數(shù)據(jù)傳送類指令
難點:指令系統(tǒng)的尋址方式 第三部分 尋址方式,指令系統(tǒng)(1)介紹MCS-51匯編語言的指令系統(tǒng)。3.1 指令系統(tǒng)概述 MCS-51的基本指令共111條,按指令所占的字節(jié)來分:(1)單字節(jié)指令49條;(2)雙字節(jié)指令45條;(3)三字節(jié)指令17條。按指令的執(zhí)行時間來分:(1)1個機器周期(12個時鐘振蕩周期)的指令64條;(2)2個機器周期(24個時鐘振蕩周期)的指令45條;(3)只有乘、除兩條指令的執(zhí)行時間為4個機器周期(48個時鐘振蕩周期)。12MHz晶振:機器周期為1ms。3.2 指令格式 兩部分組成,即操作碼和操作數(shù)。操作碼用來規(guī)定指令進行什么操作,操作數(shù)則是指令操作的對象,有單字節(jié)指令、雙字節(jié)指令、三字節(jié)不同長度的指令,格式不同。(1)單字節(jié)指令:指令只有一個字節(jié),操作碼和操作數(shù)同在一個字節(jié)中。(2)雙字節(jié)指令:一個字節(jié)為操作碼,另一個字節(jié)是操作數(shù)。(3)三字節(jié)指令:操作碼占一個字節(jié),操作數(shù)占二個字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。3.3 指令系統(tǒng)的尋址方式 尋址方式就是在指令中說明操作數(shù)所在地址的方法。共7種尋址方式。1.寄存器尋址方式 操作數(shù)在寄存器中 MOV A,Rn ;(Rn)→A,n=0~7 表示把寄存器Rn的內(nèi)容傳送給累加器A 尋址范圍包括:(1)4組通用工作寄存區(qū)共32個工作寄存器。(2)部分特殊功能寄存器,例如A、B 以及數(shù)據(jù)指針寄存器DPTR等。
2.直接尋址方式 操作數(shù)直接以單元地址的形式給出: MOV A,40H 尋址范圍:(1)內(nèi)部RAM的128個單元(2)特殊功能寄存器。除了以單元地址的形式外,還可用寄存器符號的形式給出。例如: MOV A,80H 與 MOV A,P0是等價的。直接尋址方式是訪問特殊功能寄存器的唯一尋址方式 3.寄存器間接尋址方式 寄存器中存放的是操作數(shù)的地址,在寄存器的名稱前面加前綴標志“@” 訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器的低256個字節(jié)時,只能采用R0或R1作為間址寄存器。例如:MOV A,@Ri ;i=0或1 其中Ri中的內(nèi)容為40H,把內(nèi)部RAM中40H單元的內(nèi)容送到A。尋址范圍:(1)訪問內(nèi)部RAM低128個單元,其通用形式為@Ri(2)對片外數(shù)據(jù)存儲器的64K字節(jié)的間接尋址,例如: MOVX A,@DPTR(3)片外數(shù)據(jù)存儲器的低256字節(jié),例如: MOVX A,@Ri(4)堆棧區(qū),堆棧操作指令PUSH(壓棧)和POP(出棧)使用堆棧指針(SP)作間址寄存器。4.立即尋址方式 操作數(shù)在指令中直接給出,需在操作數(shù)前面加前綴標志“#”。例如: MOV A,#40H 5.基址寄存器加變址寄存器間址尋址方式 本尋址方式是以DPTR或PC作基址寄存器,以累加器A作為變址寄存器。例如:指令 MOVC A,@A+DPTR 其中A的原有內(nèi)容為05H,DPTR的內(nèi)容為0400H,該指令執(zhí)行的結(jié)果是把程序存儲器0405H單元的內(nèi)容傳送給A。說明:(1)本尋址方式是專門針對程序存儲器的尋址方式,尋址范圍可達到64KB。(2)本尋址方式的指令只有3條:
MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 6.位尋址方式 MCS-51有位處理功能,可以對數(shù)據(jù)位進行操作,例如MOV C,40H 是把位40H的值送到進位位C。尋址范圍包括:(1)內(nèi)部RAM中的位尋址區(qū)。位有兩種表示方法,例如,40H;另一種是單元地址加上位,例如,(28H).0,指的是28H單元中的最低位。它們是等價的。(2)特殊功能寄存器中的可尋址位 可尋址位在指令中有如下4種的表示方法: a.直接使用位地址。例如PSW.5的位地址為0D5H。b.位名稱的表示方法。例如:PSW.5是F0標志位,可使用F0表示該位。c.單元地址加位數(shù)的表示方法。例如 :(0D0H).5。d.特殊功能寄存器符號加位數(shù)的表示方法。例如:PSW.5。7.相對尋址方式 在相對尋址的轉(zhuǎn)移指令中,給出了地址偏移量,以“rel”表示,即把PC的當前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址: 目的地址=轉(zhuǎn)移指令所在的地址 + 轉(zhuǎn)移指令的字節(jié)數(shù)+ rel 偏移量rel是一帶符號的8位二進制數(shù)補碼數(shù)。范圍是:–128 ~ +127。向地址增加方向最大可轉(zhuǎn)移(127+轉(zhuǎn)移指令字節(jié))個單元地址,向地址減少方向最大可轉(zhuǎn)移(128-轉(zhuǎn)移指令字節(jié))個單元地址。3.4 MCS-51指令系統(tǒng)分類介紹 111條指令,按功能分類,可分為下面5大類:(1)數(shù)據(jù)傳送類(28條)(2)算術(shù)操作類(24條)(3)邏輯運算類(25條)(4)控制轉(zhuǎn)移類(17條)(5)位操作類(17條)指令中符號的意義: Rn 當前寄存器區(qū)的8個工作寄存器R0~R7(n=0~7)。Ri 當前選中的寄存器區(qū)中可作間接尋址寄存器的2 個寄存器R0、R1(i=0,1)。
Direct 直接地址,即8位的內(nèi)部數(shù)據(jù)存儲器單元或特殊功能寄存器的地址。#data 包含在指令中的8位立即數(shù)。#data16 包含在指令中的16位立即數(shù)。rel 相對轉(zhuǎn)移指令中的偏移量,為8位的帶符號補 碼數(shù) DPTR 數(shù)據(jù)指針,可用作16位的地址寄存器。bit 內(nèi)部RAM或特殊功能寄存器中的直接尋址位。C(或Cy)進位標志位或位處理機中的累加器。addr11 11位目的地址 addr16 16位目的地址 @ 間接尋址寄存器前綴,如@Ri,@A+DPTR(X)X中的內(nèi)容。((X))由X尋址的單元中的內(nèi)容?!?箭頭右邊的內(nèi)容被箭頭左邊的內(nèi)容所取代。3.4.1 數(shù)據(jù)傳送類指令 使用最頻繁的一類指令,通用格式: MOV <目的操作數(shù)>,<源操作數(shù)> 屬“復制”性質(zhì),而不是“搬家”,數(shù)據(jù)傳送類指令不影響標志位, CyOV,但不包括奇偶標志位P。1.以累加器為目的操作數(shù)的指令 MOV A,Rn;(Rn)→A,n=0~7 MOV A,@Ri;((Ri))→A,i=0,1 MOV A,direct;(direct)→A MOV A,#data;#data→A 例如: MOV A,R6;(R6)→A,寄存器尋址 MOV A,70H;(70H)→A,直接尋址 MOV A,@R0;((R0))→A,間接尋址 MOV A,#78H;78H→A,立即尋址 2.以Rn為目的操作數(shù)的指令、Ac和
MOV Rn,A;(A)→Rn,n=0~7 MOV Rn,direct;(direct)→Rn,n=0~7 MOV Rn,#dat;#data→Rn,n=0~7 功能:是把源操作數(shù)的內(nèi)容送入當前一組工作寄存器區(qū)的R0~R7中的某一個寄存器。3.以直接地址direct為目的操作數(shù)的指令 MOV direct,A;(A)→direct MOV direct,Rn;(Rn)→direct, n=0~7 MOV direct1,direct2;MOV direct,@Ri;((Ri))→direct MOV direct,#data;#data→direct 功能:把源操作數(shù)送入直接地址指出的存儲單元。direct指的是內(nèi)部RAM或SFR的地址。4.以寄存器間接地址為目的操作數(shù)的指令 MOV @Ri,A;(A)→((Ri)),i=0,1 MOV @Ri,direct;(direct)→((Ri))MOV @Ri,#data;#data→((Ri))5.16位數(shù)傳送指令 MOV DPTR,#data16;#data16→DPTR 唯一的16位數(shù)據(jù)的傳送指令 ,立即數(shù)的高8位送入DPH,立即數(shù)的低8位送入DPL。6.堆棧操作指令 MCS-51內(nèi)部RAM中可以設定一個后進先出(LIFO-Last In First Out)的區(qū)域稱作堆棧.堆棧指針SP指出堆棧的棧頂位置。(1)進棧指令 PUSH direct 先將棧指針SP加1,然后把direct中的內(nèi)容送到棧指針SP指示的內(nèi)部RAM單元中。例如: 當(SP)=60H,(A)=30H,(B)=70H時,執(zhí)行下列指令
PUSH ACC;(SP)+1=61H→SP,(A)→61H PUSH B;(SP)+1=62H→SP,(B)→62H 結(jié)果:(61H)=30H,(62H)=70H,(SP)=62H(2)出棧指令 POP direct SP指示的棧頂(內(nèi)部RAM單元)內(nèi)容送入direct字節(jié)單元中,棧指針SP減1.例如: 當(SP)=62H,(62H)=70H,(61H)=30H,執(zhí)行下列指令: POP DPH;((SP))→DPH,(SP)-1→SP POP DPL;((SP))→DPL,(SP)-1→SP 結(jié)果:(DPTR)=7030H,(SP)=60H 7.累加器A與外部數(shù)據(jù)存儲器傳送指令 MOVX A,@DPTR;((DPTR))→A,讀外部RAM/IO MOVX A,@Ri;((Ri))→A,讀外部RAM/IO MOVX @DPTR,A;(A)→((DPTR)),寫外部RAM/IO MOVX @Ri,A;(A)→((Ri)),寫外部RAM/IO 功能:讀外部RAM存儲器或I/O中的一個字節(jié),或把A中一個字節(jié)的數(shù)據(jù)寫到外部RAM存儲器或I/O中。注意:RD*或WR*信號有效。采用DPTR間接尋址,高8位地址(DPH)由P2口輸出,低8位地址(DPL)由P0口輸出。采用Ri(i=0,1)間接尋址,可尋址片外256個單元的數(shù)據(jù)存儲器。Ri內(nèi)容由P0口輸出。8位地址和數(shù)據(jù)均由P0口輸出,可選用其它任何輸出口線來輸出高于8位的地址(一般選用P2口輸出高8位的地址)。MOV后 “X”表示單片機訪問的是片外RAM存儲器或I/O。8.查表指令 共兩條,用于讀程序存儲器中的數(shù)據(jù)表格的指令,均采用基址寄存器加變址寄存器間接尋址方式。(1)MOVC A,@A+PC
以PC作基址寄存器,A的內(nèi)容作為無符號整數(shù)和PC中的內(nèi)容(下一條指令的起始地址)相加后得到一個16位的地址該地址指出的程序存儲單元的內(nèi)容送到累加器A。注意:PSEN*信號有效。例如:(A)=30H,執(zhí)行地址1000H處的指令 1000H: MOVC A,@A+PC 本指令占用一個字節(jié),執(zhí)行結(jié)果將程序存儲器中1031H的內(nèi)容送入A。優(yōu)點:不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點:表格只能存放在該條查表指令后面的256個單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。(2)MOVC A,@A+DPTR 以DPTR作為基址寄存器,A的內(nèi)容作為無符號數(shù)和DPTR的內(nèi)容相加得到一個16位的地址,把由該地址指出的程序存儲器單元的內(nèi)容送到累加器A.例如(DPTR)=8100H(A)=40H 執(zhí)行指令 MOVC A,@A+DPTR 本指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無關(guān),因此表格的大小和位置可以在64K程序存儲器中任意安排,一個表格可以為各個程序塊公用。兩條指令是在MOV的后面加C,“C”是CODE的第一個字母,即代碼的意思。9.字節(jié)交換指令 XCH A,Rn XCH A,direct XCH A,@Ri 例如:(A)=80H,(R7)=08H,(40H)=F0H(R0)=30H,(30H)=OFH 執(zhí)行下列指令: XCH A,R7;(A)與(R7)互換
XCH A,40H;(A)與(40H)互換 XCH A,@R0;(A)與((R0))互換 結(jié)果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H 10.半字節(jié)交換指令 XCHD A,@Ri 累加器的低4位與內(nèi)部RAM低4位交換。例如:(R0)=60H,(60H)=3EH,(A)=59H執(zhí)行完
指令,則(A)=5EH,(60H)=39H。XCHD A,@RO
第五篇:單片機原理及應用課程設計教學大綱
《單片機原理及應用》課程設計教學大綱
課程編號:13033070 課程類別:必修課
適用專業(yè):電氣信息類
學時:10 教研室主任:姜志成大綱執(zhí)筆人:李春華
大綱審批人:付家才
一、課程設計的性質(zhì)及目的
1.了解并掌握單片機的原理、結(jié)構(gòu)、指令、接口及應用。
2.提高綜合運用所學的理論知識獨立分析和解決問題的能力。3.掌握匯編語言程序設計和調(diào)試。4.掌握C-51語言的設計和調(diào)試。
二、課程設計的要求
1. 根據(jù)設計要求,畫出硬件接線圖及程序的總體流程圖,然后進行各控制模塊的硬件設計及軟件設計。
2.掌握如何應用單片機仿真器來開發(fā)應用系統(tǒng)及仿真調(diào)試的過程。
三、參考題目
題目一 校園作息時間控制系統(tǒng)
設計要求:
1.作息時間要求實現(xiàn)對上下課打鈴、教學樓照明、學生宿舍燈、校園路燈四個開關(guān)量的精確控制。月時間累計誤差≤1分鐘。
2.能實時顯示時間,并方便定期進行時間校準。
3.根據(jù)應用系統(tǒng)的要求,初步掌握總體結(jié)構(gòu)設計的方法和構(gòu)思,從中選擇一種最佳設計方案。
4.根據(jù)應用系統(tǒng)結(jié)構(gòu)規(guī)模的要求,掌握單片機外部擴充系統(tǒng)硬件設計的基本過程。
題目二 交通信號燈控制系統(tǒng)
設計要求:
1.設有一個南北(SN)向和東西(WE)向的十字路口,兩方向各有兩組相同交通控制信號燈,每組各有四盞信號燈,分別為直行信號燈(S)、左拐信號燈(L)、紅燈(R)和黃燈(Y),交通控制信號燈布置如圖1所示。
2.根據(jù)交通流量不同,交通信號燈的控制可實現(xiàn)手動、自動兩種控制。平時使用自動控制,高峰區(qū)可使用手動控制。手動控制時,用戶通過鍵盤對交通信號燈進行人工控制;自動控制時,交通信號燈控制規(guī)律用圖2狀態(tài)轉(zhuǎn)換圖來描述。
圖1十字路口交通控制信號燈示意圖
圖2交通控制信號燈控制規(guī)律示意圖
題目三 環(huán)境溫度監(jiān)測系統(tǒng)
設計要求:
1.可以監(jiān)測8點環(huán)境溫度信號,可以擴充;
2.測量范圍為0.00℃~99.9℃,可以擴充到-55℃~+125℃,精度為±0.5℃; 3.用4位數(shù)碼管進行循環(huán)顯示,其中最高位顯示通道提示符A~H,低3位顯示實際溫度值,每秒切換一個通道進行輪流顯示;
4.可以隨時查看指定通道的溫度值(擴充功能)。
四、教學參考文件與教學形式
教學參考文件: 〔1〕付家才,《單片機控制工程實踐技術(shù)》,化學工業(yè)出版社,2003年 〔2〕胡漢才,《單片機原理及接口設計》,清華大學出版社,2002年 〔3〕康華光,《模擬電子技術(shù)》,高等教育出版社,2004年 教學形式:根據(jù)課程設計大綱的要求,采取指導的形式。
五、考核方式及成績評定標準
考核方式采取設計報告與實際操作,根據(jù)設計的情況和實際操作效果給出成績,其中設計報告占60%,日常管理(包括遲到、曠課、衛(wèi)生等)占10%,實際操作占30%。成績采用優(yōu)、良、中、及格和不及格五級分制評定。
六、其他必要的說明
課程設計教師可根據(jù)專業(yè)特點選做相應題目。