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];}}
兩個微控制器之間的無線傳輸
有學問的免子 選擇通訊模組完成傳輸 1 用rf905進行資料傳輸,兩塊微控制器都通過串列埠將資料傳送給905,然後通過905傳送出去。2 用pt2262發也可以,如果你不考慮成本的話,你可以用51的乙個埠控制乙個繼電器當按鍵用 建議nrf24l01這個模組,spi協議,程式不是很難寫 用rf905進...
微控制器中兩個for語句是如何執行的
寒冬為雪 這兩個for語句相同。是起一個延時的作用,最初i 0,i 0 30000,繼續執行,i 即i自加1為i 1,然後i 1,i 1 300000,繼續執行i 直到i 30000跳出for語句,這個過程微控制器執行需要時間,就起到了一個延時的作用。 懂你的大佬 揭靈韻 這個很重要,第一,如果是編...
微控制器的兩個晶振引腳該怎麼接才能工作
東東輝 給個例子你.買乙個兩腳的4mhz晶體,和2個15pf電容 xtal1,xtal2分別接晶體兩腳,然後晶體兩腳分別接乙個電容到gnd 一生唱吟 18引腳,19引腳分別接晶體兩腳,然後晶體兩腳分別接乙個電容到gnd,就可以動作了。微控制器 microcontrollers 是一種積體電路晶元,是...