您能給寫微控制器語言麼?兩個按鈕加減一用數碼管顯示

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

1樓:

#include

#define uchar unsigned char

uchar i,s=0;

uchar code dm=; //led**

uchar jw=0;                                             //led數字儲存

void delay_ms(unsigned int ms)                   //延時

unsigned int i;

unsigned char j;

for(i=0;ifor(j=0;j<200;j++);

for(j=0;j<102;j++);

void button(void)                                 //開關加減函式

uchar key;

p3=0xff;

if(p3!=0xff)

void main()

while(1){

p0=dm[jw];

button();                            //led顯示

這個就是完整版的控制一個led的c語言程式,

p0接八位數碼管(七位也行),我用的共陽極管,

p3的0和1埠(兩個低位)接2個按鈕,

採納後求積分啊。。。。。

2樓:做而論道

為樓上電路增加一份彙編程式。

org 0

start:

mov r1, #0 ;從0開始計數.

;----------------------------------

disp:

mov a, r1 ;

mov dptr, #tab

movc a, @a + dptr ;取段碼.

mov p0, a ;送p1口顯示.

;----------------------------------

k_1:

jb p3.0, k_2 ;判斷k1是否按下.

call delay10ms ;若按下,則延時10ms左右.

jb p3.0, k_2 ;再判斷k1是否按下.

inc r1 ;若真按下,則加一.

jnb p3.0, $ ;等待釋放.

cjne r1, #10, disp

mov r1, #0

sjmp disp

;----------------------------------

k_2:

jb p3.1, k_1 ;判斷k2是否按下.

call delay10ms ;若按下,則延時10ms左右.

jb p3.1, k_1 ;再判斷k2是否按下.

dec r1 ;若真按下,則減一.

jnb p3.1, $ ;等待釋放.

cjne r1, #255, disp

mov r1, #9

sjmp disp

;----------------------------------

delay10ms:

mov r6, #20 ;延時10ms子程式.

l1:mov r7, #248

djnz r7, $

djnz r6, l1

ret;----------------------------------

tab:

db 0xc0,0xf9,0xa4,0xb0,0x99

db 0x92,0x82,0xf8,0x80,0x90

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

3樓:

用定時器寫的,也是c51程式,要不?

微控制器 一個按鈕設定按一下加1 另一個按鍵按一下減1 求幫忙編寫程式

4樓:

#include

#define uchar unsigned char#define uint unsigned intsbit k1 = p1^4;

sbit k2 = p1^5;

uchar data k1state;

uchar data k2state;

uint  data num,ntmp;

uchar code table= ;

uchar data showindex,indextmp;

uchar data  w[8];

void delay(uint z)

void main()

p0 = (0x01<=8)

showindex=0;}}

看了你的全圖,修改後了,用keil uvision 3或4都可以,編譯後可以檢視對應的彙編**

程式稍大一點的,不會有人用匯編來給你蘑菇,彙編設計寫編碼太慢了,開發代價不值得

5樓:匿名使用者

學微控制器 先學c語言 學深了 再學彙編 這樣更好上手

6樓:匿名使用者

sbit k=p1^5;

sbit m=p1^6;

int p=0;

while(1)

7樓:匿名使用者

求剩餘下面的圖 做邊接到什麼了???

51微控制器怎麼用矩陣鍵盤讓數碼管加一減一,就是每兩個鍵盤控制一個數

8樓:匿名使用者

#include

#define uchar unsigned char#define uint unsigned intsbit key1=p1^0;

sbit key2=p1^1;

uchar num=0;

//共陰數碼管七段碼

uchar code table=;

void delay1ms(uint i) //1ms延時程式}}void main(void )//主程式}if(key2==0)//判斷按鍵2是否按下}p0=table[num];}}

兩個微控制器UART通訊不能正常進行

自由飛翔就是我 微控制器串列埠可以在115.2k可靠傳輸,不要懷疑波特率,如果你的波特率計算真的沒有錯誤的話 從你的條件不會退出能通訊的結果,肯定有的細節你沒有說明,不知是什麼 如果真的如你所說,只能讓一片微控制器不斷的發,示波器監視傳送是否正常 串列埠助手給另一片微控制器發資料,看接受是否正常,一...

微控制器中兩個for語句是如何執行的

寒冬為雪 這兩個for語句相同。是起一個延時的作用,最初i 0,i 0 30000,繼續執行,i 即i自加1為i 1,然後i 1,i 1 300000,繼續執行i 直到i 30000跳出for語句,這個過程微控制器執行需要時間,就起到了一個延時的作用。 懂你的大佬 揭靈韻 這個很重要,第一,如果是編...

51微控制器同時使用兩個計時器的問題

同時用兩個中斷肯定會衝突 定時器1完全可以不用,主程式只管顯示就行,定時器0中斷程式中更新計時數值 還可以嘗試在定時器0的中斷程式裡關閉定時器1,交且將定時器0的中斷優先順序設高 就你現在的程式可以正常掃描顯示的呀,就是有點閃爍的效果。但不知道,這是和誰學習的,數碼管顯示要用定時器定時,中斷一次顯示...