1樓:匿名使用者
下列程式已經調好,按鍵顯示電路可見:
//微控制器:使用51系列相容的即可;
//4×4矩陣鍵盤:接在p1口;
//兩位數碼顯示器: p0口輸出七段碼,p2口輸出位選碼。
/****************************************
//c語言程式如下。
* 檔名: key_led.c
* 功能 : 對4×4矩陣鍵盤進行輸出,在數碼管後兩位顯示按鍵值。
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar code table[10] = ;
uchar sec, t_50ms;
* 名稱 : delay_1ms()
* 功能 : 延時子程式,延時時間為 1ms * x
* 輸入 : x (延時一毫秒的個數)
* 輸出 : 無
void delay_1ms(uint x)
* 名稱: display(uchar k)
* 功能: 將引數分成十位、個位分別顯示
* 輸入: k (鍵盤數值)
* 輸出: p0口輸出七段碼,p2口輸出位選碼
void display(uchar k)
* 名稱: keyscan()
* 功能: p1外接4×4按鍵, 按照掃描法讀出鍵值
* 輸出: 按鍵值0~15/如無鍵按下, 返回16
uchar keyscan(void)
}return 16; //判斷結束,沒有鍵按下,返回16
} //呵呵,實質性的語句不過8行,就是這麼簡練!
* 名稱: getkey()
* 功能: 讀出按鍵、消抖、等待按鍵釋放
* 輸出: 按鍵值0~15/如無鍵按下, 返回16
uchar getkey(void)
* 名稱 : main()
* 功能 : 主函式
void main(void)
if (key_value == 10) tr0 = 1;
} } }
* 名稱 : t0_int()
* 功能 : t0中斷函式
void t0_int() interrupt 1
2樓:匿名使用者
org 0000h
ajmp main
org 0030h
main:mov p1,#07h
loop:mov p0,#0fehacall scankey
mov p0,#0fdh
acall scankey
mov p0,#0fbh
acall scankey
mov p0,#0f7h
acall scankey
ajmp loop
scankey:mov a,p0
cjne a,#0eeh,next2mov a,#00h
ajmp sendled
next2:cjne a,#0deh,next3mov a,#01h
ajmp sendled
next3:cjne a,#0beh,next4mov a,#02h
ajmp sendlednext4:cjne a,#07eh,next5mov a,#03h
ajmp sendled
next5:cjne a,#0edh,next6mov a,#04h
ajmp sendled
next6:cjne a,#0ddh,next7mov a,#05h
ajmp sendled
next7:cjne a,#0bdh,next8mov a,#06h
ajmp sendled
next8:cjne a,#07dh,next9mov a,#07h
ajmp sendled
next9:cjne a,#0ebh,next10mov a,#08h
ajmp sendled
next10:cjne a,#0dbh,next_amov a,#09h
ajmp sendled
next_a:cjne a,#0bbh,next_bmov a,#0ah
ajmp sendled
next_b:cjne a,#07bh,next_cmov a,#0bh
ajmp sendled
next_c:cjne a,#0e7h,next_dmov a,#0ch
ajmp sendled
next_d:cjne a,#0d7h,next_emov a,#0dh
ajmp sendled
next_e:cjne a,#0b7h,next_fmov a,#0eh
ajmp sendled
next_f:cjne a,#77h,scan_remov a,#0fh
sendled:mov dptr,#ledcodemovc a,@a+dptr
mov p1,a
scan_re:ret
ledcode:db 3fh,06h, 5bh , 4fh ,66h, 6dh
db 7dh, 07h, 7fh , 6fh, 77h,7chdb 39h, 5eh, 79h,71hend
用組合語言編寫求數的平均數,用組合語言編寫求三個數的平均數
孟靜渠思雨 data segmentxdw 345y dw234zdw 234m dw897ndw 999 定義五個數rdw 2dup 儲存結果 data ends code segment assume cs code,ds data start movax,data movds,ax movax...
用組合語言編寫延時1S的子程式,用組合語言編寫乙個延時1S的子程式
湯旺河邊 本程式通過編譯,執行正確 code segment assume cs code,ds code subroutine 延時指定的時鐘嘀嗒數 入口 didas 時鐘嘀嗒數 1秒鐘約嘀嗒18.2次,10秒鐘嘀嗒182次。若延時不是秒的10數次倍,誤差稍微大點 delay1s proc nea...
用組合語言編寫簡單程式,用組合語言編寫一個簡單程式
sweet馮 1.計算u x y z 100 w 其中 x,y,z,w均為十六位有符號數。程式如下 data segment x dw 10 16位變數 y dw 20 z dw 30 w dw 40 u dw data ends code segment assume cs code,ds dat...