教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 资料大全 >

嵌入式实训程序99秒倒计时

来源:网络收集 时间:2026-04-25
导读: 软硬件结合的嵌入式实训程序 ;*********说明************** ;*输入PE6为 暂停/继续键 * ;*输入PE7为 时间设置键 * ;*输出PA0为数据线 * ;*输出PA1为时钟线 * ;*输出PA2为蜂鸣器 * ;*************************** PCONA EQU 0X01D20000 PDATA EQU 0X01D20004 P

软硬件结合的嵌入式实训程序

;*********说明**************
;*输入PE6为 暂停/继续键 *
;*输入PE7为 时间设置键 *
;*输出PA0为数据线 *
;*输出PA1为时钟线 *
;*输出PA2为蜂鸣器 *
;***************************

PCONA EQU 0X01D20000
PDATA EQU 0X01D20004
PCONE EQU 0X01D20028
PDATE EQU 0X01D2002C
PUPE EQU 0X01D20030

AREA MININS,CODE,READONLY
ENTRY
CODE32
MAINBL INIT
BL WORDCOPY
LOOP3
LDR R0,=CURRENTVALUE
BL DISPLAY

BL DELAY
BL KEY
LDR R0,=VALUE ;获得value的地址
LDR R0,[R0] ;获得value的数据
;************ 调秒 ************************************************
TST R0,#0X80
BLEQ SET_TIME
;*********** 暂停/继续**************************************************
TST R0,#0X40 ;测试PE6暂停键是否为0
BLNE SUBMIN ;如果PE6是为1(没有按键)z=0则执行SUBMIN函数调用
;********** ***********************************************
LDR R2,=CURRENTVALUE
LDR R3,[R2]
CMP R3,#0X0 ;判断是否为零
BNE LOOP3 ;不为零时跳转至LOOP3
LDR R0,=CURRENTVALUE
BL DISPLAY ;显示零
DISP
LDR R1,=PDATA
LDR R2,[R1]
ORR R2,R2,#0X4;蜂鸣器响
STR R2,[R1]
LDR R0,=PCONE
LDR R1,=0X5555
STR R1,[R0] ;配置PE口为输出口

LDR R3,=0X5
LDR R0,=PDATE
LOOP4LDR R1,=0XF0
STR R1,[R0] ;让PE6.PE7 为高电平灯灭
;BL DELAY
LDR R1,=0X0F
STR R1,[R0] ;让灯亮
;BL DELAY
SUBS R3,R3,#0X1
BNE LOOP4 ;闪烁5次
B MAIN

;********************* 延时函数delay ********************************
DELAY
STMFD SP!,{R0,LR}
LDR R0,=0X1
LOOPSUBS R0,R0,#1
BNE LOOP
LDMFD SP!,{R0,PC}

;********************* SUBMIN函数 *********************************
SUBMIN
STMFD SP!,{R0,R1,LR}
LDR R0,=CURRENTVALUE
LDR R1,[R0];R0=CURRENTVALUE
SUBS R1,R1,#1;
AND R2,R1,#0XF;
CMP R2,#0XF;
SUBEQ R1,R1,#0X6;bcd码调整
STR R1,[R0];
LDMFD SP!,{R0,R1,PC}


;*********************** 初始化函数init ****************************
INIT
STMFD SP!,{R1,R2,LR}
LDR R1,=PCONA
LDR R2,=0X0
STR R2,[R1];配置PA为输出口
LDR R1,=PDATA
LDR R2,=0X0
STR R2,[R1];PA的数据口为零
LDR R1,=PCONE
LDR R2,=0X0
STR R2,[R1];配置PE口为输入口
LDR R1,=PUPE
LDR R2,=0X0
STR R2,[R1];配置PE口的上拉电阻
LDMFD SP!,{R1,R2,PC}

;************************* 显示函数display ************************

DISPLAY
STMFD SP!,{R1,R2,R3,R6,LR}
MOV R6,#0X10; 移位的计数器的初值

LDR R1,[R0];R1获得CURRENTVALUE的值

AND R0,R1,#0XF ;获得R1的个位数
AND R2,R1,#0XF0;获得R!的十位数
MOV R2,R2,LSR #4

LDRR1,=CO
DING
MOV R0,R0,LSL#2
LDRR0,[R1,R0];R0=R1+R0个位数的coding
MOV R2,R2,LSL#2
LDRR2,[R1,R2];R2=R1+R2十位数的coding

MOV R1,R2,LSL#8;把十位数的co

软硬件结合的嵌入式实训程序

ding放入R1的15~8位
ORRR1,R1,R0;把个位数的coding放入R1的7~0位


LDR R2,=PDATA

LOOP1 MOV R3,#0;
STR R3,[R2] ;将 PA1引脚clk拉为低电平
MOV R5,R1
BIC R5,R5,#0X6;将PA1。PA2清零
STR R5,[R2] ;将数据从PA0引脚输出

ORR R5,R5,#0X2
STR R5,[R2] ;将PA1引脚的clk拉为高

MOV R1,R1 ,LSR #1 ;将数据寄存器右移一位
SUBS R6,R6,#1 ;移位的计数器减一
BNE LOOP1
LDMFD SP!,{R1,R2,R3,R6,PC}

;********************* 获取按键信息key **************************

KEY
STMFD SP!,{R0,R1,R2,LR}
LDR R0,=PDATE
AND R1,R1,#0 ;清除R1寄存器的数据
LDR R1,[R0] ;把PE6,PE7的数据放到R1

LDR R2,=VALUE ;获的FLAG变量的地址
STR R1,[R2] ;存放key值
LDMFD SP!,{R0,R1,R2,PC}
;***************** 字复制函数wordcopy *****************************

WORDCOPY
STMFD SP!,{R0,R1,R2,LR}
LDR R0,=SOURCEVALUE
LDR R1,=CURRENTVALUE
LDR R2,[R0]
STR R2,[R1]
LDMFD SP!,{R0,R1,R2,PC}
;********************** 时间设置函数SET-TIME*************************

SET_TIME
STMFD SP!,{R1,LR}
LDR R0,=CURRENTVALUE
BL DISPLAY
LOOP5BL ADDSOURCE
BL DELAY
BL DISPLAY
BL KEY
LDR R1,=VALUE ;获得value的地址
LDR R1,[R1] ;获得value的数据
TST R1,#0X80
BEQ LOOP5
LDMFD SP!,{R0,PC}
;******************** ADDSOURCE函数 ****************************

ADDSOURCE
STMFD SP!,{R0,LR}
LDR R0,=SOURCEVALUE
LDR R2,[R0];R2等于COURCEVALUE
ADD R2,R2,#1;R2=R2+1

AND R3,R2,#0XF ;
CMP R3,#0XA;
ADDEQ R2,R2,#0X6 ;bcd码调整

CMP R2,#0XA0;
MOVEQ R2,#0X0;100变零
STR R2,[R0];
LDMFD SP!,{R0,PC}
;***************** *****************************


CURRENTVALUEDCD 0
SOURCEVALUE DCD 0x3
VALUE DCD 0xb0
CODING DCD 0XFC,0X60,0XDA,0XF2,0X66,0XB6,0XBE,0XE0,0XFE,0XF6
END







…… 此处隐藏:1738字,全部文档内容请下载后查看。喜欢就下载吧 ……
嵌入式实训程序99秒倒计时.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/1814221.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)