用AT89C51微控制器實現四位數碼管顯示資料!!用c語言程式

時間 2021-09-01 18:44:15

1樓:匿名使用者

#include

#include

typedef unsigned char uchar;

typedef unsigned int uint;

uchar code table = ;//- 0xbfvoid delay(uchar t)

} void opertion ()

//p2 = 0x01

p0 = table[0];

delay(10);

}//顯示--12

for(b = 0;b<20;b++)

p2 = 0x02;

for(k = 0;k<2;k++)

}//顯示-123

for(c = 0;c<20;c++)

}//顯示1234 2345 3456 4567for(k = 0;k<4;k++)}}

d = 0;

//顯示567-

for(d = 0;d<20;d++)

p0 = 0xbf;

delay(10);

}d = 0;

//顯示67--

for(d = 0;d<20;d++)

for(k = 0;k<2;k++)

}d = 0;

//顯示7---

for(d = 0;d<20;d++)}}void main()}

2樓:

加扣扣 504111933,我來幫你

用at89c51微控制器實現四位數碼管顯示資料!!用c語言程式實現!!例如顯

3樓:匿名使用者

#include

#define uchar unsigned charuchar tab=; //0到9

uchar num;

uchar led=;

void t0isr() interrupt 1p0=~tab[led[num]];

num++;

num&=0x03;

}main()

用at89c51微控制器實現四位數碼管顯示1234 c語言 5

4樓:做而論道

參考。

at89c51微控制器實現4位數碼管顯示學號後四位,謝謝

5樓:匿名使用者

#include

#define uchar unsigned char#define uint unsigned int//共陰數碼管七段碼

uchar code table=;

uchar code table2=;//這就是學號的後4位,自行修改

void display()//4位顯示子程式void delay1ms(uint i) //1ms延時程式}}void main(void )//主程式}

6樓:再睡一下下啦

wei4=0;上面少了箇中括號

at89c51微控制器怎麼用組合語言讓4個數碼管同時顯示1234?

7樓:大野瘦子

org 00h

ajmp main

org 30h

main: lcall disp

mov 20h,#1

mov 21h,#2

mov 22h,#3

mov 23h,#4

ajmp main

disp: mov a,20h

acall seg7

mov p0,a

setb p2.0

acall dly

clr p2.0

mov a,21h

acall seg7

mov p0,a

setb p2.1

acall dly

clr p2.1

mov a,22h

acall seg7

mov p0,a

setb p2.2

acall dly

clr p2.2

mov a,23h

acall seg7

mov p0,a

setb p2.3

acall dly

clr p2.3

retdly: mov r7,#2

d1: mov r6,#40

djnz r6,$

djnz r7,d1

retseg7: inc a

movc a,@a+pc

retdb        0c0h;0

db        0f9h;1

db        0a4h;2

db        0b0h;3

db        099h;4

db        092h;5

db        082h;6

db        0f8h;7

db        080h;8

db        090h;9end

8樓:匿名使用者

通常的辦法是掃描顯示,這樣的話,用12個io口就可以實現了,8位段碼加上4位位碼。程式如下:

dat equ 30h

scanled equ 34h

org 0000h

ljmp main

org 000bh

ljmp t0isr

org 0030h

main:

mov sp,#5fh

mov tmod,#01h

mov th0,#0f4h

mov tl0,#048h

mov p2,#00h

mov scanled,#0

mov 30h,#1

mov 31h,#2

mov 30h,#3

mov 31h,#4

setb ea

setb et0

setb tr0

sjmp $

;--------------------t0isr:

clr tr0

mov th0,#0f4h

mov tl0,#048h

setb tr0

mov dptr,#ledtab

mov r0,#dat

mov a,scanled

add a,r0

mov r0,a

mov a,scanled

jnz t001

mov p2,#01h

sjmp t0dis

t001:

dec a

jnz t002

mov p2,#02h

sjmp t0dis

t002:

dec a

jnz t003

mov p2,#04h

sjmp t0dis

t003:

mov p2,#08h

t0dis:

mov a,@r0

movc a,@a+dptr

cpl a

mov p0,a

inc scanled

mov a,scanled

anl a,#03h

mov scanled,a

pop acc

reti

;--------------------ledtab:

db 0c0h ;"0" 00h

db 0f9h ;"1" 01h

db 0a4h ;"2" 02h

db 0b0h ;"3" 03h

db 99h ;"4" 04h

db 92h ;"5" 05h

db 82h ;"6" 06h

db 0f8h ;"7" 07h

db 80h ;"8" 08h

db 90h ;"9" 09h

;--------------------end

9樓:軍初瑤

動態顯示,先顯示1,再顯示2,3,4輪流。

求問,在atc89c51微控制器,四位數碼管,顯示學號1308010123,c語言程式怎麼寫?

10樓:做而論道

參考

11樓:微控制器的戰鬥機

要求和圖發過來給我,有扣扣嗎?幫你解答

用at89c51微控制器,4位共陰極數碼管,顯示出1234 程式怎麼寫?????? 請各位朋友幫忙!謝謝!

12樓:匿名使用者

mov  31h,#01h

mov  32h,#02h

mov  33h,#03h

mov  34h,#04h

mov  35h,#05h

mov  36h,#06h

acall   d0

jmp     $-2

d0:    mov  r0,#31h

mov   r2,#11111110b

mov    dptr,#tab

d1:    orl    p1,#00111111bmov   a,@r0

movc   a,@a+dptr

mov    r3,#8

d2:     rlc  a

mov    p3.2,c

setb   p3.3

clr    p3.3

djnz   r3,d2

inc    r0

mov   a,r2

anl    p1,a

d3:     mov   r3,#250djnz   r3,$

mov   a,r2

rl   a

mov   r2,a

jb   acc.6,d1

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

db 7fh,6fh,77h,7ch

db 39h,5eh,79h,71h

db 40hend

求程式用at89c51微控制器......用六位數碼管實現數字時鐘,顯示時分秒,用兩個按鍵可分別調整時、分。

13樓:匿名使用者

#include

#define uint unsigned int#define uchar unsigned charuchar temp,aa,miao,fen,shi;

sbit m=p3^0;

sbit n=p3^1;

uchar code table=;

void display(uchar miao,uchar fen,uchar shi);

void delay(uint z);

void init();

void main()

}void delay(uint z)

void display(uchar miao,uchar fen,uchar shi) // 顯示子函式

void init() // 初始化子函式void timer0() interrupt 1 //定時計數器中斷}}

if(m==0) // 調分

if(n==0) // 調小時}

89c51微控制器問題,使AT89C51微控制器復位有幾種方法 復位後的狀態如何

一定要採用與運算的話,我是這樣算的 unsigned char target 待測試數unsigned char tmp,i,j 變數tmp 0x01 j 0 for i 7 i 0 i tmp 1 tmp左移一位 接下來判斷j是偶數還是奇數就能知道target裡1的個數了。回hanxingfdx ...

用c語言怎麼在微控制器at89c51上編寫延時10秒的

1 十秒對於微控制器來說是很長很長的時間了,微控制器十秒的時間什麼事都不能做,只在跑這延時程式,那是什麼概念,用中斷的話,微控制器正常執行其他程式,只是時間到了才過來處理延時以後的程式,效率不知道高了多少 2 例程 假設晶振12mhz include reg51.h unsigned int ysj...

求at89c51微控制器和adc0809 AD轉換器的連線方法

塞千山 把8031直接換成8951就行啦 管腳是一樣的 電路如圖 程式如下 include define uint unsigned int define uchar unsigned charuchar code leddata 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d...