资源描述:
《键盘程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文章编号:1310----加入日期:2004-3-24『关闭窗口』ps/2键盘的程序,可供參考 給[emina](王玲)$MOD51 clk bit p1.6 ;時鐘 dat bit p1.7 ;數据;destrop26h,a,r0,r6,r7;============================;接收數据keb_0: mov 26h,#00 ;清除 call kx_0 ;接收 cjne a,#0e0h,f0
2、_a ;a=e0h call kx_0 ;接收下一位;===========================;功能鍵f0_1: cjne a,#0f0h,f0_2 ;a=f0h call kx_0 ;接收下一位 clr a ;清除 ret ;結束f0_2: add a,#7fh ;a+7fh以上為功能鍵
3、mov dptr,#keb_a ;設定鍵盤相對碼 movc a,@a+dptr ;把"鍵盤相對碼"載入累積器a內 mov 26h,a ;鍵盤相對鍵 ret ;結束;===========================;參數鍵f0_a: cjne a,#0f0h,f0_b ;a=f0h call kx_0 ;接收下一位 clr a
4、 ;清除 ret ;結束f0_b: cjne a,#5ah,keb_3 ;判斷ENTER按鈕 ljmp f0_2 ;為功能鍵keb_3: cjne a,#76h,keb_4 ;判斷Esc按鈕 ljmp f0_2 ;為功能鍵keb_4: cjne a,#66h,keb_5 ;判斷BKSP按鈕 ljmp f0_2
5、 ;為功能鍵keb_5: mov dptr,#keb_a ;設定鍵盤相對碼 movc a,@a+dptr ;把"鍵盤相對碼"載入累積器a內 ret ;結束;===========================;設定接收8位數据kx_0: setb clk ;clk=1(釋放抑制)******* setb dat ;dat=1kx_1: mov r7,#80 ;10
6、0mskx_2: mov r6,#250 ;kx_3: jnb clk,kx_4 ;判斷開始位(start) djnz r6,kx_3 djnz r7,kx_2 clr a ret;=====================kx_4: jNb clk,kx_4 ;判斷開始位(start) mov r7,#08 ;設定接收8位數据 clr a
7、 ;清零dat_0: jb clk,dat_0 ;判斷clock mov c,dat ;把數据載入c內 rrc a ;右移一位 jnb clk,$ ;判斷clock djnz r7,dat_0 ;r7-1 jb clk,$ ;校驗位 jnb clk,$ ;判斷clock jb clk,$
8、 ;停止位(STOP) jnb clk,$ ;判斷cloc