单片机实验3LDE数码管动态显示与按键去抖程序

单片机实验3LDE数码管动态显示与按键去抖程序

ID:38366009

大小:38.00 KB

页数:4页

时间:2019-06-11

单片机实验3LDE数码管动态显示与按键去抖程序_第1页
单片机实验3LDE数码管动态显示与按键去抖程序_第2页
单片机实验3LDE数码管动态显示与按键去抖程序_第3页
单片机实验3LDE数码管动态显示与按键去抖程序_第4页
资源描述:

《单片机实验3LDE数码管动态显示与按键去抖程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、MAIN.ASM;====变量定义段====CS0BITP2.0;个位位选CS1BITP2.1;十位位选CS2BITP2.2;百位位选CS3BITP2.3;千位位选CS4BITP2.4;LED灯位选DSWEQU30H;位选计数DSB0EQU31H;显示缓冲单元个位DSB1EQU32H;显示缓冲单元十位DSB2EQU33H;显示缓冲单元百位DSB3EQU34H;显示缓冲单元千位DSB4EQU20H;显示缓冲单元指示灯状态LD1BITDSB4.0;指示灯LD1控制位LD2BITDSB4.1;指示灯LD2控制位LD3BITDSB4.2

2、;指示灯LD3控制位LD4BITDSB4.3;指示灯LD4控制位LD5BITDSB4.4;指示灯LD5控制位LD6BITDSB4.5;指示灯LD6控制位LD7BITDSB4.6;指示灯LD7控制位LD8BITDSB4.7;指示灯LD8控制位KEYEQU21H;键状态字SW1BITKEY.6;SW1键SW2BITKEY.7;SW2键EKEYEQU22H;键前沿字ESW1BITEKEY.6;SW1键前沿ESW2BITEKEY.7;SW2键前沿KTMREQU35H;键去抖延时器AJS1EQU40H;每按一次SW1,(AJS2:AJS1)+

3、1AJS2EQU41H;每按一次SW2,(AJS2:AJS1)-1;====常数定义段====;==================ORG0000HLJMPMAINORG0030HMAIN:INCLUDE"INITIAL.INC"MLOOP:LCALLDELAY;延时5msLCALLRDKEY;读键LCALLDISPJNBESW1,M03;无SW1键转移MOVR6,#00HMOVR7,#01HSJMPM05M03:JBESW2,M04;有SW2键转移LJMPMLOOPM04:MOVR6,#99HMOVR7,#99HM05:MOVA,

4、AJS1;(AJS2:AJS1)十进制±1ADDA,R7DAAMOVAJS1,AMOVA,AJS2ADDCA,R6DAAMOVAJS2,AMOVA,AJS1;(AJS2:AJS1)送显示ANLA,#0FHMOVDSB0,AMOVA,AJS1SWAPAANLA,#0FHMOVDSB1,AMOVA,AJS2ANLA,#0FHMOVDSB2,AMOVA,AJS2SWAPAANLA,#0FHMOVDSB3,ALJMPMLOOP;====延时子程序(2*R7+3)*R6+5=5ms====DELAY:MOVR6,#0AHDL01:MOVR7,

5、#0F8HDL02:DJNZR7,DL02DJNZR6,DL01RET;====通用子程序段====INCLUDE"RDKEY.ASM";添加读键状态及去抖处理子程序INCLUDE"DISP.ASM";添加数码管动态扫描显示子程序END2、INITIAL.INCMOVSP,#5FHMOVR0,#20HMOVR7,#60HCLRAM01:MOV@R0,A;存储器20H-7FH清零INCR0DJNZR7,M01MOVDSB0,#03HMOVDSB1,#01HMOVDSB2,#01HMOVDSB3,#07HMOVR4,#0C8HM02:L

6、CALLDELAYLCALLDISP;显示"7113"1秒DJNZR4,M02CLRAMOVDSB0,AMOVDSB1,AMOVDSB2,AMOVDSB3,AEND3、RDKEY.ASM;====读独立按键子程序(延时去抖)====RDKEY:ORLP1,#0C0H;先置1,后读口MOVA,P1;读键ANLA,#0C0H;接独立键盘的位保留XRLA,#0C0H;求反转正逻辑MOVR7,A;新的键状态暂存R7CJNEA,KEY,RDK0;键状态变化则转移MOVKTMR,#05H;去抖延时器加载初值SJMPRDK1RDK0:MOVA,K

7、TMR;过了延时时间?JZRDK1DECKTMR;延时未结束MOVR7,KEY;放弃不稳定的键状态RDK1:MOVA,KEY;键前沿提取XRLA,R7ANLA,R7MOVEKEY,AMOVKEY,R7;启用键的新状态RETEND4、DISP.ASM;====5位数码管扫描子程序====DISP:ORLP2,#1FH;关闭数码显示器MOVA,DSW;根据扫描循环变量转移ANLA,#07HRLAMOVDPTR,#DSTABJMP@A+DPTRDSTAB:AJMPDIS0AJMPDIS1AJMPDIS2AJMPDIS3AJMPDIS4AJ

8、MPDIS0AJMPDIS0AJMPDIS0DIS0:MOVA,DSB0;扫描个位数码管ANLA,#0FHMOVDPTR,#LED7;查显缓个位值的七段码表MOVCA,@A+DPTRMOVP0,A;七段码送P0口CLRCS0;点亮个位

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。