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

📄 test1.asm

📁 试验仪自检程序
💻 ASM
字号:
//======================================================
//  The information contained herein is the exclusive property of
//  Sunnnorth Technology Co. And shall not be distributed, reproduced,
//  or disclosed in whole in part without prior written permission.
//           (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//                       ALL RIGHTS RESERVED
//  The entire notice above must be reproduced on all authorized copies.
//========================================================

//============================================================
//  工程名称:test1.spj
//  功能描述: 通过点亮不同发光二极管来显示A口输出的不同数值。
//  硬件连接:A口低八位控制8个发光二极管阳极,B6控制8个发光二极管的共阴极
//  文件来源:《实验仪实验指导书》"实验三 使用汇编语言实现A口的输出"  第12页
//  IDE环境:   SUNPLUS u'nSPTM  IDE 1.8.4
//
//  涉及的库:
//  组成文件:
//    	main.asm
//===============================================

//============================================================
// 文件名称:test1.asm
// 实现功能: 通过点亮不同发光二极管来显示A口输出的不同数值
//============================================================

		.include  hardware.inc						//包含 hardware.inc

		.ram
		.var R_LedControl			    			//定义变量
		.var R_DelayCounter		

		.code
		.public _main
//============================================================= 
// 函数名称:    _main
// 功能描述:    通过点亮不同发光二极管来显示A口输出的不同数值	
// 语法格式:    无
//入口参数:     无
// 出口参数:    无
// 注意事项:    仅为用户模型
//=============================================================
_main:
		r1 = 0x00FF						//设置A0~A7口为同相低电平输出口
		[P_IOA_Dir] = r1						  
		[P_IOA_Attrib] = r1
		r1 = 0x0000						
		[P_IOA_Data] = r1	
		r1=0x0040						//设置B6口为同相高电平输出口
		[P_IOB_Dir]=r1
		[P_IOB_Attrib]=r1
		[P_IOB_Data]=r1					//B6输出高电平,保证LED阴极接地
		r1=0x0001		
		[R_LedControl] = r1					//LED点亮控制初值
L_MainLoop:
		r1 = [R_LedControl]	  
		[P_IOA_Data] = r1					//送数据到A口
		r1=r1 LSL 1						//修改LED点亮控制参数
		cmp r1,0x0100						//只有8个LED,保证输出数据在8位以内
		jne NoOver
		r1=0x0001
NoOver:
		[R_LedControl] = r1	  
		r1 = 0x0000 						//延时计数器清零
		[R_DelayCounter] = r1
		call F_Delay 						//延时	
		jmp	L_MainLoop					//跳转到L_MainLoop循环,点亮LED
		
//===================================================================================//
//功能:延时子函数
//===================================================================================//
F_Delay:
L_DelayLoop:	
		r1=0x0001                    		//清看门狗
		[P_Watchdog_Clear]=r1
		r1 = [R_DelayCounter]	  
		r1 += 1		 					//延时计数加1
		[R_DelayCounter] = r1
		jnz  L_DelayLoop 					//加到65536吗?
		retf					  

⌨️ 快捷键说明

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