打印

51单片机系列之三:开关和键盘

[复制链接]
1767|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
十年砍柴|  楼主 | 2010-8-20 19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机系列之三:开关和键盘
一、设计任务
1、如图1,单片机的P3.3~~P3.0接上开关SW4~~SW1(代表0000~~1111)P0口接上一排组,排阻接在数码管上。开关断开时,为高电平,闭合为低电平。
2、如图2,单片机的P0口接上数码管,P3.0~~P3.3接上键盘的行,P3.4~~P3.7接上键盘的列。按相应的键盘显示相应的数字(0~~F
二、电路原理图

       1——1:开关全断开时(即开关1111),数码管显示“F

          1——2SW4~~SW1(1001)时,显示数字“9

2——1:按下键盘上的“2”,显示数组“2

      2——2:按下键盘上的“8,显示数组“8

     2——3:按下键盘上的“F”,显示数组“F
三、设计程序
//SW4~~SW1对应显示数字



ORG 0


SJMP START


ORG 30H

START: MOV P0,#0FFH

ST: MOV P3,#0FFH


MOV A,P3



ANL A,#0FH



ACALL SEG7



MOV P0,A



SJMP ST

SEG7:
INC A


MOVC
A,@A+PC



RET


DB 0C0H,0F9H,0A4H,0B0H


DB 99H,92H,82H,0F8H


DB 80H,90H,88H,83H


DB 0C6H,0A1H,86H,8EH

END
//按相应的键盘显示相应的数字(0~~F

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 DELAY


JNB P3.0,L2


MOV LINE,#00H


LJMP RSCAN


L2:JNB P3.1,L3


LCALL DELAY


JNB P3.1,L3


MOV LINE,#01H


LJMP RSCAN


L3:JNB P3.2,L4


LCALL DELAY


JNB P3.2,L4


MOV LINE,#02H


LJMP RSCAN


L4:JNB P3.3,L1


LCALL DELAY


JNB P3.3,L1


MOV LINE,#03H

RSCAN:MOV P3,#0FH

C1:JNB P3.4,C2


MOV ROW,#00H


LJMP CALCU


C2:JNB P3.5,C3


MOV ROW,#01H


LJMP CALCU


C3:JNB P3.6,C4


MOV ROW,#02H


LJMP CALCU


C4:JNB P3.7,C1


MOV ROW,#03H

CALCU:MOV A,LINE

MOV B,#04H


MUL AB


ADD A,ROW


MOV VAL,A


MOVC A,@A+DPTR


MOV P2,A


LJMP LSCAN

DELAY:MOV R6,#20

D1:MOV R7,#250


DJNZ R7,$


DJNZ R6,D1


RET

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H


END

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:岂能尽如人意,但求无愧于心!

0

主题

11

帖子

1

粉丝