![51單片機(jī)詳細(xì)教程課件_第1頁](http://file4.renrendoc.com/view11/M03/12/2F/wKhkGWW6OLuALQgWAAFG4oOoqvY513.jpg)
![51單片機(jī)詳細(xì)教程課件_第2頁](http://file4.renrendoc.com/view11/M03/12/2F/wKhkGWW6OLuALQgWAAFG4oOoqvY5132.jpg)
![51單片機(jī)詳細(xì)教程課件_第3頁](http://file4.renrendoc.com/view11/M03/12/2F/wKhkGWW6OLuALQgWAAFG4oOoqvY5133.jpg)
![51單片機(jī)詳細(xì)教程課件_第4頁](http://file4.renrendoc.com/view11/M03/12/2F/wKhkGWW6OLuALQgWAAFG4oOoqvY5134.jpg)
![51單片機(jī)詳細(xì)教程課件_第5頁](http://file4.renrendoc.com/view11/M03/12/2F/wKhkGWW6OLuALQgWAAFG4oOoqvY5135.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
全國高職高專規(guī)劃教材·精品與示范系列單片機(jī)應(yīng)用技術(shù)
(C語言版)王靜霞主編1精選2021版課件
本章內(nèi)容什么是單片機(jī)MCS-51內(nèi)部組成及信號(hào)引腳單片機(jī)最小系統(tǒng)電路MCS-51存儲(chǔ)器結(jié)構(gòu)第1章單片機(jī)硬件系統(tǒng)2精選2021版課件什么是單片機(jī)單片微型計(jì)算機(jī)(SingleChipMicrocomputer)簡稱單片機(jī),是指集成在一個(gè)芯片上的微型計(jì)算機(jī),它的各種功能部件,包括CPU(CentralProcessingUnit)、存儲(chǔ)器(memory)、基本輸入/輸出(Input/Output,簡稱I/O)接口電路、定時(shí)/計(jì)數(shù)器和中斷系統(tǒng)等,都制作在一塊集成芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。單片機(jī)內(nèi)部基本結(jié)構(gòu)如圖1.7所示。由于它的結(jié)構(gòu)與指令功能都是按照工業(yè)控制要求設(shè)計(jì)的,故又稱為微控制器(Micro-ControllerUnit,簡稱MCU)。3精選2021版課件什么是單片機(jī)
CPU
存儲(chǔ)器定時(shí)器/計(jì)數(shù)器
中斷系統(tǒng)P0-P3TxDRxD
TINT并行I/O口串行I/O口4精選2021版課件單片機(jī)應(yīng)用系統(tǒng)
單片機(jī)應(yīng)用系統(tǒng)單片機(jī)+接口電路及外設(shè)等+軟件硬件單片機(jī)應(yīng)用系統(tǒng)由硬件和軟件組成硬件是應(yīng)用系統(tǒng)的基礎(chǔ)軟件是在硬件的基礎(chǔ)上對(duì)其資源進(jìn)行合理調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要求的任務(wù),二者相互依賴,缺一不可5精選2021版課件單片機(jī)種類
◆目前8位單片機(jī)仍是單片機(jī)的主流機(jī)型;◆生產(chǎn)廠商:◆單片機(jī)的發(fā)展經(jīng)歷了由4位機(jī)到8位機(jī),再到16位機(jī)的發(fā)展過程美國微芯片公司:PIC16C××系列、PIC17C××系列、PIC1400系列,美國英特爾公司的MCS-48和MCS-51系列,美國摩托羅拉公司的MC68HC05系列和MC68HC11系列,美國齊洛格公司的Z8系列,日本電氣公司的μPD78××系列,美國莫斯特克公司和仙童公司合作生產(chǎn)的F8(3870)系列等。
6精選2021版課件單片機(jī)硬件結(jié)構(gòu)時(shí)鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時(shí)計(jì)數(shù)器中央處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶使用前128個(gè)單元,用于存放可讀寫數(shù)據(jù),后128個(gè)單元被專用寄存器占用。內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。定時(shí)/計(jì)數(shù)器:兩個(gè)16位的定時(shí)/計(jì)數(shù)器,實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。并行I/O口:4個(gè)8位的I/O口P0、P1、P2、P3。串行口:一個(gè)全雙工串行口。中斷控制系統(tǒng):5個(gè)中斷源(外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè))時(shí)鐘電路:可產(chǎn)生時(shí)鐘脈沖序列,允許晶振頻率6MHZ和12MHZ復(fù)位電路7精選2021版課件8051單片機(jī)的基本組成中央處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶使用前128個(gè)單元, 用于存放可讀寫數(shù)據(jù),后128個(gè)單元被專用寄存器占用。內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。定時(shí)/計(jì)數(shù)器:兩個(gè)16位的定時(shí)/計(jì)數(shù)器,實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。并行I/O口:4個(gè)8位的I/O口P0、P1、P2、P3。串行口:一個(gè)全雙工串行口。中斷控制系統(tǒng):5個(gè)中斷源(外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè))時(shí)鐘電路:可產(chǎn)生時(shí)鐘脈沖序列,允許晶振頻率6MHZ和12MHZ8精選2021版課件MCS-51單片機(jī)信號(hào)引腳簡介
P3口線的第二功能VCCVSSXTAL2
XTAL1RSTP0.0
P0.1
P0.2P0.3P0.4P0.5P0.6P0.7P1.0
P1.1
P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0
P3.1
P3.2P3.3P3.4P3.5P3.6P3.72、振蕩電路:XTAL1、XTAL23、復(fù)位引腳:RST4、并行口:P0、P1、P2、P37、ALE:地址鎖存控制信號(hào)1、電源線:VCC(+5V)、VSS(地)EAPSEN5、EA:訪問程序存儲(chǔ)控制信號(hào)6、PSEN:外部ROM讀選通信號(hào)RXD/
TXD/
INT0/INT1/
T0/
T1/
WR/
RD/1
2
3
4
5
6
7
8
9
10111213141516171819
2040
39
38
37
36
35
34
33
32
313029282726252424222180318051875189C519精選2021版課件時(shí)鐘電路與復(fù)位電路
(1)時(shí)鐘振蕩電路10精選2021版課件時(shí)序
關(guān)于MCS-51系列單片機(jī)的時(shí)序概念有4個(gè),可用定時(shí)單位來說明,從小到大依次是:節(jié)拍、狀態(tài)、機(jī)器周期和指令周期,下面分別加以說明。1)節(jié)拍與狀態(tài)把振蕩脈沖的周期定義為節(jié)拍,用P表示,也就是晶振的振蕩頻率fosc。2)狀態(tài)振蕩脈沖fosc經(jīng)過二分頻后,就是單片機(jī)時(shí)鐘信號(hào)的周期,定義為狀態(tài),用S表示。一個(gè)狀態(tài)包含兩個(gè)節(jié)拍,其前半周期對(duì)應(yīng)的節(jié)拍叫P1,后半周期對(duì)應(yīng)的節(jié)拍叫P2。3)機(jī)器周期
MCS-51系列單片機(jī)采用定時(shí)控制方式,有固定的機(jī)器周期。規(guī)定一個(gè)機(jī)器周期的寬度為6個(gè)狀態(tài),即12個(gè)振蕩脈沖周期,因此機(jī)器周期就是振蕩脈沖的十二分頻。小提示當(dāng)振蕩脈沖頻率為12MHz時(shí),一個(gè)機(jī)器周期為1μs;當(dāng)振蕩脈沖頻率為6MHz時(shí),一個(gè)機(jī)器周期為2μs。11精選2021版課件(2)復(fù)位電路單片機(jī)復(fù)位條件:必須使RST引腳持續(xù)2微秒高電平(外部時(shí)鐘12MHz)12精選2021版課件1
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15EPROM27641
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15EPROM27641
2
3
4
5
6
7
8
9
10111213141516171819
2040
39
38
37
36
35
34
33
32
31302928272625242422211
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15RAM62641
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15RAM6264
存
儲(chǔ)
器80318751805189C51片內(nèi)RAM片內(nèi)ROM256B(字節(jié))4K13精選2021版課件(1)程序存儲(chǔ)器程序存儲(chǔ)器內(nèi)部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序執(zhí)行的起始單元,
在這三個(gè)單元存放一條
無條件轉(zhuǎn)移指令中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時(shí)器0中斷外部中斷1定時(shí)器1中斷串行口中斷8位...0FFFH0FFEHEA=1EA=0程序存儲(chǔ)器資源分布中斷入口地址14精選2021版課件在單片機(jī)C語言程序設(shè)計(jì)中,用戶無需考慮程序的存放地址,編譯程序會(huì)在編譯過程中按照上述規(guī)定,自動(dòng)安排程序的存放地址。例如:C語言是從main()函數(shù)開始執(zhí)行的,編譯程序會(huì)在程序存儲(chǔ)器的0000H處自動(dòng)存放一條轉(zhuǎn)移指令,跳轉(zhuǎn)到main()函數(shù)存放的地址;中斷函數(shù)也會(huì)按照中斷類型號(hào),自動(dòng)由編譯程序安排存放在程序存儲(chǔ)器相應(yīng)的地址中。因此,讀者只需了解程序存儲(chǔ)器的結(jié)構(gòu)就可以了。15精選2021版課件0000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器00HFFH7FH80H(高128B)(低128B)RAM專用
寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲(chǔ)器
11第3區(qū)18H~1FH
01第1區(qū)08H~0FHRS1RS0寄存器區(qū)片內(nèi)RAM地址
00第0區(qū)00H~07H10第2區(qū)10H~17H工作寄存器區(qū)選擇位RS0、RS116精選2021版課件注意:一個(gè)單元地址對(duì)應(yīng)有8個(gè)位地址
MSB——MostSignificantBit(最高有效位)
LSB——LeastSignificantBit(最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表17精選2021版課件高128個(gè)單元☆離散分布有21個(gè)特殊功能寄存器SFR?!?/p>
11個(gè)可以進(jìn)行位尋址。☆特別提示:對(duì)SFR只能使用直接尋址方式,書寫時(shí)可使用寄存器符號(hào),也可用寄存器單元地址。18精選2021版課件在單片機(jī)的C語言程序設(shè)計(jì)中,可以通過關(guān)鍵字sfr來定義所有特殊功能寄存器,從而在程序中直接訪問它們,例如:sfrP1=0x90;//特殊功能寄存器P1的地址是90H,對(duì)應(yīng)P1口的8個(gè)I/O引腳在程序中就可以直接使用P1這個(gè)特殊功能寄存器了,下面語句是合法的:P1=0x00;//將P1口的8位I/O口全部清0C語言中,還可以通過關(guān)鍵字sbit來定義特殊功能寄存器中的可尋址位,在程序ex1_1.c中,采用了下面語句定義P1口的第0位:sbitP1_0=P1^0;通常情況下,這些特殊功能寄存器已經(jīng)在頭文件reg51.h中定義了,只要在程序中包含了該頭文件,就可以直接使用已定義的特殊功能寄存器。如果沒有頭文件reg51.h,或者該文件中只定義了部分特殊功能寄存器和位,用戶也可以在程序中自行定義。AVR,單片機(jī),C語言,C51,編程基礎(chǔ),實(shí)例,好資料AVR,單片機(jī),C語言,C51,編程基礎(chǔ),實(shí)例,好資料19精選2021版課件
本章內(nèi)容單片機(jī)開發(fā)系統(tǒng)及功能KeilC51軟件的使用第2章單片機(jī)開發(fā)系統(tǒng)20精選2021版課件單片機(jī)開發(fā)系統(tǒng)及功能
單片機(jī)開發(fā)系統(tǒng)是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的必需工具,包括計(jì)算機(jī)、單片機(jī)在線仿真器、工具軟件、編程器等。在線仿真功能調(diào)試功能
1)運(yùn)行控制功能
2)目標(biāo)系統(tǒng)狀態(tài)的讀出修改功能輔助設(shè)計(jì)功能
1)程序設(shè)計(jì)語言
2)程序編譯程序固化功能21精選2021版課件KeilC51軟件的使用
KeilC51啟動(dòng)窗口22精選2021版課件KeilC51軟件的使用
建立工程文件23精選2021版課件KeilC51軟件的使用
選擇目標(biāo)CPU24精選2021版課件KeilC51軟件的使用
圖2.17文本編緝窗口25精選2021版課件KeilC51軟件的使用
增加文件到組中26精選2021版課件KeilC51軟件的使用
選擇文件類型27精選2021版課件KeilC51軟件的使用
目標(biāo)屬性28精選2021版課件KeilC51軟件的使用
產(chǎn)生執(zhí)行文件29精選2021版課件KeilC51軟件的使用
選擇仿真方式30精選2021版課件KeilC51軟件的使用
KeilC51內(nèi)建了一個(gè)仿真CPU來模擬執(zhí)行程序,該仿真CPU功能強(qiáng)大,可以在沒有硬件和仿真器的情況下進(jìn)行程序的調(diào)試。不過,軟件模擬與真實(shí)的硬件執(zhí)行程序還是有區(qū)別的,其中最明顯的就是時(shí)序,具體表現(xiàn)在程序執(zhí)行的速度和用戶使用的計(jì)算機(jī)有關(guān),計(jì)算機(jī)性能越好,運(yùn)行速度越快。31精選2021版課件
本章內(nèi)容單片機(jī)開發(fā)系統(tǒng)及功能KeilC51軟件的使用第2章單片機(jī)開發(fā)系統(tǒng)32精選2021版課件單片機(jī)開發(fā)系統(tǒng)及功能
單片機(jī)開發(fā)系統(tǒng)是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的必需工具,包括計(jì)算機(jī)、單片機(jī)在線仿真器、工具軟件、編程器等。在線仿真功能調(diào)試功能
1)運(yùn)行控制功能
2)目標(biāo)系統(tǒng)狀態(tài)的讀出修改功能輔助設(shè)計(jì)功能
1)程序設(shè)計(jì)語言
2)程序編譯程序固化功能33精選2021版課件KeilC51軟件的使用
KeilC51啟動(dòng)窗口34精選2021版課件KeilC51軟件的使用
建立工程文件35精選2021版課件KeilC51軟件的使用
選擇目標(biāo)CPU36精選2021版課件KeilC51軟件的使用
圖2.17文本編緝窗口37精選2021版課件KeilC51軟件的使用
增加文件到組中38精選2021版課件KeilC51軟件的使用
選擇文件類型39精選2021版課件KeilC51軟件的使用
目標(biāo)屬性40精選2021版課件KeilC51軟件的使用
產(chǎn)生執(zhí)行文件41精選2021版課件KeilC51軟件的使用
選擇仿真方式42精選2021版課件KeilC51軟件的使用
KeilC51內(nèi)建了一個(gè)仿真CPU來模擬執(zhí)行程序,該仿真CPU功能強(qiáng)大,可以在沒有硬件和仿真器的情況下進(jìn)行程序的調(diào)試。不過,軟件模擬與真實(shí)的硬件執(zhí)行程序還是有區(qū)別的,其中最明顯的就是時(shí)序,具體表現(xiàn)在程序執(zhí)行的速度和用戶使用的計(jì)算機(jī)有關(guān),計(jì)算機(jī)性能越好,運(yùn)行速度越快。43精選2021版課件
本章內(nèi)容并行I/O口電路結(jié)構(gòu)認(rèn)識(shí)C語言C語言的基本語句C語言數(shù)據(jù)與運(yùn)算數(shù)組的概念第3章單片機(jī)并行I/O口應(yīng)用44精選2021版課件并行I/O口電路結(jié)構(gòu)
MCS-51系列單片機(jī)共有四個(gè)8位并行I/O口,分別用P0、P1、P2、P3表示。每個(gè)I/O口既可以按位操作使用單個(gè)引腳,也可以按字節(jié)操作使用8個(gè)引腳。45精選2021版課件P0口的結(jié)構(gòu)
輸出控制電路輸出驅(qū)動(dòng)電路
P0口邏輯電路46精選2021版課件
當(dāng)P0口作為輸出口使用時(shí),內(nèi)部總線將數(shù)據(jù)送入鎖存器,內(nèi)部的寫脈沖加在鎖存器時(shí)鐘端CP上,鎖存數(shù)據(jù)到Q、端。經(jīng)過MUX,T2反相后正好是內(nèi)部總線的數(shù)據(jù),送到P0口引腳輸出。當(dāng)P0口作為輸入口使用時(shí),應(yīng)區(qū)分讀引腳和讀端口兩種情況,所謂讀引腳,就是讀芯片引腳的狀態(tài),這時(shí)使用下方的數(shù)據(jù)緩沖器,由“讀引腳”信號(hào)把緩沖器打開,把端口引腳上的數(shù)據(jù)從緩沖器通過內(nèi)部總線讀進(jìn)來。讀端口是指通過上面的緩沖器讀鎖存器Q端的狀態(tài)。讀端口是為了適應(yīng)對(duì)I/O口進(jìn)行“讀-修改-寫”操作語句的需要。例如下面的C51語句:
P0=P0&0xf0; //將P0口的低4位引腳清0輸出P0口的結(jié)構(gòu)47精選2021版課件
除了I/O功能以外,在進(jìn)行單片機(jī)系統(tǒng)擴(kuò)展時(shí),P0口是作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用的,一般稱為地址/數(shù)據(jù)分時(shí)復(fù)用引腳。當(dāng)輸出地址或數(shù)據(jù)時(shí),由內(nèi)部發(fā)出控制信號(hào),使“控制”端為高電平,打開與門,并使多路開關(guān)MUX處于內(nèi)部地址/數(shù)據(jù)線與驅(qū)動(dòng)場(chǎng)效應(yīng)管柵極反相接通狀態(tài)。此時(shí),輸出驅(qū)動(dòng)電路由于兩個(gè)FET處于反相,形成推拉式電路結(jié)構(gòu),使負(fù)載能力大為提高。輸入數(shù)據(jù)時(shí),數(shù)據(jù)信號(hào)直接從引腳通過輸入緩沖器進(jìn)入內(nèi)部總線。P0口的結(jié)構(gòu)48精選2021版課件P1口的結(jié)構(gòu)
P1口邏輯電路49精選2021版課件P1口是準(zhǔn)雙向口,只能作為通用I/O口使用。P1口作為輸出口使用時(shí),無需再外接上拉電阻。P1口作為輸入口使用時(shí),應(yīng)區(qū)分讀引腳和讀端口。讀引腳時(shí),必須先向電路中的鎖存器寫入“1”,使輸出級(jí)的FET截止。P1口的結(jié)構(gòu)50精選2021版課件P2口的結(jié)構(gòu)
P2口邏輯電路51精選2021版課件P2口是準(zhǔn)雙向口,在實(shí)際應(yīng)用中,可以用于為系統(tǒng)提供高8位地址,也能作為通用I/O口使用。P2口作為通用I/O口的輸出口使用時(shí),與P1口一樣無需再外接上拉電阻。P2口作為通用I/O口的輸入口使用時(shí),應(yīng)區(qū)分讀引腳和讀端口。讀引腳時(shí),必須先向鎖存器寫入“1”。P2口的結(jié)構(gòu)52精選2021版課件P3口的結(jié)構(gòu)
P3口邏輯電路53精選2021版課件P3口是準(zhǔn)雙向口,可以作為通用I/O口使用,還可以作為第二功能使用。作為第二功能使用的端口,不能同時(shí)當(dāng)作通用I/O口使用,但其他未被使用的端口仍可作為通用I/O口使用。P3口作為通用I/O的輸出口使用時(shí),不用外接上拉電阻。P3口的結(jié)構(gòu)54精選2021版課件認(rèn)識(shí)C語言
C語言程序以函數(shù)形式組織程序結(jié)構(gòu),C程序中的函數(shù)與其他語言中所描述的“子程序”或“過程”的概念是一樣的。C程序基本結(jié)構(gòu)55精選2021版課件認(rèn)識(shí)C語言一個(gè)C語言源程序是由一個(gè)或若干個(gè)函數(shù)組成,每一個(gè)函數(shù)完成相對(duì)獨(dú)立的功能。每個(gè)C程序都必須有(且僅有)一個(gè)主函數(shù)main(),程序的執(zhí)行總是從主函數(shù)開始,調(diào)用其他函數(shù)后返回主函數(shù)main(),不管函數(shù)的排列順序如何,最后在主函數(shù)中結(jié)束整個(gè)程序。C語言程序中可以有預(yù)處理命令,預(yù)處理命令通常放在源程序的最前面。C語言程序使用“;”作為語句的結(jié)束符,一條語句可以多行書寫,也可以一行書寫多條語句。56精選2021版課件認(rèn)識(shí)C語言結(jié)構(gòu)化語言豐富的數(shù)據(jù)類型便于維護(hù)管理與匯編語言相比,C語言的優(yōu)點(diǎn)如下:不要求編程者詳細(xì)了解單片機(jī)的指令系統(tǒng),但需了解單片機(jī)的存儲(chǔ)器結(jié)構(gòu);寄存器分配、不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;結(jié)構(gòu)清晰,程序可讀性強(qiáng);編譯器提供了很多標(biāo)準(zhǔn)庫函數(shù),具有較強(qiáng)的數(shù)據(jù)處理能力。57精選2021版課件C語言的基本語句C語言程序的執(zhí)行部分由語句組成。C語言提供了豐富的程序控制語句,按照結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),組成各種復(fù)雜程序。這些語句主要包括表達(dá)式語句、復(fù)合語句、選擇語句和循環(huán)語句等。58精選2021版課件表達(dá)式語句和復(fù)合語句
表達(dá)式語句是最基本的C語言語句。表達(dá)式語句由表達(dá)式加上分號(hào)“;”組成,其一般形式如下:
表達(dá)式;執(zhí)行表達(dá)式語句就是計(jì)算表達(dá)式的值。在C語言中有一個(gè)特殊的表達(dá)式語句,稱為空語句??照Z句中只有一個(gè)分號(hào)“;”,程序執(zhí)行空語句時(shí)需要占用一條指令的執(zhí)行時(shí)間,但是什么也不做。在C51程序中常常把空語句作為循環(huán)體,用于消耗CPU時(shí)間等待事件發(fā)生的場(chǎng)合。59精選2021版課件表達(dá)式語句和復(fù)合語句
把多個(gè)語句用大括號(hào){}括起來,組合在一起形成具有一定功能的模塊,這種由若干條語句組合而成的語句塊稱為復(fù)合語句。在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。復(fù)合語句在程序運(yùn)行時(shí),{}中的各行單語句是依次順序執(zhí)行的。在C語言的函數(shù)中,函數(shù)體就是一個(gè)復(fù)合語句。60精選2021版課件選擇語句
基本if語句的格式如下:if(表達(dá)式){
語句組;
}if語句執(zhí)行過程:當(dāng)“表達(dá)式”的結(jié)果為“真”時(shí),執(zhí)行其后的“語句組”,否則跳過該語句組,繼續(xù)執(zhí)行下面的語句。
61精選2021版課件選擇語句
if語句中的“表達(dá)式”通常為邏輯表達(dá)式或關(guān)系表達(dá)式,也可以是任何其他的表達(dá)式或類型數(shù)據(jù),只要表達(dá)式的值非0即為“真”。以下語句都是合法的:
if(3){……}if(x=8){……}if(P3_0){……}在if語句中,“表達(dá)式”必須用括號(hào)括起來。在if語句中,花括號(hào)“{}”里面的語句組如果只有一條語句,可以省略花括號(hào)。如“if(P3_0==0)P1_0=0;”語句,但是為了提高程序的可讀性和防止程序書寫錯(cuò)誤,建議讀者在任何情況下,都加上花括號(hào)。62精選2021版課件選擇語句
if-else語句的一般格式如下:if(表達(dá)式) {
語句組1;
} else{
語句組2;
}if-else語句執(zhí)行過程:當(dāng)“表達(dá)式”的結(jié)果為“真”時(shí),執(zhí)行其后的“語句組1”,否則執(zhí)行“語句組2”63精選2021版課件選擇語句
if-else-if語句是由ifelse語句組成的嵌套,用來實(shí)現(xiàn)多個(gè)條件分支的選擇,其一般格式如下:if(表達(dá)式1) {
語句組1;
} elseif(表達(dá)式2){
語句組2;
} …elseif(表達(dá)式n){
語句組n;
}else{
語句組n+1;
}64精選2021版課件選擇語句
65精選2021版課件選擇語句
多分支選擇的switch語句,其一般形式如下:
switch(表達(dá)式){ case常量表達(dá)式1:語句組1;break; case常量表達(dá)式2:語句組2;break; …… case常量表達(dá)式n:語句組n;break; default:語句組n+1;}該語句的執(zhí)行過程是:首先計(jì)算表達(dá)式的值,并逐個(gè)與case后的常量表達(dá)式的值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),則執(zhí)行對(duì)應(yīng)該常量表達(dá)式后的語句組,再執(zhí)行break語句,跳出switch語句的執(zhí)行,繼續(xù)執(zhí)行下一條語句。如果表達(dá)式的值與所有case后的常量表達(dá)式均不相同,則執(zhí)行default后的語句組。66精選2021版課件while語句用來實(shí)現(xiàn)“當(dāng)型”循環(huán),執(zhí)行過程:首先判斷表達(dá)式,當(dāng)表達(dá)式的值為真(非0)時(shí),反復(fù)執(zhí)行循環(huán)體。為假(0)時(shí)執(zhí)行循環(huán)體外面的語句。循環(huán)體循環(huán)繼續(xù)的條件表達(dá)式下一條語句非0(真)0(假)循環(huán)體語句組while執(zhí)行過程格式:while(循環(huán)繼續(xù)的條件表達(dá)式)
{語句組;}花括號(hào)不能丟掉!請(qǐng)問:下述程序?qū)崿F(xiàn)了什么功能?main(){inti,sum=0;while(i<=10){sum=sum+i;i++;}}循環(huán)語句
67精選2021版課件do-while語句用來實(shí)現(xiàn)“直到型”循環(huán)執(zhí)行過程:先無條件執(zhí)行一次循環(huán)體,然后判斷條件表達(dá)式,當(dāng)表達(dá)式的值為真(非0)時(shí),返回執(zhí)行循環(huán)體直到條件表達(dá)式為假(0)為止。絕對(duì)不能少分號(hào)!循環(huán)體格式:do{
循環(huán)體語句組;
}while(循環(huán)繼續(xù)條件);花括號(hào)不能丟掉!循環(huán)繼續(xù)的條件表達(dá)式下一條語句非0(真)0(假)循環(huán)體語句組請(qǐng)問:下述程序?qū)崿F(xiàn)了什么功能?main(){inti,sum=0;do{sum=sum+i;i++;}while(i<=100);}循環(huán)語句
68精選2021版課件總循環(huán)次數(shù)已確定的情況下,可采用for語句形式為:for語句的一般形式:
for(循環(huán)變量賦初值;循環(huán)繼續(xù)條件;循環(huán)變量增值)
{
循環(huán)體語句組;
} 分隔符為分號(hào)請(qǐng)問:下述程序?qū)崿F(xiàn)了什么功能?main(){inti,y=0;for(i=1;i<=10;i++){y=y+i;}}循環(huán)語句
69精選2021版課件循環(huán)繼續(xù)條件for的下一條語句非0(真)0(假)循環(huán)體語句組循環(huán)變量賦初值循環(huán)變量增值for語句循環(huán)執(zhí)行過程只求解一次要執(zhí)行若干次,具體次數(shù)由“循環(huán)繼續(xù)條件”決定for語句不僅可用于循環(huán)次數(shù)已經(jīng)確定的情況,也可用于循環(huán)次數(shù)雖不確定,但給出了循環(huán)繼續(xù)條件的情況,它完全可以代替while語句和do-while語句。for(循環(huán)變量賦初值;循環(huán)繼續(xù)條件;循環(huán)變量增值)
{循環(huán)體語句組;} 70精選2021版課件分隔符為分號(hào)C語言數(shù)據(jù)與運(yùn)算
1.賦值運(yùn)算符2.算術(shù)運(yùn)算符和算術(shù)表達(dá)式3.關(guān)系運(yùn)算符和關(guān)系表達(dá)4.邏輯運(yùn)算符和邏輯表達(dá)式71精選2021版課件賦值運(yùn)算符
賦值語句的作用是把某個(gè)常量或變量或表達(dá)式的值賦值給另一個(gè)變量。符號(hào)為‘=’。這里并不是等于的意思,只是賦值,等于用‘==’表示。賦值語句左邊必須是變量或寄存器,且必須先定義。常量不能出現(xiàn)左邊。72精選2021版課件賦值運(yùn)算符和賦值表達(dá)式簡單的賦值運(yùn)算符:復(fù)合的賦值運(yùn)算符=+=、-=、*=、%=、/=i+=2等價(jià)于i=i+2a*=b+5等價(jià)于a=a*(b+5)x%=3等價(jià)于x=x%373精選2021版課件算術(shù)運(yùn)算符
+(加法運(yùn)算)-(減法運(yùn)算)*(乘法運(yùn)算符)
/(除法運(yùn)算符)%(求余運(yùn)算符,或稱模運(yùn)算符)如:4%2=0++(變量自加1)--(變量自減1)
注意兩個(gè)整數(shù)相除結(jié)果為整數(shù),如8/5的結(jié)果為1,舍去小數(shù)部分。如果參加運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù),則結(jié)果是實(shí)型。求余運(yùn)算要求%兩側(cè)都是整型數(shù)據(jù)。74精選2021版課件自增、自減運(yùn)算實(shí)戰(zhàn)演練:請(qǐng)說明程序運(yùn)行完后x,y,z,m,n的值分別是多少?main(){intx=6,y,z,m,n; y=++x; z=x--;m=y/z;n=y%z;}自增運(yùn)算符(++)和自減運(yùn)算符(--):(1)前置運(yùn)算──++變量、--變量 即先增減、后運(yùn)算。(2)后置運(yùn)算──變量++、變量--即先運(yùn)算、后增減。75精選2021版課件關(guān)系運(yùn)算符關(guān)系運(yùn)算符優(yōu)先級(jí)
<<=>>===!=低高76精選2021版課件關(guān)系表達(dá)式
用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式、賦值表達(dá)式或邏輯表達(dá)式)連接起來的式子,稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值為邏輯值“真”或“假”,以1代表“真”,以0代表“假”。
例如:
(1)關(guān)系表達(dá)式“8==4”的值為
,表達(dá)式的值為
。
(2)關(guān)系表達(dá)式“5>0”的值為
,表達(dá)式的值為
。
77精選2021版課件邏輯運(yùn)算符及其優(yōu)先級(jí)
邏輯運(yùn)算符優(yōu)先級(jí)
!(邏輯非)
&&(邏輯與)||(邏輯或)注意:邏輯運(yùn)算符與位操作運(yùn)算符的區(qū)別。78精選2021版課件邏輯表達(dá)式
用邏輯運(yùn)算符將一個(gè)或多個(gè)表達(dá)式連接起來,進(jìn)行邏輯運(yùn)算的式子。邏輯量的真判斷——非0邏輯量的假判斷——0若a=1,b=2,c=3,x=4,y=3,寫出下各個(gè)表達(dá)式的值:(1)a+b>c&&b==c(2)!a<b&&b!=c||x+y<=3(3)!(x=a)&&(y=b)&&000079精選2021版課件運(yùn)算類型運(yùn)算符優(yōu)先級(jí)結(jié)合性括號(hào)運(yùn)算符()1從左至右邏輯非和按位取反!~2從右至左算術(shù)運(yùn)算*/%3從左至右+-4從左至右左移、右移運(yùn)算<<>>5從左至右關(guān)系運(yùn)算<<=>>=6從左至右==!=7從左至右位運(yùn)算&8從左至右^9從左至右|10從左至右邏輯與&&11從左至右邏輯或||12從左至右賦值運(yùn)算與復(fù)合賦值運(yùn)算
=+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=14從右至左例如:(1)x<y&&m<n等效于(x<y)&&(m<n)(2)a==b||c==d等效于(a==b)||(c==d)(3)!a&&b>c等效于(!a)&&(b>c)80精選2021版課件位運(yùn)算與操作按位與操作符:&
格式:x&y
規(guī)則:對(duì)應(yīng)位均為1時(shí)才為1,否則為0
例如,
i=i&0x0f;
等同于
i&=0x0f;主要用途:取(或保留)1個(gè)數(shù)的某(些)位,其余各位置0。81精選2021版課件位運(yùn)算或操作按位或操作符:|
格式:x|y
規(guī)則:對(duì)應(yīng)位均為0時(shí)才為0,否則為1
例如,
i=i|0x0f;
等同于
i|=0x0f;主要用途:將1個(gè)數(shù)的某(些)位置1,其余各位不變82精選2021版課件位運(yùn)算異或操作按位異或操作符:^格式:x^y規(guī)則:對(duì)應(yīng)位相同時(shí)為0,不同時(shí)為1
例如,
i=i^0x0f;
等同于
i^=0x0f;主要用途:使1個(gè)數(shù)的某(些)位翻轉(zhuǎn)(即原來為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。83精選2021版課件位運(yùn)算按位取反操作按位取反操作符:~格式:~x規(guī)則:各位翻轉(zhuǎn),即原來為1的位變成0,原來為0的位變成1
例如,
i=~i;主要用途:間接地構(gòu)造一個(gè)數(shù),以增強(qiáng)程序的可移植性。84精選2021版課件左移運(yùn)算符“<<”的功能,是把“<<”左邊的操作數(shù)的各二進(jìn)制位全部左移若干位,移動(dòng)的位數(shù)由“<<”右邊的常數(shù)指定,高位丟棄,低位補(bǔ)0。例如:“a<<4”是指把a(bǔ)的各二進(jìn)制位向左移動(dòng)4位。如a=00000011B(十進(jìn)制數(shù)3),左移4位后為00110000B(十進(jìn)制數(shù)48)。右移運(yùn)算符“>>”的功能,是把“>>”左邊的操作數(shù)的各二進(jìn)制位全部右移若干位,移動(dòng)的位數(shù)由“>>”右邊的常數(shù)指定。進(jìn)行右移運(yùn)算時(shí),如果是無符號(hào)數(shù),則總是在其左端補(bǔ)“0”位運(yùn)算85精選2021版課件練習(xí)1.若x=10,則!X的值為真或假?2.若a=3,b=2,則if(a&b)的值為真或假?3.5&&0||8的值為?4.5>3&&4||8<4的結(jié)果為?86精選2021版課件分隔符為分號(hào)數(shù)組的概念
數(shù)組屬于常用的數(shù)據(jù)類型,數(shù)組中的元素有固定數(shù)目和相同類型,數(shù)組元素的數(shù)據(jù)類型就是該數(shù)組的基本類型。例如,整型數(shù)據(jù)的有序集合稱為整型數(shù)組,字符型數(shù)據(jù)的有序集合稱為字符型數(shù)組。數(shù)組還分為一維、二維、三維和多維數(shù)組等,常用的是一維、二維和字符數(shù)組。
87精選2021版課件數(shù)組的基本特點(diǎn)構(gòu)造類形數(shù)據(jù):由基本類型數(shù)據(jù)按照一定規(guī)則組成。數(shù)組:是有序數(shù)據(jù)的集合;數(shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型,用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來唯一地確定數(shù)組中的元素。應(yīng)用場(chǎng)合:需要處理的數(shù)據(jù)為數(shù)量已知的若干相同類型的數(shù)據(jù)時(shí)。
注意:先定義,后使用。88精選2021版課件一維數(shù)組的定義和引用一維數(shù)組的定義:一般格式:類型標(biāo)識(shí)符數(shù)組名[常量表達(dá)式];
int
array[10];
unsignedchar
num[7];說明:數(shù)組名——見名知意;數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址。同一數(shù)組中的所有元素,按其下標(biāo)的順序占用一段連續(xù)的存儲(chǔ)單元。方括弧而非圓括??;常量表達(dá)式:可以是常量或符號(hào)常量;表示數(shù)組元素的個(gè)數(shù)(也稱數(shù)組長度)。不允許對(duì)數(shù)組大小作動(dòng)態(tài)定義。數(shù)組元素下標(biāo)從0開始。array[0],array[1],…array[9];遵循標(biāo)識(shí)符命名規(guī)則89精選2021版課件數(shù)組元素的表達(dá)形式:數(shù)組名[下標(biāo)表達(dá)式]Array[4]=100;array[8]=34;array[10]=56;注意:數(shù)組下標(biāo)不能越界!一個(gè)數(shù)組元素具有和相同類型單個(gè)變量一樣的屬性,可以對(duì)它賦值和參與各種運(yùn)算。一維數(shù)組的引用90精選2021版課件一般格式:
數(shù)據(jù)類型數(shù)組名[常量表達(dá)式]={初值表}1.定義時(shí)賦初值;intscore[5]={1,2,3,4,5};2.給一部分元素賦值;intscore[5]={1,2};3.使所有元素為0;intscore[5]={0};4.給全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長度;
intscore[]={1,2,3,4,5};一維數(shù)組的初始化91精選2021版課件
本章內(nèi)容定時(shí)/計(jì)數(shù)器
C語言的函數(shù)
中斷系統(tǒng)第4章定時(shí)與中斷系統(tǒng)92精選2021版課件定時(shí)/計(jì)數(shù)器
8051單片機(jī)內(nèi)部有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,稱為T0(T0)和T1(T1)93精選2021版課件定時(shí)/計(jì)數(shù)器
8051定時(shí)器/計(jì)數(shù)器邏輯結(jié)構(gòu)94精選2021版課件定時(shí)/計(jì)數(shù)器
設(shè)置定時(shí)/計(jì)數(shù)器工作方式通過對(duì)方式寄存器TMOD的設(shè)置,確定相應(yīng)的定時(shí)/計(jì)數(shù)器是定時(shí)功能還是計(jì)數(shù)功能,工作方式以及啟動(dòng)方法。定時(shí)/計(jì)數(shù)器工作方式有四種:方式0、方式1、方式2和方式3。定時(shí)/計(jì)數(shù)器啟動(dòng)方式有兩種:軟件啟動(dòng)和硬軟件共同啟動(dòng)。除了從控制寄存器TCON發(fā)出的軟件啟動(dòng)信號(hào)外,還有外部啟動(dòng)信號(hào)引腳,這兩個(gè)引腳也是單片機(jī)的外部中斷輸入引腳。95精選2021版課件定時(shí)/計(jì)數(shù)器
設(shè)置計(jì)數(shù)初值T0、T1是16位加法計(jì)數(shù)器,分別由兩個(gè)8位專用寄存器組成,T0由TH0和TL0組成,T1由TH1和TL1組成。TL0、TL1、TH0、TH1的訪問地址依次為8AH
8DH,每個(gè)寄存器均可被單獨(dú)訪問,因此可以被設(shè)置為8位、13位或16位計(jì)數(shù)器使用。在計(jì)數(shù)器允許的計(jì)數(shù)范圍內(nèi),計(jì)數(shù)器可以從任何值開始計(jì)數(shù),對(duì)于加1計(jì)數(shù)器,當(dāng)計(jì)到最大值時(shí)(對(duì)于8位計(jì)數(shù)器,當(dāng)計(jì)數(shù)值從255再加1時(shí),計(jì)數(shù)值變?yōu)?),產(chǎn)生溢出。定時(shí)/計(jì)數(shù)器允許用戶編程設(shè)定開始計(jì)數(shù)的數(shù)值,稱為賦初值。初值不同,則計(jì)數(shù)器產(chǎn)生溢出時(shí),計(jì)數(shù)個(gè)數(shù)也不同。例如:對(duì)于8位計(jì)數(shù)器,當(dāng)初值設(shè)為100時(shí),再加1計(jì)數(shù)156個(gè),計(jì)數(shù)器就產(chǎn)生溢出;當(dāng)初值設(shè)為200時(shí),再加1計(jì)數(shù)56個(gè),計(jì)數(shù)器產(chǎn)生溢出。
96精選2021版課件定時(shí)/計(jì)數(shù)器
啟動(dòng)定時(shí)/計(jì)數(shù)器根據(jù)設(shè)置的定時(shí)/計(jì)數(shù)器啟動(dòng)方式,啟動(dòng)定時(shí)/計(jì)數(shù)器。如果采用軟件啟動(dòng),則需要把控制寄存器中的TR0或TR1置1;如果采用硬軟共同啟動(dòng)方式,不僅需要把控制寄存器中的TR0或TR1置1,還需要相應(yīng)外部啟動(dòng)信號(hào)為高電平。97精選2021版課件定時(shí)器的方式寄存器TMOD作用:TMOD用來確定兩個(gè)定時(shí)器的工作方式。低半字節(jié)設(shè)置定時(shí)器T0,高半字節(jié)設(shè)置定時(shí)器T1。字節(jié)地址:89H,不可以位尋址。格式:D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0
定時(shí)器1定時(shí)器0各位的含義:C/T:功能選擇位。0為定時(shí)器方式;1為計(jì)數(shù)器方式。M1,M0:方式選擇位??梢赃x擇為四種工作方式0、1、2、3之1。四種工作方式的區(qū)別后面講解。98精選2021版課件GATE:門控位。0:只要軟件控制位TR0或TR1置1即可啟動(dòng)定時(shí)器開始工作;1:只有INT0或INT1引腳為高電平,且TR0或TR1置1時(shí),才能啟動(dòng)相應(yīng)的定時(shí)器開始工作。返回TF0TH0TL012分頻OSC
中斷高8位低5位控制+T0(P3.4)TR0GATEINT0(P3.2)C/T=0C/T=199精選2021版課件例如:設(shè)定時(shí)器T0為定時(shí)工作方式,要求用軟件啟動(dòng)定時(shí)器T0工作,按方式1工作;定時(shí)器T1為計(jì)數(shù)工作方式,要求軟件啟動(dòng),工作方式為方式2。則根據(jù)TMOD各位的定義可知,其控制字為:
即控制字為61H,其指令形式為:
MOVTMOD,#61H格式:D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M001100001100精選2021版課件定時(shí)器的控制寄存器TCON作用:TMOD用來控制兩個(gè)定時(shí)器的啟動(dòng)、停止,表明定時(shí)器的溢出、中斷情況。字節(jié)地址:88H,可以位尋址。系統(tǒng)復(fù)位時(shí),所有位均清零。格式:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0各位的含義:TCON中的低4位與中斷有關(guān),在中斷章節(jié)中討論。TF1(8FH):定時(shí)器1溢出標(biāo)志。計(jì)滿后自動(dòng)置1。TR1(8EH):定時(shí)器1運(yùn)行控制位。由軟件清零關(guān)閉定時(shí)器1。當(dāng)GATE=0時(shí),TR1軟件置1即啟動(dòng)定時(shí)器1。(SETBTR1)當(dāng)GATE=1時(shí),且INT1為高電平時(shí),TR1置1啟動(dòng)定時(shí)器1;
101精選2021版課件定時(shí)器的四種工作方式方式的選擇:根據(jù)M1,M0來選擇。
00:方式001:方式110:方式211:方式3主要特點(diǎn):方式0:13位定時(shí)器。TH0的8位+TL0的低5位方式1:16位定時(shí)器。TH0的8位+TL0的8位方式2:能重復(fù)置初始值的8位定時(shí)器。TL0和TH0必須賦相同的值。方式3:只適用于定時(shí)器0,T0被拆成兩個(gè)獨(dú)立的8位定時(shí)器TL0,TH0。其中:TL0與方式0、1相同,可定時(shí)或計(jì)數(shù)。用定時(shí)器T0的
GATE、C/T、TR0、TF0、T0、和INT0控制。
TH0只可用作簡單的內(nèi)部定時(shí)功能。占用T1的控制位TF1、TR1和INT1,啟動(dòng)關(guān)閉僅受TR1控制。102精選2021版課件定時(shí)器的方式0、1示意圖返回TF0TH0TL012分頻OSC
中斷高8位8位或低5位控制+T0(P3.4)TR0GATEINT0(P3.2)C/T=0C/T=1103精選2021版課件定時(shí)器的方式2示意圖TH08位8位TL012分頻OSC
控制+T0(P3.4)TR0GATEINT0(P3.2)C/T=0C/T=11中斷TF00溢出104精選2021版課件定時(shí)器的初始值的計(jì)算對(duì)于不同的工作方式,計(jì)數(shù)器位數(shù)不同,故最大計(jì)數(shù)值M也不同:
方式0:M=213=8192
方式1:M=216=65536
方式2:M=28=256
方式3:定時(shí)器0分為2個(gè)8位計(jì)數(shù)器,每個(gè)M均為256。因?yàn)槎〞r(shí)/計(jì)數(shù)器是作加1計(jì)數(shù),并在計(jì)滿溢出時(shí)產(chǎn)生中斷,因此初值X的計(jì)算如下:
X=M–計(jì)數(shù)值計(jì)算出來的結(jié)果X轉(zhuǎn)換為16進(jìn)制數(shù)后分別寫入TL0(TL1)、TH0(TH1)。注意!方式0時(shí)初始值寫入時(shí),對(duì)于TL不用的高3位應(yīng)填入0!105精選2021版課件用T1、工作方式0實(shí)現(xiàn)1秒延時(shí)函數(shù),晶振頻率為12MHz。方式0采用13位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:8192×1
s=8.192ms,因此,定時(shí)時(shí)間不可能象任務(wù)7中一樣選擇50ms,可選擇定時(shí)時(shí)間為5ms,再循環(huán)200次。定時(shí)時(shí)間為5ms,則計(jì)數(shù)值為5ms/1
s=5000,T1的初值為:
X=M
計(jì)數(shù)值=8192
5000=3192=C78H=0110001111000B13位計(jì)數(shù)器中TL1的高3位未用,填寫0,TH1占高8位,所以,X的實(shí)際填寫值應(yīng)為:X=0110001100011000B=6318H舉例1106精選2021版課件用T1方式0實(shí)現(xiàn)任務(wù)7中1秒延時(shí)函數(shù)如下:voiddelay1s(){unsignedchari;TMOD=0x00; //置T1為工作方式0for(i=0;i<0xc8;i++){ //設(shè)置200次循環(huán)次數(shù)
TH1=0x63; //設(shè)置定時(shí)器初值
TL1=0x18;TR1=1; //啟動(dòng)T1while(!TF1);//查詢計(jì)數(shù)是否溢出,即定時(shí)5ms時(shí)間到,TF1=1TF1=0; //5ms定時(shí)時(shí)間到,將定時(shí)器溢出標(biāo)志位TF1清零
}}舉例1107精選2021版課件用T1、工作方式2實(shí)現(xiàn)1秒延時(shí),晶振頻率為12MHz。因工作方式2是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:256×1
s=256
s,為實(shí)現(xiàn)1秒延時(shí),可選擇定時(shí)時(shí)間為250
s,再循環(huán)4000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250,則T1的初值為:X=M
計(jì)數(shù)值=256
250=6=6H。采用T1方式2工作,因此,TMOD=0x20。舉例2108精選2021版課件用定時(shí)器工作方式2實(shí)現(xiàn)的1秒延時(shí)函數(shù)如下:voiddelay1s(){unsignedinti; //i取值范圍為0~4000,因此不能定義成unsignedcharTMOD=0x20; //設(shè)置T1為方式2TH1=6; //設(shè)置定時(shí)器初值,放在for循環(huán)之外
TL1=6;for(i=0;i<4000;i++){ //設(shè)置4000次循環(huán)次數(shù)
TR1=1; //啟動(dòng)T1while(!TF1);//查詢計(jì)數(shù)是否溢出,即定時(shí)250
s時(shí)間到,TF1=1TF1=0; //250
s定時(shí)時(shí)間到,將定時(shí)器溢出標(biāo)志位TF1清零
}}舉例2109精選2021版課件在C語言程序中,子程序的作用是由函數(shù)來實(shí)現(xiàn)的,函數(shù)是C語言的基本組成模塊,一個(gè)C語言程序就是由若干個(gè)模塊化的函數(shù)組成的。C程序都是由一個(gè)主函數(shù)main()和若干個(gè)子函數(shù)構(gòu)成,有且只有一個(gè)主函數(shù),程序由主函數(shù)開始執(zhí)行,主函數(shù)根據(jù)需要來調(diào)用其他函數(shù),其它函數(shù)可以有多個(gè)。C語言的函數(shù)110精選2021版課件1.標(biāo)準(zhǔn)庫函數(shù)標(biāo)準(zhǔn)庫函數(shù)是由C51的編譯器提供的,用戶不必定義這些函數(shù),可以直接調(diào)用。KEILC51編譯器提供了100多個(gè)庫函數(shù)供我們使用。常用的C51庫函數(shù)包括一般I/O口函數(shù)、訪問SFR地址函數(shù)等,在C51編譯環(huán)境中,以頭文件的形式給出。2.用戶自定義函數(shù)用戶自定義函數(shù)是用戶根據(jù)需要自行編寫的函數(shù),它必須先定義之后才能被調(diào)用。函數(shù)分類和定義111精選2021版課件函數(shù)定義的一般形式是:函數(shù)類型函數(shù)名(形式參數(shù)表)形式參數(shù)說明{局部變量定義函數(shù)體語句}
其中,“函數(shù)類型”說明了自定義函數(shù)返回值的類型?!昂瘮?shù)名”是自定義函數(shù)的名字?!靶问絽?shù)表”給出函數(shù)被調(diào)用時(shí)傳遞數(shù)據(jù)的形式參數(shù),形式參數(shù)的類型必須要加以說明。ANSIC標(biāo)準(zhǔn)允許在形式參數(shù)表中對(duì)形式參數(shù)的類型進(jìn)行說明。如果定義的是無參數(shù)函數(shù),可以沒有形式參數(shù)表,但是圓括號(hào)不能省略。“局部變量定義”是對(duì)在函數(shù)內(nèi)部使用的局部變量進(jìn)行定義。“函數(shù)體語句”是為完成函數(shù)的特定功能而設(shè)置的語句。函數(shù)分類和定義112精選2021版課件
函數(shù)調(diào)用就是在一個(gè)函數(shù)體中引用另外一個(gè)已經(jīng)定義的函數(shù),前者稱為主調(diào)用函數(shù),后者稱為被調(diào)用函數(shù),函數(shù)調(diào)用的一般格式為: 函數(shù)名(實(shí)際參數(shù)列表);對(duì)于有參數(shù)類型的函數(shù),若實(shí)際參數(shù)列表中有多個(gè)實(shí)參,則各參數(shù)之間用逗號(hào)隔開。實(shí)參與形參順序?qū)?yīng),個(gè)數(shù)應(yīng)相等,類型應(yīng)一致。函數(shù)調(diào)用113精選2021版課件
在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)需要具備如下條件:(1)被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)(庫函數(shù)或者用戶自己已經(jīng)定義的函數(shù)。如果函數(shù)定義在調(diào)用之后,那么必須在調(diào)用之前(一般在程序頭部)對(duì)函數(shù)進(jìn)行聲明。(2)如果程序使用了庫函數(shù),則要在程序的開頭用#include預(yù)處理命令將調(diào)用函數(shù)所需要的信息包含在本文件中。如果不是在本文件中定義的函數(shù),那么在程序開始要用extern修飾符進(jìn)行函數(shù)原型說明。函數(shù)調(diào)用114精選2021版課件中斷是指通過硬件來改變CPU的運(yùn)行方向。計(jì)算機(jī)在執(zhí)行程序的過程中,外部設(shè)備向CPU發(fā)出中斷請(qǐng)求信號(hào),要求CPU暫時(shí)中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來被中斷的程序。這種程序在執(zhí)行過程中由于外界的原因而被中間打斷的情況稱為“中斷”。
什么是中斷115精選2021版課件(1)中斷服務(wù)程序:CPU響應(yīng)中斷后,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,該處理程序通常稱之為中斷服務(wù)程序。(2)主程序:原來正常運(yùn)行的程序稱為主程序。(3)斷點(diǎn):主程序被斷開的位置(或地址)稱為斷點(diǎn)。(4)中斷源:引起中斷的原因,或能發(fā)出中斷申請(qǐng)的來源,稱為中斷源。(5)中斷請(qǐng)求:中斷源要求服務(wù)的請(qǐng)求稱為中斷請(qǐng)求(或中斷申請(qǐng)。
中斷基本概念116精選2021版課件同步工作異常處理實(shí)時(shí)處理中斷特點(diǎn)117精選2021版課件中斷系統(tǒng)的結(jié)構(gòu)MCS-51中斷系統(tǒng)內(nèi)部結(jié)構(gòu)示意圖118精選2021版課件MCS-51系列單片機(jī)中斷源序號(hào)中斷源說明1外部中斷0請(qǐng)求由P3.2引腳輸入,通過IT0位(TCON.0)來決定是低電平有效還是下降沿有效。一旦輸入信號(hào)有效,即向CPU申請(qǐng)中斷,并建立IE0(TCON.1)中斷標(biāo)志。任務(wù)9中采用下降沿有效,由按鍵產(chǎn)生下降沿。2外部中斷1請(qǐng)求由P3.3引腳輸入,通過IT1位(TCON.2)來決定是低電平有效還是下降沿有效。一旦輸入信號(hào)有效,即向CPU申請(qǐng)中斷,并建立IE1(TCON.3)中斷標(biāo)志。3TF0T0溢出中斷請(qǐng)求當(dāng)T0產(chǎn)生溢出時(shí),T0溢出中斷標(biāo)志位TF0(TCON.5)置位(由硬件自動(dòng)執(zhí)行),請(qǐng)求中斷處理。4TF1T1溢出中斷請(qǐng)求當(dāng)T1產(chǎn)生溢出時(shí),T1溢出中斷標(biāo)志位TF1(TCON.7)置位(由硬件自動(dòng)執(zhí)行),請(qǐng)求中斷處理。5RI或TI串行口中斷請(qǐng)求當(dāng)接收或發(fā)送完一個(gè)串行幀時(shí),內(nèi)部串行口中斷請(qǐng)求標(biāo)志位RI(SCON.0)或TI(SCON.1)置位(由硬件自動(dòng)執(zhí)行),請(qǐng)求中斷。119精選2021版課件中斷標(biāo)志中斷標(biāo)志位位名稱說明TF1T1溢出中斷標(biāo)志TCON.7T1被啟動(dòng)計(jì)數(shù)后,從初值開始加1計(jì)數(shù),計(jì)滿溢出后由硬件置位TF1,同時(shí)向CPU發(fā)出中斷請(qǐng)求,此標(biāo)志一直保持到CPU響應(yīng)中斷后才由硬件自動(dòng)清0。也可由軟件查詢?cè)摌?biāo)志,并由軟件清0。前述的定時(shí)器編程都是采用查詢方式實(shí)現(xiàn)。TF0T0溢出中斷標(biāo)志TCON.5T0被啟動(dòng)計(jì)數(shù)后,從初值開始加1計(jì)數(shù),計(jì)滿溢出后由硬件置位TF0,同時(shí)向CPU發(fā)出中斷請(qǐng)求,此標(biāo)志一直保持到CPU響應(yīng)中斷后才由硬件自動(dòng)清0。也可由軟件查詢?cè)摌?biāo)志,并由軟件清0。IE1中斷標(biāo)志TCON.3IE1=1,外部中斷1向CPU申請(qǐng)中斷。IT1中斷觸發(fā)方式控制位TCON.2當(dāng)IT1=0,外部中斷1控制為電平觸發(fā)方式;當(dāng)IT1=1,外部中斷1控制為邊沿(下降沿)觸發(fā)方式。IE0中斷標(biāo)志TCON.1IE0=1,外部中斷0向CPU申請(qǐng)中斷。IT0中斷觸發(fā)方式控制位TCON.0當(dāng)IT0=0,外部中斷0控制為電平觸發(fā)方式;當(dāng)IT0=1,外部中斷0控制為邊沿(下降沿)觸發(fā)方式。TI串行發(fā)送中斷標(biāo)志SCON.1CPU將數(shù)據(jù)寫入發(fā)送緩沖器SBUF時(shí),啟動(dòng)發(fā)送,每發(fā)送完一個(gè)串行幀,硬件都使TI置位;但CPU響應(yīng)中斷時(shí)并不自動(dòng)清除TI,必須由軟件清除。RI串行接收中斷標(biāo)志SCON.0當(dāng)串行口允許接收時(shí),每接收完一個(gè)串行幀,硬件都使RI置位;同樣,CPU在響應(yīng)中斷時(shí)不會(huì)自動(dòng)清除RI,必須由軟件清除。120精選2021版課件中斷的開放和禁止MCS-51系列單片機(jī)的5個(gè)中斷源都是可屏蔽中斷,中斷系統(tǒng)內(nèi)部設(shè)有一個(gè)專用寄存器IE,用于控制CPU對(duì)各中斷源的開放或屏蔽。IE寄存器格式如下:EA××ESET1EX1ET0EX0D7D6D5D4D3D2D1D0IE(A8H)121精選2021版課件中斷的開放和禁止中斷允許位位名稱說明EA總中斷允許控制位IE.7EA=1,開放所有中斷,各中斷源的允許和禁止可通過相應(yīng)的中斷允許位單獨(dú)加以控制;EA=0,禁止所有中斷。ES串行口中斷允許位IE.4ES=1,允許串行口中斷;ES=0禁止串行口中斷。ET1T1中斷允許位IE.3ET1=1,允許T1中斷;ET1=0,禁止T1中斷。EX1)中斷允許位IE.2EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。ET0T0中斷允許位IE.1ET0=1,允許T0中斷;ET0=0,禁止T0中斷。EX0)中斷允許位IE.0EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0中斷。122精選2021版課件中斷優(yōu)先級(jí)MCS-51系列單片機(jī)有兩個(gè)中斷優(yōu)先級(jí):高優(yōu)先級(jí)和低優(yōu)先級(jí)。每個(gè)中斷源都可以通過設(shè)置中斷優(yōu)先級(jí)寄存器IP確定為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷,實(shí)現(xiàn)二級(jí)嵌套。同一優(yōu)先級(jí)別的中斷源可能不止一個(gè),因此,也需要進(jìn)行優(yōu)先權(quán)排隊(duì)。同一優(yōu)先級(jí)別的中斷源采用自然優(yōu)先級(jí)。中斷優(yōu)先級(jí)寄存器IP,用于鎖存各中斷源優(yōu)先級(jí)控制位。IP中的每一位均可由軟件來置1或清0,1表示高優(yōu)先級(jí),0表示低優(yōu)先級(jí)。123精選2021版課件中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)控制位位名稱說明PS串行口中斷優(yōu)先控制位IP.4PS=1,設(shè)定串行口為高優(yōu)先級(jí)中斷;PS=0,設(shè)定串行口為低優(yōu)先級(jí)中斷。PT1定時(shí)器T1中斷優(yōu)先控制位IP.3PT1=1,設(shè)定定時(shí)器T1為高優(yōu)先級(jí)中斷;PT1=0,設(shè)定定時(shí)器T1為低優(yōu)先級(jí)中斷。PX1外部中斷1中斷優(yōu)先控制位IP.2PX1=1,設(shè)定外部中斷1為高優(yōu)先級(jí)中斷;PX1=0,設(shè)定外部中斷1為低優(yōu)先級(jí)中斷。PT0T0中斷優(yōu)先控制位IP.1PT0=1,設(shè)定定時(shí)器T0為高優(yōu)先級(jí)中斷;PT0=0,設(shè)定定時(shí)器T0為低優(yōu)先級(jí)中斷。PX0外部中斷0中斷優(yōu)先控制位IP.0PX0=1,設(shè)定外部中斷0為高優(yōu)先級(jí)中斷;PX0=0,設(shè)定外部中斷0為低優(yōu)先級(jí)中斷。124精選2021版課件中斷處理過程中斷響應(yīng)中斷響應(yīng)是指CPU對(duì)中斷源中斷請(qǐng)求的響應(yīng)。CPU并非任何時(shí)刻都能響應(yīng)中斷請(qǐng)求,而是在滿足所有中斷響應(yīng)條件、且不存在任何一種中斷阻斷情況時(shí)才會(huì)響應(yīng)。CPU響應(yīng)中斷的條件有:①有中斷源發(fā)出中斷請(qǐng)求;②中斷總允許位EA置1;③申請(qǐng)中斷的中斷源允許位置1。CPU響應(yīng)中斷的阻斷情況有:①CPU正在響應(yīng)同級(jí)或更高優(yōu)先級(jí)的中斷;②當(dāng)前指令未執(zhí)行完;③正在執(zhí)行中斷返回或訪問寄存器IE和IP。125精選2021版課件中斷處理過程中斷響應(yīng)過程就是自動(dòng)調(diào)用并執(zhí)行中斷函數(shù)的過程。C51編譯器支持在C源程序中直接以函數(shù)形式編寫中斷服務(wù)程序。常用的中斷函數(shù)定義語法如下:
void函數(shù)名()interruptn
其中n為中斷類型號(hào),C51編譯器允許0~31個(gè)中斷,n取值范圍0~31。下面給出了8051控制器所提供的5個(gè)中斷源所對(duì)應(yīng)的中斷類型號(hào)和中斷服務(wù)程序入口地址:
中斷源 n入口地址 外部中斷0 0 0003H
定時(shí)/計(jì)數(shù)器01 000BH
外部中斷1 2 0013H
定時(shí)/計(jì)數(shù)器1 3 001BH
串行口 4 0023H126精選2021版課件中斷處理過程中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間是指從中斷請(qǐng)求標(biāo)志位置位到CPU開始執(zhí)行中斷服務(wù)程序的第一條語句所需要的時(shí)間。1)中斷請(qǐng)求不被阻斷的情況外部中斷響應(yīng)時(shí)間至少需要3個(gè)機(jī)器周期,這是最短的中斷響應(yīng)時(shí)間。一般來說,若系統(tǒng)中只有一個(gè)中斷源,則中斷響應(yīng)時(shí)間為3
8個(gè)機(jī)器周期。2)中斷請(qǐng)求被阻斷的情況如果系統(tǒng)不滿足所有中斷響應(yīng)條件、或者存在任何一種中斷阻斷情況,那么中斷請(qǐng)求將被阻斷,中斷響應(yīng)時(shí)間將會(huì)延長。127精選2021版課件
本章內(nèi)容單片機(jī)與LED數(shù)碼管接口LED大屏幕顯示器和接口字符LCD液晶顯示和接口單片機(jī)與鍵盤接口第5章顯示和鍵盤接口技術(shù)128精選2021版課件單片機(jī)與LED數(shù)碼管接口LED數(shù)碼管結(jié)構(gòu)及原理
129精選2021版課件單片機(jī)與LED數(shù)碼管接口LED數(shù)碼管結(jié)構(gòu)及原理
130精選2021版課件單片機(jī)與LED數(shù)碼管接口LED數(shù)碼管字型編碼若將數(shù)值0送至單片機(jī)的P1口,數(shù)碼管上不會(huì)顯示數(shù)字“0”。顯然,要使數(shù)碼管顯示出數(shù)字或字符,直接將相應(yīng)的數(shù)字或字符送至數(shù)碼管的段控制端是不行的,必須使段控制端輸出相應(yīng)的字形編碼。將單片機(jī)P1口的P1.0、P1.1…P1.7八個(gè)引腳依次與數(shù)碼管的a、b…f、dp八個(gè)段控制引腳相連接。如果使用的是共陽極數(shù)碼管,COM端接+5V,要顯示數(shù)字“0”,則數(shù)碼管的a、b、c、d、e、f六個(gè)段應(yīng)點(diǎn)亮,其它段熄滅,需向P1口傳送數(shù)據(jù)11000000B(C0H),該數(shù)據(jù)就是與字符“0”相對(duì)應(yīng)的共陽極字型編碼。若共陰極的數(shù)碼管COM端接地,要顯示數(shù)字“1”,則數(shù)碼管的b、c兩段點(diǎn)亮,其他段熄滅,需向P1口傳送數(shù)據(jù)00000110(06H),這就是字符“1”的共陰極字型碼了。131精選2021版課件單片機(jī)與LED數(shù)碼管接口LED靜態(tài)顯示靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止。這種顯示方式的各位數(shù)碼管的公共端恒定接地(共陰極)或+5V(共陽極)。每個(gè)數(shù)碼管的八個(gè)段控制引腳分別與一個(gè)八位I/O端口相連。只要I/O端口有顯示字型碼輸出,數(shù)碼管就顯示給定字符,并保持不變,直到I/O口輸出新的段碼。
132精選2021版課件單片機(jī)與LED數(shù)碼管接口LED靜態(tài)顯示133精選2021版課件單片機(jī)與LED數(shù)碼管接口LED動(dòng)態(tài)顯示134精選2021版課件單片機(jī)與LED數(shù)碼管接口LED動(dòng)態(tài)顯示動(dòng)態(tài)顯示是一種按位輪流點(diǎn)亮各位數(shù)碼管的顯示方式,即在某一時(shí)段,只讓其中一位數(shù)碼管“位選端”有效,并送出相應(yīng)的字型顯示編碼。此時(shí),其它位的數(shù)碼管因“位選端”無效而都處于熄滅狀態(tài);下一時(shí)段按順序選通另外一位數(shù)碼管,并送出相應(yīng)的字型顯示編碼,依此規(guī)律循環(huán)下去,即可使各位數(shù)碼管分別間斷地顯示出相應(yīng)的字符。這一過程稱為動(dòng)態(tài)掃描顯示。
135精選2021版課件LED大屏幕顯示器和接口
LED大屏幕顯示器結(jié)構(gòu)及原理LED點(diǎn)陣顯示器是把很多LED發(fā)光二極管按矩陣方式排列在一起
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度挖掘機(jī)操作培訓(xùn)及認(rèn)證合同
- 2025插畫師獨(dú)立工作室勞動(dòng)合同協(xié)議4篇
- 2025年度櫥柜定制與智能家居生態(tài)鏈合同4篇
- 2025年度智能穿戴設(shè)備銷售合同意向書
- 2025年度國內(nèi)貨物代理合同示范文本
- 二零二五年度產(chǎn)學(xué)研合作研發(fā)合同:智能電網(wǎng)系統(tǒng)研究與開發(fā)2篇
- 二零二五年度體育賽事顧問兼職服務(wù)合同
- 2025年度床上用品原材料供應(yīng)合同7篇
- 2025年度農(nóng)業(yè)現(xiàn)代化技術(shù)引進(jìn)與推廣服務(wù)合同范本
- 2025年度掛靠勞務(wù)公司人工智能產(chǎn)業(yè)園區(qū)建設(shè)合同
- 城市道路交通安全評(píng)價(jià)標(biāo)準(zhǔn) DG-TJ08-2407-2022
- 統(tǒng)編版高中政治選擇性必修2《法律與生活》知識(shí)點(diǎn)復(fù)習(xí)提綱詳細(xì)版
- 急腹癥的診斷思路
- 培訓(xùn)機(jī)構(gòu)安全隱患排查記錄(帶附件)
- 2024小說推文行業(yè)白皮書
- 研究性成果及創(chuàng)新性成果怎么寫(通用6篇)
- 特殊感染手術(shù)管理考試試題及答案
- 旅館治安管理制度及突發(fā)事件應(yīng)急方案三篇
- 土地增值稅清算底稿中稅協(xié)版
- 小區(qū)綠化養(yǎng)護(hù)方案及報(bào)價(jià)(三篇)
- GB/T 13024-2003箱紙板
評(píng)論
0/150
提交評(píng)論