经过几天的努力,终于将程序编好了。该系统以51单片机为核芯,通过遥控器(芯片DT9122)对系统进行控制,可以对四路继电器进行控制其开关,并可以设置定时时间,用数码管进行显示。
本系统可以对各家电进行控制,例如经过改装可以将电风扇改装成智能遥控加定时风扇。。。。
//功能描述:当按下相应的键时控制相应的继电器开断,可以启动24小时定时功能,并以
数码管动态显示,倒计时的方式显示,同时可以关闭定时功能,
//接法P1.0--P1.3接继电器
//P3。7接蜂鸣器
//P0口为显示的段码输入口
//P2口为位选端
//K1---1开 0---1关,K2--2开,1---2关,K3--3开,2--3关,K4--4开,3---4关
//K5---调用显示定时间 UP---分调整 +----时调整
//K6----启动定时 R---关定时
电路图实物图将在近期内成。。
用户45839 2007-1-3 23:06
用户1316816 2007-1-3 19:12
汇编有点忘了,不好意思
用户1316816 2007-1-3 19:06
程序工作流程图如下图所示:
(1)判别键盘中是否有键按下。
(2)如果有键按下,判别是哪一个键按下——即按键识别。确定被按键的位置(即获得按键的特征值——行、列的编码),称为读键值。
(3)判别是否同时有两个或两个以上的按键按下。如果同时有两个或两个以上的按键按下,就会产生同时按键的问题。如何发现这种现象并且避免产生错误的读键值呢?解决的方法有:①双键锁定法,在所有键操作中,只承认闭合的第一个按键,对其他键均不识别,直到所有键释放后,才读入下一个键值;②按键轮回法,当前面所识别的键被释放以后,才可以对其他闭合的键识别。
(4)键值译码。每个按键都有一定的功能定义,将读取的键值解释为定义键的功能过程称为键值译码。
(5)去除按键抖动。读取的键值理应是一个稳定的读数。而实际上,按键从最初接通到稳定接通要经过数毫秒的抖动(弹跳时间),按键释放时也同样存在抖动的问题。抖动会引起一次按键多次读数。用户1316816 2007-1-3 19:06
开始
置所有的行为低电平
读取列状态
列中有低电平吗
延时20MS
置行计数器00H,列计数器00H,置行输出扫描初始值为0FEH
输出行的扫描字,置某一行为低
有一列键按下
将行计数加1,行扫描字左移一位
读取列值
是最后一行吗
判别哪一行列按下
存列号
调键值译码程序
RET
RET
用户45839 2007-1-2 17:53
我是一初学者,现有一键盘扫描程序有疑惑,可以请教一下吗?
如下:
;file name:EX4-6.ASM for 7 segment display & keyboard
;******************************************************
PORT1 REG P1
PORT2 REG P2
ORG 0H
START: JMP MAIN
ORG 30H
MAIN: MOV SP,#5FH
MOV PORT2,#0FFH
LOOP: MOV R0,#4
MOV R1,#11101111B
MOV R2,#11111111B
NLINE: MOV A,R1
MOV PORT1,A
MOV A,PORT1
ORL A,#0F0H
CJNE A,#0FFH,KEYIN
MOV A,R1
RL A
MOV R1,A
DJNZ R0,NLINE
JMP LOOP
KEYIN: MOV R2,A
CALL DELAY1
NOPEN: MOV A,PORT1
ORL A,#0F0H
CJNE A,#0FFH,NOPEN
CALL DELAY1
CALL TRANF
CALL CHANG
MOV PORT2,A
JMP LOOP
DELAY1: MOV R7,#30
MOV R6,#0
$1: DJNZ R6,$
DJNZ R7,$1
RET
TRANF: MOV B,#0
MOV A,R1
C1: RRC A
JNC C2
INC B
INC B
INC B
INC B
JMP C1
C2: MOV A,R2
RR A
RR A
RR A
RR A
C3: RRC A
JNC C4
INC B
JMP C3
C4: MOV A,B
RET
CHANG: INC A
MOVC A,@A+PC
RET
DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,83H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END
这程序的键码计算不是很明,可否请高手分析下,谢!
用户119052 2006-12-26 23:04
如何阅读全文啊?
用户730605 2006-12-3 19:38
用户1316816 2006-11-30 13:09
好吧,那就上传与大家共享了!!
用户47778 2006-11-30 08:30
程序可否共享啊?
用户100521 2006-11-28 18:19
同学,好好努力,成功会属于你的……