单片机实验3LDE数码管动态显示与按键去抖程序.doc_第1页
单片机实验3LDE数码管动态显示与按键去抖程序.doc_第2页
单片机实验3LDE数码管动态显示与按键去抖程序.doc_第3页
单片机实验3LDE数码管动态显示与按键去抖程序.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MAIN.ASM;=变量定义段=CS0BIT P2.0;个位位选CS1BIT P2.1;十位位选CS2BIT P2.2;百位位选CS3BIT P2.3;千位位选CS4BIT P2.4;LED灯位选DSWEQU 30H;位选计数DSB0EQU 31H;显示缓冲单元个位DSB1EQU 32H;显示缓冲单元十位DSB2EQU 33H;显示缓冲单元百位DSB3EQU 34H;显示缓冲单元千位DSB4 EQU 20H;显示缓冲单元指示灯状态LD1 BIT DSB4.0 ;指示灯LD1控制位LD2 BIT DSB4.1 ;指示灯LD2控制位LD3 BIT DSB4.2 ;指示灯LD3控制位LD4 BIT DSB4.3 ;指示灯LD4控制位LD5 BIT DSB4.4 ;指示灯LD5控制位LD6 BIT DSB4.5 ;指示灯LD6控制位LD7 BIT DSB4.6 ;指示灯LD7控制位LD8 BIT DSB4.7 ;指示灯LD8控制位KEYEQU 21H;键状态字SW1BIT KEY.6;SW1键SW2BIT KEY.7;SW2键EKEY EQU 22H ;键前沿字ESW1 BIT EKEY.6 ;SW1键前沿ESW2 BIT EKEY.7 ;SW2键前沿KTMREQU 35H ;键去抖延时器AJS1EQU 40H;每按一次SW1,(AJS2:AJS1)+1AJS2EQU 41H;每按一次SW2,(AJS2:AJS1)-1;=常数定义段=;= ORG 0000H LJMP MAIN ORG 0030HMAIN: INCLUDE INITIAL.INCMLOOP: LCALL DELAY;延时5ms LCALL RDKEY ;读键 LCALL DISP JNB ESW1,M03 ;无SW1键转移 MOV R6,#00H MOV R7,#01H SJMP M05M03: JB ESW2,M04 ;有SW2键转移 LJMP MLOOPM04: MOV R6,#99H MOV R7,#99HM05:MOV A,AJS1 ;(AJS2:AJS1)十进制1 ADD A,R7 DA A MOV AJS1,AMOV A,AJS2ADDC A,R6DA AMOV AJS2,A MOV A,AJS1 ;(AJS2:AJS1)送显示 ANL A,#0FH MOV DSB0,A MOV A,AJS1 SWAP A ANL A,#0FH MOV DSB1,A MOV A,AJS2 ANL A,#0FH MOV DSB2,A MOV A,AJS2 SWAP A ANL A,#0FH MOV DSB3,ALJMP MLOOP;=延时子程序(2*R7+3)*R6+5=5ms=DELAY:MOV R6,#0AHDL01:MOV R7,#0F8HDL02:DJNZ R7,DL02 DJNZ R6,DL01RET;=通用子程序段= INCLUDE RDKEY.ASM;添加读键状态及去抖处理子程序 INCLUDE DISP.ASM ;添加数码管动态扫描显示子程序 END2、INITIAL.INC MOV SP,#5FHMOV R0,#20HMOV R7,#60HCLR AM01:MOV R0,A;存储器20H-7FH清零INC R0DJNZ R7,M01MOV DSB0,#03HMOV DSB1,#01HMOV DSB2,#01HMOV DSB3,#07HMOV R4,#0C8HM02:LCALL DELAYLCALL DISP;显示71131秒DJNZ R4,M02CLR AMOV DSB0,AMOV DSB1,AMOV DSB2,AMOV DSB3,A END3、RDKEY.ASM;=读独立按键子程序(延时去抖)=RDKEY: ORL P1,#0C0H ;先置1,后读口 MOV A,P1 ;读键 ANL A,#0C0H ;接独立键盘的位保留 XRL A,#0C0H ;求反转正逻辑 MOV R7,A ;新的键状态暂存R7 CJNE A,KEY,RDK0 ;键状态变化则转移 MOV KTMR,#05H ;去抖延时器加载初值 SJMP RDK1RDK0: MOV A,KTMR ;过了延时时间? JZ RDK1 DEC KTMR ;延时未结束 MOV R7,KEY ;放弃不稳定的键状态RDK1: MOV A,KEY ;键前沿提取 XRL A,R7 ANL A,R7 MOV EKEY,A MOV KEY,R7 ;启用键的新状态 RET END4、DISP.ASM;=5位数码管扫描子程序=DISP:ORL P2,#1FH;关闭数码显示器MOV A,DSW;根据扫描循环变量转移ANL A,#07H RL AMOV DPTR,#DSTABJMP A+DPTRDSTAB:AJMP DIS0AJMP DIS1AJMP DIS2AJMP DIS3AJMP DIS4AJMP DIS0AJMP DIS0AJMP DIS0DIS0:MOV A,DSB0;扫描个位数码管 ANL A,#0FHMOV DPTR,#LED7;查显缓个位值的七段码表MOVC A,A+DPTRMOV P0,A;七段码送P0口CLR CS0;点亮个位数码管MOV DSW,#01H;扫描指针指向下十位RETDIS1:MOV A,DSB1;扫描十位数码管 ANL A,#0FHMOV DPTR,#LED7MOVC A,A+DPTRMOV P0,ACLR CS1MOV DSW,#02HRETDIS2:MOV A,DSB2;扫描百位数码管 ANL A,#0FHMOV DPTR,#LED7MOVC A,A+DPTRMOV P0,ACLR CS2MOV DSW,#03HRETDIS3:MOV A,DSB3;扫描千位数码管 ANL A,#0FHMOV DPTR,#LED7MOVC A,A+DPTRMOV P0,ACLR CS3MOV DSW,#04HRETDIS4:MOV A,DSB4;扫描指示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论