暑假微控制器學習之路之一

2021-08-21 21:01:31 字數 2985 閱讀 9670

7月20日,最後一門考試考完之後,在家休息兩天,修好電腦,就開始了計畫好的微控制器深入學習計畫。

鑑於本人小白有一定的基礎,因此並沒有從入門開始,而是從這學期的微控制器課程設計入手。當時因為時間問題,計畫的功能並沒有全部實現,只是簡單的實現了課程設計的最基本的要求。因此,我打算先將已經完成的從彙編換成c語言,然後再完成自己之前設計的功能。

一、設計內容

設計乙個交通燈控制系統,一般情況下正常顯示(數碼管顯示和發光二極體指示),有急救車到達時,兩個方向四個交通訊號燈全紅,以便讓急救車通過。急救車通過時的交通燈顯示情況由外部開關控制。夜間道路無車輛時,四個方向的交通燈黃燈閃爍。畫出硬體連線電路圖,說明各個控制訊號的作用。

二、工作原理

通過延時和外中斷控制交通燈的亮滅和工作狀態

三、電路圖

四、源程式

org 0000h

ljmp main

;org 0003h

;ljmp allred

org 000bh

ljmp tosub

org 0200h

second data 30h

rgy data 37h

time data 38h

dtime1 data 39h

dtime2 data 3ah

dtime3 data 3bh

main:

mov tmod,#01h

mov th0,#3ch

mov tl0,#0b0h;賦上定時50ms的初值;

movr5,#25

movr4,#20

;mov p0,#0ffh

mov second,#25

setb ea

setb et0

setb tr0

mov p1,#10000100b

mov dptr,#tab

;allred:mov p1,#10010000;急救車模式,全紅

disp:

mov a,second

mov b,#10

div ab

mov20h,a

mov21h,b

mov a,20h

movc a,@a+dptr

mov p2,a ;送出十位數字

clr p0.3

lcall delay

setb p0.3

mov a,21h

movc a,@a+dptr

mov p2,a ;個位

clr p0.2

lcall delay

setb p0.2

jb p3.2,ni

sjmp alarm

ni: jb p3.7,disp

sjmp night

sjmp disp

alarm:

clr tr0

mov rgy,p1

mov p1,#10010000b;急救車模式,全紅

movr6,#0ffh

loop: lcall delay

djnz r6,loop

setb tr0

mov p1,rgy

sjmp disp

tosub:

mov th0,#3ch

mov tl0,#0b0h

djnz r4,rei

movr4,#20

djnz second,rei

cjne r5,#25,cwe

movr5,#5

mov second,#5

jnb p1.2,we

clr p1.4

setb p1.3

clr p1.2

reti

we:clr p1.7

setb p1.6

clr p1.5

reti

cwe:

movr5,#25

mov second,#25

jnb p1.3,we2

mov p1,#00110000b

reti

we2:

mov p1,#10000100b

reti

rei:

reti

night:

mov time,#4;夜間模式

loopl:

mov p1,#01001000b

lcall delay1

mov p1,#00h

lcall delay1

djnz time,loopl

ljmp main

delay:

movr7,#100

djnz r7,$

reti

delay1:

mov dtime1,#6

loop3:

mov dtime2,#200

loop1:

mov dtime3,#200

loop2: djnz dtime3,loop2

djnz dtime2,loop1

djnz dtime1,loop3

reti

tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

end

以上是我之前的完成的課程設計的電路圖和源程式

接下來是我之前設計的功能:

以上!下一期就上部分改造後的**。

51微控制器學習之路(2)

指令編碼格式及分類 一條指令表示計算機所完成的某種操作。它通常由操作碼和運算元兩部分組成。例如 mov a,r1 本系統有下列三種指令編碼格式 1 單位元組指令 49條 2 雙位元組指令 46條 3 三位元組指令 16條 例如 一位元組指令空操作nop的編碼格式為 兩位元組指令mov a,40h的編...

微控制器入門學習二 51微控制器學習一

本篇將對51微控制器一些概念進行一下記錄,本次針對 手把手教你學51微控制器 的前7章的硬體知識做乙個總結,軟體程式設計就不記錄了,可以看教程,裡面講解的很詳細。微控制器最小系統的三要素 電源 晶振 復位電路。最小系統是指用最少的原件組成微控制器可以工作的系統 下圖中晶振旁邊的20pf的電容的作用是...

微控制器學習

微控制器學習 宗旨 技術的學習是有限的,分享的精神是無限的。學習使用微控制器就是理解微控制器硬體結構,在彙編或c語言中學會各種功能的初始化設定,以及實現各種功能的程式編制。第一步 數字 i o的使用 使用按鈕輸入訊號,發光二極體顯示輸出電平,就可以學習引腳的數字i o功能,在按下某個按鈕後,某發光二...