導航:首頁 > 操作系統 > 單片機CDH

單片機CDH

發布時間:2022-08-23 08:13:21

A. 用單片機做交通燈,這么做

基於單片機的交通燈設計
時間:2010-12-08 21:43:12 來源: 作者:
一、 系統功能要求:
1. 設計任務在一十字路口設置交通燈,並用單片機對其進行合理的控制。
時間方向 控制要求
白天 東西 綠燈 黃燈 紅燈 南北 紅燈 綠燈 黃燈
晚上 東西 黃燈 南北 紅燈
2.總體設計方案現在流行的一種設計為兩主幹線相交的十字路。本設計採用一主幹道(南北方向),一從幹道(東西方向)的路口,即主幹道的通行時間為從幹道的2倍。在正常情況下,兩幹道的交通燈按圖1進行轉換,並以倒計數的方式將剩餘時間顯示在每個幹道對應的兩位LED上;另發揮部分為當出現緊急情況時,路口的交通燈全為紅燈,緊急情況解除時,恢復到原來的狀態。
二、 總體設計方案提示:
1.假設一個十字路口為東西南北走向。初始狀態0為東西紅燈,南北紅燈。然後轉狀態1東西綠燈通車,南北紅燈。過一段時間轉狀態。
2.東西綠燈滅,黃燈閃爍幾次,南北仍然紅燈。再轉狀態。
3.南北綠燈通車,東西紅燈。過一段時間轉狀態。
4.南北綠燈滅,閃幾次黃燈,延時幾秒,東西仍然紅燈。最後循環至狀態1。
三.硬體設計
電路原理圖如下:

四、軟體設計
1、 流程圖

2、程序設計
ORG 0000H
MOV P0,#00H ;確保P0為低電位
lJMP MAIN0
ORG 0030H
MAIN0: MOV 30H,#08H
MOV R6,#00H
MOV R7,#00H
MOV DPTR,#TABLE ;取數碼管的解碼
MOV TMOD,#01H ;設計定時方式及時間
MOV TL0,#0CDH
MOV TH0,#0BH
SETB TR0
MOV IE,#00H
MAIN: MOV P1,#0F3H ;南北綠燈,東西紅燈
MOV R6,#1EH ;紅燈30s倒計時
MOV R7,#19H ;綠燈25s倒計時
MAIN1:CALL DELAY ;1S延時子程序
JB P0.1,REL1 ;判斷是否有東西方向按鈕按下
CJNE R7,#00H,MAIN1 ;判斷綠燈25s是否倒計完
MOV P1,#0F5H ;南北黃燈,東西紅燈
MAIN2:CALL DELAY
MOV R7,#00H ;紅燈繼續倒計時,黃燈閃爍,保持0s
CPL P1.1 ;黃燈閃爍
CJNE R6,#00H,MAIN2 ;判斷紅燈是否倒計時完
MOV P1,#0DEH ;南北紅燈,東西綠燈
MOV R7,#1EH
MOV R6,#19H
MAIN3:CALL DELAY
JB P0.0,REL2
CJNE R6,#00H,MAIN3
MOV P1,#0EEH
MAIN4:CALL DELAY
MOV R6,#00H
CPL P1.4
CJNE R7,#00H,MAIN4
JMP MAIN
REL1:MOV P1,#0F5H ;東西方向按鈕按下,南北方向強制由綠燈變成黃燈警告
MOV R6,#05H
MOV R7,#00H
JMP MAIN2
REL2:MOV P1,#0EEH ;南北方向按鈕按下,東西方向強制由綠燈變成黃燈警告
MOV R7,#05H
MOV R6,#00H
JMP MAIN4
;1s延時子程序
DELAY:MOV A,R6 ;進行南北方向倒計時時間的十進制調整
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR ;找尋相應的數碼管代碼
MOV P2,#01H
MOV P3,A ;輸出個位
MOV R4,#4 ;降低動態顯示頻率
LOOP2:MOV R3,#125
LOOP3:DJNZ R3,LOOP3
DJNZ R4,LOOP2
MOV A,B
MOVC A,@A+DPTR
MOV P2,#02H ;輸出十位
MOV P3,A
MOV R4,#4
LOOP4:MOV R3,#125
LOOP5:DJNZ R3,LOOP5
DJNZ R4,LOOP4
MOV A,R7 ;進行東西方向倒計時時間的十進制調整
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV P2,#04H
MOV P3,A
MOV R4,#4
LOOP6:MOV R3,#125
LOOP7:DJNZ R3,LOOP7
DJNZ R4,LOOP6
MOV A,B
MOVC A,@A+DPTR
MOV P2,#08H
MOV P3,A
MOV R4,#4
LOOP8:MOV R3,#125
LOOP9:DJNZ R3,LOOP9
DJNZ R4,LOOP8
JBC TF0,LOOP ;判斷是否計滿125ms
AJMP DELAY
LOOP:MOV TL0,#0CDH ;計滿125ms重新給定時器賦值
MOV TH0,#0BH
MOV A,30H
DEC A
MOV 30H,A
JNZ DELAY ;判斷是否計滿8次125ms,即1s
DEC R6 ;計滿1s,東西倒計時減1,南北倒計時減1
DEC R7
MOV 30H,#08H ;重新1s次數,重新計時
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;相應數值的數碼管代碼
DB 92H,82H,0F8H,80H,90H
END

B. 單片機裡面CPU讀寫存儲器的步驟過程

1)存儲器的讀操作。例如,若要將存儲器40H中的內容50H讀出,其過程如下:

①CPU將地址碼40H送到地址匯流排上,經存儲器地址解碼器選通地址為40H的存儲單元:
②CPU發出「瀆」信號,存儲器讀/寫控制開關將數據傳輸方向撥向「讀」;

③存儲器將地址為40H的存儲單元中的內容50H送到數據匯流排上;

④CPU將數據匯流排上的數據50H讀人指定的某一寄存器。
對存儲單元的讀操作,不會破壞其原來的內容。相當於復制。

2)存儲器的寫操作。例如,若要將數據ABH寫入存儲器地址為CDH的存儲單元中,其過程如下: 內容來自單片機之家www.dpj100.com
①CPU將地址碼CDH送到地址匯流排上,經存儲器地址解碼器選通地址為CDH的存儲單元;
②CPU將數據ABH送到數據匯流排上;

③CPU發出「寫」信號,存儲器讀/寫控制開關將數據傳送方向撥向「寫」;
④存儲器將數據匯流排上的數據ABH送人已被選中的地址為CDH的存儲單元中。

C. 寫出10和51單片機的專業寄存器名字。

不知道什麼是10單片機,也沒聽過專業寄存器

下面是52的特殊功能寄存器的地址、符號、和初始值
FFH
F0H B 00000000
E0H ACC 00000000
D0H PSW 00000000
CDH TH2 00000000
CCH TL2 00000000
CBH RCAP2H 00000000
CAH RCAP2L 00000000
C9H T2MOD xxxxxx00
C8H T2CON 00000000
B8H IP xx000000
B0H P3 11111111
A8H IE 0x000000
A0H P2 11111111
99H SBUF 不定
98H SCON 00000000
90H P1 11111111
8DH TH1 00000000
8CH TH0 00000000
8BH TL1 00000000
8AH TL0 00000000
89H TMOD 00000000
88H TCON 00000000
87H PCON 0xxx0000
83H DPH 00000000
82H DPL 00000000
81H SP 00000111
80H P0 11111111

D. 單片機標識符的規則

1.bit和sbit都是C51擴展的變數類型。 bit和int char之類的差不多,只不過char=8位, bit=1位而已。都是變數,編譯器在編譯過程中分配地址。除非你指定,否則這個地址是隨機的。這個地址是整個可定址空間,RAM+FLASH+擴展空間。bit只有0和1兩種值,意義有點像Windows下VC中的BOOL。 sbit是對應可位定址空間的一個位,可位定址區:20H~2FH。一旦用了sbi xxx = REGE^6這樣的定義,這個sbit量就確定地址了。sbit大部分是用在寄存器中的,方便對寄存器的某位進行操作的。
2.bit位標量 bit位標量是C51編譯器的一種擴充數據類型,利用它可定義一個位標量,但不能定義位指針,也不能定義位數組。它的值是一個二進制位,不是0就是1,類似一些高級語言中的Boolean類型中的True和False。
3.sfr特殊功能寄存器 sfr也是一種擴充數據類型,點用一個內存單元,值域為0~255。利用它可以訪問51單片機內部的所有特殊功能寄存器。如用sfr P1 = 0x90這一句定P1為P1埠在片內的寄存器,在後面的語句中我們用以用P1 = 255(對P1埠的所有引腳置高電平)之類的語句來操作特殊功能寄存器。 sfr P1 = 0x90; //定義P1 I/O 口,其地址90H sfr 關鍵定後面是一個要定義的名字,可任意選取,但要符合標識符的命名規則,名字最好有一定的含義如P1 口可以用P1 為名,這樣程序會變的好讀好多.等號後面必須是常數,不允許有帶運算符的表達式,而且該常數必須在特殊功能寄存器的地址范圍之內(80H-FFH),具體可查看附錄中的相關表. sfr 是定義8 位的特殊功能寄存器而sfr16 則是用來定義16 位特殊功能寄存器, 如8052 的T2 定時器,可以定義為: sfr16 T2 = 0xCC; //這里定義8052 定時器2,地址為T2L=CCH,T2H=CDH

E. 單片機存儲器的程序存儲器

MCS-51中,程序存儲器通過16位程序計數器(PC)定址,具有64KB定址能力,也即可以在64KB的地址空間任意定址。其中,具有4KB片內程序存儲器空間,地址為000H-0FFFH(注:8031無片內程序存儲器);片外程序存儲器空間最大可擴展到64KB,地址為0000H-FFFFH,片內、外統一編址。
1、程序存儲器片內與片外地址
由於片內、外統一編址,所以片內4KB存儲空間地址000H-0FFFH與片外存儲器地址000H-0FFFH發生沖突。但是,CPU是訪問片內存儲器還是訪問片外存儲器,可由引腳上所接的電平來確定。
1)當EA引腳接高電平時,若程序計數器(PC)值超出片內存儲空間,則自動轉向片外程序存儲器空間執行程序;
2)當EA引腳接低電平時,單片機只能執行片外程序存儲器的程序。
另外,因為8031沒有片內程序存儲器,所以就將EA引腳固定接低電平,通過外部擴展程序存儲器來存放程序;而對其它MCS-51,若沒有片外程序存儲器,那應將引腳固定接高電平。通過EA引腳所接電平不同,解決了程序存儲器中片內、片外地址沖突問題。
2、程序存儲器中的特殊單元
MCS-51程序存儲器中,有6個存儲單元具有特殊用途。
0000H單元為系統啟動地址。MCS-51單片機啟動復位後,程序計數器(PC)的內容為0000H,所以系統將從0000H單元取指令,並開始執行程序。程序設計時一般在該地址存放一條絕對跳轉指令,轉入主程序的入口地址。
另外0003H一002AH日被均勻地分成5段,用於5個中斷服務程序的入口。
其中0003H、000BH、0013H、O01BH、0023H為5個中斷源的中斷服務程序的入口地址。
中斷源的中斷服務程序的入口地址,即當中斷產生相應的中斷服務程序的起始地址被裝入程序計數器(PC),系統將從該地址取指令,並執行程序 。 8051有256個單元的內片數據存儲器,其中00H-7FH為片內隨機存儲器RAM,也叫低128B;80H-FFH為特殊功能寄存器,也叫高128B。低128B又分為工作寄存器區、位定址區、用戶RAM區。
1.工作寄存器區(00H-1FH)
在00H-1FH共32個單元,被均勻地分為四組工作寄存器堆:RB0、RB1、RB2、RB3,每組寄存器堆包含8個工作寄存器,均以R0-R7來命名,這些寄存器被稱為通用寄存器。工作寄存器用於臨時存放8位信息。在使用時,由程序狀態字寄存器中的RS0、RS1來選擇工作寄存器堆。
2.位定址區(20H-2FH)
片內數據存儲器的20H-2FH存儲區為位定址區,既可作為一般單元按位元組定址,也可按位進行定址。位定址區有16個位元組,位地址為00H-7FH。
3.用戶RAM區(30H-7FH)
用戶RAM區主要用作數據緩沖區和堆棧。這個存儲區只能按位元組定址,用作存放數據及作為堆棧區。通常堆棧區被設置在這塊存儲區,由堆棧寄存器SP指定,CPU復位時SP=07H,使得堆棧實際上是從08H開始的,但08H-1FH屬於工作寄存器區 。 MCS-51單片機的特殊功能寄存器 符號 地址 功能介紹 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序狀態字 TH2* CDH 定時器/計數器2(高8位) TL2* CCH 定時器/計數器2(低8位) RLDH* CBH 外部輸入(P1.1)計數器/自動再裝入模式時初值寄存器高八位 RLDL* CAH 外部輸入(P1.1)計數器/自動再裝入模式時初值寄存器低八位 T2CON* C8H T2定時器/計數器控制寄存器 IP B8H 中斷優先順序控制寄存器 P3 B0H P3口鎖存器 IE A8H 中斷允許控制寄存器 P2 A0H P2口鎖存器 SBUF 99H 串列口鎖存器 SCON 98H 串列口控制寄存器 P1 90H P1口鎖存器 TH1 8DH 定時器/計數器1(高8位) TH0 8CH 定時器/計數器0(高8位) TL1 8BH 定時器/計數器1(低8位) TL0 8AH 定時器/計數器0(低8位) TMOD 89H T0、T1定時器/計數器方式控制寄存器 TCON 88H T0、T1定時器/計數器控制寄存器 DPH 83H 數據地址指針(高8位) DPL 82H 數據地址指針(低8位) SP 81H 堆棧指針 P0 80H P0口鎖存器 PCON 87H 電源控制寄存器

F. 初學單片機,書中有幾句句話不懂,請指教 讀取程序存儲器常數,表格中的數據時,通常採用"MOVC

常數存放的區域不同於變數,變數是放在隨機存儲器(運行內存)中的,這個用MOV,常數是在只讀存儲器裡面,這個用MOVC。因為這兩個存儲器地址名字基本是一樣的,比如說,他們都有02CDH這個地址,單片機想讀02CDH這個地址的數請問單片機怎麼才能知道,你作為程序作者,是想讓他讀隨機區?還是只讀區?這也就是有MOV、MOVC的原因。

G. 單片機小的編程,編了下不知道對不對!望大家指正謝謝!

修改了錯誤,增加了原始數據,如下所示。
ORG 0000H
SJMP MAIN
ORG 0050H
MAIN:

;01H 23H 45H 67H 89H 0ABH 0CDH 0EFH
MOV 30H, #01H
MOV 31H, #23H
MOV 32H, #45H
MOV 33H, #67H
MOV 34H, #89H
MOV 35H, #0ABH
MOV 36H, #0CDH
MOV 37H, #0EFH

MOV R2, #8
MOV R0, #30H ;是30,不是20
MOV R1, #40H ;是40, 不是30
MOV DPTR, #ASCTB
LOOP:
MOV A, @R0
ANL A, #0F0H
SWAP A
ACALL TRANS
MOV A, @R0
ANL A, #0FH ;是0F,不是F0
ACALL TRANS
INC R0
DJNZ R2, LOOP
SJMP $

TRANS:
MOVC A, @A+DPTR
MOV @R1, A
INC R1
RET

ASCTB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H

END

H. 單片機sfr和sbit有什麼區別

我是一名單片機工程師,對於什麼是sfr,下面的講解你參考一下。

.

sfr全稱為:specialfunctionregister(翻譯為:特殊功能寄存器)

.

要想明白什麼是sfr,需要先了解什麼是寄存器

寄存器是RAM和ROM的統稱。

.

如果你想學習更多單片機和程序的知識,可以看看我整理好的帖子

一天入門51單片機:網頁鏈接

關於尾聲

學單片機靠的是堅持,不能三天打魚兩天曬網,只要堅持就會看到希望。如果不堅持,一輩子(100年)都學不會,如果堅持,一個月後你就會感覺到單片機迷人的一面了。加油,祝你成功!

I. 單片機乘法指令

乘法指令當結果大於0FFH時,A就裝不下了,所以「溢出」了,大於部分裝入到B裡面。

閱讀全文

與單片機CDH相關的資料

熱點內容
對越自衛反擊戰電影大全集免費 瀏覽:565
一起看電影網站源碼 瀏覽:909
阿甘正傳阿甘的英文名 瀏覽:159
電影天名 瀏覽:626
弱視矯治系統源碼 瀏覽:899
金融市場基礎知識pdf 瀏覽:383
三沒降頭電影 瀏覽:586
黃色武俠小說txt下載 瀏覽:531
如何將伺服器轉移至阿里平台 瀏覽:744
哪個網站可以看島國片 瀏覽:648
代駕app如何導航到起點 瀏覽:667
機器人穿越外國電影 瀏覽:681
贏在龍頭主圖指標源碼 瀏覽:951
符號加在命令後面 瀏覽:271
沙漏驗機寶檢測安卓手機怎麼樣 瀏覽:369
非洲電影有哪些好看的 瀏覽:763
媒介學pdf 瀏覽:234
推薦一個在線觀看 瀏覽:471
單片機16進制編程圖 瀏覽:490
金剛2迅雷下載 瀏覽:275