云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > STM32 汇编语言,按键控制数码管显示

STM32 汇编语言,按键控制数码管显示

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 5:00:32

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;按键控制数码管显示;;;;;;;;;;;;;;;;;;;;; ;;共阳极接在PE口(PE[0..7]);;;;;;;;;;;;;;;;;;;;;;;;; ;;按下按键则显示加1,显示0~F;;;;;;;;;;;;;;;;;;;;;;;;;

;;2011-5-3 by 追梦 ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

BIT2 EQU 0X00000004 BIT6 EQU 0X00000040 BIT8 EQU 0X00000100

GPIOE EQU 0X40011800 ;GPIOE 地址 GPIOE_CRL EQU 0X40011800 ;低配置寄存器 GPIOE_CRH EQU 0X40011804 ;高配置寄存器

GPIOE_ODR EQU 0X4001180C ;输出,偏移地址0Ch

GPIOE_BSRR EQU 0X40011810 ;低置位,高清除偏移地址10h GPIOE_BRR EQU 0X40011814 ;清除,偏移地址14h IOPEEN EQU BIT6 ;GPIOE使能位 IOPAEN EQU BIT2 ;GPIOA使能位 KEY EQU BIT8 ;按键在PA.8 GPIOA EQU 0X40010800

GPIOA_CRH EQU 0X40010804 ;高配置寄存器 GPIOA_IDR EQU 0X40010808 RCC_APB2ENR EQU 0X40021018

STACK_TOP EQU 0X20002000

AREA RESET,CODE,READONLY DCD STACK_TOP ;MSP主堆栈指针 DCD START ;复位,PC初始值 ENTRY ;指示开始执行 START LDR R1,=RCC_APB2ENR LDR R0,[R1] ;读 LDR R2,=IOPEEN ORR R0,R2 ;改 LDR R2,=IOPAEN ORR R0,R2 ;改 STR R0,[R1] ;写,使能GPIOA,E时钟 ;PE[0..7] 8个引脚均设置成推挽式输出 LDR R0,=0x33333333 LDR R1,=GPIOE_CRL STR R0,[R1] ;PA.8--KEY 浮空输入 MOV R0,#0X04 LDR R1,=GPIOA_CRH

STR R0,[R1] LDR R1,=GPIOE_ODR MOV R0,#0XFF STR R0,[R1] ;初始时数码管无显示 LDR R2,=GPIOA_IDR ;R2用于扫描按键 LDR R5,=DPYTABLE LOOP LDR R3,[R2] AND.W R3,#KEY CMP R3,#0 BNE LOOP PUSH {R0} MOV R0,#10 BL.W DELAY_NMS ;延时10ms用于消除抖动 POP {R0} LDR R3,[R2] AND.W R3,#KEY CMP R3,#0 BNE LOOP ADD R4,#1 CMP R4,#15 BLE KEYIN MOV R4,#0 KEYIN LDRB R0,[R5,R4] EOR R0,#0XFF STR R0,[R1] WAIT_TO_UP ;等待按键弹起 LDR R3,[R2] AND.W R3,#KEY CMP R3,#0 BEQ WAIT_TO_UP B LOOP

;延时R0(ms),误差((R0-1)*4+12)/8us ;延时较长时,误差小于0.1% DELAY_NMS PUSH {R1} ;2个周期 DELAY_NMSLOOP SUB R0,#1 MOV R1,#1000 DELAY_ONEUS SUB R1,#1

NOP NOP NOP CMP R1,#0 BNE DELAY_ONEUS CMP R0,#0 BNE DELAY_NMSLOOP POP {R1} BX LR

;子程序,将R0低八位右循环移一位,高位不变 ByteRor1

PUSH {R1,R2,R3} LDR R3,=0XFFFFFF00 LSR R1,R0,#1 AND R1,#0X0000007F AND R2,R0,#0X01 LSL R2,#7 ORR R1,R2 AND R0,R3 ORR R0,R1 POP {R1,R2,R3} BX LR

;共阴极数码管的码表,使用时先取反 DPYTABLE DCB 0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71,'\\0' END

搜索更多关于: STM32 汇编语言,按键控制数码管显示 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;按键控制数码管显示;;;;;;;;;;;;;;;;;;;;; ;;共阳极接在PE口(PE[0..7]);;;;;;;;;;;;;;;;;;;;;;;;; ;;按下按键则显示加1,显示0~F;;;;;;;;;;;;;;;;;;;;;;;;; ;;2011-5-3 by 追梦 ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BIT2 EQU 0X00000004 BIT6 EQU 0X00000040 BIT8 EQU 0X00000100

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com