完整的實驗指導文件word版本下載:
THGMU-1型 (MS51部分).doc
(2.27 MB, 下載次數: 7)
2017-3-15 17:02 上傳
點擊文件名下載附件
實驗指導 下載積分: 黑幣 -5
下面是文件預覽(無圖版):
目 錄 I
實驗一 流水燈實驗 1
實驗二 I/O口控制實驗 2
實驗三 74LS164串轉并實驗 3
實驗四 74LS165并轉串實驗 4
實驗五 74HC138譯碼器實驗 5
實驗六 繼電器控制實驗 6
實驗七 音頻驅動實驗 7
實驗八 PWM信號的產生實驗 8
實驗九 電子琴模擬實驗 9
實驗十 計數器實驗 10
實驗十一 定時器實驗 11
實驗十二 外部中斷實驗 12
實驗十三 看門狗實驗 13
實驗十四 查詢式鍵盤實驗 15
實驗十五 7279陣列式鍵盤實驗 17
實驗十六 雙色LED點陣顯示實驗 20
實驗十七 555電路的測頻實驗 22
實驗十八 I2C總線實驗 24
實驗十九 串行AD轉換實驗 26
實驗二十 串行DA轉換實驗 27
實驗二十一 溫度傳感器溫度控制實驗 29
實驗二十二 字符型液晶顯示實驗 32
實驗二十三 128×64液晶顯示實驗 35
實驗二十四 RS-232串口通信實驗 37
實驗二十五 RS-485通信實驗 38
實驗二十六 直流電動機控制實驗 40
實驗二十七 步進電動機控制實驗 41
附錄一 C8051核心板和主板IO的對應關系 43
實驗一 流水燈實驗
一、實驗目的
1.學習51的P1口的使用方法。
2.學習延時子程序的編寫和使用。
二、實驗說明
AT89S52有32個通用的I/O口,分為P0、P1、P2、P3,每組都是8位,它們是準雙向口,它作為輸出口時與一般的雙向口使用方法相同。P3口也可以做第二功能口用,本實驗使用P1口做輸出口,控制LED等產生流水燈效果。
三、實驗內容及步驟
注:實驗程序放在Soundcode/MS51的文件夾中。
用P1口做輸出口,接八位邏輯電平顯示,程序功能使發光二極管循環點亮。
1.最小系統中插上80C51核心板,用扁平數據線連接MCU的P1口與八位邏輯電平顯示模塊JD3。
2、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
3、打開Keil uVision2仿真軟件,首先“流水燈”文件夾下的 “8031.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
4、全速運行程序,程序功能使發光二極管循環點亮的流水燈的效果。
注:在做完實驗時記得養成一個好習慣:把相應單元的短路帽和電源開關還原到原來的位置!以下將不在重述。
四、源程序(見光盤)
五、電路圖
實驗十 定時/計數器實驗
一、實驗目的
1.學習單片機內部定時/計數器在不同工作方式上的使用方法;
2.學習定時/計數器程序編寫方法.
二、實驗內容
1.用定時器來延時,設計跑馬燈電路和程序
2.外部脈沖從P3.4引入計器T0,用
1.單片機內部有兩個定時/計數器T0和T1,4種工作方式.單片機的定時器/計數器是加計數器.單片機定時脈沖來源于內部,計數脈沖來源于外源,單片機的工作方式是通過設制方式寄存器實現,
16位是指定時/計數器內的計數器是16位的,由2個8位計數器組成。本實驗用的是T0,它的2個8位計數器TH0和TL0,TH0是高8位,TL0是低八位。所謂加法計數器,指其計數的方法是對計數脈沖每次加1。在其它單片機和可編程計數器芯片中,有的計數器是減法計數器,如8155的14位計數器,8253的16計數器,即先設置計數器的初值,然后對計數器脈沖每次減1,減到0,計數器溢出。而8031內部的計數器是加法計數器,需先設置計數器的初值,本實驗設置計數器初值為0,然后對計數脈沖每次加1,加到計數器滿后溢出。
2.本實驗中內部計數器起計數器的作用。外部事件計數脈沖由。單片機在每個機器周期采樣一次輸入波形,因此單片機至少需要兩個機器周期才能檢測到一次跳變。這就要求被采樣電平至少維持一個完整的機器周期,以保證電平在變化之前即被采樣。這就決定了輸入波形的頻率不能超過機器周期頻率。
關于內部計數器的編程主要是定時常數的設置和有關控制寄存器的設置。內部計數器在單片機中主要有定時器和計數器兩個功能。本實驗使用的是定時器,定時為一秒鐘。CPU運用定時中斷方式,實現每一秒鐘輸出狀態發生一次反轉,即發光管每隔一秒鐘亮一次。
定時器有關的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設置定時器/計數器的工作方式0-3,并確定用于定時還是用于計數。TCON主要功能是為定時器在溢出時設定標志位,并控制定時器的運行或停止等。
內部計數器用作定時器時,是對機器周期計數。每個機器周期的長度是12個振蕩器周期。因為如果實驗系統的晶振是12MHZ,本工作于方式2,即8位自動重裝方式定時器,定時器100uS中斷一次,所以定時常數的設置可按以下方法計算:
機器周期=12÷12MHz=1uS
(256-定時常數)×1uS=100uS
定時常數=156。然后對100uS中斷次數計數10000次,就是1秒鐘。
在本實驗的中斷處理程序中,因為中斷定時常數的設置對中斷程序的運行起到關鍵作用,所以在置數前要先關對應的中斷,置數完之后再打開相應的中斷。
三、實驗內容及步驟
T0接外部脈沖輸入,P1口接八位邏輯電平顯示模塊,脈沖個數以二進制形式顯示出來。
1.最小系統中插上80C51核心板,用扁平數據線連接MCU的P1口與八位邏輯電平顯示模塊JD3,P34端口接單次脈沖電路的輸出端(綠色防轉座)。
2、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
3、打開Keil uVision2仿真軟件,首先“計數器”文件夾下的 “計數器.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
4、全速運行程序,按動單次脈沖按鈕,脈沖個數以二進制形式通過LED顯示。
四、源程序(見光盤)
五、思考題
1.由功能、計數啟動條件、重復啟動條件等諸方面比較89S52的各種方式。
2.89S52單片機的最高計數頻率為多少?
實驗十一 定時器實驗
一、實驗目的
1.學習89S52內部計數器的使用和編程方法;
2.進一步掌握中斷處理程序的編寫方法。
二、實驗說明
關于內部計數器的編程主要是定時常數的設置和有關控制寄存器的設置。內部計數器在單片機中主要有定時器和計數器兩個功能。本實驗使用的是定時器,定時為一秒鐘。CPU運用定時中斷方式,實現每一秒鐘輸出狀態發生一次反轉,即發光管每隔一秒鐘亮一次。
定時器有關的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設置定時器/計數器的工作方式0-3,并確定用于定時還是用于計數。TCON主要功能是為定時器在溢出時設定標志位,并控制定時器的運行或停止等。
內部計數器用作定時器時,是對機器周期計數。每個機器周期的長度是12個振蕩器周期。因為如果實驗系統的晶振是12MHZ,本工作于方式2,即8位自動重裝方式定時器,定時器100uS中斷一次,所以定時常數的設置可按以下方法計算:
機器周期=12÷12MHz=1uS
(256-定時常數)×1uS=100uS
定時常數=156。然后對100uS中斷次數計數10000次,就是1秒鐘。
在本實驗的中斷處理程序中,因為中斷定時常數的設置對中斷程序的運行起到關鍵作用,所以在置數前要先關對應的中斷,置數完之后再打開相應的中斷。
三、實驗內容及步驟
1.最小系統中插上80C51核心板,用導線連接MCU的P10到八位邏輯電平顯示的L0發光二極管處。
2、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
3、打開Keil uVision2仿真軟件,首先“定時器”文件夾下的 “定時器.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
4、全速運行程序,觀測L0發光二極管1S亮一次。
四、源程序(見光盤)
實驗十二 外部中斷實驗
一、實驗目的
1.掌握外部中斷技術的基本使用方法;
2.掌握中斷處理程序的編寫方法。
二、實驗說明
1.外部中斷的初始化設置共有三項內容:中斷總允許即EA=1,外部中斷允許即EXi=1(i=0或1),中斷方式設置。中斷方式設置一般有兩種方式:電平方式和脈沖方式,本實驗選用后者,其前一次為高電平后一次為低電平時為有效中斷請求。因此高電平狀態和低電平狀態至少維持一個周期,中斷請求信號由引腳INT0(P3.2)和INT1(P3.3)引入,本實驗由INT0(P3.2)引入。
2.中斷服務的關鍵:
A.保護進入中斷時的狀態。
堆棧有保護斷點和保護現場的功能使用PUSH指令,在轉中斷服務程序之前把單片機中有關寄存單元的內容保護起來。
B.必須在中斷服務程序中設定是否允許中斷重入,即設置EX0位。
C.用POP指令恢復中斷時的現場。
3.中斷控制原理:
中斷控制是提供給用戶使用的中斷控制手段。實際上就是控制一些寄存器,51系列用于此目的的控制寄存器有四個:TCON 、IE 、SCON 及IP。
4.中斷響應的過程:
首先中斷采樣然后中斷查詢最后中斷響應。采樣是中斷處理的第一步,對于本實驗的脈沖方式的中斷請求,若在兩個相鄰周期采樣先高電平后低電平則中斷請求有效,IE0或IE1置“1”;否則繼續為“0”。所謂查詢就是由CPU測試TCON和SCON中各標志位的狀態以確定有沒有中斷請求發生以及是那一個中斷請求。中斷響應就是對中斷請求的接受,是在中斷查詢之后進行的,當查詢到有效的中斷請求后就響應一次中斷。
INT0端接單次脈沖發生器。P1.0接LED燈,以查看信號反轉。
三、實驗內容及步驟
1.最小系統中插上80C51核心板,用導線連接MCU的P10到八位邏輯電平顯示的L0發光二極管處,P32接單次脈沖電路的輸出端(綠色防轉座)。
2、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
3、打開Keil uVision2仿真軟件,首先“中斷”文件夾下的 “中斷.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
4、全速運行程序,按一次單次脈沖的按鈕燈取反一次
四、源程序(見光盤)
實驗十四 查詢式鍵盤實驗
一、實驗目的
掌握查詢式鍵盤的接口和編程方法。
二、實驗內容
本實驗提供了8個按鍵的小鍵盤,如果有鍵按下,則相應輸出為低電平,否則輸出為高電平。MCU判斷有鍵按下后,要有一定的延時,防止由于鍵盤抖動而引起誤操作。
編寫一個程序,能讀出鍵盤操作的編號,并在數碼顯示器上顯示。
三、實驗電路
本實驗所需電路請參見系統原理圖的第一部分和獨立式鍵盤電路。
四、實驗程序參考框圖
(a) 主程序框圖 (b) 鍵盤掃描子程序框圖
五、實驗步驟
1.最小系統中插上80C51核心板,把7279陣列式鍵盤的JT9短路帽打在VCC處,用8P排線將JD16、JD17接八位動態數碼顯示JD1和JD2相連。
2.查詢式鍵盤的JD15和MCU最小系統的P2口相連,MCU最小系統的P15、P16、P17分別接7279鍵盤的CS、CLK、DATA。
3、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
4、打開Keil uVision2仿真軟件,首先“KEY”文件夾下的 “KEY.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
5、全速運行程序,鍵盤上按下某個鍵,觀察數顯是否與該鍵號一致。
六、源程序(見光盤)
七、思考題
1.程序如何確保每按一次鍵,只處理一次。
八、原理圖
實驗十九 串行AD轉換實驗
一、實驗目的
1.掌握單片機和TLC549硬件聯接及軟件編程。
2.熟悉八位串行AD轉換器TLC549的性能及轉換過程。
二、實驗說明
TLC549是一種采用8位逐次逼近式工作的A/D轉換器。內部包含系統時鐘、采樣和保持、8位A/D轉換器、數據寄存器以及控制邏輯電路。TLC549每25uS重復一次“輸入—轉換—輸出”。器件有兩個控制輸入:I/O CLOCK和片選(CS)。
內部系統時鐘和I/O CLOCK可獨立使用。應用電路的設計只需利用I/O時鐘啟動轉換或讀出轉換結果。當CS為高電平時,DATA OUT處于高阻態且I/O時鐘被禁止。
當CS變為低電平時,前次轉換結果的最高有效位(MSB)開始出現在DATA OUT端。在接下來的7個I/O CLOCK周期的下降沿輸出前次轉換結果的后7位,至此8位數據已經輸出。然后再將第8個時鐘周期加至I/O CLOCK,此時鐘周期的下跳沿變使芯片進行下一輪的AD轉換。在第8個I/O CLOCK周期之后,CS必須變為高電平,并且保持高電平直至轉換結束為止(>17uS),否則CS的有效高電平至低電平的轉換將引起復位(其它詳細資料看芯片說明)。
三、實驗內容及步驟
1.最小系統中插上80C51核心板,把7279陣列式鍵盤的JT9短路帽打在上方VCC處,用8P排線將JD16、JD17分別接八位動態數碼顯示的JD1、 JD2相連;MCU最小系統的P16、P17、P27分別接7279鍵盤的CLK、DATA、CS。
2.MCU最小系統的P10,P11,P12分別接AD轉換的DATA、CLK、CS-549,AD轉換的AIN接可調電壓0~5V可調端。
3、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
4、打開Keil uVision2仿真軟件,首先“TLC549”文件夾下的 “TLC549.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
5、全速運行程序數碼顯示電壓轉化的數字量,調節模擬信號輸入端的電位器旋鈕,顯示值隨著變化,順時針旋轉值增大,AD轉換值的范圍是0~4.98V左右。
四、源程序(見光盤)
六、電路圖
實驗二十 串行DA轉換實驗
一、實驗目的
1.掌握LTC1446 12位串行D/A轉換芯片的工作方法。
2.掌握LTC1446 12位串行D/A轉換芯片編程方法和調試方法。
二、實驗內容
使用LTC1446實現單片機數模轉換,輸出方波。
三、實驗要求
根據實驗內容編寫一個程序,并在實驗儀上調試和驗證。
四、實驗說明
LTC1446是一種采用12位逐次逼近式工作的A/D轉換器。內部包含系統時鐘、采樣和保持、12位A/D轉換器、數據寄存器以及控制邏輯電路。LTC1446每25uS重復一次“輸入——轉換——輸出”。器件有兩個控制輸入:DIN CLK和片選(CS)。
內部系統時鐘和DIN CLK可獨立使用。應用電路的設計只需利用時鐘啟動轉換或讀出轉換結果。當CS為高電平時, Dout處于高阻態且DIN時鐘被禁止。
當CS變為低電平時,前次轉換結果的最高有效位(MSB)開始出現在Dout端。(其它詳細資料看芯片說明)。
1.LTC1446 的內部管腳圖
2.LTC1446 時序圖
三、實驗步驟
1.最小系統中插上80C51核心板,MCU最小系統的P1.0接串行D/A的CLK,P1.1接DIN,P1.2接CS-1446。
2、用串行數據通信線、USB線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
3、打開Keil uVision2仿真軟件,首先“LTC1446”文件夾下的 “LTC1446.Uv2” 實驗的項目文件,對源程序進行編譯,直到編譯無誤。
4、全速運行程序用示波器觀察OUT端的波形為方波。
四、程序(見光盤)
六、電路圖
實驗二十二 字符型液晶顯示實驗
一、實驗目的
1.了解字符型液晶顯示器的工作原理。
2.了解字符型液晶顯示器控制方式。
二、實驗說明
字符型液晶顯示器,是專門用于顯示、數字、圖形符號及少量自定義符號的顯示器。由于LCD液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,自問世以來就得到了廣泛應用。字符型液晶顯示器模塊在國際上已經規范化,在市場上內核為HD44780的較常見。TC1602A是一種16字×2行的字符型液晶顯示模塊,其顯示面積為64.5×13.8mm2。本實驗以TC1602A型LCD為例介紹其使用方法。
1.模塊特點
可與8位或4位微處理器直接;
內藏式字符發生器ROM可提供160種工業標準字符,包括全部大小寫字母、阿拉伯數字及日文片假名,以及32個特殊字符或符號的顯示;
內藏RAM可根據用戶的需要,由用戶自定義字符或符號;
+5V單電源供電;
低功耗(10mW)
2.引腳及其功能
TC1602A共有16個引腳,其引腳及功能如表19-1所列。
表19-1 引腳功能
引腳 符號 輸入/輸出 功能說明
1 Vss 電源地:0V
2 Vdd 電源:5V
3 V1~V5 LCD驅動電壓:0~5V
4 RS 輸入 寄存器選擇:“0”為指令寄存器,“1”為數據寄存器
5 R/W 輸入 “1”為讀操作;“0”為寫操作
6 E 輸入 使能信號:E=1時,使能;E=0時,禁能
7~10 D0~D3 輸入/輸出 數據總線的低4位,與4位MCU連接時不用
11~14 D4~D7 輸入/輸出 數據總線的高4位
15~16 LED+/LED- 電源背光
3.TC1602A的內部結構
TC1602A的內部結構主要由DDRAM、CGROM、IR、DR、BF、AC等大規模集成電路組成。
1)DDRAM為數據顯示用的RAM(Data DisplayRAM,簡稱DDRAM),用以存放要LCD顯示的數據,只要標準的ASCII碼放入DDRAM,內部控制線路就會自動將數據傳送到顯示器上,并顯示出該ASCII碼對應的字符。
2)CGROM為字符產生器ROM(CharacterGenerator RAM,簡稱CGRAM),可供使用者存儲特殊造型的造型碼,CGRAM最多可存8個造型。
3)IR為指令寄存器(Instruction Register,簡稱IR),負責存儲MCU要寫給的LCD的指令碼,當RS及R/W引腳信號為0且Enable引腳信號由1變為0時,D0~D7引腳上的數據便會存入到IR寄存器中。
4)DR為數據寄存器(Data Register,簡稱DR),它們負責存儲微機要寫到CGRAM或DDRAM的數據,或者存儲MCU要從CGRAM或DDRAM讀出的數據。因此,可將DR視為一個數據緩沖區,當RS及R/W引腳信號為1且Enable引腳信號由1變為0時,讀取數據;當RS引腳信號為1,R/W引腳信號為0且Enable引腳信號由1變為0時,存入數據。
5)BF為忙碌信號(Busy Flag,簡稱BF),當BF為1時,不接收微機送來的數據或指令;當BR為0時,接收外部數據或指令,所以,在寫數據或指令到LCD之前,必須查看BF是否為0。
6)AC為地址計數器(Address Counter,簡稱AC),負責計數寫入/讀出CGRAM或DDRAM的數據地址,AC依照MCU對LCD的設置值而自動修改它本身的內容。
TC1602A可分為2行共顯示32個字符,每行顯示16個字符。
內含HD44780控制器的液晶顯示模塊的TC1602A有兩個寄存器:一個是命令寄存器,另一個數據寄存器。所有對TC1602A的操作必須先寫命令字,再寫數據。內含HD44780控制器的指令系統表如表19-2所列,各指令功能如下。
表19-2 指令表
控制信號 指令代碼 功能
RS RW D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 0 1 清屏
0 0 0 0 0 0 0 0 1 * 軟復位
0 0 0 0 0 0 0 1 I/D S 內部方式設置
0 0 0 0 0 0 1 D C B 顯示開關控制
0 0 0 0 0 1 S/C R/L * * 位移控制
0 0 0 0 1 DL N F * * 系統方式設置
0 0 0 1 ACG CGRAM地址設置
0 0 1 ADD 顯示地址設置
0 1 BF AC 忙狀態檢查
1 0 寫數據 MCU-LCD
1 1 讀數據 LCD-MCU
表19-3 CGROM和CGRAM中字符代碼與字符圖形對應關系
高位
低位 0000 0010 0011 0100 0101 0110 0111 1010 1011 1100 1101 1110 1111
××××0000 CGRAM(1) 0 P \ p 一 夕 三 α P
××××0001 (2) ! 1 A Q a q 口 ア チ ム ä q
××××0010 (3) 2 B R b r イ 川 メ β θ
××××0011 (4) # 3 C S c s ウ モ c ∞
××××0100 (5) $ 4 D T d t \ エ ト セ μ Ω
××××0101 (6) % 5 E U e u ロ オ ナ ユ B 0
××××0110 (7) & 6 F V f v テ カ ニ ヨ P ∑
××××0111 (8) > 7 G W g w ア キ ヌ ラ g π
××××1000 (1) ( 8 H X h x イ ケ ネ リ ∫ X
××××1001 (2) ) 9 I Y i y ヴ ゲ ノ ル -1 y
××××1010 (3) : J Z j z エ コ リ レ j 千
××××1011 (4) + : K [ k { オ サ ヒ ロ x 萬
××××1100 (5) < L ¥ l | セ シ フ ワ |