《《單片機原理及應(yīng)用》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《單片機原理及應(yīng)用》PPT課件.ppt(18頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 授課日期 班次 授課時數(shù) 2 課題: 任務(wù)二: P1口外接 8只 LED發(fā)光二極管模擬彩燈(一) 教學(xué)目的: 掌握 MCS-51的數(shù)據(jù)傳送類指令以及數(shù)據(jù)存儲空間 重點: MCS-51的數(shù)據(jù)傳送類指令 難點: MCS-51的數(shù)據(jù)傳送類指令 教具: 多媒體 作業(yè): 3.6 3.9 自用參考書: 單片機原理及應(yīng)用 李朝青主編、 單片機應(yīng)用技術(shù) 鄭毛祥主編 教學(xué)過程: 一、復(fù)習(xí)提問 單片機內(nèi)部結(jié)構(gòu) 二、新授 由任務(wù)二: P1口外接 8只 LED模擬
2、彩燈引入本次課內(nèi)容 1. 硬件電路與工作原理 詳細描述本次任務(wù),根據(jù)任務(wù)要求分析硬件構(gòu)成并畫出硬件電路 2. 程序設(shè)計 3.源程序的編輯、編譯、下載 4. 相關(guān)知識 1) MCS-51的數(shù)據(jù)傳送類指令 2) MCS-51內(nèi)部的數(shù)據(jù)存儲空間 5.課堂小結(jié) 課后小結(jié): 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3 1 1 硬件電路與工作原理 任務(wù)描述: 利用 P1口外接的 8只 LED發(fā)光二極管模擬彩燈 1、硬
3、件電路 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 2、工作原理 當(dāng) P1.0P1.7中的某端口為低電平時,對應(yīng)的發(fā)光二極管亮,為高電 平滅。我們只要控制 P1口各位的電平狀態(tài),就可以控制 8只 LED的亮 與滅。例如使( P1) =01010101B=55H, D7、 D5、 D3、 D14只 LED 亮, D6、 D4、 D2、 D04只 LED滅,從效果上看亮與滅是相間隔的; 反之,使( P1) =10101010B=AAH,則另外 4只 LED亮,若反復(fù)以一 定時間間隔不斷從 P1口輪流輸出 55H和 AAH,則 P1口上 8只 LED會呈
4、 現(xiàn)流水彩燈的效果。 實現(xiàn)上述 8只 LED發(fā)光二極管控制的程序非常簡單,可以用不同的指令來 編程。以下是幾種模式彩燈的控制程序。 1、將立即數(shù)送 P1口的程序 ORG 0000H ; 定義程序從程序存貯器 0000H單元開始存放 LOOP: MOV P1, #55H ; 立即數(shù) 55H送 P1口, 4只 LED亮 SJMP LOOP ; 原地踏步 END ; 程序結(jié)束 第一條指令指明程序在程序存貯中的存貯位置,第二條指令將立即數(shù) 55H傳送到 P1口,對應(yīng)的 LED燈亮,第三條指令是一條無條件轉(zhuǎn)移指令, 即單片機執(zhí)行完上一條指令后,會不斷反復(fù)指行這條
5、指令,直到電源斷 電,第四條是程序結(jié)束指令 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.2 控制程序 2、通過累加器 A控制 P1口的程序 ORG 0000H LOOP: MOV A, #0AAH ;將立即數(shù) AAH送累加器 A MOV P1, A ;累加器 A中的數(shù)送 P1端口 SJMP LOOP ;轉(zhuǎn)移到 LOOP END 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3、 流水式彩燈程序 最簡單的流水式彩燈程序也是簡單的 程序流程圖如右圖 開始 55H送 P1口 延時 0.3秒 AAH送 P1口 延時 0.3
6、秒 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 ORG 0000H LOOP: MOV P1,#55H ;將立即數(shù) 55H送 P1端口 LCALL TIME ;調(diào)延時子程序 TIME MOV P1,#0AAH ;將立即數(shù) AAH送 P1端口 LCALL TIME ;調(diào)延時子程序 TIME SJMP LOOP ;轉(zhuǎn)移到 LOOP TIME: MOV R6,#200 ;延時子程序 TIME TIME1: MOV R7,#200 TIME2: NOP NOP NOP DJNZ R7,TIME2 DJNZ R6,TIME1 RET EN
7、D 程序如下 : 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 4、開幕式與閉幕式彩燈程序 ORG 0000H LJMP MAIN ;跳轉(zhuǎn)到主程序 ORG 0030H MAIN: MOV R0,#8 ; R0送循環(huán)次數(shù) 8 MOV DPTR,#TAB ;給數(shù)據(jù)指針賦值 LOOP: MOV A,#00H ; MOVC A, A + DPTR MOV P1,A LCALL TIME INC DPL DJNZ R0,LOOP SJMP MAIN TIME: MOV R6,#200 TIME1:
8、 MOV R7,#200 TIME2: NOP NOP NOP DJNZ R7,TIME2 DJNZ R6,TIME1 RET TAB: DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH END 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3 1 3 源程序的編輯、編譯、下載 打開“偉?!蹦M仿真軟件進行程序的編輯、編譯。 1、正確選擇單片機類型 8751或 8031 2、正確選擇編譯器偉福編譯器 3、選擇模擬仿真功能 4、打開或新建文件進行編輯 5、編譯 打開“ ISP下載軟
9、件”將目標文件下載到 ISP-4實驗開發(fā)板上的 AT89S51單片機芯片,觀察程序運行結(jié)果。 1、編譯成功后打開下載軟件 2、選擇好單片機 89S51并測試 3、打開偉福 6000編譯生成的 .BIN或 .HEX文件 4、選擇自動寫完成擦除、寫、讀、校驗過程 5、觀看運行結(jié)果 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 數(shù)據(jù)傳送指令共有 29條,數(shù)據(jù)傳送指令一般的操作是把源操作數(shù)傳送 到目的操作數(shù),指令執(zhí)行完成后,源操作數(shù)不變,目的
10、操作數(shù)等于源 操作數(shù)。如果要求在進行數(shù)據(jù)傳送時,目的操作數(shù)不丟失,則不能用 直接傳送指令,而采用交換型的數(shù)據(jù)傳送指令,數(shù)據(jù)傳送指令不影響 標志 C,AC和 OV,但可能會對奇偶標志 P有影響 。 MOV A,data ;( data) ( A) 直接單元地址中的內(nèi)容送到累加 器 A MOV A,#data ;#data ( A) 立即數(shù)送到累加器 A中 MOV A,Rn ;( Rn) ( A) Rn中的內(nèi)容送到累加器 A中 MOV A,Ri ;(( Ri)) ( A) Ri內(nèi)容指向的地址單元中的內(nèi) 容送到累加器 A 以累加器 A為目的
11、操作數(shù)類指令( 4條) 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 以寄存器 Rn為目的操作數(shù)的指令( 3條) 這 3條指令的功能是把源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器 Rn中。 有直接、立即和寄存器尋址方式: MOV Rn,data ;( data) ( Rn) 直接尋址單元中的內(nèi)容送到 寄存器 Rn中 MOV Rn,#data ;#data ( Rn) 立即數(shù)直接送到寄存器 Rn 中 MOV Rn,A ;( A)
12、 ( Rn) 累加器 A中的內(nèi)容送到寄存 器 Rn中 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 以直接地址為目的操作數(shù)的指令( 5條) 這組指令的功能是把源操作數(shù)指定的內(nèi)容送到由直接地址 data所選定的 片內(nèi) RAM中。有直接、立即、寄存器和寄存器間接 4種尋址方式: MOV data,data ;( data) ( data) 直接地址單元中的內(nèi)容送到直 接地址單元 MOV data,#data ;#data ( data)
13、 立即數(shù)送到直接地址單元 MOV data,A ;( A) ( data) 累加器 A中的內(nèi)容送到直接地址單 元 MOV data,Rn ;( Rn) ( data) 寄存器 Rn中的內(nèi)容送到直接地 址單元 MOV data,Ri ;(( Ri)) ( data) 寄存器 Ri中的內(nèi)容指定的 地址單元中數(shù)據(jù)送到直接地址單元 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 以間接地址為目的操作數(shù)的指令( 3條) 這組
14、指令的功能是把源操作數(shù)指定的內(nèi)容送到以 Ri中的內(nèi)容 為地址的片內(nèi) RAM中。有直接、立即和寄存器 3種尋址方式: MOV Ri,data ;( data) (( Ri)) 直接地址單元中 的內(nèi)容送到以 Ri中的內(nèi)容為地址的 RAM單元 MOV Ri,#data ;#data (( Ri)) 立即數(shù)送到以 Ri中的 內(nèi)容為地址的 RAM單元 MOV Ri,A ;( A) (( Ri)) 累加器 A中的內(nèi)容送 到以 Ri中的內(nèi)容為地址的 RAM單元 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么
15、是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 查表指令( 2條) 這組指令的功能是對存放于程序存儲器中的數(shù)據(jù)表格進行查找傳 送,使用變址尋址方式: MOVC A,A+DPTR ;(( A)) +( DPTR) ( A) 表格地址 單元中的內(nèi)容送到累加器 A中 MOVC A,A+PC ;(( PC)) +1 ( A),(( A)) + ( PC) ( A) 表格地址單元中的內(nèi)容送到累加器 A中 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? M
16、CS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 累加器 A與片外數(shù)據(jù)存儲器 RAM傳送指令( 4條) 這 4條指令的作用是累加器 A與片外 RAM間的數(shù)據(jù)傳送。使用寄存器 尋址方式: MOVX DPTR,A ;( A) (( DPTR)) 累加器中的內(nèi)容送 到數(shù)據(jù)指針指向片外 RAM地址中 MOVX A, DPTR ;(( DPTR)) ( A) 數(shù)據(jù)指針指向片外 RAM地址中的內(nèi)容送到累加器 A中 MOVX A, Ri ;(( Ri)) ( A) 寄存器 Ri指向片外 RAM地址中的內(nèi)容送到累加器 A中 MOVX Ri,A ;(
17、A) (( Ri)) 累加器中的內(nèi)容送到 寄存器 Ri指向片外 RAM地址中 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 堆棧操作類指令( 2條) 這類指令的作用是把直接尋址單元的內(nèi)容傳送到堆棧指針 SP所指 的單元中,以及把 SP所指單元的內(nèi)容送到直接尋址單元中。這類指令 只有兩條,下述的第一條常稱為入棧操作指令,第二條稱為出棧操作 指令。需要指出的是,單片機開機復(fù)位后,( SP)默認為 07H,但一般 都需要重新賦值,設(shè)置新的 SP首址。入棧的第一個
18、數(shù)據(jù)必須存放于 SP+1所指存儲單元,故實際的堆棧底為 SP+1所指的存儲單元。 PUSH data ;( SP) +1 ( SP),( data) ( SP) 堆棧 指針首先加 1,直接尋址單元中的數(shù)據(jù)送到堆棧指針 SP所指的單元中 POP data ;( SP) ( data)( SP) -1 ( SP), 堆棧 指針 SP所指的單元數(shù)據(jù)送到直接尋址單元中,堆棧指針 SP再進行減 1操 作 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ?
19、 交換指令( 5條) 這 5條指令的功能是把累加器 A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相 互交換。 XCH A,Rn ;( A) ( Rn)累加器與工作寄存器 Rn中的內(nèi)容 互換 XCH A,Ri ;( A) (( Ri))累加器與工作寄存器 Ri所指 的存儲單元中的內(nèi)容互換 XCH A,data ;( A) ( data)累加器與直接地址單元中的內(nèi) 容互換 XCHD A,Ri ;( A3-0) (( Ri) 3-0)累加器與工作寄存器 Ri所指的存儲單元中的內(nèi)容低半字節(jié)互換 SWAP A ;( A3-0) ( A
20、7-4)累加器中的內(nèi)容高低半字 節(jié)互換 3 1 任務(wù)二 P1口外接 8只 LED發(fā)光二極管模擬彩燈 3.1.4 相關(guān)知識 1、什么是數(shù)據(jù)傳送操作與數(shù)據(jù)傳送指令? MCS-51單片機有哪些數(shù)據(jù) 傳遞指令 ? 16位數(shù)據(jù)傳送指令( 1條) 這條指令的功能是把 16位常數(shù)送入數(shù)據(jù)指針寄存器。 MOV DPTR,#data16 ;#dataH ( DPH), #dataL ( DPL) 16位 常數(shù)的高 8位送到 DPH,低 8位送到 DPL 課堂小結(jié): 1、任務(wù)二的硬件電路與工作原理 2、怎樣使發(fā)光二極管發(fā)亮? 3、什么是數(shù)據(jù)傳送操作和數(shù)據(jù)傳送指令? 4、 MCS-51單片機有哪些數(shù)據(jù)傳送指令? 作業(yè): P69 3.6 3.9