51单片机,汇编语言,按键操作控制
2016-01-25 12:01
218 查看
硬件电路:
P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光。
P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4。
P3.2 ~ P3.3 外接 2 个 按键,分别称为 K5 ~ K6。
用汇编语言编程进行控制,要求:
当按下 K1 时,D1 发光;
按下 K2 时,D2、D3 发光;
按下 K3 时,D4、D5、D6 发光;
按下 K4 时,D1、D3、D6 发光;
按下 K5 时,全部熄灭;
按下 K6 时,全亮。
用查询方式完成上述动作。
做而论道编写的程序如下:
2013-04-19 23:06
ORG 0000H
START:
JNB P0.0, K1
JNB P0.1, K2
JNB P0.2, K3
JNB P0.3, K4
JNB P3.2, K5
JNB P3.3, K6
SJMP START
;-----------------------
K1:
CALL DL10MS
JB P0.0, START
JNB P0.0, $
CLR P1.0 ;按下K1键时,D1二极管发光;
SJMP START
;-----------------------
K2:
CALL DL10MS
JB P0.1, START
JNB P0.1, $
CLR P1.1 ;按下K2键时,D2、D3发光;
CLR P1.2
SJMP START
;-----------------------
K3:
CALL DL10MS
JB P0.2, START
JNB P0.2, $
CLR P1.3 ;按下K3键时,D4、D5、D6发光;
CLR P1.4
CLR P1.5
SJMP START
;-----------------------
K4:
CALL DL10MS
JB P0.3, START
JNB P0.3, $
CLR P1.0 ;按下K4键时,D1、D3、D6发光。
CLR P1.4
CLR P1.5
SJMP START
;-----------------------
K5:
CALL DL10MS
JB P3.2, START
JNB P3.2, $
MOV P1, #255 ;按下K5是全部熄灭;
SJMP START
;-----------------------
K6:
CALL DL10MS
JB P3.3, START
JNB P3.3, $
MOV P1, #0 ;按下K6是全亮;
SJMP START
;-----------------------
DL10MS:
MOV R6, #10
DJNZ R7, $
DJNZ R7, $
DJNZ R6, $ - 4
RET
;-----------------------
END
回答提交后,百度知道就抽风了,给出了如下提示:
>_<!! 您的回答可能违反了知道内容规范,暂时仅您自己可见。可发起申诉找回。
呵呵,这种情况,见得多了,进行投诉,也可能正常显示,但是,往往都是晚三秋了。
原题网址:http://zhidao.baidu.com/question/542487454.html
P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光。
P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4。
P3.2 ~ P3.3 外接 2 个 按键,分别称为 K5 ~ K6。
用汇编语言编程进行控制,要求:
当按下 K1 时,D1 发光;
按下 K2 时,D2、D3 发光;
按下 K3 时,D4、D5、D6 发光;
按下 K4 时,D1、D3、D6 发光;
按下 K5 时,全部熄灭;
按下 K6 时,全亮。
用查询方式完成上述动作。
做而论道编写的程序如下:
2013-04-19 23:06
ORG 0000H
START:
JNB P0.0, K1
JNB P0.1, K2
JNB P0.2, K3
JNB P0.3, K4
JNB P3.2, K5
JNB P3.3, K6
SJMP START
;-----------------------
K1:
CALL DL10MS
JB P0.0, START
JNB P0.0, $
CLR P1.0 ;按下K1键时,D1二极管发光;
SJMP START
;-----------------------
K2:
CALL DL10MS
JB P0.1, START
JNB P0.1, $
CLR P1.1 ;按下K2键时,D2、D3发光;
CLR P1.2
SJMP START
;-----------------------
K3:
CALL DL10MS
JB P0.2, START
JNB P0.2, $
CLR P1.3 ;按下K3键时,D4、D5、D6发光;
CLR P1.4
CLR P1.5
SJMP START
;-----------------------
K4:
CALL DL10MS
JB P0.3, START
JNB P0.3, $
CLR P1.0 ;按下K4键时,D1、D3、D6发光。
CLR P1.4
CLR P1.5
SJMP START
;-----------------------
K5:
CALL DL10MS
JB P3.2, START
JNB P3.2, $
MOV P1, #255 ;按下K5是全部熄灭;
SJMP START
;-----------------------
K6:
CALL DL10MS
JB P3.3, START
JNB P3.3, $
MOV P1, #0 ;按下K6是全亮;
SJMP START
;-----------------------
DL10MS:
MOV R6, #10
DJNZ R7, $
DJNZ R7, $
DJNZ R6, $ - 4
RET
;-----------------------
END
回答提交后,百度知道就抽风了,给出了如下提示:
>_<!! 您的回答可能违反了知道内容规范,暂时仅您自己可见。可发起申诉找回。
呵呵,这种情况,见得多了,进行投诉,也可能正常显示,但是,往往都是晚三秋了。
原题网址:http://zhidao.baidu.com/question/542487454.html
相关文章推荐
- 用 Python 脚本实现对 Linux 服务器的监控
- 80x86汇编语言编程:宏指令
- 在 51 单片机系统中使用 8155
- 80x86汇编语言编程:二进制输入、十进制输出
- ExpandableListView的使用
- 80x86汇编语言编程:查找字符串中的最大、最小值
- 51单片机,汇编语言,定时与计数
- C++ —— 数据结构之 顺序栈,链式栈?
- 80x86汇编语言编程:三个数字进行比较
- 8255 的三总线连接方法
- 缓存技术PK:选择Memcached还是Redis?
- C编程中阻止程序退出的方法
- Keepalived 安装与配置
- iOS UICollectionView之三(基本用法)
- 每分钟改变一次方向的流水灯
- 8255 的直接连接方法
- 复位电路
- PROTEUS 仿真中的总线
- 用 LCD1602 显示的秒表
- 键盘编码芯片 MM74C922