⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bcd.asm

📁 接受里程传感器的脉冲输入(在本方案中使用PWM模拟替代传感器脉冲)
💻 ASM
字号:
//============================================================
//	文件名称:	BCD.asm
//	功能描述:	二进制转BCD码
//	维护记录:	2004-4-25	v1.0
//				2006-9-10	v1.1
//	维护说明:	支持0~65535数字转换
//============================================================
//=============================================================
// 语法格式:	unsigned long int BCD(unsigned int Binary)
// 实现功能:	二进制转BCD码
// 参数:		Binary	-	需要转换的二进制数
// 返回值:		压缩格式存储的BCD码(使用两个字存储)
//=============================================================
.ram
.var BCD_ww,BCD_qw,BCD_bw;
.code
.public _BCD
_BCD:.proc
	push r3,r4 to [sp]
	r2=0
	r3=0
	r4=0
	[BCD_ww] = r2
	[BCD_bw] = r2
	[BCD_qw] = r2
	cmp r1,10000
	jb F_BCD_Q
F_BCD_W:
	r2 = [BCD_ww]
	r2 += 1;
	[BCD_ww] = r2;
	r1 -= 10000
	cmp r1, 10000
	jae F_BCD_W
//	cmp r1,1000
//	jb F_BCD_B
F_BCD_Q:
	cmp r1,1000
	jb F_BCD_B
	r2 = [BCD_qw]
	r2 += 1
	[BCD_qw]=r2
	r1-=1000
	cmp r1,1000
	jae F_BCD_Q
F_BCD_B:
	cmp r1,100
	jb F_BCD_S
	r2=[BCD_bw]
	r2+=1
	[BCD_bw]=r2
	r1-=100
	cmp r1,100
	jae F_BCD_B
F_BCD_S:
	cmp r1,10
	jb F_BCD_G
	r3+=1
	r1-=10
	cmp r1,10
	jae F_BCD_S
F_BCD_G:
	r4=r1
	r1=0x0000
	r1=r1 rol 4
	r1=[BCD_qw]
	r2=[BCD_bw]
	r2=r2 ror 4
	r1=r1 rol 4
	r3=r3 ror 4
	r1=r1 rol 4
	r4=r4 ror 4
	r1=r1 rol 4	
	r2 = [BCD_ww]
	pop r3,r4 from [sp]
	retf
	.endp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -