久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14778|回復: 0
收起左側

單片機+74LS138譯碼器+跑馬燈+8255A+8253方波實驗詳解

[復制鏈接]
ID:512178 發表于 2019-4-14 21:16 | 顯示全部樓層 |閱讀模式
目錄
一、構建單片機最小系統版和實驗環境熟悉
1.1實驗要求
1.2實驗過程
1,21.單片機最小系統實驗
1.22編譯環境的熟悉
二、跑馬燈實驗及74LS138譯碼
2.1.實驗要求
2.2.實驗過程
2.21單片機直接實現跑馬燈
2.22通過74LS138譯碼器實現跑馬燈
三、8255A控制交通燈實驗
3.1實驗要求
3.2實驗過程
四、8253方波實驗
4.1實驗要求
4.2實驗過程
五、繼電器控制實驗
5.1實驗要求
單片機設計總結:
附錄:

摘要:
單片機應用技術為一門理論與實踐相結合的課,本課安排的實驗旨在培養學生軟硬件開發能力,用編程語言及硬件設備實現串、并行通訊、計數/定時、A/D、D/A等硬件接口的功能,進一步加深對常用硬件芯片的了解和應用,以及學習用單片機解決實際問題。實驗要求學生利用編程語言及硬件設備實現單片機的方案設計、程序編寫、硬件連接、調試,從中體會具體硬件接口的應用技巧,進一步理解硬件接口芯片,逐步掌握單片機系統的開發和應用方法。

使用Protues能使我們在沒有用實物連接的情況下允許學生在Windows操作系統下編寫、編譯、連接、錯誤定位、調試、觀察、修改系統。通過本實驗的學習,學生可以熟悉各種類型的接口芯片,匯編語言程序的編寫、調試,充分鍛煉動手及編程能力。
關鍵詞:編程語言    硬件芯片    單片機系統    接口芯片

一、構建單片機最小系統版和實驗環境熟悉

1.1實驗要求

一、預習要求

1.構建單片機最小系統,熟悉51單片機的結構及編程方法
2.按照程序流程圖編寫出程序

二、實驗目的

1.熟悉星單片機最小系統的組成和工作原理,熟悉Keil C51集成環境軟件的使用方法。
2.熟悉MCS51匯編指令,能自己編寫簡單的程序,控制硬件。

三、實驗內容

單片機最小系統實驗:
1、熟悉單片機最小系統的組成和工作原理,熟悉Keil C51集成環境軟件的安裝和使用方法。
2、作出單片機最小系統的組成原理圖,分析其各構成單元的工作原理。
存儲單元數據傳輸實驗:
1、熟悉MCS51匯編指令。
2、進行存儲單元數據傳輸實驗,編寫程序。
3、運行程序,驗證譯碼的正確性。
1.2實驗過程
1,21.單片機最小系統實驗
1.單片機最小系統板的組成
時鐘電路復位電路,電源電路,這幾個部分構成,復位電路是用來使電路的運行狀態歸零,電源電路是用來提供+5v的電源電壓,對單片機進行供電(由于器材等原因本次設計我們用的是開發板供電)。下面的單片機最小系統板,我們晶振選擇的是12MHz的,其他的各種元器件來構成單片機的最小系統板。

2、使用Protues繪制單片機最小系統原理圖

3、單片機最小系統的工作原理

(1)51單片機最小系統復位電路的極性電容C3的大小直接影響單片機的復位時間,一般采用10-30uF,51單片機最小系統容值越大需要的復位時間越短。

(2)51單片機最小系統晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,51單片機最小系統晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。

(3)51單片機最小系統起振電容C2、C3一般采用15-33pF,并且電容離晶振越近越好,晶振離單片機越近越好。

(4)P0口為開漏輸出,作為輸出口時需加上拉電阻,阻值一般為10k。

A、設置為定時器模式時,加1計數器是對內部機器周期計數(1個機器周期等于12個振蕩周期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器周期Tcy就是定時時間t。

B、設置為計數器模式時,外部事件計數脈沖由T0或T1引腳輸入到計數器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數器加1,更新的計數值在下一個機器周期的S3P1期間裝入計數器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為12MHz時,最高計數頻率不超過1/2MHz,即計數脈沖的周期要大于2 ms。

1.22編譯環境的熟悉
實驗中我們使用keil 4環境編譯程序。其窗口界面如下:

思考題

1、在單片機最小系統的構建中,應注意哪些因素。

答:(1)51單片機現在多用AT89S51,不用晶振,晶體加兩個電容就可以了。
(2)復位電路中的電容是慮波穩定作用,并聯在一個電阻上,一端接地,一端通過開關接高電位就可以了。
(3)晶振:一般選用 12MHz ,因為可以準確地得到 9600 波特率和 19200 波特率。

實驗總結

單片機最小系統的構建,讓我對單片機的知識有了更深的了解。單片機最小系統的焊接,也鍛煉了我的自己動手的能力。在焊接的過程中由于粗心,出了不少的錯誤,最后還是在同學的幫助下順利完成了。
二、跑馬燈實驗及74LS138譯碼
2.1.實驗要求

一、預習要求

1.熟悉51單片機的結構及編程方法

2.按照程序流程圖編寫出程序

二、實驗目的

1.熟悉集成環境軟件或熟悉Keil C51集成環境軟件的使用方法。

2.熟悉MCS51匯編指令,能自己編寫簡單的程序,控制硬件。

三、實驗內容

(一)跑馬燈實驗:

1、熟悉集成環境軟件或熟悉Keil C51集成環境軟件的安裝和使用方法。

2、照接線圖編寫程序:使用P1口控制G6區的8個指示燈,循環點亮,瞬間只有一個燈亮。

3、觀察實驗結果,驗證程序是否正確。

(二)74LS138譯碼器實驗:

1、設計74LS138接口電路,編寫程序:使用單片機的P1.0、P1.1、P1.2控制74HC138的數據輸入端,通過譯碼產生8選1個選通信號,輪流點亮8個LED指示燈。

2、運行程序,驗證譯碼的正確性。

2.2.實驗過程
2.21單片機直接實現跑馬燈

                        跑馬燈原理圖

                              仿真圖

1、跑馬燈對應程序的流程圖




2.22通過74LS138譯碼器實現跑馬燈

1、74LS138譯碼器工作原理

(1)、74LS138譯碼器工作原理

74LS138原理圖

從原理圖可看出,74138有三個輸入端:A0、A1、A2和八個輸出端Q0~Q7。當輸入端A0、A1、A2的編碼為000時,譯碼器輸出為Q0=0,而Q1~Q7=1。即Q0對應于A0、A1、A2為000狀態,低電平有效。A0、A1、A2的另外7種組合見后面的真值表。

圖中S1、S2、S3為使能控制端,起到控制譯碼器是否能進行譯碼的作用。只有S1為高電平,S2、S3均為低電平時,才能進行譯碼,否則不論輸入輸入為何值,每個輸出端均為1。

(2)、74LS138譯碼器真值表

2、通過74LS138跑馬燈仿真圖

3.對應程序流程圖




思考題            

1、在單片機系統中,74LS138通常用來產生片選信號,應如何處理?
答:取三根底地址線,接到74LS138譯碼器的輸入端,譯碼產生,8個使能控制信號。

實驗心得

第一個實驗單片機直接控制跑馬燈,比較容易實現,只需要從單片機的p1.0到p1.7接到跑馬燈上,利用這些接口控制。138控制流水燈的實驗有些麻煩,實驗過程中也出現了不少的問題,但到最后都解決了。這次的實驗讓我對138的功能有了更深的了解與熟悉。
三、8255A控制交通燈實驗
3.1實驗要求

一、預習要求

1.熟悉51單片機的結構及編程方法

2.按照要求畫出流程圖及程序

二、實驗目的

1、了解8255芯片的工作原理,熟悉其初始化編程方法以及輸入、輸出程序設計技巧。學會使用8255并行接口芯片實現各種控制功能,如本實驗(控制交通燈)等。

2、熟悉8255內部結構和與單片機的接口邏輯,熟悉8255芯片的3種工作方式以及控制字格式。

3、嘗試自行編寫程序,填寫實驗報告。

三、實驗內容

1、設計8255接口電路,編寫程序:使用8255的PA0..2、PA5..7控制LED指示燈,實現交通燈功能。

2、連接線路驗證8255的功能,熟悉它的使用方法。

3.2實驗過程

1、8255引腳圖

2、8255工作原理

8255共有三種工作方式:

(1)工作方式0:這是 8255A 中各端口的基本輸入/輸出方式。它只完成簡單的并行輸入/輸出操作,CPU 可從指定端口輸入信息,也可向指定端口輸出信息,如果三個端口均處于工作方式0,則可由工作方式控制字定義16種工作方式的組合。

(2)工作方式1:被稱作選通輸入/輸出方式。在這種工作方式下,數據輸入/輸出操作要在選通信號控制下完成。

(3)工作方式2:被稱作帶選通的雙向傳送方式。8255A中只允許端口A 處于工作方式2,可用來在兩臺處理機之間實現雙向并行通信。其有關的控制信號由端口 C 提供,并可向 CPU發出中斷請求信號。

3、主程序流程圖


4、8255A交通燈仿真圖



思考題
1.如何對8255的PC口進行位操作?
8255控制字D7=1時,D6~D0為口模式控制,D7=0時控制字為PC口的位操作模式,如控制字=00H,PC0復位;控制字=01H,PC0置位;控制字=0EH,PC7復位;控制字=0FH,PC7置位;其中D6~D4沒定義,D3~D1從000B~111B分別指定PC0~PC7腳,D0位為相應的電平高低,0為低電平,1為高電平。

實驗總結

所有的實驗中最難得還是這個家同等的實驗。在做交通燈的實驗時我們遇到了很大的問題,不管我們怎么連線就是不能點亮燈或者點亮了等也不能實現要求,就是燈一直亮而不閃。即使使用萬用表也很難找到問題的所在,最后還是通過退隊之間的討論以及在別的同學的幫助下。
四、8253方波實驗4.1實驗要求

一、預習要求

1.熟悉51單片機的結構及編程方法

2.按照要求畫出流程圖及程序

二、實驗目的

了解8253的內部結構、工作原理;了解8253與單片機的接口邏輯;熟悉8253的控制寄存器和初始化編程方法,熟悉8253的6種工作模式。

三、實驗內容

1、設計接口電路,編寫程序:使用8253的計數器0和計數器1實現對輸入時鐘頻率的兩級分頻,得到一個周期為1秒的方波,用此方波控制蜂鳴器,發出報警信號,也可以將輸入腳接到邏輯筆上來檢驗程序是否正確。

2、連接線路,驗證8253的功能,熟悉它的使用方法。

4.2實驗過程
1、8253引腳圖


2、8253工作原理
 8253中各通道可有6種可供選擇的工作方式, 以完成定時、計數或脈沖發生器等多種功能。8253工作方式如下:

(1)工作方式0:稱為計數結束中斷方式,當任一通道被定義為工作方式0時, OUTi輸出為低電平;若門控信號GATE為高電平,當CPU利用輸出指令向該通道寫入計數值WR#有效時,OUTi仍保持低電平,然后計數器開始減“1”計數, 直到計數值為“0”,此刻OUTi將輸出由低電平向高電平跳變,可用它向CPU發出中斷請求,OUTi端輸出的高電平一直維持到下次再寫入計數值為止。

(2)工作方式1:稱作可編程單脈沖發生器,進入這種工作方式, CPU裝入計數值n后OUTi輸出高電平, 不管此時的GATE輸入是高電平還是低電平, 都不開始減“1”計數,必須等到GATE由低電平向高電平跳變形成一個上升沿后,計數過程才會開始。

(3)工作方式2:稱作速率波發生器,進入這種工作方式, OUTi輸出高電平,裝入計數值n后如果GATE為高電平,則立即開始計數,OUTi保持為高電平不變; 待計數值減到“1”和“0”之間, OUTi將輸出寬度為一個CLKi周期的負脈沖,計數值為“0”時,自動重新裝入計數初值n,實現循環計數。

(4)工作方式3:稱作方波發生器,任一通道工作在方式3, 只在計數值n為偶數,則可輸出重復周期為n、占空比為1:1的方波。進入工作方式3,OUTi輸出低電平, 裝入計數值后,OUTi立即跳變為高電平。

(5)工作方式4:稱作軟件觸發方式,進入工作方式4,OUTi輸出高電平。裝入計數值n后, 如果GATE為高電平,則立即開始減“1”計數,直到計數值減到“0”為止,OUTi輸出寬度為一個CLKi周期的負脈沖。

(6)工作方式5:稱為硬件觸發方式,進入工作方式5, OUTi輸出高電平, 硬件觸發信號由GATE端引入。開始時GATE應輸入為0, 裝入計數初值n后,減“1”計數并不工作,一定要等到硬件觸發信號由GATE端引入一個正階躍信號,減“1”計數才會開始,待計數值計到“0”, OUTi將輸出負脈沖,其寬度固定為一個CLKi周期,表示定時時間到或計數次數到。

(7)工作方式6:⑴直接讀計數器:輸出鎖存器在非鎖存狀態會跟隨計數器計數的變化而變化,直接讀計數器是從鎖存器得到計數器的當前值。⑵先鎖存再讀取:①通過方式選擇控制字對指定通道(SC1、SC0)的計數值鎖入鎖存器(RL1RL0=00), 鎖存器一旦鎖存了當前計數值,就不再隨計數器變化直到被讀取。②讀計數器通道(有鎖存器)。

3、主程序流程圖

4、中斷程序流程圖

5、8253方波仿真圖

思考題

1、8253還有其它五種工作方式,其它工作模式下,硬件如何設計?程序如何編寫?
答:(1)計數初值何時起作用:計數初值寫入計數初值寄存器(CR)后,要經過一個CLK輸入后,計數執行部件(CE)才開始計數。
(2)門控信號的影響:門控信號是計數允許信號。高電平允許,即GATE=1,允許對CLK計數。上升沿允許這種情況需使用計數器內部的一個邊沿觸發器。只要當初邊沿觸發器置1后,計數器才對CLK計數。GATE上升沿使邊沿觸發器置1,GATE下降沿使邊沿觸發器自動清0.模式0,2,3,4,高電平允許,模式1、5,上升沿允許。
(3)OUT信號的狀態:寫入控制字后,OUT的狀態。計數過程中,OUT的狀態。計數終了,OUT的狀態。
(4)技術操作是否可以重復,或稱計數初值是否可以自動裝入:a.不可重復b自動重復c條件重復。
(5)計數器的工作模式:計數器在CLK的下降沿使計數值減1,計數值減至0時,“計數到”。寫入初值0時,代表最大初值65536。模式0:計數結束產生中斷。模式1:可重復觸發的單穩態觸發器。模式2:分頻器模式。3:方波發生器模式4:軟件觸發的選通信號發生器。模式5:硬件觸發的選通信號發生器。

實驗總結

在該實驗中我們要注意對8253的使用,掌握8253的使用方法,明白其工作原理,了解8253芯片的各個引腳。在編寫程序時,要注意8253的初始化,注意不要把初始化部分寫到循環程序中去了,否則就會在上電后一直對8253進行初始化操作,不能實現功能。還有在編寫延遲程序時要留夠延遲時間,否則也會不能正確實現功能。
五、繼電器控制實驗5.1實驗要求

一、預習要求

1.了解繼電器/光偶器件的原理及應用

2.認真預習本節實驗內容,嘗試自行編寫程序。

二、實驗目的

1、掌握使用繼電器控制外設的基本方法和編程。

2、掌握光耦的工作原理,熟悉它的使用方法。

三、實驗內容

1、預備知識
自動化控制設備中,存在一個電子與電氣電路的互連問題,一方面,電子電路要控制電氣電路的執行元件,如:電動機、電磁鐵、電燈等;一方面又要為電子電路提供良好的電隔離,以保護電子電路和人身安全,減少干擾源。繼電器就起這個橋梁作用。
2、實驗過程:設計接口電路,通過繼電器控制直流電機轉動、停止。

四、實驗原理

參考電路原理圖如下:

(繼電器控制原理圖)

五、實驗設備

實驗室電腦,集成軟件及STAR ES598實驗儀

六、實驗注意事項

1.注意在集成環境下程序調試的方法

    2.注意保護實驗箱

七、實驗步驟

繼電器控制

1、設計接口電路,分析工作原理。

2、編寫并運行程序,利用撥動開關控制直流電機轉動、停止。

思考題

1.列寫出所編程序及流程圖并做出注釋

           CLR    P2.7                                            ;使譯碼器無效                                                                     
JIDIAN_1:  SETB P2.6
                               CJNE   R4,#05H,JIDIAN_2              ;按鍵按下后立即跳出
           JB     P3.1,JIDIAN_1                ;JB位條件轉移
MM:                               CLR    P2.6
                               JNB     P3.1,MM
                               JB              P3.1,  JIDIAN_1
JIDIAN_2:
                               RET
                END
實驗總結
  第五次試驗我只做了繼電器的實驗,主要通過繼電器來控制電機。由于器材的限制沒有電機,我用一個發光二極管來代替。當開關合上導通時,二極管發光,開關斷開時二極管熄滅,這樣能模擬電動機的工作狀態。實驗焊接時需要非常小心,因為繼電器的引腳有6個,不是都需要焊接,有幾個引腳的功能是一樣的,剛還是由于沒有注意到這點,實驗做不出來,后來在別人的指導下,找出錯誤,完成本次試驗。

單片機設計總結:
經過單片機的五次實驗讓我們受益匪淺.此次實驗是通過團隊合作進行軟件與硬件的設計相結合。這次試驗即考察了我們的焊接水平與編程能力,又考察了我們的團隊合作,對于我們電子自動化的學生而言焊接是不成問題,也很順利;可到了編程就出現了很大的問題。本來還以為實驗會很簡單,但等到實際操作起來才知道它的復雜性,首先我們不知道怎么去理解實驗題目,怎樣更好的設計程序而達到實驗的要求。其次,隊員的每個人的想法都不同,導致實驗并沒有想象中的那么順利。最終我們通過討論明確了分工以及向別的小組同學咨詢,解決了這些問題。單片機技術已經很早結束了,所以后期很多專業知識已經不是很記得.不過經過我們一步步的努力,最終花費的時間與精力終于沒有白費,效果漸漸地出現了,終于一步步地完成了本次設計實驗。
總而言之,片機設計對于我們有很大的幫助,我們從中受益匪淺。最后我們要感謝儲忠老師的辛勤教導,還有老師對我們的試驗安排,讓我們有足夠的時間可以做好實驗。

  1.     ORG  0000H
  2.       AJMP START
  3.                 ORG  0003H
  4.       LJMP INTT0
  5.                 ORG  000BH
  6.       LJMP T0INT
  7.                 ;ORG  001BH
  8.                 ;LJMP T1INT
  9.                 ORG  0400H
  10. START:
  11.        CLR  P2.7
  12.                  SETB P2.2            
  13.                  SETB P2.3
  14.                  NOP
  15.                  NOP
  16.        MOV P0,#0
  17.                  SETB IT0                                          ;下降沿中斷
  18.                  SETB EX0                                          ;開中斷0
  19.                  SETB EA                               ;開總中斷
  20. ;---------------------------------------------------------------
  21.               /*   SETB  P2.7
  22.                  MOV   P0,#0F0H
  23.                  CLR   P2.7
  24.                  MOV   P0,#00H  */
  25. ;---------------------------------------------------------------                 
  26.                                MOV   R4,#00H
  27. MAIN:
  28.                  CJNE  R4,#01H,PROC_1
  29.        LCALL LED
  30. PROC_1:CJNE  R4,#02H,PROC_2
  31.        LCALL LS138
  32. PROC_2:CJNE  R4,#03H,PROC_3
  33.        LCALL IC_8255A               
  34. PROC_3:CJNE  R4,#04H,PROC_4
  35.        LCALL IC_8253
  36.                  CLR   ET0
  37. PROC_4:CJNE  R4,#05H,MAIN
  38.        LCALL JIDIAN                     
  39.                  AJMP MAIN
  40. DELAY:   ;誤差 0us
  41.     MOV R7,#01H
  42. DL1:
  43.     MOV R6,#8EH
  44. DL0:
  45.     MOV R5,#02H
  46.     DJNZ R5,$
  47.     DJNZ R6,DL0
  48.     DJNZ R7,DL1
  49.     RET
  50. ;按鍵中斷
  51. INTT0:   //LCALL  DELAYJ
  52.                    MOV    A,P3
  53.                    ANL    A,#04H                            ;anl位與
  54.                    CJNE   A,#00H,END_INT1
  55.                             CLR    P2.0                                                                                   
  56.          CLR    P2.1
  57.          SETB   P2.2                                                                                    ;8255復位
  58.                    CLR    P2.2
  59.                    CLR    P2.3
  60.                    INC    R4
  61.                             CJNE   R4,#06H,END_INT1                                          ;實驗項目計數,到達第5個實驗時清零
  62.                             MOV    R4,#00H            
  63. END_INT1:
  64.          RETI
  65. ;功能:使用P1口控制8個LED流水燈
  66. ;端口:P1.0~P1.7\P2.0\P2.1
  67. LED:                                                                                      ;模塊1工作
  68.       MOV   A,#0FFH
  69.       MOV   P1,A
  70.       MOV   DPTR,#TAB  ;查表
  71.       MOV   R0,#00H
  72. LED_1:MOV   A,R0
  73.       MOVC  A,@A+DPTR
  74.       MOV   P1,A
  75.                 CJNE  R4,#01H,LED_2                                                          ;按鍵按下后立即跳出
  76.                 LCALL DELAY1
  77.                 CJNE  R4,#01H,LED_2                                                          ;按鍵按下后立即跳出
  78.                 MOV   R5,#10
  79.                 INC   R0
  80.                 CJNE  R0,#29,LED_1
  81.                 MOV   R0,#00H
  82.                 AJMP  LED_1
  83. LED_2:
  84.                 RET
  85. ;查表
  86. TAB: DB              0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH
  87.      DB              7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH
  88.               DB              7EH,0BDH,0DBH,0E7H,0DBH,0BDH
  89.               DB              3CH,99H,0C3H,99H,3CH
  90.               DB 0AAH,55H,0AAH,99H
  91. ;閃爍延時函數
  92. ;0.5S
  93. DELAY1:MOV  R5,#17H
  94.    D1: MOV  R6,#98H
  95.    D2: MOV  R7,#46H
  96.        DJNZ R7,$
  97.                  CJNE R4,#01H,DELAY11                                                          ;按鍵按下后立即跳出
  98.        DJNZ R6,D2
  99.                  CJNE R4,#01H,DELAY11                                                          ;按鍵按下后立即跳出
  100.        DJNZ R5,D1
  101. DELAY11:               
  102.        RET
  103. ;功能:使用74LS138控制8個LED流水燈,循環點亮,瞬間只有一個燈亮
  104. LS138:
  105.                             MOV    P1,#0FFH                              ;使P1口輸出高電平,防止P1口擾亂后面的操作                                         
  106.        // SETB  P2.7
  107.                  // CLR   P2.2
  108.                  // CLR   P2.3
  109.                   MOV   A,#0xf0              ;138使能
  110. LS138_1:MOV   P2,A
  111.                   CJNE  R4,#02H,LS138_3                                                          ;按鍵按下后立即跳出  
  112.                   LCALL DELAY2
  113.                             CJNE  R4,#02H,LS138_3                                                          ;按鍵按下后立即跳出
  114.                   INC   A
  115.                   CJNE  A,#0xf8,LS138_1
  116. LS138_2:DEC   A
  117.         MOV   P2,A
  118.                   CJNE  R4,#02H,LS138_3                                                          ;按鍵按下后立即跳出
  119.                   MOV   R5,#13
  120.                   LCALL DELAY2
  121.                             CJNE  R4,#02H,LS138_3                                                          ;按鍵按下后立即跳出
  122.                   CJNE  A,#0xf0,LS138_2
  123.                   AJMP  LS138_1
  124. LS138_3:
  125.                   RET
  126. ;閃爍延時函數
  127. ;0.5S
  128. DELAY2: MOV   R5,#17H
  129.    D3:  MOV   R6,#98H
  130.    D4:  MOV   R7,#46H
  131.         DJNZ  R7,$
  132.                             CJNE  R4,#02H,DELAY22                                                          ;按鍵按下后立即跳出
  133.         DJNZ  R6,D4
  134.                             CJNE  R4,#02H,DELAY22                                                          ;按鍵按下后立即跳出
  135.         DJNZ  R5,D3
  136. DELAY22:
  137.                   RET
  138. ;8255PA、PB、PC及控制字端口地址
  139. ;ADD_8255PA  EQU  H                                                                       
  140. ;ADD_8255PB  EQU  H                                                                                                                                
  141. ;ADD_8255PC  EQU  H
  142. ;ADD_8255CON EQU  0F3FFH
  143. IC_8255A:
  144.               CLR P2.7
  145.                 MOV DPTR,#0F3FFH
  146.     MOV A,#80H
  147.     MOVX @DPTR,A
  148.               CJNE   R4,#03H,IC_8255_2   ;按鍵按下后立即跳出
  149. S1:  MOV A,#00110011B
  150.      MOV DPTR,#0F0FFH
  151.      MOVX @DPTR,A        ;東西紅燈亮,南北綠燈亮   
  152.      CALL DELAY5S        ;5秒延時
  153. S2: ;南北黃燈閃爍三次
  154.               ;黃燈第一次閃爍
  155.               CJNE   R4,#03H,IC_8255_2   ;按鍵按下后立即跳出
  156.               MOV A,#00110101B   ; 東西紅燈亮,南北黃燈亮     
  157.               MOV DPTR,#0F0FFH
  158.      MOVX @DPTR,A
  159.      CALL DELAY1S        ;延時0.5秒
  160.      MOV A,#00110111B   ; 東西紅燈亮,南北黃燈滅
  161.      MOV DPTR,#0F0FFH
  162.      MOVX @DPTR,A
  163.               CALL DELAY1S
  164.               ;黃燈第二次閃爍
  165.               MOV A,#00110101B     ; 東西紅燈亮,南北黃燈亮
  166.      MOV DPTR,#0F0FFH
  167.      MOVX @DPTR,A
  168.      CALL DELAY1S
  169.      MOV A,#00110111B     ; 東西紅燈亮,南北黃燈滅
  170.      MOV DPTR,#00FFH
  171.      MOVX @DPTR,A
  172.      CALL DELAY1S
  173.               ;黃燈第三次閃爍
  174.      MOV A,#00110101B     ;東西紅燈亮,南北黃燈亮
  175.      MOV DPTR,#0F0FFH
  176.      MOVX @DPTR,A
  177.      CALL DELAY1S
  178.      MOV A,#00110111B    ; 東西紅燈亮,南北黃燈滅
  179.      MOV DPTR,#0F0FFH
  180.      MOVX @DPTR,A
  181.      CALL DELAY1S
  182. S3: CJNE   R4,#03H,IC_8255_2   ;按鍵按下后立即跳出
  183.     MOV A,#00011110B    ; 東西綠燈亮,南北紅燈亮
  184.                 MOV DPTR,#0F0FFH
  185.                 MOVX @DPTR,A
  186.                 CALL DELAY5S     
  187. S4: ;東西黃燈閃爍三次
  188.               MOV A,#00101110B     ;東西黃燈亮,南北紅燈亮
  189.                 MOV DPTR,#0F0FFH
  190.                 MOVX @DPTR,A
  191.                 CALL DELAY1S
  192.                 MOV A,#00111110B    ; 東西黃燈滅,南北紅燈亮
  193.                 MOV DPTR,#0F0FFH
  194.                 MOVX @DPTR,A
  195.                 CALL DELAY1S
  196.                 MOV A,#00101110B     ;東西黃燈亮,南北紅燈亮
  197.                 MOV DPTR,#0F0FFH
  198.     MOVX @DPTR,A
  199.     CALL DELAY1S  
  200.     MOV A,#00111110B    ; 東西黃燈滅,南北紅燈亮
  201.                 MOV DPTR,#0F0FFH
  202.     MOVX @DPTR,A
  203.     CALL DELAY1S
  204.                 MOV A,#00101110B     ;東西黃燈亮,南北紅燈亮
  205.                 MOV DPTR,#0F0FFH
  206.     MOVX @DPTR,A
  207.     CALL DELAY1S
  208.     MOV A,#00111110B    ; 東西黃燈滅,南北紅燈亮
  209.                 MOV DPTR,#0F0FFH
  210.     MOVX @DPTR,A
  211.     CALL DELAY1S              
  212.               CJNE   R4,#03H,IC_8255_2
  213.               AJMP               S1                            ; 跳轉到狀態S1狀態,循環
  214. IC_8255_2:
  215.               MOV A,#00111111B    ; 熄滅所有的交通燈,退出8255實驗
  216.                 MOV DPTR,#0F0FFH
  217.     MOVX @DPTR,A                           
  218.     RET
  219. DELAY5S:MOV R7,#100         ; 延時5秒               
  220. L0:     MOV R6,#100
  221. L1:     MOV R5,#248
  222. L2:     DJNZ R5,L2
  223.      DJNZ R6,L1
  224.      DJNZ R7,L0
  225.         RET
  226. DELAY1S:MOV R5,#200         ; 延時0.5秒
  227. L3:     MOV R3,#248
  228. L4:    DJNZ R3,L4
  229.      DJNZ R5,L3
  230.      RET   
  231. ;8253T0、T1、T2及控制字端口地址
  232. ;ADD_8253T0  EQU  03FFH
  233. ;ADD_8253T1  EQU  07FFH
  234. ;ADD_8253T2  EQU  0BFFH
  235. ;ADD_8253CON EQU  0FFFH
  236. ;功能:8253模塊,主要是8253的初始化部分
  237. IC_8253:
  238.                                           CLR P2.7              ;使138無效
  239.                                             MOV DPTR,#0FFFH
  240.                                 MOV A,#00100101B ;計數器0,只讀/寫高字節方式2,bcd碼計數
  241.                                 MOVX @DPTR,A
  242.                             //              CJNE   R4,#04H,IC_8253_2              ;按鍵按下后立即跳出
  243.               ;              計數器0:100分頻
  244.                                           MOV DPTR,#03FFH
  245.                                           MOV A,#01H                 ;裝初值計數器0的高字節  ,
  246.                                           MOVX @DPTR,A            
  247.                                           MOV DPTR,#0FFFH
  248.                                           MOV A,#01010111B ;計數器1,只讀低字節,方式3,bcd計數
  249.                                           MOVX @DPTR,A
  250.                                           MOV DPTR,#07FFH
  251.                                           MOV A,#10H                                          ;計數器1:10分頻
  252.                                           MOVX @DPTR,A
  253.                                           MOV TMOD,#00H
  254.                                           MOV TH0,#0F0H            
  255.                                           MOV TL0,#0CH
  256.                                           SETB TR0              ;啟動T0
  257.                                           SETB ET0              ;開T0中斷
  258.                                           SETB EA
  259. IC_8253_1: CJNE   R4,#04H,IC_8253_2              ;按鍵按下后立即跳出
  260.            AJMP                IC_8253_1
  261. IC_8253_2:
  262.            RET
  263. T0INT:                            CPL              P3.0              ;取反                                                        ;1000HZ方波
  264.                                           MOV TH0,#0F0H            
  265.                                           MOV TL0,#0CH
  266.                                           RETI
  267. JIDIAN:   
  268.            CLR    P2.7                                            ;使譯碼器無效                                                                     
  269. JIDIAN_1:  SETB P2.6
  270.                                CJNE   R4,#05H,JIDIAN_2              ;按鍵按下后立即跳出
  271.            JB     P3.1,JIDIAN_1                ;JB位條件轉移
  272.                               
  273. MM:                               CLR    P2.6
  274.                                JNB     P3.1,MM
  275.                                JB              P3.1,  JIDIAN_1
  276. JIDIAN_2:
  277.                                RET
  278.                 END
復制代碼


實物圖:


總的仿真電路圖:


完整的Word格式文檔51黑下載地址:

鄒世陽的單片機課程設計.doc (1.69 MB, 下載次數: 21)


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本一区二区影视 | 亚洲国产精品一区二区第一页 | 国产精品久久久久久久7电影 | 精品久久久久久亚洲精品 | 91精品国产91久久久久久最新 | 午夜久久久久 | 国产一区二区视频在线观看 | 亚av在线 | 久久久爽爽爽美女图片 | 91爱爱·com | 成人片免费看 | 99re视频| 国产精品日韩欧美一区二区 | 亚洲男人天堂网 | 日韩欧美不卡 | 羞羞视频免费在线 | 91网站在线看 | 国产区一区二区三区 | 精品亚洲国产成av人片传媒 | 性高湖久久久久久久久3小时 | 一区二区三区欧美在线观看 | 日韩在线免费视频 | 一级视频在线免费观看 | 国产成人麻豆免费观看 | 亚洲性视频 | 91九色视频在线 | 久久久久国产精品午夜一区 | www国产成人免费观看视频,深夜成人网 | 婷婷综合激情 | 国产乱一区二区三区视频 | 日韩精品免费一区二区在线观看 | 久久这里只有精品首页 | 少妇一区在线观看 | 久久亚洲综合 | 日日夜夜精品 | 精品国产第一区二区三区 | 全部免费毛片在线播放网站 | 三级免费毛片 | 中文字幕日韩欧美一区二区三区 | 一区二区av | 日本韩国电影免费观看 |