积分规则 网站地图 帮助中心 广告服务    
嵌入式软件 单片机 DSP 可编程逻辑 存储器
嵌入式硬件 AD/DA 电源 模拟设计 传感控制
I C设计 通信产品 汽车电子 消费电子 数控系统 工业控制
军工/航天 安防产品 医疗电子 测试测量 计算机外设  
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 单片机 >> 相关文章
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
P3口键盘输入程序
 
作者:佚名   来源:本站原创    点击数:1369   更新时间:2006-2-21
您可以添加到网摘 让更多人关注此文章:

    ;************;
;小灯控制程序;
;************;
;
;************;
;中断入口程序;
;************;
;
ORG 0000H ;程序执行开始地址
LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址
RETI ;中断返回(不开中断)
ORG 000BH ;定时器T0中断入口地址
RETI ;中断返回(不开中断)
ORG 0013H ;外中断1中断入口地址
RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址
RETI ;中断返回(不开中断)
ORG 0023H ;串行口中断入口地址
RETI ;中断返回(不开中断)
;
;************;
; 初始化程序 ;
;************;
;
CLEAR: MOV 20H,#00H ;20H单元内存清0(闪烁标志清0)
SETB 00H ;20H.0位置1(上电时自动执行闪烁功能1)
RET ;子程序返回
;
;************;
; 主 程 序 ;
;************;
;
START: ACALL CLEAR ;调用初始化映绦?br> MAIN: LCALL KEYWORK ;调用键扫描子程序
JB 00H,FUN0 ;20H.0位为1时执行FUN0
JB 01H,FUN1 ;20H.1位为1时执行FUN1
JB 02H,FUN2 ;20H.2位为1时执行FUN2
JB 03H,FUN3 ;20H.3位为1时执行FUN3
AJMP MAIN ;返回主程序MAIN
;
;************;
; 功能程序 ;
;************;
;第1种闪烁功能程序
FUN0: MOV A,#0FEH ;累加器赋初值
FUN00: MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
JNB ACC.7,MAIN ;累加器最高位为0时转MAIN
RL A ;累加器A中数据循环左移1位
AJMP FUN00 ;转FUN00循环
;
;第2种闪烁功能程序
FUN1: MOV A,#0FEH ;累加器赋初值
FUN11: MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
JZ MAIN ;A为0转MAIN
RL A ;累加器A中数据循环左移1位
ANL A,P1 ;A同P1口值相与
AJMP FUN11 ;转FUN11循环
;
; 第3种闪烁功能程序
FUN2: MOV A,#0AAH ;累加器赋初值
MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
CPL A ;A中各位取反
MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
AJMP MAIN ;转MAIN
;
;第4种功能程序
FUN3: MOV P1,0FFH
AJMP MAIN

;************;
; 扫键程序 ;
;************;
;
KEYWORK:MOV P3,#0FFH ;置P3口为输入状态
JNB P3.2,KEY0 ;读P3.2口,若为0转KEY0
JNB P3.3,KEY1 ;读P3.3口,若为0转KEY1
JNB P3.4,KEY2 ;读P3.4口,若为0转KEY2
JNB P3.5,KEY3 ;读P3.5口,若为0转KEY3
RET ;子程序返回
;
;闪烁功能0键处理程序
KEY0: LCALL DL10MS ;延时10毫秒消抖
JB P3.2,OUT0 ;P3.2为1,子程序返回(干扰)
SETB 00H ;20H.0位置1(执行闪烁功能1标志)
CLR 01H ;20H.1位清0
CLR 02H ;20H.2位清0
CLR 03H ;20H.3位清0
OUT0: RET ;子程序返回
;
; 闪烁功能1键处理程序
KEY1: LCALL DL10MS
JB P3.3,OUT1
SETB 01H ;20H.1位置1(执行闪烁功能2标志)
CLR 00H
CLR 02H
CLR 03H
OUT1: RET
;
;闪烁功能2键处理程序
KEY2: LCALL DL10MS
JB P3.4,OUT2
SETB 02H ;20H.2位置1(执行闪烁功能3标志)
CLR 01H
CLR 00H
CLR 03H
OUT2: RET
;
;闪烁功能(备用)键处理程序
KEY3: LCALL DL10MS
JB P3.5,OUT3
SETB 03H ;20H.3位置1(执行备用闪烁功能标志)
CLR 01H
CLR 02H
CLR 00H
OUT3: RET
;
;************;
; 延时程序 ;
;************;
;0.5毫秒延时子程序,执行一次时间为513微秒
DL512: MOV R2,#0FFH
LOOP1: DJNZ R2,LOOP1
RET
;
;10毫秒延时子程序(调用20次0.5毫秒延时子程序)
DL10MS: MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
;
;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为15×25毫秒)
DL05S: MOV R4,#0FH
LOOP3: LCALL DL25MS
DJNZ R4,LOOP3
RET
;
;25毫秒延时子程序,用调用扫键子程序延时,可快速读出功能按键值
DL25MS: MOV R5,#0FFH
LOOP4: LCALL KEYWORK
DJNZ R5,LOOP4
RET

END ;程序结束 

相关文章
· 单片机用于温度采集与控制系统的设计[158]
· 基于单片机TA89C2051的电子琴设计[140]
· IIC-China 2010春季展韩国馆参展商预览(一)[171]
· 基于单片机控制的自动停车收费管理系统[284]
· 基于单片机的温湿度分析遥控开关门窗系统[229]
热门评论排行
·ARM嵌入式系统基础教程(N
·DSP从入门到精通全集
·8051单片机C语言彻底应用
·手把手学单片机20个例
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
TDK-EPC电子元件、模块和系统参
雅迪多款新品亮相慕尼黑上海电子展
Microsemi在APEC&nbs
欧姆龙电子部件贸易(上海)有限公司将
TD终端“洋土之争”激烈 
财富:苹果iPad或将改变整个技术业
英特尔预计USB3.0主流应用要等到
科学家通过光线传输矩阵可实现“隔空取
多元化创新或成独立分销商未来发展之路
数字太和携UTI系列芯片闪耀IIC-
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
EPM7128A/AE 与 E...
Protel 覆铜露洞。...
原理图&PCB设计点滴...
(北京亿维)高清晰DVD画质-...
请教一下...
C51RF-WSN无线传感器网...
优势供应L6219DS...
优势供应A3282LUA...
[推荐]7英寸大屏手持终端(现...
[原创]高性能10.4寸嵌入式...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网