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

📄 led.asm

📁 通过pid算法来对水温的测量、控制等功能
💻 ASM
字号:
//============================================================
// 文件名称:	led.asm
// 实现功能:	共阴数码管显示驱动程序
// 日期:    	2006/9/20		V1.0
//============================================================
.INCLUDE 	SPCE061A.inc
.EXTERNAL 	_guiLED_Value
.RAM
.PUBLIC LED_No
.VAR  LED_No = 0

.IRAM
.DATA
    C_Address: .DW 0x003f,0x0006,0x005b,0x004f, 0x0066,0x006d,0x007d,0x0007,0x007f,0x006f,0x0000;
    				//'0''1''2''3''4''5''6''7''8''9''a' 的段码
    C_Dig:     .DW 0x0008,0x0010,0x0020;
    				//LED位选
.CODE
    
//======================================================
// 函数名称:	LED_Show()
// 汇编调用:	F_LED_Show
// 实现功能:   显示刷新.
// 入口参数:	LED的位选(C_Dig),LED的段码(guiLED_Value)
// 出口参数:	无
// 破坏寄存器:	r1~r4
//======================================================   

.PUBLIC _LED_Show
.PUBLIC F_LED_Show
_LED_Show:
F_LED_Show:
    push r1,r5 to  [sp]  		    //弹出入口参数共两个入口参数
L_Loop:       
	bp  = [LED_No] 
	r1  = bp + _guiLED_Value
    r1 = [r1]
    r2 =  bp + C_Dig             	//取LED管的片选地址     
    r2  = [r2]   
    r4 =  r1 + C_Address         	//取显示数据的地址 
    r4 = [r4]
    r4 = r4 lsl 4
    r4 = r4 lsl 4
    cmp bp, 1						//取小数点
    jne  l 
    r4 |= 0x8000   
l:  
    r1 = [P_IOA_Buffer]
    r1 &= 0x00ff
    r1 |=  r4   
    [P_IOA_Buffer] = r1       
    r1 = [P_IOB_Buffer]
    r1 &= 0xff00
    r2 |= r1
    [P_IOB_Data] = r2				//送位码信号  
    bp = bp + 1						//更改位码,指向下一次显示位
    cmp bp,3						//显示到最后一位
	jne l1							//否
	bp = 0							// 是
l1:
	[LED_No]  = bp					//
	POP r1,r5 FROM [sp]
	retf



⌨️ 快捷键说明

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