模塊2 并行IO接口的應(yīng)用_第1頁
模塊2 并行IO接口的應(yīng)用_第2頁
模塊2 并行IO接口的應(yīng)用_第3頁
模塊2 并行IO接口的應(yīng)用_第4頁
模塊2 并行IO接口的應(yīng)用_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

模塊2并行I/O接口的應(yīng)用課題1基于單片機(jī)控制的簡易信號燈任務(wù)11位燈閃亮的控制任務(wù)28位燈閃亮的控制任務(wù)38位流水燈的控制任務(wù)18位燈多花樣閃亮的控制任務(wù)2簡易交通燈的控制課題2基于單片機(jī)控制的信號燈的應(yīng)用簡易信號燈控制任務(wù)1工作任務(wù)讓控制電路圖中單片機(jī)P1.0口所對應(yīng)的燈不斷閃爍(即亮一會(huì)兒,滅一會(huì)兒)。簡易信號燈控制任務(wù)1硬件電路該控制電路由單片機(jī)最小應(yīng)用系統(tǒng)、8位由芯片74LS373驅(qū)動(dòng)的發(fā)光二極管和5V直流穩(wěn)壓電源組成的。其中的8位燈是由單片機(jī)的P1口控制的,8位燈接成共陽極。鎖存,就是把信號暫存以維持某種電平狀態(tài)。鎖存器的最主要作用是緩存,其次完成高速的控制其與慢速的外設(shè)的不同步問題,再其次是解決驅(qū)動(dòng)的問題,最后是解決一個(gè)I/O口既能輸出也能輸入的問題。74LS373鎖存器的作用簡易信號燈控制任務(wù)1軟件設(shè)計(jì)要點(diǎn)分析發(fā)光二極管如何點(diǎn)亮?高電平“1”低電平“0”即當(dāng)P1.0~P1.7引腳輸出低電平時(shí)其對應(yīng)的發(fā)光二極管才會(huì)亮!簡易信號燈控制任務(wù)1軟件設(shè)計(jì)要點(diǎn)分析怎樣實(shí)現(xiàn)亮“一會(huì)兒”?利用程序執(zhí)行需消耗時(shí)間來延時(shí)。例:延時(shí)50ms的延時(shí)子程序

DELAY:MOVR7,#0FFH DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0RET☆減1不為0轉(zhuǎn)移指令功能:寄存器(直接尋址單元)內(nèi)容先減1,如所得內(nèi)容為0,則程序順序執(zhí)行;如減1結(jié)果不為0,則程序轉(zhuǎn)移。注:“$”代表本指令的地址格式:DJNZRn,relDJNZdirect,rel因?yàn)閒osc=12MHZ,故機(jī)器周期Tcy=12/fosc=1us

DELAY:MOVR7,#0FFHDL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0RET延時(shí)時(shí)間T1=2us×100+1us=201us延時(shí)時(shí)間TDELAY=(T1+2us)×255+1us=(201us+2us)×255+1us=51768us≈52ms簡易信號燈控制任務(wù)1軟件設(shè)計(jì)要點(diǎn)分析延時(shí)時(shí)間的計(jì)算簡易信號燈控制任務(wù)1軟件設(shè)計(jì)步驟:1、熟讀控制要求,理解題意;2、根據(jù)控制要求畫出流程圖;3、根據(jù)流程圖編寫程序。簡易信號燈控制任務(wù)1軟件設(shè)計(jì)一、控制流程圖ORG0000HLJMPSTARTORG0030HCLRP1.0SETBP1.0LJMPSTART

DELAY:MOVR7,#255DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0

DELAY:MOVR7,#255DL1:MOVR6,#100 DJNZR6,$ DJNZR7,DL1

ORG0000HLJMPSTARTORG0030HSTART:CLRP1.0MOVR7,#255DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0SETBP1.0

MOVR7,#255DL1:MOVR6,#100DJNZR6,$DJNZR7,DL1LJMPSTARTEND當(dāng)出現(xiàn)需重復(fù)使用的程序時(shí)可把它編寫成子程序,需要時(shí)再用子程序調(diào)用指令LCALL/ACALL進(jìn)行調(diào)用。子程序以標(biāo)號開始,以子程序返回指令RET結(jié)束。一般把子程序放在結(jié)束指令END前面。簡易信號燈控制任務(wù)1軟件設(shè)計(jì)

ORG0000HLJMPSTARTORG0030HSTART:CLRP1.0

SETBP1.0LJMPSTART

DELAY:MOVR7,#255DL0:MOVR6,#100DJNZR6,$DJNZR7,DL0RETEND簡易信號燈控制任務(wù)1軟件設(shè)計(jì)

ORG0000HLJMPSTARTORG0030HSTART:CLRP1.0MOVR7,#255DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0SETBP1.0

MOVR7,#255DL1:MOVR6,#100DJNZR6,$DJNZR7,DL1LJMPSTARTENDLCALLDELAYLCALLDELAY簡易信號燈控制任務(wù)1軟件設(shè)計(jì)三、控制功能源程序

ORG0000HLJMPSTARTORG0030HSTART:CLRP1.0LCALLDELAYSETBP1.0LCALLDELAYLJMPSTARTDELAY:

MOVR7,#0FFH DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0RETEND簡易信號燈控制任務(wù)1練習(xí)用取反指令“CPL”來實(shí)現(xiàn)任務(wù)?!钊》粗噶頒PL格式:CPLbitCPLCCPLA功能:將位地址bit中的內(nèi)容、標(biāo)志位C的內(nèi)容及累加器

ACC的內(nèi)容8位取反。簡易信號燈控制任務(wù)1練習(xí)用取反指令“CPL”來實(shí)現(xiàn)任務(wù)。

ORG0000HLJMPSTARTORG0030HSTART:

CLRCSTART1:MOVP1.0,CCPLCLCALLDELAYLJMPSTART1DELAY:

……END簡易信號燈控制任務(wù)1軟件設(shè)計(jì)方法小結(jié)1、如何讓燈亮和燈滅2、有窮程序流程的控制3、如何實(shí)現(xiàn)程序的無窮循環(huán)4、如何實(shí)現(xiàn)延時(shí)及延時(shí)時(shí)間長度的計(jì)算和控制5、如何實(shí)現(xiàn)子程序的調(diào)用和返回控制課前復(fù)習(xí)1、MOVR0,#08MOVR1,#04LOOP:DECR0DJNZR1,LOOPEND問:執(zhí)行完該程序后,(R0)=(),(R1)=()。2、已知(R1)=11000011BMOVA,R1CPLA問:執(zhí)行完以上指令后,(R1)=(),(A)=()。簡易信號燈控制任務(wù)2工作任務(wù)先讓P1口控制的燈D7~D0分別滅、亮、滅、亮、滅、亮、滅、亮的狀態(tài),延時(shí)后,再讓P1口控制的燈D7~D0分別亮、滅、亮、滅、亮、滅、亮、滅的狀態(tài)。簡易信號燈控制任務(wù)2任務(wù)分析10101010P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0各位狀態(tài)各燈狀態(tài)滅亮滅亮滅亮滅亮10101010=0AAH=55H狀態(tài)1:燈D7~D0分別滅、亮、滅、亮、滅、亮、滅、亮P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0各位狀態(tài)各燈狀態(tài)亮滅亮滅亮滅亮滅狀態(tài)2:燈D7~D0分別亮、滅、亮、滅、亮、滅、亮、滅的狀態(tài)。(P1)=10101010B(P1)=01010101B任務(wù)2一、控制流程圖軟件設(shè)計(jì)簡易信號燈控制ORG0000HLJMPSTARTORG0030HMOVP1,#0AAH

MOVP1,#55HLJMPSTARTLCALLDELAYLCALLDELAY二、控制功能源程序任務(wù)2軟件設(shè)計(jì)簡易信號燈控制

ORG0000HLJMPSTARTORG0030HSTART:MOVP1,#0AAHLCALLDELAYMOVP1,#55HLCALLDELAYLJMPSTARTDELAY:

MOVR7,#0FFH DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0RETEND如圖2-1-1所示:先讓P1口控制的燈D7~D0分別亮、亮、亮、亮、滅、滅、滅、滅的狀態(tài),延時(shí)后,再讓P1口控制的燈D7~D0分別滅、滅、滅、滅、亮、亮、亮、亮的狀態(tài)。任務(wù)2練習(xí)簡易信號燈控制任務(wù)2練習(xí)簡易信號燈控制用取反指令“CPL”來實(shí)現(xiàn)任務(wù)。ORG0000HLJMPSTARTORG0030HMOVA,#0AAHCPLALJMPSTARTMOVP1,ALCALLDELAY

ORG0000HLJMPSTARTORG0030H

START:MOVA,#0AAHSTART1:

MOVP1,ACPLALCALLDELAYLJMPSTART1DELAY:

MOVR7,#0FFH DL0:MOVR6,#100 DJNZR6,$ DJNZR7,DL0RETEND任務(wù)2練習(xí)簡易信號燈控制取反指令實(shí)現(xiàn)任務(wù)的源程序。簡易信號燈控制任務(wù)2軟件設(shè)計(jì)方法小結(jié)1、取反指令“CPL”對應(yīng)的操作數(shù)只能是位地址bit、進(jìn)位標(biāo)志位C、累加器ACC

格式:CPLbitCPLCCPLA2、累加器ACC是工作最頻繁的寄存器,當(dāng)指令無法對I/O端口進(jìn)行直接控制時(shí),通常通過累加器ACC進(jìn)行傳送。任務(wù)3工作任務(wù)簡易信號燈控制讓P1口控制的8位燈從D0~D7燈逐個(gè)輪流點(diǎn)亮并不斷循環(huán)。簡易信號燈控制任務(wù)3任務(wù)分析狀態(tài)1P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅滅滅滅亮狀態(tài)2P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅滅滅亮滅狀態(tài)3P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅滅亮滅滅狀態(tài)4P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅亮滅滅滅狀態(tài)5P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅亮滅滅滅滅……狀態(tài)8P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)亮滅滅滅滅滅滅滅1111111011111101111110111111011111101111011111110FEH0FDH0FBH0F7H0EFH07FH任務(wù)3★順序流程控制軟件設(shè)計(jì)簡易信號燈控制

ORG0000HLJMPSTARTORG0030HSTART:MOVP1,#0FEHLCALLDELAYMOVP1,#0FDHLCALLDELAYMOVP1,#0FBHLCALLDELAYMOVP1,#0F7HLCALLDELAYMOVP1,#0EFHLCALLDELAYMOVP1,#0DFHLCALLDELAYMOVP1,#0BFHLCALLDELAYMOVP1,#07FHLCALLDELAYAJMPMAIN用循環(huán)移位指令“RL”或“RR”及“DJNZ”來實(shí)現(xiàn)任務(wù)。任務(wù)3軟件設(shè)計(jì)簡易信號燈控制★有窮循環(huán)體控制☆循環(huán)移位指令格式:RLA;位循環(huán)左移指令

RRA;位循環(huán)右移指令

RLCA;帶進(jìn)位標(biāo)志位C循環(huán)左移指令

RRCA;帶進(jìn)位標(biāo)志位C循環(huán)右移指令☆減1不為0轉(zhuǎn)移指令格式:DJNZRn,relDJNZdirect,rel任務(wù)3軟件設(shè)計(jì)簡易信號燈控制★有窮循環(huán)體控制ORG0000HLJMPSTARTORG0030HMOVA,#0FEHMOVR0,#8MOVP1,ARLALCALLDELAYDJNZR0,OUTOUTLJMPSTART任務(wù)3軟件設(shè)計(jì)簡易信號燈控制★有窮循環(huán)體控制

ORG0000HLJMPSTARTORG0030HSTART:

MOVA,#0FEHMOVR0,#8OUT:

MOVP1,ARLALCALLDELAYDJNZR0,OUTLJMPSTARTDELAY:……(略)END任務(wù)3練習(xí)簡易信號燈控制1、如圖2-1-1所示電路圖,讓P1口控制的8位燈從D7~D0燈逐個(gè)輪流點(diǎn)亮并不斷循環(huán)。狀態(tài)1P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)亮滅滅滅滅滅滅滅狀態(tài)2P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅亮滅滅滅滅滅滅狀態(tài)3P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅亮滅滅滅滅滅狀態(tài)4P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅亮滅滅滅滅狀態(tài)5P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅亮滅滅滅……狀態(tài)8P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅滅滅滅亮

ORG0000HLJMPSTARTORG0030HSTART:

MOVA,#7FHMOVR0,#8OUT:

MOVP1,ARRALCALLDELAYDJNZR0,OUTLJMPSTARTDELAY:……(略)END任務(wù)3練習(xí)簡易信號燈控制1、如圖2-1-1所示電路圖,讓P1口控制的8位燈從D7~D0燈逐個(gè)輪流點(diǎn)亮并不斷循環(huán)。參考源程序:2、如圖2-1-1所示電路圖,讓P1口控制的8位燈從D0~D7燈兩個(gè)兩個(gè)輪流點(diǎn)亮并不斷循環(huán)。狀態(tài)1P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅滅滅亮亮狀態(tài)2P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅滅滅亮亮滅滅狀態(tài)3P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)滅滅亮亮滅滅滅滅狀態(tài)4P1口各位P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0HEX值各位狀態(tài)各燈狀態(tài)亮亮滅滅滅滅滅滅任務(wù)3練習(xí)簡易信號燈控制2、如圖2-1-1所示電路圖,讓P1口控制的8位燈從D0~D7燈兩個(gè)兩個(gè)輪流點(diǎn)亮并不斷循環(huán)。任務(wù)3練習(xí)簡易信號燈控制

ORG0000HLJMPSTARTORG0030HSTART:

MOVA,#0FBHMOVR0,#4OUT:

MOVP1,ARLARLALCALLDELAYDJNZR0,OUTLJMPSTARTDELAY:……(略)END參考源程序:簡易信號燈控制任務(wù)3軟件設(shè)計(jì)方法小結(jié)1、循環(huán)移位指令對應(yīng)的操作數(shù)只能是累加器ACC。格式:RLA;位循環(huán)左移指令

RRA;位循環(huán)右移指令

RLCA;帶進(jìn)位標(biāo)志位C循環(huán)左移指令

RRCA;帶進(jìn)位標(biāo)志位C循環(huán)右移指令課前復(fù)習(xí)1、循環(huán)移位指令注:移位指令對應(yīng)的操作數(shù)只能是累加器ACC。

格式:RLA;位循環(huán)左移指令

RRA;位循環(huán)右移指令

RLCA;帶進(jìn)位標(biāo)志位C循環(huán)左移指令

RRCA;帶進(jìn)位標(biāo)志位C循環(huán)右移指令例1:已知(A)=11000000B,(CY)=1若執(zhí)行一次RLA后,結(jié)果為:(A)=(),(CY)=();若執(zhí)行一次RRA后,結(jié)果為:(A)=(),(CY)=();若執(zhí)行一次RLCA后,結(jié)果為:(A)=(),(CY)=();若執(zhí)行一次RRCA后,結(jié)果為:(A)=(),(CY)=()。課前復(fù)習(xí)2、流水燈程序設(shè)計(jì)要點(diǎn):(1)初始狀態(tài)(2)移位方向(3)移位次數(shù)課前復(fù)習(xí)

ORG0000HLJMPSTARTORG0030HSTART:

MOVA,#0FEHMOVR0,#8OUT:

MOVP1,ARLALCALLDELAYDJNZR0,OUTLJMPSTARTDELAY:……(略)END課前復(fù)習(xí)信號燈的應(yīng)用任務(wù)1工作任務(wù)讓控制電路圖中的8位燈按如下流程工作:8位燈以“0AAH”的初態(tài)閃亮8次→兩燈并行左移后右移(每次移位1次),3個(gè)循環(huán)后全滅→從D0~D7燈逐個(gè)遞亮后全滅→從D7~D0燈逐個(gè)遞亮后全滅→重復(fù)循環(huán)執(zhí)行以上程序。信號燈的應(yīng)用任務(wù)1任務(wù)分析

MOVA,#0AAHMOVR2,#8LPP:MOVP1,ACPLALCALLDELAYDJNZR2,LPPEND信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(一)8位燈閃亮程序信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(二)兩燈并行左移后右移(每次移位1次),3個(gè)循環(huán)后全滅;左移程序

MOVA,#0FCHMOVR2,#7LLS:MOVP1,ARLALCALLDELAYDJNZR2,LLSMOVP1,#0FFH信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(二)兩燈并行左移后右移(每次移位1次),3個(gè)循環(huán)后全滅;右移程序

MOVA,#3FHMOVR2,#7LRS:MOVP1,ARRALCALLDELAYDJNZR2,LRSMOVP1,#0FFHMOVR3,#3LRS:MOVR2,#7MOVA,#0FCHLLS:MOVP1,ARLALCALLDELAYDJNZR2,LLSMOVP1,#0FFHLCALLDELAY

MOVR2,#7MOVA,#3FHRRS:MOVP1,ARRALCALLDELAYDJNZR2,RRSMOVP1,#0FFHLCALLDELAYDJNZR3,LRS信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(二)兩燈并行左移后右移(每次移位1次),3個(gè)循環(huán)后全滅MOVR3,#3LRS:MOVR2,#7MOVA,#0FCHLCALLLLSMOVP1,#0FFHLCALLDELAY

MOVR2,#7MOVA,#3FHLCALLRRSMOVP1,#0FFHLCALLDELAYDJNZR3,LRSLLS:MOVP1,ARLALCALLDELAYDJNZR2,LLSRETRRS:MOVP1,ARRALCALLDELAYDJNZR2,RRSRET信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(三)從D0~D7燈逐個(gè)遞亮后全滅(方法一)

MOVR2,#8MOVA,#0FEHLLSS:MOVP1,A

CLRCRLCALCALLDELAYDJNZR2,LLSSMOVP1,#0FFH信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)☆新指令剖析1、減1指令DEC功能:將操作數(shù)所指定的單元內(nèi)容減1。格式:DECADECRnDECdirectDEC@Ri信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(三)從D0~D7燈逐個(gè)遞亮后全滅(方法二)

MOVR2,#8MOVA,#0FEHLLSS:MOVP1,A

RLADECALCALLDELAYDJNZR2,LLSSMOVP1,#0FFH信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(四)從D7~D0燈逐個(gè)遞亮后全滅(方法一)

MOVR2,#8MOVA,#7FHRRSS:MOVP1,A

CLRCRRCALCALLDELAYDJNZR2,RRSSMOVP1,#0FFH信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)☆新指令剖析2、帶借位減法指令SUBB功能:從累加器ACC中減去源操作數(shù)所指出的數(shù)據(jù)及進(jìn)位標(biāo)志位C的值,差值保存在累加器ACC中。格式:SUBBA,RnSUBBA,directSUBBA,@RnSUBBA,#data例:若(A)=60H,(R3)=3BH,則執(zhí)行以下指令后,(A)=?

CLRCSUBBA,R3;(A)=60H-3BH-0H=25H信號燈的應(yīng)用任務(wù)1程序設(shè)計(jì)(四)從D7~D0燈逐個(gè)遞亮后全滅(方法二)

MOVR2,#8MOVA,#7FHRRSS:MOVP1,A

RRACLRCSUBBA,#80HLCALLDELAYDJNZR2,RRSSMOVP1,#0FFH

;D0~D7燈逐個(gè)遞亮后全滅

MOVR2,#8MOVA,#0FEHLCALLLLSSMOVP1,#0FFHLCALLDELAY;D7~D0燈逐個(gè)遞亮后全滅

MOVR2,#8MOVA,#7FHLCALLRRSSMOVP1,#0FFHLCALLDELAY;從D0開始亮LLSS:MOVP1,ACLRCRLCALCALLDELAYDJNZR2,LLSSRET;從D7開始亮RRSS:MOVP1,ACLRCRRCALCALLDELAYDJNZR2,RRSSRET信號燈的應(yīng)用任務(wù)2工作任務(wù)用圖中的6位燈來分別表示十字路口東西方向的燈、綠燈、黃燈和南北方向的紅燈、綠燈、黃燈,實(shí)現(xiàn)簡易交通燈的控制。信號燈東西方向南北方向綠燈黃燈紅燈綠燈黃燈紅燈輸出分配P1.0P1.1P1.2P1.3P1.4P1.5信號燈的應(yīng)用任務(wù)2任務(wù)分析☆系統(tǒng)啟動(dòng)的初始狀態(tài):東西綠燈亮、南北紅燈亮,維持15s;☆第二狀態(tài):東西綠燈閃亮,南北紅燈亮,維持3s,其中東西綠燈每隔0.5s狀態(tài)取反一次;☆第三狀態(tài):東西黃燈亮,南北紅燈亮,維持2s;☆第四狀態(tài):東西紅燈亮,南北綠燈亮,維持20s;☆第五狀態(tài):東西紅燈亮,南北綠燈閃亮,維持3s,其中南北綠燈每隔0.5s狀態(tài)取反一次;☆第六狀態(tài):東西紅燈亮,南北黃燈亮,維持2s;重復(fù)執(zhí)行以上狀態(tài)。1、狀態(tài)分析信號燈的應(yīng)用任務(wù)2任務(wù)分析2、狀態(tài)數(shù)值分析P1口南北方向東西方向P1.7P1.6P1.5(紅)P1.4(黃)P1.3(綠)P1.2(紅)P1.1(黃)P1.0(綠)HEX值初態(tài)狀態(tài)2狀態(tài)3狀態(tài)4狀態(tài)5狀態(tài)6110111101101110111110011111010110DEH0DDH0EBH0F3H將P1.0引腳的狀態(tài)每隔0.5s取反一次將P1.3引腳的狀態(tài)每隔0.5s取反一次信號燈的應(yīng)用任務(wù)2軟件設(shè)計(jì)☆新指令剖析1、邏輯“異或”運(yùn)算指令XRL功能:常用來對字節(jié)中某些位進(jìn)行取反操作,若某位取反則該位與“1”相異或;若某位保留則該位與“0”相異或。還可利用異或指令對某單元自身異或,以實(shí)現(xiàn)清零操作。格式:XRLdirect,AXRLdirect,#dataXRLA,#dataXRLA,directXRLA,RnXRLA,@Ri例如:若(A)=0B5H=10110101B,執(zhí)行以下指令:

XRLA,#0F0HMOV30H,AXRLA,30H信號燈的應(yīng)用任務(wù)2軟件設(shè)計(jì)☆新指令剖析1、邏輯“異或”運(yùn)算指令XRL;A的高四位取反,低四位保留,(A)=01000101B;將A的值存入30H,(30H)=01000101B;自身異或使A清零,(A)=00000000B1、若(A)=63H=01100011B,執(zhí)行以下指令:

XRLA,#0FHMOV40H,AXRLA,40H練習(xí)2、執(zhí)行以下指令:

SIZEEQU60HORG0000HMOVR0,#SIZELJMP$結(jié)果:(R0)=();(A)=01101100B;(40H)=01101100B;自身異或使A清零,(A)=00000000B60H信號燈的應(yīng)用任務(wù)2軟件設(shè)計(jì)☆新指令剖析2、偽指令EQU(=)格式:名字EQU表達(dá)式或名字=表達(dá)式例如:SIZEEQU15

或SIZE=0FH注意:此指令一般放在開始指令ORG的上面。信號燈的應(yīng)用任務(wù)2軟件設(shè)計(jì)信號燈的應(yīng)用任務(wù)2軟件設(shè)計(jì)(一)延時(shí)程序的編寫;延時(shí)50ms的程序DELAY:MOVR2,#246DL0:MOVR3,#100 DJNZR3,$DJNZR2,DL0RET;延時(shí)1s的程序DEL1s:MOVR5,#20DEL1:LCALLDELAYDJNZR5,DL1RET;延時(shí)ns的程序

MOVR4,#nDLS:LC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論