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
怎樣用組合語言實現求「1 2 3100」的和啊
冠月朗 dseg segment result dw 存放和 dseg ends cseg segment assume cs cseg,ds dsegstart mov ax,dseg mov ds,ax mov ax,1 從1開始加 mov result,0 和的初值賦0 mov cx,100 ...
使用組合語言,如何實現鍵盤控制數碼管顯示程式?如何對應鍵盤值在數碼管輸出相應的數值
line equ 30h row equ 31h val equ 32h org 00h start mov dptr,table 段碼錶首地址mov p2,00h 數碼管顯示初始化lscan mov p3,0f0h 列線置高電平,行線置高電平 l1 jnb p3.0,l2 逐行掃描lcall de...
51微控制器用組合語言實現八個LED的全亮全滅
樓主要的是彙編程源序。是 51 微控制器嗎?彙編程式如下 org 0000h mov a,7fh lop mov p0,a call delay clr crrc a cjne a,0,lop mov p0,a 全亮。call delay mov p0,255 全滅。call delay sjmp ...