《微機(jī)原理接口技術(shù)課件2》由會員分享,可在線閱讀,更多相關(guān)《微機(jī)原理接口技術(shù)課件2(31頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,*,,第一章,8086程序設(shè)計(jì),,第二章,MCS-51,單片機(jī)程序設(shè)計(jì),,第三章 微機(jī)基本系統(tǒng)的設(shè)計(jì),,第四章,存貯器與接口,,第五章,并行接口,,第六章,計(jì)數(shù)器、定時(shí)器與,接口,,第七章,顯示器與鍵盤,接口,,第八章,串行通信及接口,,第九章 數(shù)模轉(zhuǎn)換器和模數(shù)轉(zhuǎn)換器接口,,MCS-51,單片機(jī)的結(jié)構(gòu),,MCS-51,單片機(jī)程序設(shè)計(jì),,MCS-51,單片機(jī),系統(tǒng)的程序設(shè)計(jì),,本章知識點(diǎn),,MCS-51,單片機(jī)的結(jié)構(gòu),,MCS-51,單片機(jī)程序設(shè)計(jì),,MCS-51,單片機(jī),系統(tǒng)的程序設(shè)計(jì),,本章
2、知識點(diǎn),,MCS-51,單片機(jī)的結(jié)構(gòu),MCS-51,單片機(jī)采用程序存儲器和數(shù)據(jù)存儲器分別尋址的方式,程序存儲器和外部數(shù)據(jù)存儲器的尋址范圍均為,64,K,,如采用外部程序存儲器,用信號,-,PSEN,控制讀入程序存儲器中的程序或數(shù)據(jù),,訪問程序存儲器采用的指令:,,,MOVC A,@A+PC,,MOVC,,A,@A+DPTR,。,,MCS-51,單片機(jī)的結(jié)構(gòu),內(nèi)部數(shù)據(jù)存儲器,256,個(gè)字節(jié),,,,00-7,FH,的,128,個(gè)字節(jié)為通用數(shù)據(jù)存儲器,,,80-,FFH,的,128,個(gè)字節(jié)為特殊寄存器,是,MCS-51,單片機(jī)的累加器,A,,,寄存器,B,,,中斷控制,片內(nèi)外圍電路如,
3、I/O,口、定時(shí)器、串行接口所用的寄存器,,,MCS-51,單片機(jī)的結(jié)構(gòu),內(nèi)部數(shù)據(jù)存儲器00-7,FH,的結(jié)構(gòu),,MCS-51,單片機(jī)的結(jié)構(gòu),外部數(shù)據(jù)存儲器尋址范圍為,64,K,,,包括,外部數(shù)據(jù)存儲器,和,I/O,,通過數(shù)據(jù)指針指定外部數(shù)據(jù)存儲器的地址,,,MOVX A,,,@DPTR,,MOVX @DPTR,,,A,,采用間接地址指定外部數(shù)據(jù)存儲器的地址,,,MOVX A,,,@R0/R1,,MOVX @R0/R1,,,A,,MCS-51,單片機(jī)的結(jié)構(gòu),MCS-51,單片機(jī)的片內(nèi)外圍電路,,4,個(gè)并行,I/O,口,P1,、,P2,、,P3,、,P4,的操作通過對
4、應(yīng)的寄存器進(jìn)行。,,,定時(shí)器采用,TMOD,、,TCON,、,THX,、,TLX,等寄存器。,,串行接口采用,SCON,、,SBUF,等寄存器。,,MCS-51,單片機(jī)的有,5,個(gè)中斷源,分別是,2,個(gè)外部中斷、,2,個(gè)定時(shí)器中斷和,1,個(gè)串行接口中斷,。,,MCS-51,單片機(jī)的結(jié)構(gòu),,MCS-51,單片機(jī)程序設(shè)計(jì),,MCS-51,單片機(jī),系統(tǒng)的程序設(shè)計(jì),,本章知識點(diǎn),,MCS-51,單片機(jī)程序設(shè)計(jì),,程序設(shè)計(jì)方法,,,MCS-51,單片機(jī),程序設(shè)計(jì),,,程序設(shè)計(jì)方法,1,.作程序流程圖,,,根據(jù)題意,找出最合理、簡便的解決方法并作程序流程圖。流程圖分粗略和詳細(xì)兩種,粗略流程圖給出大致步驟,
5、而詳細(xì)流程圖則給出每一步驟細(xì)節(jié)。對一些大問題,先給出粗略流程圖以得出總體概念,再作詳細(xì)流程圖對每一步驟作具體描述;,,程序設(shè)計(jì)方法,2,.存貯單元分配,,,根據(jù)題意合理地分配程序和數(shù)據(jù)在存貯器中地址。存貯單元分配合理,可使編程簡單和避免程序出錯(cuò)。應(yīng)避免程序區(qū)與數(shù)據(jù)區(qū)相互混合、交叉。,,程序設(shè)計(jì)方法,3,.源程序編制,,,將流程圖中每步所規(guī)定的操作用程序語言實(shí)現(xiàn),可選用不同指令,各人所編程序可能不同。程序質(zhì)量衡量標(biāo)準(zhǔn)為:程序短,占用存貯單元少,運(yùn)行時(shí)間短,而且程序結(jié)構(gòu)合理。,,,源程序,,,標(biāo)號,,操作碼,,操作數(shù),,,ORG 4000H MOV A,#00H,,MOV 30H,,,A,
6、,INC A,,MOV DPTR,#4100H,,MOVX @DPTR,A,,INC A,,INC DPTR,,MOV A,R,2,,,MOVX @DPTR,A,,HE: SJMP HE,把直接數(shù),00,H,送到內(nèi)部,RAM30H,單元中,把直接數(shù),01,H,及,02,H,分別送到外部,RAM4000H,、,4001H,單元中,。,MCS-51,單片機(jī)程序設(shè)計(jì),簡單程序,,設(shè)計(jì),MCS-51,程序時(shí),需注意內(nèi)部存儲器訪問和外部存儲器訪問,,MCS-51,單片機(jī)程序設(shè)計(jì),分支程序常用的指令,,MCS-51,單片機(jī)程序設(shè)計(jì),分支程序,在寄存器,R,2,中存有數(shù)碼0,~,F,,,要求將其轉(zhuǎn)換
7、為,ASCII,碼,并存于外部存貯器,4100,H,單元中,,,MCS-51,單片機(jī)程序設(shè)計(jì),利用散轉(zhuǎn)指令實(shí)現(xiàn)多分支程序的方法,,,將直接轉(zhuǎn)移指令如,AJMP、LJMP,構(gòu)成轉(zhuǎn)移表,將此表的首地址裝入數(shù)據(jù)指針,DPTR,,,把標(biāo)志單元的內(nèi)容乘以轉(zhuǎn)移指令表所采用的直接轉(zhuǎn)移指令的長度,(,AJMP,為,2、,LJMP,為,3),,并傳送到累加器,A,中,然后調(diào)用,JMP@A+DPTR,指令實(shí)現(xiàn)散轉(zhuǎn)。,,MCS-51,單片機(jī)程序設(shè)計(jì),,利用地址偏移量表實(shí)現(xiàn)多分支程序,,適用于各個(gè)處理程序的目的地址均在同一頁的情形,,,先將處理程序的目時(shí)地址減去表的首地址,(,應(yīng)在同一頁內(nèi),不大于,256,字節(jié),),
8、構(gòu)成一偏移量表,將表的首地址裝入數(shù)據(jù)指針,DPTR,,,利用查表指令,MOVC A,,,@A+DPTR,求出偏移量,然后利用,JMP@A+DPTR,實(shí)現(xiàn)散轉(zhuǎn)。,,,MCS-51,單片機(jī)程序設(shè)計(jì),利用目的地址表實(shí)現(xiàn)多分支程序,,,將目的地址直接轉(zhuǎn)成目的地扯表,然后利用查表的方法根據(jù)標(biāo)志單元的內(nèi)容求出目的地址,將此地址裝入數(shù)據(jù)指針,DPTR,,,將累加器,A,清零,再利用,JMP @A+DPTR,實(shí)現(xiàn)散轉(zhuǎn)利用地址偏移量表實(shí)現(xiàn)多分支程序,適用于各個(gè)處理程序的目的地址均在同一頁的情形.,,循環(huán)程序,,將內(nèi)部,RAM,的,40,H ~4FH,單元置為,00,H~0FH,,,,以,R,2,作為循環(huán)計(jì)數(shù)器,
9、,MCS-51,單片機(jī)程序設(shè)計(jì),,,循環(huán)程序,,把內(nèi)部,RAM40H ~4FH,的內(nèi)容傳送到外部數(shù)據(jù)存儲器的,4100,H ~410FH,單元內(nèi)。,,以,R,2,作為循環(huán)計(jì)數(shù)器,,MCS-51,單片機(jī)程序設(shè)計(jì),,,循環(huán)程序,,將外部數(shù)據(jù)存儲器中,4100,H ~410FH,單元置為,00,H~0FH,,以內(nèi)部,RAM 32H,作為循環(huán)計(jì)數(shù)器,,MCS-51,單片機(jī)程序設(shè)計(jì),,,循環(huán)程序,,將,4100,H ~410FH,單元的內(nèi)容傳送到,4200,H,開始的單元中。,,以內(nèi)部,RAM 32H,作為循環(huán)計(jì)數(shù)器,,,用,30,H、31H,作為,4200,H,的地址計(jì)數(shù)器,,MCS-51,單片機(jī)程序
10、設(shè)計(jì),,,MCS-51,單片機(jī)程序設(shè)計(jì),,查表程序,在,R,2,寄存器存有數(shù),0,~9,的,BCD,碼,利用查表程序求其平方值,并存于,4100,H,單元中。,,,先將0,~9,平方值的,BCD,碼存于程序存貯器中,標(biāo)號為,TABLE,。,,MCS-51,單片機(jī)的結(jié)構(gòu),,MCS-51,單片機(jī)程序設(shè)計(jì),,MCS-51,單片機(jī),系統(tǒng)的程序設(shè)計(jì),,本章知識點(diǎn),,,MCS-51,單片機(jī)系統(tǒng)的程序設(shè)計(jì),,專用系統(tǒng)的程序構(gòu)成,,,,MCS-51,單片機(jī)專用系統(tǒng)程序的設(shè)計(jì),,專用系統(tǒng)的程序構(gòu)成,,,一個(gè)完整的系統(tǒng)程序的結(jié)構(gòu),,,專用系統(tǒng)的系統(tǒng)程序必須具備一個(gè)完整的結(jié)構(gòu),保證在系統(tǒng)上電時(shí)能自動啟動,并根據(jù)系統(tǒng)
11、硬件的要求執(zhí)行一定功能,,,,,,MCS-51,單片機(jī)專用系統(tǒng)程序的設(shè)計(jì),MCS-51,單片機(jī)具有,64,K,程序存儲器和,64,K,數(shù)據(jù)存儲器的,尋址能力,。,,數(shù)據(jù)存儲器和,I/O,設(shè)備統(tǒng)一編址均在,64,K,的范圍內(nèi)。,,復(fù)位后的程序指針為,0000,H,,,因此在設(shè)計(jì)系統(tǒng)硬件時(shí)必須將程序存儲器的地址安排在,0000,H,開始的存儲器,使其與系統(tǒng)復(fù)位后的程序指針保持一致。同時(shí)在設(shè)計(jì)系統(tǒng)程序時(shí),也必須將程序的起始地址安排在,0000,H,開始的單元中。,,MCS-51,單片機(jī)專用系統(tǒng)程序的設(shè)計(jì),MCS-51,單片機(jī)的堆棧安排在內(nèi)部,RAM,的,00,H~7FH,單元。,,由于,00,H~1
12、FH,為寄存器組,,20,H~2FH,為位操作單元,此外還需在,30,H,以后的地址安排部分工作單元,,因此堆棧通常只能安排在大于,30,H,的內(nèi)部,RAM,中,。,,MCS-51,單片機(jī)的,堆棧操作,采用了在數(shù)據(jù)壓入堆棧時(shí),堆棧指針加大,而數(shù)據(jù)彈出堆棧時(shí),堆棧指針減小的方法,因此可將堆棧指針設(shè)置為在內(nèi)部,RAM,中堆棧的最小地址減,1,。,,應(yīng)估計(jì)子程序和中斷程序使用的數(shù)量和數(shù)據(jù)壓入彈出堆棧的數(shù)量,以,確定堆棧大小,。如堆棧估計(jì)不足將導(dǎo)致程序無法執(zhí)行,形成死機(jī)。,,MCS-51,單片機(jī)專用系統(tǒng)程序的設(shè)計(jì),MCS-51,單片機(jī)采用,5,個(gè)中斷,:即外部中斷,0,、定時(shí)器,T0,中斷、外部中斷,1,、定時(shí)器,T1,中斷和串行口中斷,,,中斷服務(wù)程序入口地址分別為,0003,H,、,000BH,、,0013H,、,001BH,和,0023,H,。,,如程序中使用上述中斷,就在上述地址內(nèi)存放相應(yīng)的,轉(zhuǎn)移指令,,在執(zhí)行中斷程序時(shí),通過這,5,個(gè)地址的轉(zhuǎn)移指令跳轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序中。,,地址,0000,H,到,0003,H,之間只有,3,個(gè)字節(jié),,因此啟動地址通常只能安排轉(zhuǎn)移指令,使程序在啟動后轉(zhuǎn)移到主程序,。,,