K0單片機(jī)C語(yǔ)言教程_第1頁(yè)
K0單片機(jī)C語(yǔ)言教程_第2頁(yè)
K0單片機(jī)C語(yǔ)言教程_第3頁(yè)
K0單片機(jī)C語(yǔ)言教程_第4頁(yè)
K0單片機(jī)C語(yǔ)言教程_第5頁(yè)
已閱讀5頁(yè),還剩152頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

章單片機(jī)基礎(chǔ)知識(shí)單片機(jī)(單片微控制器)不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)“計(jì)算機(jī)系統(tǒng)”集成到一個(gè)芯片上。一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!代:七十年代后期,

4

位邏輯控制器件發(fā)展到

8

位。NMOS

工藝(速度低,功耗大、集成度低)。代表產(chǎn)品:MC6800

Intel

8048

第二代:八十年代初,

CMOS

工藝,并逐漸被高速低功耗的

HMOS

工藝代替。代表產(chǎn)品:

MC146805

Intel

8051

第三代:近十年來(lái),

MCU

的發(fā)展出現(xiàn)了許多新特點(diǎn):

1

)在技術(shù)上,由可擴(kuò)展總線型向純單片型發(fā)展,即只能工作在單片方式。

2

MCU

的擴(kuò)展方式從并行總線型發(fā)展出各種串行總線。

3

)將多個(gè)

CPU

集成到一個(gè)

MCU

中。

4

)在降低功耗,提高可靠性方面,

MCU

工作電壓已降至

3.3V

。第四代:

FLASH

的使用使

MCU

技術(shù)進(jìn)入了第四代。單片機(jī)的發(fā)展歷史K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!

抗干擾能力強(qiáng),可靠性好,工作溫度范圍寬控制功能強(qiáng),數(shù)值計(jì)算能力相對(duì)較差

指令系統(tǒng)比通用微機(jī)的指令系統(tǒng)簡(jiǎn)單,具有許多面向控制的指令

具有很高的性價(jià)比

單片機(jī)的特點(diǎn)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!

單片機(jī)在智能儀器儀表中的應(yīng)用;

單片機(jī)在工業(yè)測(cè)控中的應(yīng)用;

單片機(jī)在計(jì)算機(jī)網(wǎng)絡(luò)和通訊技術(shù)中的應(yīng)用;單片機(jī)在日常生活及家電中的應(yīng)用;單片機(jī)在辦公自動(dòng)化方面。

單片機(jī)的應(yīng)用領(lǐng)域K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!學(xué)習(xí)方法讀圖:

實(shí)驗(yàn)儀器電路圖是最好的硬件例子,學(xué)會(huì)了,將來(lái)做適當(dāng)修改即可設(shè)計(jì)出各種實(shí)用圖紙。讀程序:上機(jī)操作的程序是最好的軟件例子,學(xué)會(huì)了,將來(lái)做適當(dāng)修改即可設(shè)計(jì)出各種實(shí)用程序。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!單片機(jī)應(yīng)用系統(tǒng)硬件組成

K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!2功能特點(diǎn)和實(shí)驗(yàn)項(xiàng)目(續(xù))4×6行列鍵盤(pán)電路;按鍵中斷及復(fù)位電路;

A/D轉(zhuǎn)換器的應(yīng)用電路;溫度壓力擴(kuò)展應(yīng)用電路;紅外遙控電路;4×4LED點(diǎn)陣模塊;7段碼顯示電路;LCD;

蜂鳴器驅(qū)動(dòng)控制電路;音樂(lè)喇叭驅(qū)動(dòng)控制電路;步進(jìn)電機(jī)、直流電機(jī)實(shí)驗(yàn);RS-232和RS-485接口電路;CAN應(yīng)用電路;

LIN應(yīng)用電路;SPI應(yīng)用電路。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!NEC單片機(jī)產(chǎn)品概述K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!第四章

硬件結(jié)構(gòu)/構(gòu)建最小系統(tǒng)1.1引腳圖、內(nèi)部功能框圖節(jié)

NEC單片機(jī)硬件結(jié)構(gòu)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!P717K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!1.2引腳功能(1)電源引腳CPU電源VDD,地VSS;

端口電源EVDD,地EVSS;

外部低電壓檢測(cè)的電壓輸入引腳EXLVI[1]。圖3.225V穩(wěn)壓電路圖K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!(5)定時(shí)/計(jì)數(shù)器2通道16位定時(shí)器/事件計(jì)數(shù)器TM00\TM012通道8位定時(shí)器/事件計(jì)數(shù)器TM50\TM512通道8位定時(shí)器H0\H11通道鐘表定時(shí)器1通道看門(mén)狗定時(shí)器K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!(7)串口1個(gè)1線LIN總線UART61個(gè)3線串行UART02個(gè)3線串行CSI10和CSI111個(gè)具有自動(dòng)收發(fā)功能的3線串行CSIA01個(gè)I2C總線K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!第二節(jié)最小系統(tǒng)構(gòu)成

2.1復(fù)位電路圖4.3復(fù)位電路K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!2.2時(shí)鐘電路78F0547D單片機(jī)的時(shí)鐘產(chǎn)生有以下3種方法:(1)外部時(shí)鐘方式:主時(shí)鐘:將外部時(shí)鐘脈沖接入EXCLK引腳;子時(shí)鐘:將外部時(shí)鐘脈沖接入EXCLKS引腳。(X2)S(XT2)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!(3)高速內(nèi)置時(shí)鐘78K0內(nèi)置8MHz時(shí)鐘,如無(wú)特殊要求,可利用內(nèi)置時(shí)鐘。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!2.378K0單片機(jī)最小系統(tǒng)圖4.6最小系統(tǒng)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!使用步驟1:在程序的開(kāi)始聲明特殊功能能寄存器

#pragmasfr/*特殊功能能寄存器聲明*/K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!voidmain(){IMS=0XCC;/*內(nèi)部存儲(chǔ)器容量切換寄存器設(shè)置,必須有*/IXS=0X00;/*內(nèi)部擴(kuò)展RAM容量切換寄存器設(shè)置,必須有*/….}對(duì)選定的某型號(hào)的CPU,設(shè)定值是固定的。對(duì)78F0547D:IMS=0XCC;1k字節(jié)內(nèi)部高速RAM48k字節(jié)內(nèi)部ROM(FLASH)IXS=0X00;6k字節(jié)內(nèi)部擴(kuò)展RAMK0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!圖

5.2交通燈硬件電路K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!三態(tài)門(mén)1、與非門(mén)2、場(chǎng)效應(yīng)管3、上拉電阻4、非門(mén)5和6、選擇器7、輸入緩沖器8125683740:輸出0:1K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!1、輸出功能設(shè)置端口功能寄存器PM為0。1號(hào)三態(tài)門(mén)打開(kāi),輸出鎖存寄存器P中的值就對(duì)外輸出。使用傳送指令對(duì)輸出鎖存器進(jìn)行寫(xiě)操作,輸出鎖存器的內(nèi)容從引腳輸出。一旦數(shù)據(jù)寫(xiě)入輸出鎖存器,它將一直保存到新數(shù)據(jù)被寫(xiě)入。當(dāng)復(fù)位信號(hào)產(chǎn)生時(shí)輸出鎖存器的內(nèi)容被清零。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!3、上拉電阻選擇(當(dāng)端口功能寄存器PM為1——輸入時(shí))設(shè)置上拉電阻選擇寄存器PU為1。2號(hào)與非門(mén)輸出為0,功率管導(dǎo)通,即可使用上拉電阻。上拉電阻將輸入信號(hào)通過(guò)電阻連接到電源,電阻起限流作用。當(dāng)開(kāi)關(guān)斷開(kāi)時(shí),上拉電阻迅速將信號(hào)拉高為高電平。若沒(méi)有上拉電阻,則開(kāi)關(guān)斷開(kāi)時(shí)的電平不確定。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!//單片機(jī)端口使用輸出功能,端口模式寄存器設(shè)置為0//#pragmasfr/*特殊功能能寄存器聲明*/voiddelay()/*燈延時(shí)函數(shù)*/{inti,j;for(i=0;i<500;i++){for(j=0;j<500;j++);}}K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!存儲(chǔ)器K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!Q3D3Q2D2Q1D1Q0D0●●●●●●D3D2D1D0CLKCLRWR●●●●●●&&R0●●●●●●●●●1個(gè)4位存儲(chǔ)單元——1×4存儲(chǔ)器原理圖K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!微型計(jì)算機(jī)結(jié)構(gòu)框圖K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!CPU和控制寄存器CPU中包含了3個(gè)控制寄存器:程序計(jì)數(shù)器PC程序狀態(tài)字PSW堆棧指針SP控制寄存器的內(nèi)容不能由通常的指令改寫(xiě),只能由幾個(gè)特殊指令改寫(xiě);內(nèi)容的改變通常是自動(dòng)的。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第38頁(yè)!中斷向量表K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第39頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第40頁(yè)!(ABDBCB)0正在服務(wù)高優(yōu)先級(jí)中斷K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第41頁(yè)!中斷服務(wù)的基本操作:中斷源生成器:外設(shè)提出中斷請(qǐng)求,當(dāng)脈沖沿檢測(cè)成功時(shí),中斷請(qǐng)求被通過(guò);中斷請(qǐng)求標(biāo)志位:被通過(guò)的中斷請(qǐng)求,在中斷請(qǐng)求標(biāo)志寄存器IF中設(shè)置相應(yīng)的中斷請(qǐng)求標(biāo)志位IFx。每個(gè)中斷源僅設(shè)置相應(yīng)的一個(gè)中斷請(qǐng)求標(biāo)志位(1位),因此,在中斷被響應(yīng)之前,即使是相同的中斷請(qǐng)求再次發(fā)生,也只會(huì)被認(rèn)為發(fā)生了一次。中斷請(qǐng)求標(biāo)志能由CPU自動(dòng)清除。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第42頁(yè)!實(shí)際執(zhí)行中斷的CPU:

最高優(yōu)先級(jí)的中斷請(qǐng)求得到優(yōu)先級(jí)控制器批準(zhǔn),CPU準(zhǔn)備響應(yīng)該中斷請(qǐng)求,準(zhǔn)備過(guò)程自動(dòng)完成下列工作:清除該中斷請(qǐng)求標(biāo)志IF;將PSW、PC的內(nèi)容依次保存到堆棧中——保護(hù)現(xiàn)場(chǎng);修改PSW——將IE標(biāo)志復(fù)位為0(關(guān)中斷),并將被響應(yīng)的中斷的優(yōu)先級(jí)PR送到ISP中;修改PC——根據(jù)30個(gè)不一樣的中斷源所產(chǎn)生的中斷,將該中斷請(qǐng)求對(duì)應(yīng)的向量表地址中存放的中斷服務(wù)子程序的入口地址傳送到PC中;CPU執(zhí)行中斷服務(wù)子程序。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第43頁(yè)!3.2控制寄存器

78K0單片機(jī)中6種寄存器用于控制中斷功能:中斷請(qǐng)求標(biāo)志寄存器(IF0L、IF0H、IF1L、IF1H)中斷屏蔽寄存器(MK0L、MK0H、MK1L、MK1H)優(yōu)先級(jí)指定寄存器(PR0L、PR0H、PR1L、PR1H)外部中斷上升沿使能寄存器(EGP)外部中斷下降沿使能寄存器(EGN)程序狀態(tài)字(PSW)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第44頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第45頁(yè)!2、中斷屏蔽寄存器(MK0L,MK0H,MK1L,MK1H)

中斷屏蔽標(biāo)志用于允許/禁止相應(yīng)的可屏蔽中斷;復(fù)位信號(hào)將這些寄存器的內(nèi)容設(shè)置為1(屏蔽所有中斷);在使用中斷前,用指令設(shè)置這些寄存器——對(duì)要使用的中斷,對(duì)應(yīng)的屏蔽位設(shè)為0(允許該中斷)。中斷屏蔽寄存器(MK0L,MK0H,MK1L,MK1H)各位意義:MKx中斷屏蔽控制0允許中斷1禁止中斷K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第46頁(yè)!4、外部中斷上升沿使能寄存器(EGP)、

外部中斷下降沿使能寄存器(EGN)這兩個(gè)寄存器指定INTP0~INTP7的有效沿。復(fù)位信號(hào)將這些寄存器清0(上下沿均無(wú)效);在使用中斷前,用指令對(duì)EGP和EGN進(jìn)行設(shè)定。EGP7EGP6EGP5EGP4EGP3EGP2EGP1EGP0EGN7EGN6EGN5EGN4EGN3EGN2EGN1EGN0外部中斷上升沿使能寄存器(EGP)、外部中斷下降沿使能寄存器(EGN)各位意義:EGPnEGNnINTPn引腳有效沿的選擇(n=0~7)00禁止脈沖沿檢測(cè)01下降沿10上升沿11上升沿和下降沿K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第47頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第48頁(yè)!第四節(jié)軟件設(shè)計(jì)#pragmasfr#pragmainterruptINTP0LED_INTP0/*定義使用INTP0中斷,中斷函數(shù)名LED_INTP0*/#pragmadi/*禁止使用中斷功能

聲明*/#pragmaei/*允許使用中斷功能

聲明*/unsignedcharLED_light[10]={0x3F,0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

/*數(shù)碼管編碼數(shù)組*/unsignedcharj=0;/*按鍵次數(shù)變量*/voidhdinit()/*硬件初始化*/{ PM1=0;/*P1端口模式為輸出模式*/ PU1=0xFF;/*P1端口使用上拉電阻*/ PM12.0=0;/*P12.0:端口模式為輸出模式*/? PU12.0=1;/*P12.0:使用上拉電阻*/? PIF0=0;/*INTP0中斷請(qǐng)求標(biāo)志,沒(méi)有中斷請(qǐng)求

*/ PMK0=0;/*INTP0中斷屏蔽標(biāo)志,允許中斷

*/ PPR0=1;/*INTP0中斷優(yōu)先級(jí),低優(yōu)先級(jí)

*/ EGP.0=1;/*INTP0的有效沿:與EGN組合,上升沿有效

*/ EGN.0=0;}K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第49頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第50頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第51頁(yè)!由于優(yōu)先級(jí)控制沒(méi)產(chǎn)生中斷嵌套在INTxx中斷服務(wù)期間不響應(yīng)中斷請(qǐng)求INTyy,因?yàn)镮NTyy的優(yōu)先級(jí)低于INTxx,這樣就不會(huì)產(chǎn)生中斷嵌套。中斷請(qǐng)求INTyy處于等待狀態(tài),在執(zhí)行一條主程序指令后響應(yīng)該中斷請(qǐng)求。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第52頁(yè)!第七章

TM00定時(shí)器K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第53頁(yè)!計(jì)數(shù)器00模式控制K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第54頁(yè)!計(jì)數(shù)器00模式控制結(jié)束定時(shí)(+輸出)概述自動(dòng)運(yùn)行K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第55頁(yè)!計(jì)數(shù)器00模式控制結(jié)束定時(shí)自動(dòng)運(yùn)行K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第56頁(yè)!計(jì)數(shù)器00模式控制結(jié)束PPG輸出自動(dòng)運(yùn)行K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第57頁(yè)!計(jì)數(shù)器00模式控制結(jié)束TI000計(jì)數(shù)(+輸出)概述自動(dòng)運(yùn)行K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第58頁(yè)!計(jì)數(shù)器00模式控制結(jié)束TI000計(jì)數(shù)(+輸出)自動(dòng)運(yùn)行K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第59頁(yè)!捕捉捕捉/比較寄存器捕捉寄存器“定時(shí)”與“計(jì)數(shù)”的組合,復(fù)雜應(yīng)用用于測(cè)量TI000輸入脈沖的周期、占空比、轉(zhuǎn)速等K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第60頁(yè)!計(jì)數(shù)器00模式控制TI000觸發(fā)捕捉1K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第61頁(yè)!16位定時(shí)器捕捉/比較寄存器CR000(i)CR000用作比較寄存器CR000的設(shè)置值與16位定時(shí)器計(jì)數(shù)器TM00的計(jì)數(shù)值頻繁地相比較,如果相等將產(chǎn)生一個(gè)中斷請(qǐng)求(INTTM00n)。在CR000被重寫(xiě)前一直保持這個(gè)值。(ii)CR000用作捕捉寄存器當(dāng)輸入捕捉觸發(fā)時(shí),TM00的計(jì)數(shù)值被捕捉到CR000。可以使用CRC00或PRM00選擇TI000引腳的反向脈沖沿或TI010引腳的有效沿作為捕捉觸發(fā)。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第62頁(yè)!3.2控制寄存器

16位定時(shí)器/事件計(jì)數(shù)器00的控制寄存器:16位定時(shí)器模式控制寄存器TMC00捕捉/比較控制寄存器CRC0016位定時(shí)器輸出控制寄存器TOC00預(yù)分頻器模式寄存器PRM00端口模式寄存器PM0、端口寄存器P0K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第63頁(yè)!捕捉/比較控制寄存器CRC00K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第64頁(yè)!輸出反轉(zhuǎn)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第65頁(yè)!預(yù)分頻器模式寄存器

PRM00K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第66頁(yè)!注意弄清3種運(yùn)行模式:自由運(yùn)行定時(shí)器模式清零&啟動(dòng)模式(通過(guò)TI000引腳有效沿輸入進(jìn)入)清零&啟動(dòng)模式(在TM00與CR000相等時(shí)進(jìn)入)4.1程序暫時(shí)不看4.6(1)(2)(3)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第67頁(yè)!節(jié)

AD轉(zhuǎn)換原理1.1逐次逼近AD轉(zhuǎn)換原理K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第68頁(yè)!+-uoD3D2D1D0I0I1I2I323R22R21R20RIR/2(MSB)(LSB)23R22R21R20RAVREFI1=I2=I3=當(dāng)D3D2D1D0=1111時(shí):S0S1S2S3D3D2D1D0(LSB)(MSB)I=I3+I2+I1+I0I0=AVREF23RAVREF22RAVREF21RAVREF20RK0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第69頁(yè)!第二節(jié)

AD轉(zhuǎn)換端口功能A/D轉(zhuǎn)換器的框圖K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第70頁(yè)!2.1A/D轉(zhuǎn)換器硬件(1)ANI0~ANI7引腳這些是8通道A/D轉(zhuǎn)換器的模擬輸入引腳。用于輸入模擬信號(hào),以便轉(zhuǎn)換成數(shù)字信號(hào)。除了那些被選為模擬輸入的引腳外,其它引腳均可用作I/O端口引腳。(2)采樣&保持電路采樣&保持電路在A/D轉(zhuǎn)換器啟動(dòng)時(shí)用于采樣由選擇器選擇的模擬輸入引腳的輸入電壓,并在A/D轉(zhuǎn)換期間保持采樣到的電壓值。(3)串聯(lián)電阻串

串聯(lián)電阻串用于連接AVREF

和AVSS,并產(chǎn)生一個(gè)電壓,與采樣到的電壓值進(jìn)行比較。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第71頁(yè)!(7)控制器該電路用于控制A/D轉(zhuǎn)換的啟動(dòng)和停止操作。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),該控制器產(chǎn)生中斷INTAD。(8)AVREF

引腳該引腳為A/D轉(zhuǎn)換器輸入一個(gè)模擬供電/參考電壓。當(dāng)端口2用作數(shù)字端口時(shí),該引腳的電壓應(yīng)與VDD的電壓保持一致。根據(jù)通過(guò)AVREF和AVSS

的電壓,將輸入到ANI0~ANI7的信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。(9)AVSS

引腳這是A/D轉(zhuǎn)換器的信號(hào)地引腳。即便沒(méi)有使用A/D轉(zhuǎn)換器,該引腳的電壓也應(yīng)與VSS

的電壓保持一致。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第72頁(yè)!2.2A/D轉(zhuǎn)換器使用的寄存器A/D轉(zhuǎn)換器模式寄存器(ADM)10位A/D轉(zhuǎn)換結(jié)果寄存器(ADCR)8位A/D轉(zhuǎn)換結(jié)果寄存器(ADCRH)A/D端口配置寄存器(ADPC)端口模式寄存器2(PM2)

模擬輸入通道選擇寄存器(ADS)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第73頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第74頁(yè)!A/D轉(zhuǎn)換時(shí)間的選擇AVref越高才能使用更短的時(shí)間該表對(duì)應(yīng)的最低Avref=2.3V,最短時(shí)間32usK0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第75頁(yè)!(3)8位A/D轉(zhuǎn)換結(jié)果寄存器(ADCRH)這是一個(gè)8位寄存器,用來(lái)存儲(chǔ)A/D轉(zhuǎn)換結(jié)果??梢源鎯?chǔ)10位分辨率的高8位。可由8位存儲(chǔ)器操作指令讀取ADCRH。復(fù)位信號(hào)產(chǎn)生將該寄存器清零(00H)。對(duì)于默認(rèn)全0設(shè)置,除轉(zhuǎn)換時(shí)間最長(zhǎng)以外,AD轉(zhuǎn)換是8位AD轉(zhuǎn)換器,8位結(jié)果存于ADCRH中。對(duì)于其它設(shè)置,是否還有8位情況,不知道,可試一試。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第76頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第77頁(yè)!(6)模擬輸入通道選擇寄存器(ADS)該寄存器用來(lái)選擇通道,用于A/D轉(zhuǎn)換的模擬輸入??捎?位或8位存儲(chǔ)器操作指令設(shè)置ADS。復(fù)位信號(hào)的產(chǎn)生將該寄存器清零(00H)。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第78頁(yè)!<1>把ADM的第0位(ADCE)置1啟動(dòng)比較器的操作。<2>通過(guò)ADPC設(shè)置通道,用于A/D轉(zhuǎn)換的模擬輸入,并且通過(guò)PM2設(shè)置為輸入模式。<3>根據(jù)ADM的第5~1位(FR2~FR0、LV1和LV0)設(shè)置A/D轉(zhuǎn)換時(shí)間。<4>通過(guò)ADS選擇一個(gè)通道用于A/D轉(zhuǎn)換。<5>設(shè)置ADM的第7位(ADCS)為1,啟動(dòng)轉(zhuǎn)換操作。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第79頁(yè)!<13>反復(fù)執(zhí)行步驟<6>~<12>,直至ADCS被清0,以停止A/D轉(zhuǎn)換器操作。當(dāng)ADCE=1時(shí),若要重新啟動(dòng)A/D轉(zhuǎn)換操作,應(yīng)從步驟<5>開(kāi)始。當(dāng)ADCE=0時(shí),若要再次啟動(dòng)A/D轉(zhuǎn)換操作,設(shè)置ADCE=1,等待至少1us,然后從步驟<5>開(kāi)始操作。如要改變A/D轉(zhuǎn)換的通道,則從步驟<4>開(kāi)始。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第80頁(yè)!有NEC贊助的開(kāi)發(fā)工具有實(shí)驗(yàn)儀器

為什么學(xué)NEC單片機(jī)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第81頁(yè)!硬件電路設(shè)計(jì)軟件設(shè)計(jì)

課程目標(biāo)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第82頁(yè)!課堂實(shí)施方案主動(dòng)提問(wèn)題討論,每人20個(gè),每個(gè)1分K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第83頁(yè)!NEC單片機(jī)教學(xué)實(shí)驗(yàn)儀簡(jiǎn)介1實(shí)驗(yàn)儀外觀、布局和圖紙K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第84頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第85頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第86頁(yè)!2功能特點(diǎn)和實(shí)驗(yàn)項(xiàng)目NEC單片機(jī)教學(xué)實(shí)驗(yàn)儀集成有強(qiáng)大的硬件資源,為用戶提供了多種選擇,使用戶可以進(jìn)行各種相關(guān)的實(shí)驗(yàn)?;赑M+,SM+的仿真調(diào)試功能;帶有128KB的FLASH用于用戶的程序下載;I2C接口的EEPROM實(shí)驗(yàn)電路;基本I/0口插排;K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第87頁(yè)!NEC單片機(jī)參考文檔WWW.CN.NECEL.COM

cn.renesas./設(shè)備文檔

(1)78K0/KF2用戶手冊(cè)(U17397E)

(2)U17397E78K/0系列指令用戶手冊(cè)(U12326E)開(kāi)發(fā)工具(軟件)文檔

(1)RA78K0Ver.3.80,匯編包(操作:U17199E;語(yǔ)言:U17198E

;結(jié)構(gòu)化匯編語(yǔ)言:U17197E

) (2)CC78K0Ver.3.70,C編譯器(操作:U17201E

;語(yǔ)言:U17200E

) (3)SM+系統(tǒng)仿真器

(操作:U17246E;開(kāi)放式外部用戶接口規(guī)范:U17247E) (4)ID78K0-QBVer.2.90集成調(diào)試器(操作:U17437E) (5)PM+Ver.5.20(U16934E)開(kāi)發(fā)工具(硬件)文檔

(1)QB-78K0KX2在線仿真器(U17341E) (2)QB-78K0MINI片上調(diào)試仿真器(U17029E)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第88頁(yè)!78K0/Kx2系列uPD78F0547DK0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第89頁(yè)!

9K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第90頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第91頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第92頁(yè)!(2)時(shí)鐘電路引腳

時(shí)鐘分外部輸入時(shí)鐘與系統(tǒng)時(shí)鐘兩種,同時(shí)還分為主時(shí)鐘與副時(shí)鐘兩類。

①外部時(shí)鐘:外部時(shí)鐘輸入EXCLK(主時(shí)鐘)[14]外部時(shí)鐘輸入EXCLKS(副時(shí)鐘)[11]

②系統(tǒng)時(shí)鐘(內(nèi)部時(shí)鐘):晶體振蕩器(主時(shí)鐘)X1、X2[14、15]晶體振蕩器(副時(shí)鐘)XT1,、XT2

[11、12]主時(shí)鐘高頻,副時(shí)鐘低頻,時(shí)鐘頻率越低,功耗越低。內(nèi)部時(shí)鐘中頻,可節(jié)省引腳占用。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第93頁(yè)!(3)輸入/輸出引腳(I/O引腳)

78F0547D共有71個(gè)8位的I/O口以實(shí)現(xiàn)數(shù)據(jù)的輸入輸出。分別為

P0(P00~P06)、P1(P10~P17)、P2(P20~P27)、P3(P30~P37)、P4(P40~P47)、P5(P50~P57)、P6(P60~P67)、P7(P70~P77)、

P12(P120~P124)、P13(P130)、P14(P140~P145)

。(4)AD轉(zhuǎn)換功能

ANI0~ANI7共8路AD轉(zhuǎn)換通道,參考模擬電壓AVREF[59],模擬地AVSS[60]。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第94頁(yè)!(6)中斷

中斷分外部中斷與內(nèi)部中斷。

共有29個(gè)中斷源,即外中斷9個(gè),內(nèi)部中斷20個(gè)。

9個(gè)外部中斷:7個(gè)外部中斷INTP0~INTP71個(gè)鍵盤(pán)中斷(INTKR0~INTKR7)1個(gè)鐘表定時(shí)器溢出INTWTK0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第95頁(yè)!(8)控制信號(hào)FLMD0:閃存編程模式設(shè)置引腳BUZ:

蜂鳴器輸出引腳PCL:

可編程時(shí)鐘輸出引腳。RESET:系統(tǒng)復(fù)位輸入引腳。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第96頁(yè)!圖

4.4最小系統(tǒng)復(fù)位電路K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第97頁(yè)!(2)內(nèi)部時(shí)鐘方式:主時(shí)鐘:在引腳X1和X2兩端接晶振,利用單片機(jī)內(nèi)部的振蕩器,就構(gòu)成了穩(wěn)定的自激振蕩器。外接晶振時(shí),晶振兩端的電容一般選擇為30PF左右;晶振的頻率范圍為1.2MHz-12MHz。子時(shí)鐘:在引腳XT1和XT2兩端接晶振,利用單片機(jī)內(nèi)部的振蕩器,就構(gòu)成了穩(wěn)定的自激振蕩器。外接晶振時(shí),晶振兩端的電容一般選擇為30PF左右;晶振的頻率為32kHz。XT2XT132kHzK0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第98頁(yè)!①主時(shí)鐘通過(guò)執(zhí)行STOP指令或設(shè)置主OSC控制寄存器(MOC)和處理器時(shí)鐘控制寄存器(PCC),可停止振蕩。②子時(shí)鐘通過(guò)設(shè)置處理器時(shí)鐘控制寄存器(PCC)和時(shí)鐘工作模式選擇寄存器(OSCCTL)可停止振蕩。③高速內(nèi)置時(shí)鐘通過(guò)執(zhí)行STOP指令或設(shè)置內(nèi)置振蕩器模式寄存器(RCM),可停止振蕩。主時(shí)鐘/子時(shí)鐘/高速內(nèi)置時(shí)鐘3者只能選擇其一工作,其余2個(gè)要停止。④低速內(nèi)置時(shí)鐘(看門(mén)狗定時(shí)器(WDT)所用的240kHz時(shí)鐘信號(hào))RESET釋放后,低速內(nèi)置振蕩器開(kāi)始工作。若Optionbyte中設(shè)定了“低速內(nèi)置振蕩器可以使用軟件停止”,那么可以通過(guò)設(shè)置內(nèi)置振蕩器模式寄存器(RCM)來(lái)停止振蕩。78F0547D單片機(jī)時(shí)鐘的控制:K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第99頁(yè)!第三節(jié)存儲(chǔ)器空間

3.478K0存儲(chǔ)結(jié)構(gòu)

FLASH48k字節(jié)內(nèi)部擴(kuò)展RAM6k字節(jié)內(nèi)部高速RAM1k字節(jié)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第100頁(yè)!使用步驟2:在主函數(shù)開(kāi)始,選擇存儲(chǔ)器容量

4.2內(nèi)部存儲(chǔ)器容量切換寄存器(IMS)在主函數(shù)開(kāi)始,需要首先對(duì)IMS進(jìn)行設(shè)置,以選擇內(nèi)部高速RAM和FLASH的容量。4.3內(nèi)部擴(kuò)展RAM容量切換寄存器(IXS)然后對(duì)IXS進(jìn)行設(shè)置,以選擇內(nèi)部擴(kuò)展RAM的容量。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第101頁(yè)!第五章基本端口功能

輸入輸出口(I/O口)是單片機(jī)與外部聯(lián)系的唯一途徑。通用I/O:GPIO(GeneralPurposeI/O),有時(shí)也稱為并行I/O(parallelI/O),是I/O的最基本形式。uPD78F0547D有11個(gè)并行I/O端口,記作P0、P1、P2、P3、P4、P5、P6、P7、P12、P13、P14。除P13端口只做輸出外,其余端口均可作為輸入輸出功能使用。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第102頁(yè)!節(jié)交通燈硬件電路本項(xiàng)目主要設(shè)計(jì)一個(gè)方向的交通燈控制電路,要求有紅、黃、綠三盞燈。每個(gè)燈的定時(shí)時(shí)間可以預(yù)設(shè),按照綠燈、黃燈、紅燈順序點(diǎn)亮,循環(huán)往復(fù)。電路主要包括LED、單片機(jī)最小系統(tǒng)。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第103頁(yè)!第二節(jié)端口功能2.2端口內(nèi)部結(jié)構(gòu)端口0是具有輸出鎖存功能的7位I/O端口。通過(guò)使用端口模式寄存器0(PM0),可以位選端口0為輸入或輸出模式。如果P00~P06作為輸入端口,則內(nèi)部上拉電阻的使用可以通過(guò)上拉電阻選擇寄存器0(PU0)以1位單元的方式指定。這個(gè)端口還可以用于定時(shí)器I/O、串行接口數(shù)據(jù)I/O、時(shí)鐘I/O和芯片選擇輸入。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第104頁(yè)!三態(tài)門(mén)1、輸入緩沖器8、選擇器7、與非門(mén)2、非門(mén)5和6、及場(chǎng)效應(yīng)管3、上拉電阻4125683740:輸出0:1/111:輸出K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第105頁(yè)!三態(tài)門(mén)1、與非門(mén)2、場(chǎng)效應(yīng)管3、上拉電阻4、非門(mén)5和6、選擇器7、輸入緩沖器815683741:輸入1:1:0K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第106頁(yè)!2、輸入功能設(shè)置端口功能寄存器PM為1。1號(hào)三態(tài)門(mén)關(guān)閉,輸出鎖存寄存器P中的值就不能對(duì)外輸出。外部數(shù)值通過(guò)3、4兩個(gè)非門(mén)到達(dá)選擇器。通過(guò)選擇器被內(nèi)部總線讀取。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第107頁(yè)!第三節(jié)軟件設(shè)計(jì)NY開(kāi)始綠燈亮綠燈延時(shí)黃燈亮紅燈延時(shí)黃燈延時(shí)紅燈亮黃燈亮二次K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第108頁(yè)!voidmain(){IMS=0XCC;/*內(nèi)部存儲(chǔ)器容量切換寄存器設(shè)置,必須有*/IXS=0X00;/*內(nèi)部擴(kuò)展RAM容量切換寄存器,必須有*/PM1.0=0;/*端口模式為輸出模式*/PM1.1=0;/*端口模式為輸出模式*/PM1.2=0;/*端口模式為輸出模式*/while(1)/*當(dāng)為1時(shí),條件為真,一直循環(huán)*/{delay();P1.0=0;/*輸出低電平,綠燈亮*/P1.1=1;/**/P1.2=1;/**/delay();P1.0=1;P1.1=0;/*輸出低電平,黃燈亮*/P1.2=1;delay();P1.0=1;P1.1=0;/*輸出低電平,黃燈亮*/P1.2=1;delay();P1.0=1;P1.1=1;P1.2=0;/*輸出低電平,紅燈亮*/}}K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第109頁(yè)!第六章中斷功能

3.2存儲(chǔ)器單元和存儲(chǔ)單元地址3.3訪問(wèn)存儲(chǔ)器3.478K0存儲(chǔ)結(jié)構(gòu)3.4.1內(nèi)部程序存儲(chǔ)空間3.4.2存儲(chǔ)器組3.4.3內(nèi)部數(shù)據(jù)存儲(chǔ)空間3.4.4特殊功能寄存器(SFR)區(qū)域微型計(jì)算機(jī)結(jié)構(gòu)簡(jiǎn)介CPU和控制寄存器程序計(jì)數(shù)器(PC)節(jié)中斷基礎(chǔ)知識(shí)第二節(jié)計(jì)數(shù)器硬件電路K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第110頁(yè)!地址譯碼器

A3A2A1A0R0R1R2R14R151

2??來(lái)自地址總線的地址信號(hào)0K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第111頁(yè)!01100010單元的內(nèi)容R0R1R2D7D6D5D4D3D2D1D0……譯碼器A0A1A2A3R14R15……讀寫(xiě)控制電路WR16×8的存儲(chǔ)器K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第112頁(yè)!三態(tài)門(mén)1、輸入緩沖器8、選擇器7、與非門(mén)2、非門(mén)5和6、及場(chǎng)效應(yīng)管3、上拉電阻4125683740:輸出0:1/111:輸出K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第113頁(yè)!特殊功能寄存器特殊功能寄存器在功能上與一般存儲(chǔ)器不同:對(duì)I/O接口而言,接口控制寄存器控制各接口的功能,接口數(shù)據(jù)寄存器向外設(shè)發(fā)送數(shù)據(jù)或接受來(lái)自外設(shè)的數(shù)據(jù)。但特殊功能寄存器的讀寫(xiě)與存儲(chǔ)器完全相同,每個(gè)特殊功能寄存器都有一個(gè)唯一的地址;在描述各個(gè)I/O接口的功能時(shí),為了方便,可以認(rèn)為特殊功能寄存器分布在各個(gè)相應(yīng)的I/O接口中;從存儲(chǔ)器組織和使用的角度,希望具有相同功能的存儲(chǔ)器單元具有連續(xù)的地址范圍:ROM連續(xù)占一段,RAM連續(xù)占一段。特殊功能寄存器通常是獨(dú)立使用的,地址連續(xù)與否并不重要,但為了清晰和整齊,為它們安排了最后的256個(gè)地址。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第114頁(yè)!程序計(jì)數(shù)器(PC)

PC是一個(gè)16位寄存器,用于存放下一條將要執(zhí)行的指令的地址。復(fù)位信號(hào)將復(fù)位向量表中地址為0000H和0001H中的值(條指令的地址)賦給PC。正常情況下,根據(jù)獲取的指令的字節(jié)數(shù),PC的值會(huì)自動(dòng)累加,即取出一條指令后,PC的值為下條指令的地址。當(dāng)執(zhí)行分支指令時(shí),則將分支開(kāi)始處條指令的地址賦給PC。當(dāng)執(zhí)行調(diào)用子程序指令時(shí),則首先將PC的值自動(dòng)存入堆棧中,然后將子程序開(kāi)始處條指令的地址賦給PC,進(jìn)入子程序。當(dāng)子程序結(jié)束時(shí),子程序返回指令自動(dòng)將堆棧中的值恢復(fù)到PC中,主程序得以從斷點(diǎn)處繼續(xù)執(zhí)行。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第115頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第116頁(yè)!168第三節(jié)中斷控制器端口功能中斷控制器3.1內(nèi)部功能框圖中斷請(qǐng)求K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第117頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第118頁(yè)!優(yōu)先級(jí)控制器:中斷屏蔽寄存器的設(shè)置決定了允許或屏蔽中斷請(qǐng)求標(biāo)志。一個(gè)允許的中斷請(qǐng)求被通過(guò);一個(gè)被屏蔽的中斷請(qǐng)求標(biāo)志不被通過(guò),處于等待狀態(tài)。一旦取消屏蔽,處于等待狀態(tài)的中斷請(qǐng)求被通過(guò);優(yōu)先級(jí)控制器比較同時(shí)通過(guò)的中斷請(qǐng)求的優(yōu)先級(jí)(PR)和正在執(zhí)行的中斷的優(yōu)先級(jí)(ISP);如果兩個(gè)或兩個(gè)以上的中斷請(qǐng)求同時(shí)通過(guò),則首先響應(yīng)優(yōu)先級(jí)指定標(biāo)志(PR)中優(yōu)先級(jí)高的請(qǐng)求。如果兩個(gè)或兩個(gè)以上的中斷請(qǐng)求具有相同的優(yōu)先級(jí)(PR),則首先響應(yīng)默認(rèn)優(yōu)先級(jí)高的中斷請(qǐng)求。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第119頁(yè)!中斷返回:CPU執(zhí)行完中斷服務(wù)子程序后,自動(dòng)將保存在堆棧中的內(nèi)容恢復(fù)到PSW、PC中——恢復(fù)現(xiàn)場(chǎng),從中斷處返回繼續(xù)執(zhí)行主程序。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第120頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第121頁(yè)!1、中斷請(qǐng)求標(biāo)志寄存器(IF0L,IF0H,IF1L,IF1H)

復(fù)位時(shí),這些標(biāo)志被清0(開(kāi)始運(yùn)行時(shí),不處理中斷);當(dāng)產(chǎn)生中斷請(qǐng)求時(shí),相應(yīng)的中斷請(qǐng)求標(biāo)志位自動(dòng)置1;當(dāng)某中斷請(qǐng)求被響應(yīng)時(shí),該中斷請(qǐng)求標(biāo)志位自動(dòng)被清0(防止一次申請(qǐng)被多次響應(yīng))。中斷請(qǐng)求標(biāo)志寄存器(IF0L,IF0H,IF1L,IF1H)各位意義:IFx中斷請(qǐng)求標(biāo)志0沒(méi)有產(chǎn)生中斷請(qǐng)求1產(chǎn)生中斷請(qǐng)求K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第122頁(yè)!3、優(yōu)先級(jí)指定寄存器(PR0L,PR0H,PR1L,PR1H)

優(yōu)先級(jí)指定寄存器用于設(shè)置各中斷的優(yōu)先級(jí)。復(fù)位信號(hào)將這些寄存器的內(nèi)容設(shè)置為1(低優(yōu)先級(jí));在使用中斷前,用指令設(shè)置這些寄存器。優(yōu)先級(jí)指定寄存器(PR0L,PR0H,PR1L,PR1H)各位的意義:PRx優(yōu)先級(jí)選擇0高優(yōu)先級(jí)1低優(yōu)先級(jí)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第123頁(yè)!5、程序狀態(tài)字(PSW)PSW中保存著兩大類信息:指令執(zhí)行結(jié)果;中斷的狀態(tài):中斷總開(kāi)關(guān)IE(允許/禁止可屏蔽中斷)和ISP(正在服務(wù)的中斷的優(yōu)先級(jí),用于控制中斷嵌套)。復(fù)位信號(hào)將PSW的EI位清0(關(guān)中斷),將ISP位設(shè)為1(低優(yōu)先級(jí));在使用中斷前,使用專用指令(EI和DI)對(duì)PSW的EI位進(jìn)行設(shè)定(EI開(kāi)中斷、DI關(guān)中斷)——為了使用中斷,當(dāng)然要開(kāi)中斷;被響應(yīng)的中斷的優(yōu)先級(jí)PR自動(dòng)送到ISP中。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第124頁(yè)!控制寄存器設(shè)置要點(diǎn)總結(jié)

中斷請(qǐng)求標(biāo)志寄存器(IF0L、IF0H、IF1L、IF1H)

自動(dòng)產(chǎn)生和清除中斷屏蔽寄存器(MK0L、MK0H、MK1L、MK1H)

對(duì)要使用的中斷,設(shè)為0(允許該中斷)優(yōu)先級(jí)指定寄存器(PR0L、PR0H、PR1L、PR1H)

對(duì)要使用的中斷,可設(shè)為0也可1,對(duì)只有一個(gè)中斷的情況,啥都一樣外部中斷上升沿使能寄存器(EGP)、外部中斷下降沿使能寄存器(EGN)

一般設(shè)為EGP=1、EGN=0——上升沿產(chǎn)生中斷程序狀態(tài)字(PSW)

要使用中斷,當(dāng)然要設(shè)EI=0(打開(kāi)中斷總開(kāi)關(guān));ISP被自動(dòng)賦值K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第125頁(yè)!voidmain(void){DI();/*首先做準(zhǔn)備,禁止中斷

*/ IMS=0XCC;/*內(nèi)部容量設(shè)置,必須有*/ IXS=0X00;/*內(nèi)部容量設(shè)置,必須有*/ hdinit(); EI();/*準(zhǔn)備完成,允許中斷

*/ while(1) {

/*主程序沒(méi)有任何實(shí)質(zhì)任務(wù),只是循環(huán)等待中斷

*/ }}__interruptvoidLED_INTP0()/*中斷函數(shù)*/{P1=LED_light[j];/*P1端口賦值,數(shù)碼管顯示相應(yīng)數(shù)值

*/j++;/*按鍵次數(shù)加1*/if(j==10)/*如果按鍵次數(shù)達(dá)到10次,按鍵計(jì)數(shù)歸0*/{j=0;}}K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第126頁(yè)!20.4.3中斷嵌套在執(zhí)行一個(gè)中斷服務(wù)程序時(shí),又響應(yīng)了其他中斷,稱中斷嵌套。在響應(yīng)一個(gè)中斷請(qǐng)求后,若關(guān)中斷(IE=0),則禁止響應(yīng)其它中斷請(qǐng)求,不會(huì)產(chǎn)生中斷嵌套。因此,要允許中斷嵌套,必須在中斷服務(wù)期間執(zhí)行EI指令,使IE=1,從而允許響應(yīng)其它中斷請(qǐng)求。此外,即使開(kāi)中斷,也不一定能產(chǎn)生中斷嵌套,因?yàn)檫€要受到中斷優(yōu)先級(jí)的控制。可使用兩類優(yōu)先級(jí)控制方式:默認(rèn)優(yōu)先級(jí)和可編程優(yōu)先級(jí)??删幊虄?yōu)先級(jí)只有0和1兩級(jí)。在中斷允許狀態(tài)中,如果產(chǎn)生的中斷請(qǐng)求的優(yōu)先級(jí)高于正在服務(wù)的中斷優(yōu)先級(jí),則響應(yīng)該中斷請(qǐng)求,產(chǎn)生中斷嵌套。如果產(chǎn)生的中斷請(qǐng)求的優(yōu)先級(jí)低于正在服務(wù)的中斷優(yōu)先級(jí),則不響應(yīng)該中斷請(qǐng)求。由于禁止中斷或中斷請(qǐng)求的優(yōu)先級(jí)別較低,不被允許的中斷請(qǐng)求處于等待狀態(tài)。若當(dāng)前的中斷服務(wù)已結(jié)束,則在執(zhí)行至少一條主程序指令后才可響應(yīng)處于等待狀態(tài)的中斷請(qǐng)求。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第127頁(yè)!由于未開(kāi)中斷沒(méi)產(chǎn)生中斷嵌套在INTxx中斷服務(wù)期間不允許中斷(未執(zhí)行EI指令),因此不響應(yīng)中斷請(qǐng)求INTyy,這樣不會(huì)產(chǎn)生中斷嵌套。中斷請(qǐng)求INTyy處于等待狀態(tài),在執(zhí)行一條主程序指令后響應(yīng)該中斷請(qǐng)求。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第128頁(yè)!產(chǎn)生兩次中斷嵌套在進(jìn)行INTxx中斷服務(wù)期間,響應(yīng)了兩個(gè)中斷請(qǐng)求INTyy和INTzz,這時(shí)就產(chǎn)生了兩次中斷嵌套。在響應(yīng)每個(gè)中斷之前,必須先執(zhí)行EI指令才能允許響應(yīng)中斷請(qǐng)求。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第129頁(yè)!計(jì)數(shù)器00模式控制K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第130頁(yè)!定時(shí)捕捉/比較寄存器比較寄存器定時(shí)屬簡(jiǎn)單應(yīng)用對(duì)內(nèi)部時(shí)鐘計(jì)數(shù),時(shí)鐘頻率恒定用于產(chǎn)生:定時(shí)中斷、方波、占空比可調(diào)的脈沖波等K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第131頁(yè)!計(jì)數(shù)器00模式控制定時(shí)(+輸出)概述K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第132頁(yè)!計(jì)數(shù)器00模式控制結(jié)束方波輸出自動(dòng)運(yùn)行K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第133頁(yè)!計(jì)數(shù)捕捉/比較寄存器比較寄存器計(jì)數(shù)屬簡(jiǎn)單應(yīng)用對(duì)TI000輸入的脈沖計(jì)數(shù),脈沖頻率隨機(jī)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第134頁(yè)!計(jì)數(shù)器00模式控制TI000計(jì)數(shù)(+輸出)概述K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第135頁(yè)!計(jì)數(shù)器00模式控制TI000計(jì)數(shù)(+輸出)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第136頁(yè)!計(jì)數(shù)器00模式控制TI000觸發(fā)捕捉自動(dòng)運(yùn)行結(jié)束1K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第137頁(yè)!16位定時(shí)器計(jì)數(shù)器00(TM00)如出現(xiàn)以下情況,計(jì)數(shù)值復(fù)位為0000H。復(fù)位信號(hào)的產(chǎn)生TMC003和TMC002被清零在TI000引腳輸入有效沿進(jìn)入清零和啟動(dòng)模式下在TM00和CR000相等時(shí)進(jìn)入清零和啟動(dòng)模式下在單脈沖輸出模式下如果OSPT00被設(shè)置為1或TI000引腳輸入有效沿時(shí)K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第138頁(yè)!16位定時(shí)器捕捉/比較寄存器CR010(i)CR010用作比較寄存器CR010的設(shè)置值與16位定時(shí)器計(jì)數(shù)器TM00的計(jì)數(shù)值頻繁地相比較,如果相等將產(chǎn)生一個(gè)中斷請(qǐng)求INTTM01。在CR010被重寫(xiě)前一直保持這個(gè)值。(ii)CR010用作捕捉寄存器當(dāng)輸入捕捉觸發(fā)時(shí),TM00的計(jì)數(shù)值被捕捉到CR010??梢赃x擇TI000引腳的有效沿作為捕捉觸發(fā)。TI000有效沿由PRM00來(lái)設(shè)置。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第139頁(yè)!16位定時(shí)器模式控制寄存器TMC00K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第140頁(yè)!16位定時(shí)器輸出控制寄存器

TOC00

單脈沖控制K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第141頁(yè)!輸出允許輸出初值K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第142頁(yè)!端口模式寄存器

PM0端口寄存器P0

如果使用P00/TI000引腳用于定時(shí)器輸入,則需要將PM00設(shè)置為1。如果使用P01/TO00/TI010引腳用于定時(shí)器輸入,則需要將PM01設(shè)置為1。如果使用P01/TO00/TI010引腳用于定時(shí)器輸出,則需要將PM01設(shè)置為0以及P01的輸出鎖存器清0。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第143頁(yè)!第二節(jié)秒表硬件電路K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第144頁(yè)!權(quán)電阻網(wǎng)絡(luò)型D/A轉(zhuǎn)換器AVREF+-uoD3D2D1D0I0I1I2I323R22R21R20RIR/2(MSB)(LSB)S0S1S2S3D3D2D1D0S0S1S2S3電子開(kāi)關(guān):Dn=1時(shí),Sn

接AVREF

;Dn=0時(shí),Sn

接地端。最低位最高位K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第145頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第146頁(yè)!K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏覽的是第147頁(yè)!(4)電壓比較器電壓比較器用于比較采樣到的電壓值與串聯(lián)電阻串的輸出電壓。(5)逐次逼近寄存器(SAR)該寄存器用于轉(zhuǎn)換電壓比較器所比較的結(jié)果,并從最高有效位(MSB)開(kāi)始。當(dāng)電壓被轉(zhuǎn)換成數(shù)字值,并寫(xiě)入最低有效位時(shí)(A/D轉(zhuǎn)換結(jié)束),將SAR的內(nèi)容傳送到A/D轉(zhuǎn)換結(jié)果寄存器(ADCR)中。(6)10位A/D轉(zhuǎn)換結(jié)果寄存器(ADCR)每次A/D轉(zhuǎn)換結(jié)束時(shí),將A/D轉(zhuǎn)換結(jié)果從逐次逼近寄存器(SAR)傳送至該寄存器中。轉(zhuǎn)換結(jié)果保存在該寄存器的高10位中(低6位恒為0)。K0單片機(jī)C語(yǔ)言教程共157頁(yè),您現(xiàn)在瀏

溫馨提示

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

評(píng)論

0/150

提交評(píng)論