單片機教案(講稿)_第1頁
單片機教案(講稿)_第2頁
單片機教案(講稿)_第3頁
單片機教案(講稿)_第4頁
單片機教案(講稿)_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

汽電101班——《單片機》

單片機原理及應(yīng)用教案

課題名稱MCS-51單片機的概述

課次第(1)次課學時2

課型理論(∨);實驗();

教學目標使學生了解本課程的學習方法、單片機應(yīng)用等知識。

重點、難點及

重點掌握學習方法,解決方法是提高自學能力。

解決方法

1-1、學習本課程的意義

1-2、學習本課程的方法

教學基本內(nèi)容1-3、單片機發(fā)展過程

與教學設(shè)計

1-4、單片機的應(yīng)用

1-5、MCS51和AT89單片機

教學方法講授

教學手段講授

課外學習安排觀察汽車上如導(dǎo)航儀等單片機的應(yīng)用產(chǎn)品,關(guān)注相關(guān)電子專業(yè)的知識

參考資料《計算機原理》、《通信原理》、《數(shù)電》、《模電》

學習效果評測

課外學習

指導(dǎo)安排

教學后記

1

汽電101班——《單片機》

單片機原理及應(yīng)用講稿

教學內(nèi)容備注

第一章概論

1-1、學習本課程的意義

一、單片機的廣泛應(yīng)用

二、自動化專業(yè)的必修課

三、畢業(yè)設(shè)計

四、畢業(yè)后的應(yīng)用

1-2、學習本課程的方法

一、多記、多看、多練

二、多做實驗、驗證程序

三、對典型環(huán)節(jié)要熟記

四、隨時做好應(yīng)用的準備

五、有自學和專研的精神

六、實踐出真理

1-3、單片機發(fā)展過程

第一階段71——74年四位4004

第二階段74——78年76年的Inter公司的MCS48(8位)

第三階段78——83年高性能8位MCS-5116位MCS-96

第四階段1983年飛速發(fā)展和應(yīng)用階段

今后發(fā)展趨勢:

1、多功能

A/D、D/A大存儲量、驅(qū)動能力等

2、高性能

多CPU、高速度指令堆棧(RISC),流水線

3、低電壓、低功率

便攜式產(chǎn)品、消費類產(chǎn)品、CMOS工藝3V以下、uA級

4、低價格

目前流行的單片機、MCS-51系列的指令系統(tǒng)

AT89C51,AT89S51

1-4、單片機的應(yīng)用

1、儀器儀表2、工業(yè)領(lǐng)域控制器3、醫(yī)療衛(wèi)生4、辦公室自動化5、金融電

子系統(tǒng)6、防盜報警7、無線電8、家用電器9、信息處理10、汽車、航運、

高速公路、航天航空

1-5、MCS51和AT89單片機

以Inter公司8051為內(nèi)核,ATMEL公司利用Flash存儲,增加ISP功能

(串行口)及E2PROM技術(shù)集合一體,研制了真正的單片機,取代了8031和

8051產(chǎn)品

2

汽電101班——《單片機》

*MCS-51和AT89S51單片機的區(qū)別

AT89S51的主要特點:

1、和MCS51相兼容的8位CPU

2、具有4K的Flash、ROM存儲器,128字節(jié)RAM

3、2個定時器16位

4、32個I/O接口

5、1個全雙工串行通信接口VART

6、6個中斷源,4個優(yōu)先級

7、33MHZ的晶振頻率

8、ISP在線編程方式

9、一個WDT看門狗定時器

、雙數(shù)據(jù)指針,

10DPTR0DPTR1

11、向下兼容51全系列產(chǎn)品

3

汽電101班——《單片機》

單片機原理及應(yīng)用教案

課題名稱第二章AT89S51單片機的系統(tǒng)結(jié)構(gòu)

課次第(2-5)次課學時8

課型理論(∨);實驗();

教學目標使學生掌握AT89S51硬件資源、專用寄存器、存儲器結(jié)構(gòu)、并行接口結(jié)構(gòu)。

重點、難點及重點掌握專用寄存器、存儲器結(jié)構(gòu),難點是并行接口結(jié)構(gòu)。解決方法是多

解決方法加練習。

2.1、AT89S系列單片機的硬件結(jié)構(gòu)

2.1.1、AT89S51硬件結(jié)構(gòu)特點(P頁圖2-1)

12

2.1.2引腳功能(P頁圖2-3)

14

2.2、AT89S51單片機的中央處理器CPU,MCU

2.2.1、算術(shù)/邏輯運算部件:ALU

2.2.2、專用寄存器

教學基本內(nèi)容

2.2.3、振蕩器、時鐘電路及時序

與教學設(shè)計

2.3并行接口結(jié)構(gòu)

2.4存儲器結(jié)構(gòu)

2.5布爾處理器

2.6工作方式(復(fù)位、運行、低功耗,掉電)

2.6.1復(fù)位方式

2.6.2單片機在線編輯:ISP

教學方法講授

教學手段講授

課外學習安排14道習題

參考資料教材

學習效果評測

課外學習

每次課前半小時輔導(dǎo)

指導(dǎo)安排

教學后記

4

汽電101班——《單片機》

單片機原理及應(yīng)用講稿

教學內(nèi)容備注

第二章AT89S51單片機的系統(tǒng)結(jié)構(gòu)

2.1、AT89S系列單片機的硬件結(jié)構(gòu)

2.1.1、AT89S51硬件結(jié)構(gòu)特點(P頁圖2-1)

12

特點:

1、內(nèi)部ROM和RAM、R寄存器區(qū)

2、外部存儲器尋址空間

3、輸入輸出I/O接口

4、定時/計數(shù)器

5、中斷與堆棧

6、指令系統(tǒng)

7、布爾處理器

2.1.2引腳功能(P頁圖2-3)

14

2.2、AT89S51單片機的中央處理器CPU,MCU

2.2.1、算術(shù)/邏輯運算部件:ALU

1、運算部件

包括:ALU、布爾處理器、累加器ACC、寄存器B、暫存器1和暫存器2、

程序狀態(tài)寄存器PSW、十進制調(diào)整DA,進行算術(shù)/邏輯運算和布爾操作

2、控制部件

包括:程序計數(shù)器(指針)PC,程序地址寄存器,指令寄存器,指令譯碼

器,條件判斷跳轉(zhuǎn)電路,定時邏輯控制電路ALE,屬于傳輸控制部分和運算部

件一起完成指令的微操作

2.2.2、專用寄存器

1、累加器A

和運算單元一起完成運算、中轉(zhuǎn)站

2、寄存器B

和A一起完成乘除法運算,可做一般寄存器

3、程序狀態(tài)寄存器PSW

CYACFRSRSOVXP

010

CY—進、借位位、AC—半進位位、F—用戶標志

0

RS、RS選擇及寄存器組別的控制位

10

OV—溢出位、X—空、P—奇偶校驗位、A中“1”的個數(shù)

4、數(shù)據(jù)指針:DPTR、DPTR,十六位操作

01

2.2.3、振蕩器、時鐘電路及時序

(1)時鐘電路

5

汽電101班——《單片機》

÷2狀態(tài)

÷3

1/6

機器

÷6

周期、倒數(shù)

外部時鐘輸入

(2)CPU時序概念

①振蕩周期=1/fz②狀態(tài)周期=2/fzS為狀態(tài)=P+P拍

12

③機器周期=12/fz④指令周期=1—4個機器周期

P頁圖2-8

18

2.3并行接口結(jié)構(gòu)

(1)P1口,普通I/O口

帶4個TTL負載

讀鎖存器信號

內(nèi)部總線上位電阻.

引腳

內(nèi)部寫信號

讀引腳信號

準雙向I/O接口

(2)P口

0

普通I/O接口

沒有上拉電阻,自己外接10K的電阻。

低八位地址線/數(shù)據(jù)線。外部擴展時用。

(3)P口

2

普通I/O接口和P口一樣

1

高8位地址、外部擴展時

(4)P3多功能接口

普通I/O接口和P1口一樣

第二功能:P3.0—RXDQ串行輸入

P3.1—TXD串行輸出

P3.2—INT0外部中斷輸入

P3.3—INT1外部中斷

P3.4—T0定時器外部計數(shù)輸入

P3.5—T1定時器外部計數(shù)輸入

P3.6—WR寫信號線

6

汽電101班——《單片機》

P3.7—RD讀信號線

擴展外部時讀寫控制線

2.4存儲器結(jié)構(gòu)

程序存儲器

內(nèi)部:4K:0000H~0FFFHEA=1

外擴:64K0000H~0FFFHEA=0控制線PSEN

數(shù)據(jù)存儲器

內(nèi)部有:R寄存器(00~1FH)位存儲器(20~2FH)

通用寄存區(qū)(30~7FH)特殊寄存器(80~0FFH)

外部可擴60K,控制線為WR,RD

2.4.1程序存儲器

單片機復(fù)位后開始工作PC=0000H

各中斷入口地址.外中斷0=00013H

T0地址=00013H

外中斷1=0013H

T0地址=0013H

串行口=0023H

2.4.2內(nèi)部數(shù)據(jù)存儲器(00~7FH)(80H~0FFH)

1、R寄存器區(qū):00H~1FH

RS1,RS0各R0R1R2R3R4R5R6R7

區(qū)

100區(qū)07H01H…..….….…………07H

011區(qū)08H….…..…..…..….…...0FH

102區(qū)10H….….…..….….….17H

113區(qū)18H….….….….….….1FH

2、位尋地區(qū)

一位寄存器的位地址:20.0H~2F.7H

3、通用寄存區(qū):30H~7FH

4、特殊寄存器區(qū):80H~0FFH不連續(xù)SFR寄存器(P24頁表

2-9)

5、外部數(shù)據(jù)寄存器

DPTR,R0,R1,指針,0000~0FFFH

2.5布爾處理器

CY-位累加器,操作位(20~2FH)00~7FH區(qū)

(0或8的SFR)80~0FFH

2.6工作方式(復(fù)位、運行、低功耗,掉電)

2.6.1復(fù)位方式

1、復(fù)位電路

7

汽電101班——《單片機》

持續(xù)高電平時≥2個機器周期,必須可靠

2,看門狗復(fù)位

啟動看門狗WDT

MOVWDTRST,#1EH

MOVWDTRST,#0E1H

*啟動后,在16383個機器周期內(nèi)必須重復(fù)執(zhí)行WDTRST啟動.

*當WPT溢出后,RST腳輸出98個振蕩周期高電平使單片機復(fù)位.從PC=0000開

始執(zhí)行

3、復(fù)位后SFR的狀態(tài)

PC=0000H,ACC,B,PSW,DPTR,計數(shù)/定時器,串行口,都為00H,而為00H,而

SP=07H,P0~P3=0FFH狀態(tài)

4、低功耗方式:PCON

?…….PD1DL

PD掉電方式位,PD=1進入掉電,單片機停止工作(設(shè)有時鐘)

RAM中的數(shù)據(jù)不變

掉電退出:必須RST(復(fù)位)有效,高電平

IDL待機IDL=1近式待機

單片機CPU停止工作,RC不工作RAM和SFR內(nèi)容不變,中斷系統(tǒng),定時器,串

行口仍然繼續(xù)工作(有時鐘)

待機退出,有中斷自動退出.IDC=0也可復(fù)為退出.

2.6.2單片機在線編輯:ISP

編輯接法,同步串行

串入串出波形(P33圖2-19)

串入

串出

時鐘

讀寫命令(P33頁表2-14)

8

汽電101班——《單片機》

單片機原理及應(yīng)用教案

課題名稱第三章:AT89C51單片機指令系統(tǒng)

課次第(6-8)次課學時6

課型理論(∨);實驗();

教學目標使學生掌握單片機指令系統(tǒng)與尋址方式。

重點、難點及

重點掌握指令系統(tǒng),難點是尋址方式。解決方法是多加練習。

解決方法

第三章:AT89C51單片機指令系統(tǒng)

§3-1-1指令格式

§3-1單片機系統(tǒng)的尋址方式

§3-1-2尋址方式

教學基本內(nèi)容§3-2單片機系統(tǒng)的分類

與教學設(shè)計§3-2-1傳遞指令

§3-2-2算術(shù)運算類指令

§3-2-3邏輯運算及移位類指令

§3-2-4控制轉(zhuǎn)移類指令

§3-2-5位操作指令

教學方法講授

教學手段講授

課外學習安排14道習題

參考資料教材

學習效果評測

課外學習

每次課前半小時輔導(dǎo)

指導(dǎo)安排

教學后記

9

汽電101班——《單片機》

單片機原理及應(yīng)用講稿

教學內(nèi)容備注

第三章:AT89C51單片機指令系統(tǒng)

§3-1單片機系統(tǒng)的尋址方式

§3-1-1指令格式

標號:操作碼目的操作數(shù),源操作數(shù)1,源操作數(shù)1,源操作數(shù)2;注釋

LOOP:CJNEA,31H,LOOP,;A≠(31H)轉(zhuǎn)LOOP1

INCA;A+1→A

2.指令中常用符號

(1)R和Ri=0,1,n=0~7

IN

(2)#data,#立即數(shù)data為8位數(shù)字

(3)#data16位數(shù)字

(4)rel相對地址

(5)addr1616位地址,64K范圍

⑹addr1111位目的地址,2K地址范圍

⑺divect8位內(nèi)存直接接地(特殊寄存器)

⑻bit位地址

⑼@R,@DPTR間接尋址寄存器,R為指針

ii

⑽[x]表示x中的內(nèi)容

⑾((x))x為指針,[x]為地址;該地址中內(nèi)容

⑿1和→1表示取反;→表示流向

§3-1-2尋址方式

1、寄存器尋址,R寄存器

MOVA,R(A)←(R)

00

2、立即尋址,#

MOVR,#30H;(R)=20H

00

3、寄存器間接尋址,@

MOVA,@R;(A)=((R))MOVA,@DPTR

00

4、直接尋址,無

MOVR,30H(R)=(30H)

00

5、變址尋址,查表

MOVA,@A+DPTR;A=((A+DPTR))A變址增量DPTR,首地址基址

6、相對尋址;

Jzloop

7、位尋址

MOVC,24H

§3-2單片機系統(tǒng)的分類

分為五類:傳送類、算術(shù)運算、邏輯運算、控制轉(zhuǎn)移(分支)、

位操作

§3-2-1傳遞指令

1、內(nèi)部數(shù)據(jù)傳遞類

(1)立即尋址:對象A,地址,direct,@R,R,DPTR和#data

in

5條,(P39頁)單向傳遞

10

汽電101班——《單片機》

(2)寄存器尋址:對象A,R,@R,direct,和A,R

nin

5條

(3)直接尋址:對象A,R,@R,direct,和direct

ni

4條

2、外部數(shù)據(jù)傳遞,(RAM擴展)MOVX

MOVXA,@DPTR

MOVXA,@R(P為高位)

i2

MOVX@R,A

MOVX@DPTR,A

3、程序存儲器的傳遞

MOVCA,@A+DPTR

MOVCA,@A+PC

4、數(shù)據(jù)交換指令:對象A,@R,R,direct和A

in

XCHA,direct

XCHA,@R

i

XCHA,R

0

XCHDA,@R(A)((R))

03~003~0

SWAPA(A)(A)

7~73~0

5、堆棧操作指令

PUSHdirect壓棧,先SP1→SP后((SP))←(direct)

POPdirect出棧先((SP))→direct后SP-1→SP

§3-2-2算術(shù)運算類指令

1、加法指令A(yù),#data,direct,@R,R和A

in

ADDA,#data

ADDA,direct

ADDA,R

0

ADDA,@R

0

2、帶進位加法

ADDA,#data

ADDA,direct

ADDA,R

i

ADDA,@R

i

3、帶進位減法

SUBBA,#data

SUBBA,direct

SUBBA,R

i

SUBBA,@R

0

4、加一、減一指令

INCA

INCdirect

INC@R

0

INCR

0

INCDPTR十六位

DECdirect

DEC@R

0

DECR

0

11

汽電101班——《單片機》

DECA

5、乘除法指令

乘法:NULAB

A*B的低8位存在A中,高8位存在B中

除法:DIVAB

A÷B的商存在A中,余數(shù)存在B中

6、二—十進制調(diào)整

DAA將二進制調(diào)整為十進制

§3-2-3邏輯運算及移位類指令

1、邏輯“與”指令A(yù)NL共6條

對象:A,#data,@R,R,direct和A,direct

in

ANLdirect,A

ANLdirect,#data

2、邏輯“或”指令ORL共6條,和“與”形式相同

3、邏輯“異或”XRL共6條,和“與”形式相同

4、累加器A取反、清零指令

取反:CPLA

清零:CPRA

5、移位指令

(1)不帶進位

左移:

右移:

(2)帶進位

左移:

右移:

§3-2-4控制轉(zhuǎn)移類指令

1、無條件轉(zhuǎn)移

LJMPaddr16;64K

AJMPaddr11;2K

STMPrel;-128~+127

JMP@A+DPTR;散轉(zhuǎn)

2、條件轉(zhuǎn)移

①累加器判零轉(zhuǎn)移指令2條

JErelA=0轉(zhuǎn)移;JNErelA≠0轉(zhuǎn)移

②比較轉(zhuǎn)移指令4條

CJNEA,#data,rel

CJNEA,direc,rel

12

汽電101班——《單片機》

CJNE@R,#data,rel

i

CJNER,#data,rel

n

③轉(zhuǎn)移、減一循環(huán)指令:DJNE減一,不為零轉(zhuǎn)移

DJNEdirect,rel

DJNER,rel

n

3、子程序調(diào)用指令

LCALLaddr16;子程序標號

ACALLaddr11

4、CPU控制指令

子程序返回RET

中斷程序返回RETI

空操作NOP

§3-2-5位操作指令

1、位傳遞指令

MOVbit,CMOVC,bit

2、置位指令(清零、復(fù)位、置“1”、置位)

CLRbitCLRC

SETBbitSETBC

3、位邏輯操作指令

ANLC,bitANLC,/bit寫

ORLC,bitOPLC,/blt或

CPLCCPLbit取反

4、位條件轉(zhuǎn)移指令

(1)通過進位位判斷轉(zhuǎn)移

JCrelJNCrel

(2)通過位單元內(nèi)容判斷轉(zhuǎn)移

JBbit,relJNBbit,rel

JBCbit,rel為“1”轉(zhuǎn)移并清零該位

13

汽電101班——《單片機》

單片機原理及應(yīng)用教案

課題名稱第四章匯編語言程序設(shè)計基礎(chǔ)

課次第(8-11)次課學時8

課型理論(∨);實驗();

教學目標使學生掌握匯編語言簡單程序設(shè)計方法。

重點、難點及

重點掌握設(shè)計方法,難點是循環(huán)程序和查表程序。解決方法是多加練習。

解決方法

第四章MCS_51匯編語言程序設(shè)計

4.1匯編語言程序設(shè)計概述

4.2單片機匯編語言程序的基本結(jié)構(gòu)形式

4.2.1順序程序設(shè)計

4.2.2分支程序設(shè)計

4.2.3循環(huán)程序設(shè)計

教學基本內(nèi)容

4.3MCS-51單片機匯編語言程序設(shè)計舉例

與教學設(shè)計

4.3.1算術(shù)運算程序

4.3.2數(shù)制轉(zhuǎn)換程序

4.3.4查表程序

4.4匯編語言原程序的編輯與匯編

4.5MCS-51匯編語言偽指令

教學方法講授

教學手段講授

課外學習安排24道習題

參考資料教材

學習效果評測

課外學習

每次課前半小時輔導(dǎo)

指導(dǎo)安排

教學后記

14

汽電101班——《單片機》

單片機原理及應(yīng)用講稿

教學內(nèi)容備注

第四章MCS_51匯編語言程序設(shè)計

4.1匯編語言程序設(shè)計概述

要求:熟悉匯編語句的基本格式,掌握匯編語言程序的三種基本結(jié)構(gòu)。

4.1.1匯編語言的特點與語句格式

特點:<1>匯編語言程序代碼生成效率高,運行速度快;

<2>匯編語言程序的開發(fā)難度較大;

<3>匯編語言控制的實時性好;

<4>匯編語言的可移植性較差;

匯編語言的語句格式:

標號:操作碼操作數(shù);注釋

關(guān)于語句格式的說明:

1、標號:標號是由1-8個ASCII字符組成,頭一個字符必須是字母;

標號不能使用系統(tǒng)中已經(jīng)定義的助記符、偽指令及其它標號;

標號的后面必須加冒號;

標號并不是每一條語句都需要;

2、操作碼:表明指令的作用與功能,不能缺少。

3、操作數(shù):是指令中的操作對相,一條指令中的操作數(shù)可以是1個、2個、3

個或沒有。

4、注釋:不生成可執(zhí)行的機器代碼,但是能增加程序的可閱讀性,便于程序

的調(diào)試與交流。

4.1.2匯編語言程序設(shè)計的特點

1、要求程序員要數(shù)據(jù)、程序空間的分配與使用作出具體的安排;

2、要求開發(fā)人員具有較好的硬件知識;

3、匯編語言程序設(shè)計的技巧較高

4.2單片機匯編語言程序的基本結(jié)構(gòu)形式

4.2.1順序程序設(shè)計

順序程序結(jié)構(gòu):無分支,無跳轉(zhuǎn)。

例1:有一變量存放在內(nèi)部RAM的20H單元,其取值范圍為:00H—05H,編制

一段程序求該變量的平方值,將結(jié)果存入21H單元。

程序如下:

ORG1000H

START:MOVDPTR,#2000H

MOVA,20H

MOVCA,@A+DPTR

MOV21H,A

SJMP$

;

ORG2000H

TABLE:

DB00H,01H,04H,09H,10H,19H

END

例2、三字節(jié)無符號數(shù)的加法

15

汽電101班——《單片機》

加數(shù):50H51H52HMOVA,@R0

被加數(shù):53H54H55HADDCA,@R1

結(jié)果:50H51H52HMOV@R0,A

程序如下:MOVR0,#52HDECR0

movR1,55hDECR1

MOVA,@R0MOVA,@R0

ADDA,@R1ADDCA,@R1

MOV@R0,AMOV@R0,A

DECR0MOV00H,C

DECR1

4.2.2分支程序設(shè)計

例1、求雙字節(jié)數(shù)的補碼

程序如下:

START:MOVR0,#add1MOVA,@R0

MOVR1,#add2CPLA

MOVA,@R0MOV@R1,A

CPLASJMPLOOP1

INCAZERO:MOVA,@R0

MOV@R1,ACPLA

INCR0INCA

INCR1MOV@R1,A

JZZEROLOOP1:END

例2、根據(jù)R7的內(nèi)容轉(zhuǎn)向相應(yīng)的處理程序

程序如下:

START:MOVDPTR,#TAB

MOVA,R7

ADDA,R7

MOVR3,A

MOVCA,@A+DPTR;先取出高8位地址

XCHA,R3

INCA

MOVCA,@A+DPTR;再取出低8位地址

MOVDPL,A

MOVDPH,R3

CLRA

JMP@A+DPTR

TAB:DWPORT0

DWPORT1

………

DWPORTN

4.2.3循環(huán)程序設(shè)計

循環(huán)程序結(jié)構(gòu):當型循環(huán)/直到型循環(huán)

例1、50ms延時程序(設(shè)系統(tǒng)為12M的晶振)

16

汽電101班——《單片機》

DELAY:MOVR7,#200

DELAY_1:MOVR6,#123

NOP

DELAY_2:DJNZR6,DELAY_2

DJNZR7,DELAY_1

RET

例2、將內(nèi)部RAM中起始地址為add的數(shù)據(jù)串傳送到外部RAM起始地址為

buffer的存儲區(qū)中去,直到發(fā)現(xiàn)”$”符號傳送結(jié)束.

程序如下:

MOVR0,#addLOOP1:MOVX@DPTR,A

MOVDPTR,#bufferINCR0

LOOP0:MOVA,@R0INCDPTR

CJNEA,#24H,LOOP1SJMPLOOP0

SJMPLOOP2LOOP2:END

4.3MCS-51單片機匯編語言程序設(shè)計舉例

要求:熟悉與掌握常用的基本匯編語言子程序設(shè)計的基本方法,重點包括算

術(shù)運算程序、代碼轉(zhuǎn)換程序、定時程序、查表程序等

4.3.1算術(shù)運算程序

1.加減法運算

例1:三字節(jié)無符號數(shù)的加法

加數(shù):50H51H52HMOVA,@R0

被加數(shù):53H54H55HADDCA,@R1

結(jié)果:50H51H52HMOV@R0,A

程序如下:MOVR0,#52HDECR0

MOVR1,55HDECR1

MOVA,@R0MOVA,@R0

ADDA,@R1ADDCA,@R1

MOV@R0,AMOV@R0,A

DECR0MOV00H,C

DECR1

例2:設(shè)有兩個N字節(jié)無符號數(shù)分別存放在內(nèi)部RAM的單元中,低字節(jié)在前,

高字節(jié)字節(jié)在后,分別用R0指示被減數(shù)單元地址,由R2指示減數(shù)單元地址,

其差存放在原被減數(shù)的單元地址中。

CLRCINCR0

MOVR2,#NINCR1

LOOP:MOVA,@R0DJNZR2,LOOP

SUBBA,@R1JCQAZ

MOV@R0,ARET

例3:假定R2、R3和R4、R5分別存放兩個16位的帶符號的二進制數(shù),其中

R2和R4的最高位為符號位,請編寫帶符號雙字節(jié)數(shù)的加減法運算程序,把運

算結(jié)果存入R6、R7單元。

17

汽電101班——《單片機》

BSUB:MOVA,R4MOVACC.7,C

CPLACC.7MOVR4,A

MOVR4,ARET

BADD:MOVA,R2JIAN:MOVA,R3

MOVC,ACC.7CLRC

MOVF0,CSUBBA,R5

XRLA,R4MOVR7,A

MOVC,ACC.7MOVA,R2

MOVA,R2SUBBA,R4

CLRACC.7MOVR6,A

MOVR2,AJNBACC.7,QWE

MOVA,R4BMP:MOVA,R7

CLRACC.7CPLA

MOVR4,AADDA,#1

JCJIANMOVR7,A

JIA:MOVA,R3MOVA,R6

ADDA,R5CPLA

MOVR7,AADDCA,#0

MOVA,R2MOVR6,A

ADDCA,R4CPLF0

MOVR6,ASJMPQWE

JBACC.7,QAZ......

QWE:MOVC,F0QAZ:

2.乘法運算

例、兩個雙字節(jié)數(shù)的乘法運算,RAM的R2、R3和R6、R7單元存放兩個雙字

節(jié)無符號數(shù)(R2、R6存放高字節(jié)),計算兩數(shù)之積并存入R4、R5、R6、R7單

元中。

參考程序如下:

DBMUL:MOVA,R3XCHA,R6

MOVB,R7XCHA,B

MULABADDCA,R5

XCHA,R7MOVR5,A

MOVR5,BMOVF0,C

MOVB,R2MOVA,R2

MULABMULAB

ADDA,R6ADDA,R5

MOVR4,AMOVR5,A

CLRACLRA

ADDCA,BMOVACC.0,C

MOVR5,AMOVC,F0

MOVA,R6ADDCA,B

MOVB,R3MOVR4,A

MULABRET

ADDA,R4

18

汽電101班——《單片機》

4.3.2數(shù)制轉(zhuǎn)換程序

1、十六進制數(shù)轉(zhuǎn)換為ASCII碼

例、在內(nèi)部RAM的hex單元存放由2位十六進制數(shù),試將其轉(zhuǎn)換成ASCII碼,

并存放在asc和asc+1單元中。

其參考程序如下:

MOVSP,#3FHPOPACC

MAIN:PUSHhexANLA,#0FH

ACALLHASCADDA,#07

POPhexMOVCA,@A+DPTR

MOVA,hexPUSHACC

SWAPAINCSP

PUSHACCINCSP

ACALLHASCRET

POPasc+1ASCTAB:

;;;;;;DB"0,1,2,3,4,5,6,7,8,9"

HASC:DECSPDB"A,B,C,D,E,F"

DECSP

2、ASCII碼轉(zhuǎn)換為十六進制碼

例、把外部RAM30H-3FH單元的ASCII碼轉(zhuǎn)換成十六進制碼并依次存入內(nèi)部RAM

的60H-67H單元。

MAIN:MOVR0,#30H

MOVR1,#60H

MOVR7,#08H

AB:ACALLTRAN

SWAPA

MOVX@R1,A

INCR0

ACALLTRAN

XCHDA,@R1

INCR0

INCR1

DJNZR7,AB

HALT:AJMPHALT

TRAN:CLRC

MOVXA,@R0

SUBBA,#30H

CJNEA,#0AH,BB

AJMPBC

BB:JCDONE

BC:SUBBA,#07H

DONE:RET

4.3.3定時程序

例、定時程序如下:

MOVR5,#TIME1

LOOP2:MOVR4,#TIME2

19

汽電101班——《單片機》

LOOP1:NOP

NOP

DJNZR4,LOOP1

DJNZR5,LOOP2

RET

該定時程序的執(zhí)行時間為:T=(((1+1+2)*TIME2+1+2)*TIME1+1)*T0

其中T0為單片機的機器周期

4.3.4查表程序

例1查有鍵按下字符串是否相等,相等A=0,否則A≠0兩字符串首地址Ro,R1

長度在A中,占用B

BJ:MOVR2,A

BJ1:MOVA,@Ro

MOVB,@Ro

CJNZA,B,LOOP;不能轉(zhuǎn)出

CNCRO;相等

DJNZR2,BJ1;

MOVA,#0;全相等

RET

LOOP:MOVA,#0全相等

RET

LOOP:MOVA,#1

RET

例2、根據(jù)鍵值轉(zhuǎn)向相應(yīng)的處理程序,

MOVDPTR,#BSPOPDPL

RLACLRA

MOVR2,AJMP@A+DPTR

MOVCA,@A+DPTRBS:

PUSHACCDBRK0L,RK0H

MOVA,R2DBRK1L,RK1H

INCADBRK2L,RK2H

MOVCA,@A+DPTR......

MOVDPH,A

20

汽電101班——《單片機》

例3查表程序設(shè)計

1.七段碼表

P0.7p0.6p0.5p0.4p0.3p0.2p0.1p0.0

hgfedcba“0”

00111111“1”

2.鍵值表

注意:常用的查表指令:

MOVCA,@A+DPTR

MOVCA,@A+PC

當使用MOVCA,@A+PC指令時,要注意查表指令與表首單元地址之間的差,并

對A的內(nèi)容進行相應(yīng)的修改。

0080900095MOVDPTR,#BS008FF583MOVDPH,A

008323RLA0091D082POPDPL

0084FAMOVR2,A0093E4CLRA

00852400ADDA,#0DH009473JMP@A+DPTR

008783MOVCA,@A+PCBS:

0088C0E0PUSHACC00950000DB00,00

008AEAMOVA,R20097000BDB00,11

008B04INCA00990021DB00,33

008C2400ADDA,#06H......

008E83MOVCA,@A+PC

4.4匯編語言原程序的編輯與匯編

要求:熟悉匯編語言程序編輯與匯編的基本方法

一、匯編語言源程序的編輯與匯編

1、編輯匯編源程序

文件名:*.ASM

文件內(nèi)容:符合匯編語言源程序的書寫格式

2、源程序的匯編

21

汽電101班——《單片機》

4.5MCS-51匯編語言偽指令

要求:掌握常用的匯編語言偽指令及其應(yīng)用

1、匯編起始偽指令ORG

格式:[標號:]ORG16位地址

例:ORG0050H

MAIN:MOVSP,#50H

-----------

2、匯編結(jié)束偽指令END

格式:[標號:]END[表達式]

3、字節(jié)數(shù)據(jù)定義偽指令DB

格式:[標號:]DBD1,D2,.....

例:DB"Howareyou!"

DB-2,-4,-6,8,10,18

4、字定義偽指令DW

格式:[標號:]DW16位數(shù)據(jù)表

例:ORG1000H

WORD:DW324AH,3CH

匯編后:(1000H)=32H,(1001H)=4AH

(1002H)=00H,(1003H)=3CH

5、空間定義偽指令DS

ORG3000H

BUF:DS50

............

6、賦值偽指令EQU

格式:符號名EQU表達式

COOLEREQUP1.0

HEATEREQUP1.2

VALUEEQU40H

........

SETBCOOLER

CLRHEATER

MOVVALUE,A

7、位地址符號定義偽指令BIT

QIDONGBITP1.0

FLAGBIT20H

22

汽電101班——《單片機》

單片機原理及應(yīng)用教案

課題名稱第五章:AT89S51單片機中斷系統(tǒng)

課次第(12-13)次課學時4

課型理論(∨);實驗();

教學目標使學生掌握中斷系統(tǒng)的設(shè)計方法。

重點、難點及重點掌握與中斷有關(guān)的寄存器,難點是中斷的編程及應(yīng)用。解決方法是多

解決方法加練習。

第五章中斷系統(tǒng)

§5-1AT89單片機的中斷及中斷請求源

§5-1-1中斷概念

§5-1-2中斷源AT89S51與中斷入口地址

§5-2與中斷有關(guān)的寄存器

教學基本內(nèi)容§5-3中斷響應(yīng)過程及應(yīng)用

與教學設(shè)計§5-3-1中斷響應(yīng)過程

§5-3-2中斷的編程及應(yīng)用

教學方法講授

教學手段講授

課外學習安排6道習題

參考資料教材

學習效果評測

課外學習

每次課前半小時輔導(dǎo)

指導(dǎo)安排

教學后記

23

汽電101班——《單片機》

單片機原理及應(yīng)用講稿

教學內(nèi)容備注

第五章中斷系統(tǒng)

§5-1AT89單片機的中斷及中斷請求源

§5-1-1中斷概念

1.中斷概念:處理過程學會事件處理

2.引入中斷的優(yōu)點

(1)高速CPU和慢速外設(shè)的矛盾

(2)及時處理信息,提高時實控制能力

(3)具備故障處理能力

§5-1-2中斷源AT89S51中斷入口地址

五個中斷源:INT0(0003H)TO(000BH)

INT1(0013H)T1(001BH)

VART(0023H)[T2(002BH)]

中斷系統(tǒng)示意圖:(P83圖5-2)

§5-2與中斷有關(guān)的寄存器

1.定時/計數(shù)中斷控制寄存器

TCON(88H)

TF1TR1TF0TR0IE1IT1IE0IT0

TFiIEi中斷標志

當TFi為1時有定時器益出Ti發(fā)出中斷請求,執(zhí)行中斷程序時清零

當IEi=1時,有外部引腳提出中斷請求

ITi為外部中斷方式選擇端:軟件設(shè)置

設(shè)ITi=1時外部INTi引腳為下降沿觸發(fā)IE使IEi=1

設(shè)ITi=0時外部INTi引腳為低電平出發(fā)IE使IEi=1

TRi為定時/計數(shù)進行計數(shù)TRi=0定時/計數(shù)停止計數(shù)

2.串行口中斷:

99H98H

…………….TIRI

SCON(98H)

24

汽電101班——《單片機》

RI=1接收完一組數(shù)據(jù),可以讀取SBUF,必須軟件清零

TI=1已發(fā)送完一組數(shù)據(jù),可以讀取SBUF,必須軟件清零

SBUF為串行口接收,發(fā)送寄存器地址99H

3.中斷允許寄存器:

IE(A8H)

EAET2ESET1EX1ET0EX0

EA=1#CUP中斷EA=0禁止CUP中斷

EX0=1允許INT0中斷EX0=0禁止INTO中斷

ET0=1允許T0中斷ET0=0禁止TO中斷

EX1=1允許INT1中斷EX1=0禁止INT1中斷

ET1=1允許T1中斷ET1=0禁止T1中斷

ES=1允許UART中斷ES=0禁止串行口中斷

ET2=1允許T2中斷ET2=0禁止T2中斷

4.中斷優(yōu)先級

1.在同級下查詢順序

2.兩個優(yōu)先級:中斷優(yōu)先控制寄存器IP

IP(0B8H)

PSPT1PX1PT0PX0

當哪位被軟件置”1”為高級中斷源,可以中斷嵌套

§5-3中斷響應(yīng)過程

§5-3-1中斷響應(yīng)過程

1.不響應(yīng)中斷的情況

(1)CUPE執(zhí)行同級或高級中斷程序,必須等執(zhí)行完

(2)執(zhí)行指令沒有執(zhí)行完,必須執(zhí)行完

(3)執(zhí)行RETI和IE.IP指令,必須執(zhí)行完該指令,且再執(zhí)行一條指令后

2.中斷響應(yīng)過程:

(1)置位相對應(yīng)優(yōu)先觸發(fā)器

(2)取下一條指令的PC指針壓棧SP+2

(3)執(zhí)行一條硬件轉(zhuǎn)移指令:PC取對應(yīng)的中斷入口地址

(4)執(zhí)行中斷服務(wù)子程序

(5)中斷返回彈出PC值SP-2

3.中斷響應(yīng)時間:最短需要三個機器周期

§5-3-2中斷的篇程及應(yīng)用

1.編寫過程:

(1)中斷源的初始化:INT引腳定時/計數(shù)UART串行口

等初始要求:對應(yīng)矢量口地址:ORG0000H初始化

AJMPCSH

ORG0003H

AJMPWBZD

ORG000BH

(2)確定優(yōu)先級同級可以不寫

(3)開中斷和允許中斷源中斷以上在主程序中篇寫(初始化)

(4)篇寫中斷時及多子程序:對應(yīng)中斷入口

2.應(yīng)用

25

汽電101班——《單片機》

例1:篇寫外部中斷INTO的電平觸發(fā)的初始化程序

CLRITO;電平觸發(fā)

SETBPXO;允許外中斷INTO

S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論