freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機課程設(shè)計指導(dǎo)書-資料下載頁

2025-01-18 15:45本頁面
  

【正文】 序名:BZ入口條件:R0(被并字節(jié)的首地址)出口條件:A功能:將兩個單字節(jié)的BCD碼并為一個字節(jié)的壓縮BCD碼BZ:MOV A,@R0SWAP AANL A, 0FHMOV B,AINC R0MOV A,@R0ANL A, 0FHADD A,BRET第四章 單片機課程設(shè)計示例二(交通燈控制)一、總體設(shè)計明確任務(wù)交通燈的任務(wù)要求為:模擬十字路口的交通燈的亮、滅及閃爍基本工作原理:根據(jù)交通燈的亮滅情況,可以分為四種狀態(tài),利用定時計數(shù)器每20秒產(chǎn)生一次中斷,每產(chǎn)生一次中斷后由是否有特殊情況決定交通燈的狀態(tài)變換。 硬件和軟件功能的劃分本課題要求實現(xiàn)的功能比較簡單。由單片機的定時/計數(shù)器產(chǎn)生八分之一秒的定時時間,通過軟件的方式實現(xiàn)20秒的定時時間。交通燈的亮滅由8255A控制,PA口控制東西向,PB口控制南北向。 交通燈狀態(tài)劃分十字路口交通燈如下圖所示,將12個交通燈進行編號這12個交通燈共有四個狀態(tài): 狀態(tài)1(S1):東西紅燈(10)亮,南北綠燈(9)亮狀態(tài)2(S2):南北綠燈(9)滅,黃燈(8)閃爍,東西仍為紅燈(10)亮狀態(tài)3(S3):南北紅燈(7)亮,東西綠燈(12)亮狀態(tài)4(S4):東西綠燈(12)滅,黃燈(11)閃爍,南北仍為紅燈(7)亮當(dāng)東西向(或南北向)有特殊情況,開關(guān)K0為低電平則應(yīng)使交通燈處于S3(東西綠燈、南北),開關(guān)K1為低電平則應(yīng)使交通燈處于S1(南北向綠燈、東西向紅燈),當(dāng)K0、K1均為低電平則取消特殊情況,返回正常顯示情況。二、硬件設(shè)計根據(jù)總體設(shè)計要求,確定系統(tǒng)擴展與功能接口,設(shè)計出系統(tǒng)的電路原理圖。 系統(tǒng)擴展DVCC仿真系統(tǒng)的CPU是8031,因此,必須首先組成最小系統(tǒng),即由803地址鎖存器和程序存儲器組成。根據(jù)課題要求,在此基礎(chǔ)上進行擴展。地址鎖存器選74LS373,程序程序器選2764(8K),盡管本系統(tǒng)程序不長,但考慮以后擴展方便,選用2764??紤]到交通燈數(shù)量比較多,控制信號比較多,對單片機的I/O口進行擴展,使用通用I/O接口芯片8255A來對單片機I/O口進行擴展。 功能接口所謂接口是CPU與外界的連接部件,以實現(xiàn)CPU與外部設(shè)備的最佳耦合和匹配。本課題只要求顯示接口。顯示設(shè)備為2位七段數(shù)碼管。要使用七段數(shù)碼管可以利用8031的串行口、可以利用可編程并行I/O擴展芯片8155或8255。由于DVCC仿真系統(tǒng)的限制選用8155。2個共陰極數(shù)碼管自左至右以兩位數(shù)的形式顯示秒數(shù)。為了保證數(shù)碼管的亮度,必須保證輸入電流的大小,因此,選用74LS244作為驅(qū)動放大器(DVCC系統(tǒng)內(nèi)部已經(jīng)做好)。 系統(tǒng)的組成及統(tǒng)一編址CSIO/M PB7 |PB08155 PA7 |PA0PC5 | PC0AD7 |AD0數(shù)碼管A12 CE |A8A7 |A0 2764D7 |D0Q7 D7 | |Q0 D0 74LS373 | | 8031蜂鳴器驅(qū)動器I/O端口是CPU與I/O設(shè)備直接通信的地址。單片機系統(tǒng)對I/O端口是采用端口地址與存儲器地址統(tǒng)一編址的方式,即存儲器映射方式。編址技術(shù)分線選法和譯碼法。由于涉及外圍芯片很少,所以采用線選法。系統(tǒng)簡圖如下:由于是線選法,因此芯片地址不是唯一的。而8155與外部數(shù)據(jù)存儲器統(tǒng)一編址,可以與程序程序器重疊編址。因此,我們?nèi)∷鼈兊牡刂啡缦拢?764:0000H~1FFFH 存儲程序8155:命令/狀態(tài)口 7F80H PA口 7F81H 輸出掃描碼(字選碼) PB口 7F82H 輸出字形碼 PC口 7F83H 接收回復(fù)碼 定時器低8位7F84H 沒用 定時器高8位7F85H 沒用 RAM 3F00H~3FFFH沒用 工作方式為:定時器不工作,禁止PA、PB中斷,PC口為輸入方式(方式0),PA口、PB口為輸出方式。因此,工作方式字為03H。 匯集各芯片及數(shù)碼管的技術(shù)資料,繪制系統(tǒng)原理圖。將80374LS37276815數(shù)碼管(包括為保證其驅(qū)動電流而添加的驅(qū)動器74LS244)等資料匯集起來,熟悉各芯片的引腳的功能及連接方法,繪制系統(tǒng)原理圖。三、軟件設(shè)計 系統(tǒng)定義、各種數(shù)據(jù)類型的定義。秒采用采用BCD碼,八分之一秒計數(shù)采用16進制。、定義和分配存儲空間、定義標(biāo)志位。堆棧區(qū)安放在片內(nèi)RAM的高端60H~7FH;0區(qū)為工作寄存器;1區(qū)為顯示程序的工作寄存器;地址為3AH的存儲單元內(nèi)存放LED顯示的數(shù)據(jù),以壓縮BCD碼形式存放設(shè)計一個標(biāo)志單元,地址為3CH,用來標(biāo)示當(dāng)前交通燈的狀態(tài),共四種狀態(tài),00H帶表狀態(tài)1,01H代表狀態(tài)2,02H代表狀態(tài)3,03代表狀態(tài)4存儲單元列表如下:存儲內(nèi)容變量名地址備注通用工作寄存器R0~R700H~07H0區(qū)顯示程序?qū)S玫墓ぷ骷拇嫫鱎0~R708H~0FH1區(qū)顯示存儲區(qū)個位LED03AHBCD碼十位LED13BHBCD碼標(biāo)志單元3CH16進制數(shù)堆棧區(qū)60H~7FH 位標(biāo)志在設(shè)計過程中,根據(jù)需要再添加。 軟件結(jié)構(gòu)設(shè)計程序總體執(zhí)行過程是:上電后系統(tǒng)自動進行初始化,定時/計數(shù)器開始工作,檢測標(biāo)志單元3CH,根據(jù)3CH單元中的內(nèi)容讓交通燈處于對應(yīng)的狀態(tài), 然后調(diào)用顯示子程序,將3AH和3BH地址內(nèi)的數(shù)據(jù)在七段數(shù)碼管上顯示出來。接著循環(huán)檢測3CH單元中的內(nèi)容以及特殊情況控制信號和調(diào)用顯示子程序,讓交通燈處于對應(yīng)的狀態(tài),將3AH地址內(nèi)的數(shù)據(jù)送七段數(shù)碼管上顯示出來,在整個過程中定時/計數(shù)器中斷始終打開等待定時/計數(shù)器中斷。中斷服務(wù)程序完成狀態(tài)的變換(3CH的值的改變)以及LED顯示內(nèi)容(3AH)的改變。主程序的框圖都如圖所示: 模塊設(shè)計根據(jù)主程序框圖,定義如下幾個模塊:初始化模塊、狀態(tài)1顯示子程序、狀態(tài)2顯示子程序、狀態(tài)3顯示子程序、狀態(tài)4顯示子程序、出錯處理程序、LED顯示程序、中斷服務(wù)程序。由于在程序運行過程中多次出現(xiàn)需要延時的情況,這里將延時程序也作為一個模塊。、初始化模塊功能:完成變量初始化、8155初始化、定時器初始化和中斷初始化。初始化的框圖如圖所示。根據(jù)框圖寫出如下程序:(注意:后面我們要經(jīng)常對以下程序進行補充和修改,利用它對其它模塊或子程序進行調(diào)試。因此,要隨時保存不同的版本。為方便起見,)ORG 0000H AJMP START ORG 000BH ;T0中斷入口地址 AJMP INT0 ;中斷服務(wù)程序 ORG 0030HSTART: MOV SP,60H ;置堆棧頂指針 MOV 3AH,20H;時間存儲區(qū)單元初始化 MOV 3CH,00H MOV R3,00H MOV R2,00H MOV A,80H ;8255A初始化,置工作方式 MOV DPTR,0FF2BH MOVX @DPTR,A MOV A,03H ;置8155命令格式MOV DPTR,0FF20H ;指向命令口MOVX @DPTR,A MOV TMOD,01H ;置T0為定時器,工作方式1 MOV TH0,0BH MOV TL0,0DCH SETB EA ;中斷初始化 SETB ET0 SETB TR0 程序中的時間常數(shù)是從要求一秒中斷一次,但8051單片機的最大定時時間達不到1秒,所以選擇1/8秒作為定時時間。DVCC的晶振頻率為6MHz,則機器周期為2μs。設(shè)時間初值為X,工作方式1時定時器為16位,最大計數(shù)值為216=65536,則:1/8=(65536X)2106解得X=3036D=0BDCH則TH0 =0BH,TL0 =0DCH。功能:交通燈處于狀態(tài)1狀態(tài)1(S1)為東西紅燈(10)亮,南北綠燈(9)亮,所以本程序模塊即為將10號燈點亮、程序由于本模塊的程序比較簡單,只是簡單的將4個高電平打到對應(yīng)的端口就可以了,所以程序框圖略,在這里直接給出程序:DISP1: MOV DPTR,0FF29H MOV A,00H MOVX @DPTR,A INC DPTR MOV A,00H ;讓所有燈熄滅 MOVX @DPTR,AMOV DPTR,0FF29H MOV A,03H MOVX @DPTR,A INC DPTR MOV A,0CH MOVX @DPTR,A ;東西紅燈亮,南北綠燈亮 RET狀態(tài)2(S2)為東西紅燈(10)亮,南北黃燈黃燈(8)閃爍,本程序模塊比狀態(tài)1顯示程序稍稍復(fù)雜一點,除了要將高電平打入對應(yīng)的端口外還要控制黃燈的閃爍,黃燈的閃爍采用軟件延時的辦法實現(xiàn),即黃燈亮后延時一段時間再滅,然后再延時一段時間再亮。程序框圖如下:程序如下:DISP2: MOV DPTR,0FF29H MOV A,00H MOVX @DPTR,A INC DPTR MOV A,00H ;讓所有燈熄滅 MOVX @DPTR,AMOV DPTR,0FF29H MOV A,02H MOVX @DPTR,A INC DPTR MOV A,8AH MOVX @DPTR,A ;東西紅燈亮,南北黃燈亮 ACALL DELAY ;延時1秒 MOV A,08H MOVX @DPTR,A ;南北黃燈滅 ACALL DELAY ;延時1秒 RET 狀態(tài)3顯示程序與狀態(tài)1顯示程序類似,狀態(tài)4顯示程序與狀態(tài)2顯示程序類似,請同學(xué)們參照狀態(tài)1和狀態(tài)2顯示程序自行完成狀態(tài)3和狀態(tài)4顯示程序,這里就不詳細敘述了。出錯處理程序指的是狀態(tài)標(biāo)志字節(jié)中的數(shù)據(jù)超過了正常范圍(00H~03H)時的處理程序,正常情況下一般不會出現(xiàn)。當(dāng)系統(tǒng)出現(xiàn)故障時,出現(xiàn)這種情況應(yīng)該將所有紅燈變亮。其程序與框圖與狀態(tài)1類似。延時程序用來實現(xiàn)延時1秒的功能,采用軟件延時的方式。顯然延時程序要用循環(huán)結(jié)構(gòu)來實現(xiàn),由于延時1秒是一個比較長時間的延時所以要采用三重循環(huán)來實現(xiàn)。延時程序是一個比較簡單的純粹的循環(huán)程序,結(jié)構(gòu)比較簡單,框圖就省略,這里直接給出程序。 DEALY: MOV R7,02H LOOP1: MOV R6,0FFH LOOP2: MOV R5,0FFH LOOP3: NOP DJNZ R5,LOOP3 DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET當(dāng)然,采用軟件延時由于存在中斷以及其它因素的影響,不可能達到精確的1秒,如果需要更加精確請同學(xué)們自己調(diào)整每層循環(huán)的循環(huán)次數(shù)。在實際的應(yīng)用過成中由于LED顯示的需要,LED顯示程序調(diào)用的間隔時間不能太長,所以在實際應(yīng)用中我們常常將上述延時程序改為如下程序: DELAY: MOV R7,0FFH LOOP1: MOV R6,0FFH LOOP2: ACALL DISP DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET LED顯示程序LED顯示程序就是將3AH單元的內(nèi)容在兩個LED顯示器上顯示出來。由于3AH單元內(nèi)存儲的是壓縮BCD碼,所以必須在顯示前對其進行拆字,即將一個字節(jié)壓縮BCD碼拆成兩個單
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1