1樓:匿名使用者
用aswfv程式邊下就好
2樓:匿名使用者
這個交通燈程式可供你參考.(已除錯通過的.)
org 0000h
ljmp main
org 0030h
main: mov p2,#00h ;數碼管全部顯示00
mov p1,#00h ;訊號燈全亮
lcall delay
mov p2,#0ffh
mov p1,#0ffh
lcall delay
jb p3.5,main ;啟動開關
start: lcall zht0 ;狀態0,東西綠燈,南北紅燈
lcall zht1 ;狀態1,東西黃燈,南北紅燈
lcall zht2 ;狀態2,東西紅燈,南北綠燈
lcall zht3 ;狀態3,東西紅燈,南北黃燈
ajmp start
**************執行狀態子程式**************
zht0: mov p1,#0f3h ;狀態0子程式東西亮綠燈25s
mov r4,#25 ;從25s倒計時至0
mov r3,#05
lcall dir
retzht1: mov p1,#0f5h ;狀態1子程式東西亮黃燈5s
mov r4,#5 ;從5s倒計時至0
mov r3,#25
lcall dir
retzht2: mov p1,#0deh ;狀態2子程式東西亮紅燈25s
mov r4,#25 ;從30s倒計時至5s
mov r3,#00h
lcall dir
retzht3: mov p1,#0eeh ;狀態3子程式東西亮紅燈5s
mov r4,#5 ;從5s倒計時至0
mov r3,#25
lcall dir
ret**************查表顯示子程式**************
dir: mov a,r3
mov dptr,#table
movc a,@a+dptr
mov p2,a
lcall delay
inc r3
djnz r4,dir
ret*****************1s延時程式*****************
delay: mov r5,#20
d1: mov r6,#100
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
rettable: db 30h,29h,28h,27h,26h,25h,24h,23h,22h,21h
db 20h,19h,18h,17h,16h,15h,14h,13h,12h,11h
db 10h,09h,08h,07h,06h,05h,04h,03h,02h,01hend
3樓:做而論道
這個題目的解答,發到你的郵箱。
微控制器控制數碼管為什麼顯示很暗,微控制器數碼管顯示 為什麼會乙個亮其他的都暗
可能是延時問題,以前也遇到過 延時時間太短,至少兩三毫秒 兩位的不需要接三極體。真正的這樣接的話,不串限流電阻,應該會燒數碼管的,估計這數碼管很差。延時0.2ms的都做過,顯示正常。加個上拉電阻。使用外部供電!微控制器控制數碼管為什麼顯示很暗 長期點亮就是 數碼管最亮 的時候。但動態顯示中做不到長期...
本人初學微控制器,求數碼管顯示1,1S後數碼管顯示2以此類推直到顯示6的C語言程序
include 52微控制器標頭檔案,一般不要改動,裡面包含特殊功能暫存器的定義 define uchar unsigned char 將unsigned char定義為uchar,簡化輸寫。提高程式設計速度 define uint unsigned int 將unsigned char定義為uin...
用51微控制器控制4位led數碼管,使其顯示出想要的數字,程式
1 建立數字與p口對應的陣列 2 位選顯示 數碼管是8段的吧,正好對應某個p口的8個位,要顯示某個陣列只需將相應的px x亮起來就可以了 這樣 1 首先把段碼端和片選端都設為輸出,也就是led和微控制器連的那幾個角 2 你先用延時來做吧,大致是這樣的 設乙個片選有效 把要顯示的內容放段碼中 延時15...