![學(xué)習(xí)情境一顯示系統(tǒng)設(shè)計與制作_第1頁](http://file4.renrendoc.com/view/b0fde2d0dc281653c82af8def56f5b15/b0fde2d0dc281653c82af8def56f5b151.gif)
![學(xué)習(xí)情境一顯示系統(tǒng)設(shè)計與制作_第2頁](http://file4.renrendoc.com/view/b0fde2d0dc281653c82af8def56f5b15/b0fde2d0dc281653c82af8def56f5b152.gif)
![學(xué)習(xí)情境一顯示系統(tǒng)設(shè)計與制作_第3頁](http://file4.renrendoc.com/view/b0fde2d0dc281653c82af8def56f5b15/b0fde2d0dc281653c82af8def56f5b153.gif)
![學(xué)習(xí)情境一顯示系統(tǒng)設(shè)計與制作_第4頁](http://file4.renrendoc.com/view/b0fde2d0dc281653c82af8def56f5b15/b0fde2d0dc281653c82af8def56f5b154.gif)
![學(xué)習(xí)情境一顯示系統(tǒng)設(shè)計與制作_第5頁](http://file4.renrendoc.com/view/b0fde2d0dc281653c82af8def56f5b15/b0fde2d0dc281653c82af8def56f5b155.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
學(xué)習(xí)情境一顯示系統(tǒng)設(shè)計與制作第一頁,共一百三十八頁,2022年,8月28日【訓(xùn)練項目1-1】跑馬燈的設(shè)計與制作一、項目要求在Proteus仿真軟件和單片機實訓(xùn)板上實現(xiàn)8位LED的跑馬燈效果,跑馬方式可以采用“自上到下的循環(huán)”、“自下到上的循環(huán)”、“兩頭到中間再中間到兩頭循環(huán)”等等。學(xué)生能采用單片機的P0、P1、P2、P3的任意端口控制8位LED,實現(xiàn)單燈閃爍和跑馬效果,并能控制它們的速度。第二頁,共一百三十八頁,2022年,8月28日二、項目實訓(xùn)儀器、設(shè)備及實訓(xùn)材料工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量電腦1臺51單片機下載線和USB線1根杜邦導(dǎo)線8PKeiluVision41套晶振1只AT89S51/STC60S21片Proteus7.5軟件1套單片機實訓(xùn)板1塊穩(wěn)壓電源1臺三、項目實施過程及其步驟任務(wù)1控制一個LED閃爍任務(wù)描述:采用單片機的P0.x、P1.x、P2.x、P3.x的任意端口控制一個LED,在Proteus軟件和單片機實訓(xùn)板上,實現(xiàn)LED閃爍,并能控制閃爍速度。第三頁,共一百三十八頁,2022年,8月28日任務(wù)2
制作8位LED跑馬燈任務(wù)描述:采用單片機的P0、P1、P2、P3的任意端口控制8位LED,在Proteus軟件和單片機實訓(xùn)板上,制作8位LED的跑馬燈,并能控制LED跑馬速度。四、思考與分析(1)調(diào)試程序時,黃色箭頭指向的當(dāng)前行代碼有沒有執(zhí)行?(2)繪制任務(wù)1和2的程序運行軌跡,即黃色箭頭在程序代碼行走的軌跡。(3)改變跑馬燈循環(huán)閃爍方式,如:自下向上循環(huán)、自兩頭向中間再向兩頭循環(huán)等。第四頁,共一百三十八頁,2022年,8月28日1.1什么是單片機單片微型計算機(SingleChipMicrocomputer)簡稱單片機,是指集成在一個芯片上的微型計算機,它的各種功能部件,包括CPU(CentralProcessingUnit)、存儲器(memory)、基本輸入/輸出(Input/Output,簡稱I/O)接口電路、定時/計數(shù)器和中斷系統(tǒng)等,都制作在一塊集成芯片上,構(gòu)成一個完整的微型計算機。由于它的結(jié)構(gòu)與指令功能都是按照工業(yè)控制要求設(shè)計的,故又稱為微控制器(Micro-ControllerUnit,簡稱MCU)。第五頁,共一百三十八頁,2022年,8月28日
CPU
存儲器定時器/計數(shù)器
中斷系統(tǒng)P0-P3TxDRxD
TINT并行I/O口串行I/O口單片機的基本結(jié)構(gòu)第六頁,共一百三十八頁,2022年,8月28日單片機種類
◆目前8位單片機仍是單片機的主流機型;◆生產(chǎn)廠商:◆單片機的發(fā)展經(jīng)歷了由4位機到8位機,再到16位機的發(fā)展過程美國微芯片公司:PIC16C××系列、PIC17C××系列、PIC1400系列,美國英特爾公司的MCS-48和MCS-51系列,美國摩托羅拉公司的MC68HC05系列和MC68HC11系列,美國齊洛格公司的Z8系列,日本電氣公司的μPD78××系列,美國莫斯特克公司和仙童公司合作生產(chǎn)的F8(3870)系列等。
第七頁,共一百三十八頁,2022年,8月28日型號Flash(KB)RAM(B)EEPROM(KB)I/O引腳UART個數(shù)定時器個數(shù)WDTA/D路/位fmax(MHz)AT20512128--1512----24AT89S514128--3212Yes--33AT89S528256---3213Yes--33AT89S82531225623213Yes--33STC011256--1622Yes--35STC044256--4022Yes--35STC60S260128014034Yes8/1035STC12LE16S2161280454034Yes8/1035Atmel和STC單片機選型比較第八頁,共一百三十八頁,2022年,8月28日1.28051內(nèi)核單片機的引腳及內(nèi)部結(jié)構(gòu)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:地址鎖存控制信號1、電源線:VCC(+5V)、VSS(地)EAPSEN5、EA:訪問程序存儲控制信號6、PSEN:外部ROM讀選通信號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
313029282726252424222180318051875189C51第九頁,共一百三十八頁,2022年,8月28日引腳名稱(序號)第二功能第二功能描述P3.0(10)RXD串行數(shù)據(jù)接收端口P3.1(11)TXD串行數(shù)據(jù)發(fā)送端口P3.2(12)/INT0外部中斷0輸入端口P3.3(13)/INT1外部中斷1輸入端口P3.4(14)T0定時/計數(shù)器0的輸入端口P3.5(15)T1定時/計數(shù)器1的輸入端口P3.6(16)/WR外部RAM或外部I/O寫選通端口P3.7(17)/RD外部RAM或外部I/O讀選通端口P3端口的第二功能第十頁,共一百三十八頁,2022年,8月28日1.2.2單片機的內(nèi)部結(jié)構(gòu)第十一頁,共一百三十八頁,2022年,8月28日單片機硬件結(jié)構(gòu)時鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時計數(shù)器中央處理器CPU:8位,運算和控制功能內(nèi)部RAM:共256個RAM單元,用戶使用前128個單元,用于存放可讀寫數(shù)據(jù),后128個單元被專用寄存器占用。內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。定時/計數(shù)器:兩個16位的定時/計數(shù)器,實現(xiàn)定時或計數(shù)功能。并行I/O口:4個8位的I/O口P0、P1、P2、P3。串行口:一個全雙工串行口。中斷控制系統(tǒng):5個中斷源(外中斷2個,定時/計數(shù)中斷2個,串行中斷1個)時鐘電路:可產(chǎn)生時鐘脈沖序列,允許晶振頻率6MHZ和12MHZ復(fù)位電路第十二頁,共一百三十八頁,2022年,8月28日8051單片機的基本組成中央處理器CPU:8位,運算和控制功能內(nèi)部RAM:共256個RAM單元,用戶使用前128個單元, 用于存放可讀寫數(shù)據(jù),后128個單元被專用寄存器占用。內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。定時/計數(shù)器:兩個16位的定時/計數(shù)器,實現(xiàn)定時或計數(shù)功能。并行I/O口:4個8位的I/O口P0、P1、P2、P3。串行口:一個全雙工串行口。中斷控制系統(tǒng):5個中斷源(外中斷2個,定時/計數(shù)中斷2個,串行中斷1個)時鐘電路:可產(chǎn)生時鐘脈沖序列,允許晶振頻率6MHZ和12MHZ第十三頁,共一百三十八頁,2022年,8月28日振蕩電路
(1)時鐘產(chǎn)生方式(a)內(nèi)部方式
(b)外部方式第十四頁,共一百三十八頁,2022年,8月28日(2)基本時序周期①振蕩周期為晶振的振蕩頻率,則振蕩周期為1/6μs。②時鐘周期為振蕩周期的兩倍,則時鐘周期為1/3μs。③機器周期為時鐘周期的六倍,則機器周期為2μs。④指令周期為完成一條指令所花費的時間。一般匯編語言指令周期1~4個機器周期,對于C語言來說,每條語句來花費多少個指令周期是比較難計算,而且也沒有計算的意義,所以一般只要大家記住振蕩周期越?。ɑ蛘袷庮l率越高),執(zhí)行C語言語句的時間就越短。另外,對于STC12C5A60S2單片機來說,其是單時鐘/機器周期單片機,所以它比AT89S51/52單片機要快8~12倍。第十五頁,共一百三十八頁,2022年,8月28日單片機復(fù)位條件:必須使RST引腳持續(xù)2微秒高電平(外部時鐘12MHz)復(fù)位電路第十六頁,共一百三十八頁,2022年,8月28日1.38051內(nèi)核單片機的存儲器結(jié)構(gòu)程序存儲器內(nèi)部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序執(zhí)行的起始單元,
在這三個單元存放一條
無條件轉(zhuǎn)移指令中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時器0中斷外部中斷1定時器1中斷串行口中斷8位...0FFFH0FFEHEA=1EA=0程序存儲器資源分布中斷入口地址(1)程序存儲器第十七頁,共一百三十八頁,2022年,8月28日在單片機C語言程序設(shè)計中,用戶無需考慮程序的存放地址,編譯程序會在編譯過程中按照上述規(guī)定,自動安排程序的存放地址。例如:C語言是從main()函數(shù)開始執(zhí)行的,編譯程序會在程序存儲器的0000H處自動存放一條轉(zhuǎn)移指令,跳轉(zhuǎn)到main()函數(shù)存放的地址;中斷函數(shù)也會按照中斷類型號,自動由編譯程序安排存放在程序存儲器相應(yīng)的地址中。因此,讀者只需了解程序存儲器的結(jié)構(gòu)就可以了。第十八頁,共一百三十八頁,2022年,8月28日0000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)存儲器數(shù)據(jù)存儲器00HFFH7FH80H(高128B)(低128B)RAM專用
寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲器
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、RS1第十九頁,共一百三十八頁,2022年,8月28日注意:一個單元地址對應(yīng)有8個位地址
MSB——MostSignificantBit(最高有效位)
LSB——LeastSignificantBit(最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表第二十頁,共一百三十八頁,2022年,8月28日高128個單元☆離散分布有21個特殊功能寄存器SFR?!?/p>
11個可以進(jìn)行位尋址。☆特別提示:對SFR只能使用直接尋址方式,書寫時可使用寄存器符號,也可用寄存器單元地址。第二十一頁,共一百三十八頁,2022年,8月28日1.4單片機開發(fā)環(huán)境(a)ISP下載線(b)仿真器第二十二頁,共一百三十八頁,2022年,8月28日單片機實訓(xùn)板第二十三頁,共一百三十八頁,2022年,8月28日實訓(xùn)板特點:
由相對獨立的模塊組成,讀者可以將所有模塊進(jìn)行自由組合,構(gòu)建不同功能的單片機系統(tǒng)。
不僅提供了實訓(xùn)板硬件電路程序,而且還提供了所有模塊的Proteus仿真電路,讀者可以通過虛實結(jié)合的方式,快速掌握單片機應(yīng)用技術(shù)。
不須使用昂貴的仿真器、編程器就可以開發(fā)單片機系統(tǒng)。采用一條USB線就可以把程序下載到STC單片機之中,或者采用一條ISP下載線把程序下載到AT89S51/52單片機之中,既省了購買昂貴的仿真器、編程器,又能方便地開發(fā)單片機系統(tǒng)。
該實訓(xùn)板可以兼融多種單片機,如:AT89S51/52、ST12C5A60S2,以及AVR、PIC單片機(需要加轉(zhuǎn)接板)。
采用USB線供電,不需要外接電源。第二十四頁,共一百三十八頁,2022年,8月28日實訓(xùn)板組成:顯示電路模塊鍵盤電路模塊傳感器電路模塊通信電路模塊其它電路模塊第二十五頁,共一百三十八頁,2022年,8月28日【訓(xùn)練項目1-2】數(shù)碼管靜態(tài)顯示系統(tǒng)設(shè)計與制作一、項目要求在Proteus仿真軟件和單片機實訓(xùn)上,采用單片機的P0、P1、P2、P3的任意端口控制1位共陽極數(shù)碼管,實現(xiàn)0~F字符循環(huán)顯示,并能控制循環(huán)顯示速度。二、項目實訓(xùn)儀器、設(shè)備及實訓(xùn)材料工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量電腦1臺51單片機下載線和USB線1根杜邦導(dǎo)線8PKeiluVision41套晶振1只AT89S51/STC60S21片Proteus7.5軟件1套單片機實訓(xùn)板1塊穩(wěn)壓電源1臺第二十六頁,共一百三十八頁,2022年,8月28日三、項目實施過程及其步驟任務(wù)1實現(xiàn)0~F任意字符顯示任務(wù)描述:采用單片機的P3端口控制1位數(shù)碼管,在Proteus軟件和單片機實訓(xùn)板上,使數(shù)碼管顯示0~F任意字符。然后再改用其它端口控制數(shù)碼管,實現(xiàn)同樣功能。第二十七頁,共一百三十八頁,2022年,8月28日三、項目實施過程及其步驟任務(wù)2實現(xiàn)0~F字符循環(huán)顯示任務(wù)描述:在任務(wù)1的基礎(chǔ)上,實現(xiàn)0~F字符循環(huán)顯示。然后再改用其它端口控制數(shù)碼管,實現(xiàn)同樣功能。四、思考與分析(1)繪制任務(wù)1和2的程序運行軌跡,即黃色箭頭在程序代碼行走的軌跡。(2)采用共陰極數(shù)碼管,實現(xiàn)0~F字符循環(huán)顯示。(3)采用延時函數(shù)、數(shù)組定義顯示代碼等方法,減少程序代碼。第二十八頁,共一百三十八頁,2022年,8月28日1.5數(shù)碼管的結(jié)構(gòu)與原理
在單片機應(yīng)用系統(tǒng)中,數(shù)碼管常用來顯示系統(tǒng)的工作狀態(tài)、運算結(jié)果等信息,實現(xiàn)人機交互。一般數(shù)碼管有1位、3位、2位、4位等組合方式。第二十九頁,共一百三十八頁,2022年,8月28日第三十頁,共一百三十八頁,2022年,8月28日顯示字符共陽極數(shù)碼管共陰極數(shù)碼管dpgfedcba字碼dpgfedcba字碼0110000000XC0001111110X3F1111110010XF9000001100X062101001000XA4010110110X5B3101100000XB0010011110X4F4100110010X99011001100X665100100100X92011011010X6D6100000100X82011111010X7D7111110000XF8000001110X078100000000X80011111110X7F9100100000X90011011110X6FA100010000X88011101110X77B100000110X83011111000X7CC110001100XC6001110010X39D101000010XA1010111100X5EE100001100X86011110010X79F100011100X8E011100010X71滅111111110XFF000000000X00第三十一頁,共一百三十八頁,2022年,8月28日1.6C語言數(shù)據(jù)類型、運算符與表達(dá)式數(shù)據(jù)類型單精度型(float)雙精度型(double)整型(int)實型(浮點型)字符型(char)基本類型構(gòu)造類型枚舉類型號(enum)數(shù)組類型結(jié)構(gòu)體類型(struct)共用體類型(union)指針類型空類型(void)第三十二頁,共一百三十八頁,2022年,8月28日序號名稱數(shù)據(jù)類型長度(位數(shù))值
域1有符號字符型[signed]char8B-128~+1272無符號字符型unsignedchar8B0~2553有符號整型[signed]short16B-32768~+327674無符號整型unsignedshort16B0~655355有符號整型[signed]int16B-32768~+327676無符號整型unsignedint16B0~655357有符號長整型[signed]long32B-2147483648~+21474836478無符號長整型unsignedlong32B0~42949672959單精度浮點型float32B±1.175494E-38~±3.4022823E+3810雙精度浮點型double64B±1.175494E-38~±3.4022823E+3811指針型*1~24B存儲器地址12位類型bit1B0或113可尋址位sbit1B0或114特殊功能寄存器sfr1B0~255C51編譯器所支持的數(shù)據(jù)類型第三十三頁,共一百三十八頁,2022年,8月28日1.6.2變量與常量在程序運行的過程中,其值不能改變的量,稱為常量。常量的數(shù)據(jù)類型有整型、浮點型、字符型、位類型和字符串型。數(shù)值常量可以在程序中直接引用,例如:a=15;a=2.65;a=‘c’等;但是符號常量不能直接使用,在使用之前必須用編譯預(yù)處理命令“#define”先進(jìn)行定義,例如:第三十四頁,共一百三十八頁,2022年,8月28日在程序運行中,其值可以改變的量稱為變量。一個變量主要由兩部分構(gòu)成,一個是變量名,另個是變量值。每個變量都在內(nèi)存中占據(jù)一定的存儲單元(地址),并在該內(nèi)存單元中存放該變量的值。(1)變量的定義[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表;第三十五頁,共一百三十八頁,2022年,8月28日(2)變量的初始化數(shù)據(jù)類型標(biāo)識符
變量名1=常量1[,變量名2=常量2,…,變量名n=常量n];第三十六頁,共一百三十八頁,2022年,8月28日1.6.3運算符和表達(dá)式運算符名運算符算術(shù)運算符+-*/%++--關(guān)系運算符><==>=<=!=邏輯運算符!&&||位運算符<<>>~&|^賦值運算符=條件運算符?:逗號運算符,指針運算符*&求字節(jié)數(shù)運算符sizeof強制類型轉(zhuǎn)換運算符(類型)下標(biāo)運算符[]函數(shù)調(diào)用運算符()第三十七頁,共一百三十八頁,2022年,8月28日1.運算符的優(yōu)先級和結(jié)合性(1)優(yōu)先級
優(yōu)先級是用來標(biāo)志運算符在表達(dá)式中的運算順序的。求解表達(dá)式時,總是先按運算符的優(yōu)先次序由高到低進(jìn)行操作。(2)結(jié)合性
當(dāng)一個運算對象兩側(cè)的運算符優(yōu)先級相同時,則按運算符的結(jié)合性確定表達(dá)式的運算順序。第三十八頁,共一百三十八頁,2022年,8月28日2.算術(shù)運算符與算術(shù)表達(dá)式
+(加法運算)-(減法運算)*(乘法運算符)
/(除法運算符)%(求余運算符,或稱模運算符)如:4%2=0++(變量自加1)--(變量自減1)
注意兩個整數(shù)相除結(jié)果為整數(shù),如8/5的結(jié)果為1,舍去小數(shù)部分。如果參加運算的兩個數(shù)中有一個數(shù)為實數(shù),則結(jié)果是實型。求余運算要求%兩側(cè)都是整型數(shù)據(jù)。第三十九頁,共一百三十八頁,2022年,8月28日自增、自減運算實戰(zhàn)演練:請說明程序運行完后x,y,z,m,n的值分別是多少?main(){intx=6,y,z,m,n; y=++x; z=x--;m=y/z;n=y%z;}自增運算符(++)和自減運算符(--):(1)前置運算──++變量、--變量 即先增減、后運算。(2)后置運算──變量++、變量--即先運算、后增減。第四十頁,共一百三十八頁,2022年,8月28日賦值運算符
賦值語句的作用是把某個常量或變量或表達(dá)式的值賦值給另一個變量。符號為‘=’。這里并不是等于的意思,只是賦值,等于用‘==’表示。賦值語句左邊必須是變量或寄存器,且必須先定義。常量不能出現(xiàn)左邊。第四十一頁,共一百三十八頁,2022年,8月28日賦值運算符和賦值表達(dá)式簡單的賦值運算符:復(fù)合的賦值運算符=+=、-=、*=、%=、/=i+=2等價于i=i+2a*=b+5等價于a=a*(b+5)x%=3等價于x=x%3第四十二頁,共一百三十八頁,2022年,8月28日4.關(guān)系運算符與賦值表達(dá)式關(guān)系運算符優(yōu)先級
<<=>>===!=低高第四十三頁,共一百三十八頁,2022年,8月28日關(guān)系表達(dá)式
用關(guān)系運算符將兩個表達(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á)式的值為
。
第四十四頁,共一百三十八頁,2022年,8月28日
邏輯運算符優(yōu)先級
!(邏輯非)
&&(邏輯與)||(邏輯或)注意:邏輯運算符與位操作運算符的區(qū)別。5.邏輯運算符與賦值表達(dá)式第四十五頁,共一百三十八頁,2022年,8月28日邏輯表達(dá)式
用邏輯運算符將一個或多個表達(dá)式連接起來,進(jìn)行邏輯運算的式子。邏輯量的真判斷——非0邏輯量的假判斷——0若a=1,b=2,c=3,x=4,y=3,寫出下各個表達(dá)式的值:(1)a+b>c&&b==c(2)!a<b&&b!=c||x+y<=3(3)!(x=a)&&(y=b)&&0000第四十六頁,共一百三十八頁,2022年,8月28日運算類型運算符優(yōu)先級結(jié)合性括號運算符()1從左至右邏輯非和按位取反!~2從右至左算術(shù)運算*/%3從左至右+-4從左至右左移、右移運算<<>>5從左至右關(guān)系運算<<=>>=6從左至右==!=7從左至右位運算&8從左至右^9從左至右|10從左至右邏輯與&&11從左至右邏輯或||12從左至右賦值運算與復(fù)合賦值運算
=+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=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)第四十七頁,共一百三十八頁,2022年,8月28日與操作按位與操作符:&
格式:x&y
規(guī)則:對應(yīng)位均為1時才為1,否則為0
例如,
i=i&0x0f;
等同于
i&=0x0f;主要用途:取(或保留)1個數(shù)的某(些)位,其余各位置0。6.位運算符與位運算表達(dá)式第四十八頁,共一百三十八頁,2022年,8月28日位運算或操作按位或操作符:|
格式:x|y
規(guī)則:對應(yīng)位均為0時才為0,否則為1
例如,
i=i|0x0f;
等同于
i|=0x0f;主要用途:將1個數(shù)的某(些)位置1,其余各位不變第四十九頁,共一百三十八頁,2022年,8月28日位運算異或操作按位異或操作符:^格式:x^y規(guī)則:對應(yīng)位相同時為0,不同時為1
例如,
i=i^0x0f;
等同于
i^=0x0f;主要用途:使1個數(shù)的某(些)位翻轉(zhuǎn)(即原來為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。第五十頁,共一百三十八頁,2022年,8月28日位運算按位取反操作按位取反操作符:~格式:~x規(guī)則:各位翻轉(zhuǎn),即原來為1的位變成0,原來為0的位變成1
例如,
i=~i;主要用途:間接地構(gòu)造一個數(shù),以增強程序的可移植性。第五十一頁,共一百三十八頁,2022年,8月28日左移運算符“<<”的功能,是把“<<”左邊的操作數(shù)的各二進(jìn)制位全部左移若干位,移動的位數(shù)由“<<”右邊的常數(shù)指定,高位丟棄,低位補0。例如:“a<<4”是指把a的各二進(jìn)制位向左移動4位。如a=00000011B(十進(jìn)制數(shù)3),左移4位后為00110000B(十進(jìn)制數(shù)48)。右移運算符“>>”的功能,是把“>>”左邊的操作數(shù)的各二進(jìn)制位全部右移若干位,移動的位數(shù)由“>>”右邊的常數(shù)指定。進(jìn)行右移運算時,如果是無符號數(shù),則總是在其左端補“0”位運算第五十二頁,共一百三十八頁,2022年,8月28日7.逗號運算符與逗號運算表達(dá)式在C語言中逗號“,”也是一種運算符,稱為逗號運算符,其功能是把兩個表達(dá)式連接起來組成一個表達(dá)式,稱為逗號表達(dá)式,其一般形式為:表達(dá)式1,表達(dá)式2,………,表達(dá)式n第五十三頁,共一百三十八頁,2022年,8月28日1.7基本語句及結(jié)構(gòu)化程序設(shè)計表達(dá)式語句和復(fù)合語句
表達(dá)式語句是最基本的C語言語句。表達(dá)式語句由表達(dá)式加上分號“;”組成,其一般形式如下:
表達(dá)式;執(zhí)行表達(dá)式語句就是計算表達(dá)式的值。在C語言中有一個特殊的表達(dá)式語句,稱為空語句??照Z句中只有一個分號“;”,程序執(zhí)行空語句時需要占用一條指令的執(zhí)行時間,但是什么也不做。在C51程序中常常把空語句作為循環(huán)體,用于消耗CPU時間等待事件發(fā)生的場合。第五十四頁,共一百三十八頁,2022年,8月28日1.7.1表達(dá)式語句和復(fù)合語句把多個語句用大括號{}括起來,組合在一起形成具有一定功能的模塊,這種由若干條語句組合而成的語句塊稱為復(fù)合語句。在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句。復(fù)合語句在程序運行時,{}中的各行單語句是依次順序執(zhí)行的。在C語言的函數(shù)中,函數(shù)體就是一個復(fù)合語句。第五十五頁,共一百三十八頁,2022年,8月28日基本if語句的格式如下:if(表達(dá)式){
語句組;
}if語句執(zhí)行過程:當(dāng)“表達(dá)式”的結(jié)果為“真”時,執(zhí)行其后的“語句組”,否則跳過該語句組,繼續(xù)執(zhí)行下面的語句。
1.7.2選擇語句第五十六頁,共一百三十八頁,2022年,8月28日if語句中的“表達(dá)式”通常為邏輯表達(dá)式或關(guān)系表達(dá)式,也可以是任何其他的表達(dá)式或類型數(shù)據(jù),只要表達(dá)式的值非0即為“真”。以下語句都是合法的:
if(3){……}if(x=8){……}if(P3_0){……}在if語句中,“表達(dá)式”必須用括號括起來。在if語句中,花括號“{}”里面的語句組如果只有一條語句,可以省略花括號。如“if(P3_0==0)P1_0=0;”語句,但是為了提高程序的可讀性和防止程序書寫錯誤,建議讀者在任何情況下,都加上花括號。1.7.2選擇語句第五十七頁,共一百三十八頁,2022年,8月28日if-else語句的一般格式如下:if(表達(dá)式) {
語句組1;
} else{
語句組2;
}if-else語句執(zhí)行過程:當(dāng)“表達(dá)式”的結(jié)果為“真”時,執(zhí)行其后的“語句組1”,否則執(zhí)行“語句組2”1.7.2選擇語句第五十八頁,共一百三十八頁,2022年,8月28日if-else-if語句是由ifelse語句組成的嵌套,用來實現(xiàn)多個條件分支的選擇,其一般格式如下:if(表達(dá)式1) {
語句組1;
} elseif(表達(dá)式2){
語句組2;
} …elseif(表達(dá)式n){
語句組n;
}else{
語句組n+1;
}1.7.2選擇語句第五十九頁,共一百三十八頁,2022年,8月28日1.7.2選擇語句第六十頁,共一百三十八頁,2022年,8月28日多分支選擇的switch語句,其一般形式如下:
switch(表達(dá)式){ case常量表達(dá)式1:語句組1;break; case常量表達(dá)式2:語句組2;break; …… case常量表達(dá)式n:語句組n;break; default:語句組n+1;}該語句的執(zhí)行過程是:首先計算表達(dá)式的值,并逐個與case后的常量表達(dá)式的值相比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時,則執(zhí)行對應(yīng)該常量表達(dá)式后的語句組,再執(zhí)行break語句,跳出switch語句的執(zhí)行,繼續(xù)執(zhí)行下一條語句。如果表達(dá)式的值與所有case后的常量表達(dá)式均不相同,則執(zhí)行default后的語句組。1.7.2選擇語句第六十一頁,共一百三十八頁,2022年,8月28日while語句用來實現(xiàn)“當(dāng)型”循環(huán),執(zhí)行過程:首先判斷表達(dá)式,當(dāng)表達(dá)式的值為真(非0)時,反復(fù)執(zhí)行循環(huán)體。為假(0)時執(zhí)行循環(huán)體外面的語句。循環(huán)體循環(huán)繼續(xù)的條件表達(dá)式下一條語句非0(真)0(假)循環(huán)體語句組while執(zhí)行過程格式:while(循環(huán)繼續(xù)的條件表達(dá)式)
{語句組;}花括號不能丟掉!請問:下述程序?qū)崿F(xiàn)了什么功能?main(){inti,sum=0;while(i<=10){sum=sum+i;i++;}}1.7.3循環(huán)語句第六十二頁,共一百三十八頁,2022年,8月28日do-while語句用來實現(xiàn)“直到型”循環(huán)執(zhí)行過程:先無條件執(zhí)行一次循環(huán)體,然后判斷條件表達(dá)式,當(dāng)表達(dá)式的值為真(非0)時,返回執(zhí)行循環(huán)體直到條件表達(dá)式為假(0)為止。絕對不能少分號!循環(huán)體格式:do{
循環(huán)體語句組;
}while(循環(huán)繼續(xù)條件);花括號不能丟掉!循環(huán)繼續(xù)的條件表達(dá)式下一條語句非0(真)0(假)循環(huán)體語句組請問:下述程序?qū)崿F(xiàn)了什么功能?main(){inti,sum=0;do{sum=sum+i;i++;}while(i<=100);}1.7.3循環(huán)語句第六十三頁,共一百三十八頁,2022年,8月28日總循環(huán)次數(shù)已確定的情況下,可采用for語句形式為:for語句的一般形式:
for(循環(huán)變量賦初值;循環(huán)繼續(xù)條件;循環(huán)變量增值)
{
循環(huán)體語句組;
} 分隔符為分號請問:下述程序?qū)崿F(xiàn)了什么功能?main(){inti,y=0;for(i=1;i<=10;i++){y=y+i;}}1.7.3循環(huán)語句第六十四頁,共一百三十八頁,2022年,8月28日循環(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)體語句組;} 第六十五頁,共一百三十八頁,2022年,8月28日1.8單片機I/O端口及其應(yīng)用單片機共有四個8位并行I/O口,分別用P0、P1、P2、P3表示。每個I/O口既可以按位操作使用單個引腳,也可以按字節(jié)操作使用8個引腳。第六十六頁,共一百三十八頁,2022年,8月28日P0口的結(jié)構(gòu)
輸出控制電路輸出驅(qū)動電路
P0口邏輯電路第六十七頁,共一百三十八頁,2022年,8月28日
當(dāng)P0口作為輸出口使用時,內(nèi)部總線將數(shù)據(jù)送入鎖存器,內(nèi)部的寫脈沖加在鎖存器時鐘端CP上,鎖存數(shù)據(jù)到Q、端。經(jīng)過MUX,T2反相后正好是內(nèi)部總線的數(shù)據(jù),送到P0口引腳輸出。當(dāng)P0口作為輸入口使用時,應(yīng)區(qū)分讀引腳和讀端口兩種情況,所謂讀引腳,就是讀芯片引腳的狀態(tài),這時使用下方的數(shù)據(jù)緩沖器,由“讀引腳”信號把緩沖器打開,把端口引腳上的數(shù)據(jù)從緩沖器通過內(nèi)部總線讀進(jìn)來。讀端口是指通過上面的緩沖器讀鎖存器Q端的狀態(tài)。讀端口是為了適應(yīng)對I/O口進(jìn)行“讀-修改-寫”操作語句的需要。例如下面的C51語句:
P0=P0&0xf0; //將P0口的低4位引腳清0輸出P0口的結(jié)構(gòu)第六十八頁,共一百三十八頁,2022年,8月28日
除了I/O功能以外,在進(jìn)行單片機系統(tǒng)擴展時,P0口是作為單片機系統(tǒng)的地址/數(shù)據(jù)線使用的,一般稱為地址/數(shù)據(jù)分時復(fù)用引腳。當(dāng)輸出地址或數(shù)據(jù)時,由內(nèi)部發(fā)出控制信號,使“控制”端為高電平,打開與門,并使多路開關(guān)MUX處于內(nèi)部地址/數(shù)據(jù)線與驅(qū)動場效應(yīng)管柵極反相接通狀態(tài)。此時,輸出驅(qū)動電路由于兩個FET處于反相,形成推拉式電路結(jié)構(gòu),使負(fù)載能力大為提高。輸入數(shù)據(jù)時,數(shù)據(jù)信號直接從引腳通過輸入緩沖器進(jìn)入內(nèi)部總線。P0口的結(jié)構(gòu)第六十九頁,共一百三十八頁,2022年,8月28日P1口的結(jié)構(gòu)
P1口邏輯電路第七十頁,共一百三十八頁,2022年,8月28日P1口是準(zhǔn)雙向口,只能作為通用I/O口使用。P1口作為輸出口使用時,無需再外接上拉電阻。P1口作為輸入口使用時,應(yīng)區(qū)分讀引腳和讀端口。讀引腳時,必須先向電路中的鎖存器寫入“1”,使輸出級的FET截止。P1口的結(jié)構(gòu)第七十一頁,共一百三十八頁,2022年,8月28日P2口的結(jié)構(gòu)
P2口邏輯電路第七十二頁,共一百三十八頁,2022年,8月28日P2口是準(zhǔn)雙向口,在實際應(yīng)用中,可以用于為系統(tǒng)提供高8位地址,也能作為通用I/O口使用。P2口作為通用I/O口的輸出口使用時,與P1口一樣無需再外接上拉電阻。P2口作為通用I/O口的輸入口使用時,應(yīng)區(qū)分讀引腳和讀端口。讀引腳時,必須先向鎖存器寫入“1”。P2口的結(jié)構(gòu)第七十三頁,共一百三十八頁,2022年,8月28日P3口的結(jié)構(gòu)
P3口邏輯電路第七十四頁,共一百三十八頁,2022年,8月28日P3口是準(zhǔn)雙向口,可以作為通用I/O口使用,還可以作為第二功能使用。作為第二功能使用的端口,不能同時當(dāng)作通用I/O口使用,但其他未被使用的端口仍可作為通用I/O口使用。P3口作為通用I/O的輸出口使用時,不用外接上拉電阻。P3口的結(jié)構(gòu)第七十五頁,共一百三十八頁,2022年,8月28日【訓(xùn)練項目1-3】數(shù)碼管動態(tài)顯示系統(tǒng)設(shè)計與制作一、項目要求在Proteus仿真軟件和單片機實訓(xùn)上,采用單片機的P0、P1、P2、P3的任意端口控制2個4位一體的共陽極數(shù)碼管,實現(xiàn)任意數(shù)字顯示,然后再修改程序?qū)崿F(xiàn)簡易時鐘顯示,顯示格式為:□□—□□—□□,即“時”—“分”—“秒”。第七十六頁,共一百三十八頁,2022年,8月28日二、項目實訓(xùn)儀器、設(shè)備及實訓(xùn)材料工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量電腦1臺51單片機下載線和USB線1根杜邦導(dǎo)線8PKeiluVision41套晶振1只AT89S51/STC60S21片Proteus7.5軟件1套單片機實訓(xùn)板1塊穩(wěn)壓電源1臺三、項目實施過程及其步驟任務(wù)1實現(xiàn)任意數(shù)字顯示任務(wù)描述:采用單片機的P0和P2端口分別作為數(shù)碼管的數(shù)據(jù)和驅(qū)動端口,在Proteus軟件和單片機實訓(xùn)板上,使數(shù)碼管顯示任意數(shù)字。然后再改用其它端口控制數(shù)碼管,實現(xiàn)同樣功能。第七十七頁,共一百三十八頁,2022年,8月28日第七十八頁,共一百三十八頁,2022年,8月28日任務(wù)2實現(xiàn)簡易時鐘顯示任務(wù)描述:在任務(wù)1的基礎(chǔ)上,實現(xiàn)簡易時鐘功能。然后再改用其它端口控制數(shù)碼管,實現(xiàn)同樣功能。第七十九頁,共一百三十八頁,2022年,8月28日四、思考與分析(1)繪制任務(wù)1和2的程序運行軌跡,即黃色箭頭在程序代碼行走的軌跡。(2)采用共陰極數(shù)碼管,實現(xiàn)任意數(shù)字顯示。第八十頁,共一百三十八頁,2022年,8月28日1.9數(shù)組第八十一頁,共一百三十八頁,2022年,8月28日分隔符為分號數(shù)組的概念
數(shù)組屬于常用的數(shù)據(jù)類型,數(shù)組中的元素有固定數(shù)目和相同類型,數(shù)組元素的數(shù)據(jù)類型就是該數(shù)組的基本類型。例如,整型數(shù)據(jù)的有序集合稱為整型數(shù)組,字符型數(shù)據(jù)的有序集合稱為字符型數(shù)組。數(shù)組還分為一維、二維、三維和多維數(shù)組等,常用的是一維、二維和字符數(shù)組。
1.9數(shù)組第八十二頁,共一百三十八頁,2022年,8月28日數(shù)組的基本特點構(gòu)造類形數(shù)據(jù):由基本類型數(shù)據(jù)按照一定規(guī)則組成。數(shù)組:是有序數(shù)據(jù)的集合;數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型,用一個統(tǒng)一的數(shù)組名和下標(biāo)來唯一地確定數(shù)組中的元素。應(yīng)用場合:需要處理的數(shù)據(jù)為數(shù)量已知的若干相同類型的數(shù)據(jù)時。
注意:先定義,后使用。第八十三頁,共一百三十八頁,2022年,8月28日一維數(shù)組的定義和引用一維數(shù)組的定義:一般格式:類型標(biāo)識符數(shù)組名[常量表達(dá)式];
int
array[10];
unsignedchar
num[7];說明:數(shù)組名——見名知意;數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址。同一數(shù)組中的所有元素,按其下標(biāo)的順序占用一段連續(xù)的存儲單元。方括弧而非圓括??;常量表達(dá)式:可以是常量或符號常量;表示數(shù)組元素的個數(shù)(也稱數(shù)組長度)。不允許對數(shù)組大小作動態(tài)定義。數(shù)組元素下標(biāo)從0開始。array[0],array[1],…array[9];遵循標(biāo)識符命名規(guī)則第八十四頁,共一百三十八頁,2022年,8月28日數(shù)組元素的表達(dá)形式:數(shù)組名[下標(biāo)表達(dá)式]Array[4]=100;array[8]=34;array[10]=56;注意:數(shù)組下標(biāo)不能越界!一個數(shù)組元素具有和相同類型單個變量一樣的屬性,可以對它賦值和參與各種運算。一維數(shù)組的引用第八十五頁,共一百三十八頁,2022年,8月28日一般格式:
數(shù)據(jù)類型數(shù)組名[常量表達(dá)式]={初值表}1.定義時賦初值;intscore[5]={1,2,3,4,5};2.給一部分元素賦值;intscore[5]={1,2};3.使所有元素為0;intscore[5]={0};4.給全部數(shù)組元素賦初值時,可以不指定數(shù)組長度;
intscore[]={1,2,3,4,5};一維數(shù)組的初始化第八十六頁,共一百三十八頁,2022年,8月28日1.10函數(shù)C語言程序都是由多個函數(shù)組成的,一般至少有一個主函數(shù)main(),函數(shù)是C語言程序的基本模塊,通過對函數(shù)模塊的調(diào)用來實現(xiàn)程序的功能。C語言不僅提供了豐富的庫函數(shù),而且還允許定義自己的函數(shù),所以C語言程序都由各類不同功能的函數(shù)組成的。第八十七頁,共一百三十八頁,2022年,8月28日函數(shù)的分類標(biāo)準(zhǔn)庫函數(shù)用戶自定義函數(shù)(1)從函數(shù)是否具有返回值的角度分類①有返回值函數(shù)②無返回值函數(shù)(2)從函數(shù)是否帶有參數(shù)角度分類
①無參函數(shù)
②有參函數(shù)第八十八頁,共一百三十八頁,2022年,8月28日函數(shù)定義C語言函數(shù)定義形式:[數(shù)據(jù)類型說明符]函數(shù)名([形參定義表]){ 執(zhí)行語句; //“{}”中的內(nèi)容稱為函數(shù)體}第八十九頁,共一百三十八頁,2022年,8月28日函數(shù)的調(diào)用1.函數(shù)調(diào)用方式函數(shù)調(diào)用的一般形式為:[變量=]函數(shù)名([實參表])第九十頁,共一百三十八頁,2022年,8月28日2.對被調(diào)函數(shù)的聲明C語言程序中一個函數(shù)調(diào)用另一個函數(shù)需要具備以下條件:①被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù),是庫函數(shù)或用戶自定義的函數(shù)。②如果調(diào)用庫函數(shù),一般要在程序文件的開關(guān)用include命令,包含有關(guān)庫函數(shù)所在的頭文件。③如果調(diào)用用戶自定義的函數(shù),并且該函數(shù)與調(diào)用它的函數(shù)在同一個程序文件中,一般還應(yīng)該在主調(diào)函數(shù)中對被函數(shù)作聲明。即向編譯系統(tǒng)聲明將要調(diào)用此函數(shù),并將有關(guān)信息通知編譯。第九十一頁,共一百三十八頁,2022年,8月28日數(shù)組作為函數(shù)的參數(shù)
1.數(shù)組元素作為函數(shù)的參數(shù)
數(shù)組元素可以作為函數(shù)的實參,這時對應(yīng)的形參是變量,與變量作實參一樣,把數(shù)組元素的值傳遞到形參變量所在存儲單元中,是單向的值傳遞。
第九十二頁,共一百三十八頁,2022年,8月28日2.數(shù)組名作為函數(shù)的參數(shù)
可以用數(shù)組名作為函數(shù)的實參,對應(yīng)的形參也應(yīng)該是數(shù)組名。
#include“reg51.h”voidsort(intx[],intn){ inti,j,tk; for(i=0;i<n-1;i++) //選擇排序法對n個數(shù)進(jìn)行降序排列
{ k=i; for(j=i+1;j<n;j++) //找出最大的元素
if(x[k]<x[j])k=j;if(k!=i){ t=x[i];x[i]=x[k];x[k]=t;} }}voidmain(){ intcj[10]={76,80,65,60,58,91,47,63,70,85}; sort(a,10);}第九十三頁,共一百三十八頁,2022年,8月28日局部變量和全局變量第九十四頁,共一百三十八頁,2022年,8月28日1.局部變量第九十五頁,共一百三十八頁,2022年,8月28日2.全局變量第九十六頁,共一百三十八頁,2022年,8月28日內(nèi)部函數(shù)和外部函數(shù)1.內(nèi)部函數(shù)static類型標(biāo)識符
函數(shù)名
([形參定義]){
函數(shù)體}2.外部函數(shù)[extern]類型標(biāo)識符
函數(shù)名
([形參定義]){
函數(shù)體}第九十七頁,共一百三十八頁,2022年,8月28日【訓(xùn)練項目1-4】LED點陣顯示屏設(shè)計與制作一、項目要求在Proteus仿真軟件和實訓(xùn)板上,采用單片機的P0、P1、P2、P3的任意端口控制單色和雙色兩種8*8點陣屏模塊,實現(xiàn)一些特定的文字或圖形顯示。第九十八頁,共一百三十八頁,2022年,8月28日二、項目實訓(xùn)儀器、設(shè)備及實訓(xùn)材料工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量電腦1臺51單片機下載線和USB線1根杜邦導(dǎo)線8PKeiluVision41套晶振1只AT89S51/STC60S21片Proteus7.5軟件1套單片機實訓(xùn)板1塊單、雙色8*8點陣屏各1塊三、項目實施過程及其步驟任務(wù)1
單色LED點陣顯示屏設(shè)計與制作任務(wù)描述:要求在8*8LED點陣屏上循環(huán)顯示▲
◆□■5個圖形。第九十九頁,共一百三十八頁,2022年,8月28日第一百頁,共一百三十八頁,2022年,8月28日任務(wù)2雙色LED點陣顯示屏設(shè)計與制作任務(wù)描述:要求在8*8LED雙色點陣屏上顯示綠色、紅色、橙色的“心”圖形。第一百零一頁,共一百三十八頁,2022年,8月28日“心”圖形實際顯示效果四、思考與分析(1)在點陣屏上實現(xiàn)1~9數(shù)字顯示。(2)在任務(wù)2中,第84行用于防止重影,若沒有這行代碼,顯示現(xiàn)象怎樣?第一百零二頁,共一百三十八頁,2022年,8月28日1.11LED點陣模塊結(jié)構(gòu)及原理1.11.1LED點陣模塊的種類及結(jié)構(gòu)(a)8*8LED點陣模塊實物外形(b)共陰8*8LED點陣(c)共陽8*8LED雙色點陣第一百零三頁,共一百三十八頁,2022年,8月28日【訓(xùn)練項目1-5】字符型LCD顯示系統(tǒng)設(shè)計與制作一、項目要求在Proteus仿真軟件和實訓(xùn)板上,采用單片機的P0、P1、P2、P3的任意端口控制LCD1602字符型液晶屏,實現(xiàn)任意字符顯示。然后再制作一個簡易電子鐘,要求整點能發(fā)出報警聲音,顯示格式為:□□:□□:□□,即“時”—“分”—“秒”。第一百零四頁,共一百三十八頁,2022年,8月28日二、項目實訓(xùn)儀器、設(shè)備及實訓(xùn)材料工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量工具、設(shè)備和耗材數(shù)量電腦1臺51單片機下載線和USB線1根杜邦導(dǎo)線8PKeiluVision41套晶振12M1只AT89S51/STC60S21片Proteus7.5軟件1套單片機實訓(xùn)板1塊LCD1602液晶屏1塊三、項目實施過程及其步驟任務(wù)1實現(xiàn)任意字符顯示任務(wù)描述:采用單片機的P0和P2端口分別作為LCD的數(shù)據(jù)和控制端口,在Proteus軟件和單片機實訓(xùn)板上,實現(xiàn)任意字符顯示。然后再改用其它端口,實現(xiàn)同樣功能。第一百零五頁,共一百三十八頁,2022年,8月28日第一百零六頁,共一百三十八頁,2022年,8月28日實訓(xùn)板上顯示效果第一百零七頁,共一百三十八頁,2022年,8月28日任務(wù)2制作簡易電子鐘任務(wù)描述:在任務(wù)1的基礎(chǔ)上,使LCD顯示具有“時、分、秒”的簡易電子鐘。四、思考與分析(1)采用其它端口作為液晶屏的數(shù)據(jù)線或控制線,如何實現(xiàn)任務(wù)1和任務(wù)2?(2)在任務(wù)2中,如何使“AM”在12正點來時自動變?yōu)椤癙M”,又在00點來時自動變?yōu)椤癆M”?實訓(xùn)板上顯示效果第一百零八頁,共一百三十八頁,2022年,8月28日1.12字符型LCD屏的種類及工作原理第一百零九頁,共一百三十八頁,2022年,8月28日1.引腳定義引腳號引腳名稱引腳功能1VSS接地2VDD電源腳(+5V)3VO液晶屏驅(qū)動電源(0~5V),可接電位器4RS數(shù)據(jù)和指令選擇控制端;當(dāng)RS=0時,命令狀態(tài);當(dāng)RS=1時,數(shù)據(jù)狀態(tài)5R/
讀寫控制端;當(dāng)R/=0時,寫操作;當(dāng)R/=1時,讀操作6E數(shù)據(jù)讀寫操作控制位,E線向LCD模塊發(fā)送一個脈沖(下降沿有效),LCD模塊與單片機之間將進(jìn)行一次數(shù)據(jù)交換7~14 DB0~DB7(1)數(shù)據(jù)總線以8位數(shù)據(jù)讀/寫方式,DB0~DB7均有效(2)數(shù)據(jù)總線以4位數(shù)據(jù)讀/寫方式,DB4~DB7有效,而DB0~DB3懸空不接,節(jié)約單片機資源(3)BD7除了為雙向數(shù)據(jù)線,另外還為BF忙碌BF標(biāo)志位
15A背光控制正電源(很多液晶屏上沒有安裝背光燈,所以此腳為空)16K背光控制地(很多液晶屏上沒有安裝背光燈,所以此腳為空)第一百一十頁,共一百三十八頁,2022年,8月28日2.LCD模塊三個控制引腳的基本操作第一百一十一頁,共一百三十八頁,2022年,8月28日LCD寫操作時序LCD讀操作時序第一百一十二頁,共一百三十八頁,2022年,8月28日第一百一十三頁,共一百三十八頁,2022年,8月28日4.字符型LCD寫數(shù)據(jù)操作第一百一十四頁,共一百三十八頁,2022年,8月28日1.13指針對于變量要弄清楚兩個概念:一個是變量名,另個是變量值。前者是一個數(shù)據(jù)的標(biāo)號,后者是一個數(shù)據(jù)的內(nèi)容。而對內(nèi)存單元,也要弄清楚兩個概念:一個是內(nèi)存單元的地址,另個是內(nèi)存單元的內(nèi)容。前者是內(nèi)存對該單元的編號,表示該單元在整個內(nèi)存中的位置,后者指的是在該內(nèi)存單元中存放的數(shù)據(jù)。第一百一十五頁,共一百三十八頁,2022年,8月28日1.指針變量的定義類型識別符*指針變量名char*cp1,*cp2;int*p1,*p2;在定義指針變量時要注意:(1)指針變量前面的“*”表示該變量的類型為指針型變量,指針變量名是p1、p2,而不是*p1、*p2,這與前面介紹的變量定義形式有所區(qū)別。(2)指針變量名的命名規(guī)則與變量名命名規(guī)則相同,遵循標(biāo)識符命名規(guī)則。(3)在定義指針變量時必須指定其“基類型”,因為不同類型的數(shù)據(jù)在內(nèi)存中占用的字節(jié)數(shù)不一樣長。第一百一十六頁,共一百三十八頁,2022年,8月28日2.指針變量的引用第一百一十七頁,共一百三十八頁,2022年,8月2
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社保合同補充協(xié)議
- 外匯擔(dān)保借款合同
- 技術(shù)轉(zhuǎn)移與知識產(chǎn)權(quán)管理作業(yè)指導(dǎo)書
- 全新旅行社勞動合同
- 資產(chǎn)擔(dān)保合同
- 水務(wù)管理與水質(zhì)保障作業(yè)指導(dǎo)書
- 殯葬服務(wù)合同年
- 城市軌道與公共交通技術(shù)作業(yè)指導(dǎo)書
- 2025年內(nèi)蒙古年貨運從業(yè)資格證考試試題
- 2025年貨運從業(yè)資格哪里考
- 煙葉復(fù)烤能源管理
- 應(yīng)收賬款管理
- 食品安全管理員考試題庫298題(含標(biāo)準(zhǔn)答案)
- 執(zhí)業(yè)醫(yī)師資格考試《臨床執(zhí)業(yè)醫(yī)師》 考前 押題試卷絕密1 答案
- 非ST段抬高型急性冠脈綜合征診斷和治療指南(2024)解讀
- 2024年山東濟寧初中學(xué)業(yè)水平考試地理試卷真題(含答案詳解)
- 社會保險課件教學(xué)課件
- 撫恤金喪葬費協(xié)議書模板
- 訂婚協(xié)議書手寫模板攻略
- 準(zhǔn)備單元 雪地上的“足跡”(教學(xué)設(shè)計)-2023-2024學(xué)年五年級下冊科學(xué)大象版
- NB-T32042-2018光伏發(fā)電工程建設(shè)監(jiān)理規(guī)范
評論
0/150
提交評論