如何編寫一段程式,微控制器是51系列的,要求編寫LED燈有三種以上的閃爍方式,燈閃爍時間0 5S

時間 2021-11-04 16:41:26

1樓:匿名使用者

多看看書吧》

51微控制器用c語言寫就好了。。。

編譯工具 keil

2樓:匿名使用者

給你最簡單的,看得清楚易懂的,p1口接8位led,有多種閃爍方式。p2(掃描端在p2口,p3為位選端,注意看**)口接上兩位數碼管的話還可以顯示00-99的數字:

zhucx: mov a,#11111110bmov p1,a

acall yanshi

mov a,#11111100b

mov p1,a

acall yanshi

mov a,#11111000b

mov p1,a

acall yanshi

mov a,#11110000b

mov p1,a

acall yanshi

mov a,#11100000b

mov p1,a

acall yanshi

mov a,#11000000b

mov p1,a

acall yanshi

mov a,#10000000b

mov p1,a

acall yanshi

mov a,#00000000b

mov p1,a

acall yanshi

mov a,#10000000b

mov p1,a

acall yanshi

mov a,#11000000b

mov p1,a

acall yanshi

mov a,#11100000b

mov p1,a

acall yanshi

mov a,#11110000b

mov p1,a

acall yanshi

mov a,#11111000b

mov p1,a

acall yanshi

mov a,#11111100b

mov p1,a

acall yanshi

mov a,#11111110b

mov p1,a

acall yanshi

mov a,#11111111b

mov p1,a

acall yanshi

mov r4,#5

d5 : mov a,#01111110bmov p1,a

acall yanshi

mov a,#10111101b

mov p1,a

acall yanshi

mov a,#11011011b

mov p1,a

acall yanshi

mov a,#11100111b

mov p1,a

acall yanshi

mov a,#11011011b

mov p1,a

acall yanshi

mov a,#10111101b

mov p1,a

acall yanshi

mov a,#01111110b

mov p1,a

acall yanshi

djnz r4,d5

acall yanshi

mov r0,#3

loop: mov a,#01010101bmov p1,a

acall yanshi

mov a,#10101010b

mov p1,a

acall yanshi

djnz r0,loop

mov a,#11111110b

mov p1,a

acall yanshi

mov a,#11111101b

mov p1,a

acall yanshi

mov a,#11111011b

mov p1,a

acall yanshi

mov a,#11110111b

mov p1,a

acall yanshi

mov a,#11101111b

mov p1,a

acall yanshi

mov a,#11011111b

mov p1,a

acall yanshi

mov a,#10111111b

mov p1,a

acall yanshi

mov a,#01111111b

mov p1,a

acall yanshi

mov a,#10111111b

mov p1,a

acall yanshi

mov a,#11011111b

mov p1,a

acall yanshi

mov a,#11101111b

mov p1,a

acall yanshi

mov a,#11110111b

mov p1,a

acall yanshi

mov a,#11111011b

mov p1,a

acall yanshi

mov a,#11111101b

mov p1,a

acall yanshi

mov a,#11111110b

mov p1,a

acall yanshi

start:mov r0,#0

mov dptr,#table

loop1:acall display

inc r0

cjne r0,#100,loop1

jmp zhucx

display:mov a,r0

mov b,#10

div ab

mov r1,a

mov r2,b

mov r3,#50

loop2:mov a,r2

acall chang

clr p3.6

acall dly10ms

setb p3.6

setb p3.5

mov a,r1

acall chang

clr p3.7

acall dly10ms

setb p3.7

setb p3.4

djnz r3,loop2

retchang:movc a,@a+dptrmov p2,a

retdly10ms:mov r6,#10d1: mov r7,#200

djnz r7,$

djnz r6,d1

retyanshi :mov r5,#30d3:mov r6,#50

d4:mov r7,#50

djnz r7,$

djnz r6,d4

djnz r5,d3

rettable:db 0c0h,0f9h,0a4h,0b0hdb 99h,92h,82h,0f8h

db 80h,90h,88h,83h

db 0c6h,0a1h,86h,8ehend

3樓:

你是電子科大成都學院的吧...?

微控制器mcs-51彙編問題。p1 口接8個led燈,程式執行後,8個led燈閃爍,閃爍頻率為20hz。急急急!!!!!!

4樓:尚雲社

根據你的要求寫了一個,記得選擇滿意答案哦

;fosc = 12mhz

;sysclk = 1us

flag bit 00h

cnt equ 25000 ;計時器初始值,頻率 = 20,週期 = 50ms,一半為25ms

org 00h

jmp main

org 0003h

jmp int0_isr

org 000bh

t0_isr:

mov tl0,#(65536 - cnt) mod 256mov th0,#(65536 - cnt) / 256jb flag,t0_end

xrl p1,#0ffh

t0_end:

reti

int0_isr:

cpl flag

reti

main:

mov sp,#50h

clr flag

mov tmod,#01h

mov tl0,#(65536 - cnt) mod 256mov th0,#(65536 - cnt) / 256setb tr0

setb it0 ;下降沿觸發

mov ie,#83h

mov p1,#00h

jmp $end

利用c51微控制器控制8個led燈同時閃爍的程式

5樓:匿名使用者

#include

#define uchar unsigned charvoid delay(uchar a)

main()}

51微控制器如何實現多執行緒多工 有哪些程式可以在「後臺」自己執行

51微控制器可以實現執行時間片形式的多執行緒任務,具體做法是 1 弄個表兩位元組一個單位存一下各個任務的執行地址。2 在中斷級別較高的t0定時器中斷中,把中斷壓進堆疊的那兩個位元組儲存到表裡。3 用表裡別的執行緒的地址重壓進堆疊。4 從中斷裡退出就可以切到另一個執行緒繼續跑了。我記得這個在早先200...

51微控制器連線12位七段數碼管,如何驅動(用三極體)

注意要加延時,以匹配段選。否則會出現錯位的現象。 我覺得用三極體驅動可能使電路變得複雜,除錯起來也比較麻煩,還是考慮一下max7219 max7221,一塊晶片就可以驅動8位數碼管了。還可以級連。驅動程式寫起來也很簡單。 邵獻 我給你個4led的,懶得畫圖了。要增加管子的數量,把hc138換成hc1...

需要程式用51微控制器控制led每一秒鐘閃爍一次

生活如歌 include include define uchar unsigned char define uint unsigned intsbit led p1 3 sbit rs p1 0 sbit rw p1 1 sbit e p2 5 sbit dula p2 6 sbit wela p...