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

📄 dcmotor.asm

📁 这是一个有关C8051F020单片机的实验教学材料,相信对于单片机的研究人员会有很大的帮助.
💻 ASM
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
//文件名:	DCMotor.asm
//
//编写人:	LC
//
//编写时间:2005/03/10
//
//目标器件: C8051F02x
//
//编译工具: Silicon Laboratories IDE
//
//程序说明:	此程序通过DAC的输出来驱动直流电机
			

//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
$include (c8051f020.inc)                    // SFR declarations

//------------------------------------------------------------------------------------
// Global CONSTANTS
//------------------------------------------------------------------------------------

COUNT	EQU		SYSCLK / 12 /5

	ORG		0
	AJMP	main
	ORG		73H
	AJMP	Timer3_ISR
	ORG		0100H


;延时子程序
Delay:
    MOV   R7, #01h			
Delay1:
    MOV   R6, #80h
Delay0:
    MOV   R5, #00h
    DJNZ  R5, $
    DJNZ  R6, Delay0
    DJNZ  R7, Delay1
	RET

//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
main:
	;关看门狗
	MOV		WDTCN,#0deH
	MOV		WDTCN,#0adH
	LCALL	PORT_Init		;初始化I/O口
	LCALL	Timer3_Init		;初始化定时器3
	LCALL	DAC_Init		;初始化D/A
	SETB	EA				;使能总中断
LOOP:
	MOV		DAC0L,#0f0H		;设置待转换的值并启动D/A转换
	MOV		DAC0H,#0fH
	LCALL	Delay
	LJMP	LOOP
	RET

;初始化I/O口
PORT_Init:
	MOV		XBR2,#40H			;使能交叉开关和弱上拉
	ORL		P74OUT,#0ffH		;使能P1.6 (LED)推挽输出
	RET

;初始化D/A
DAC_Init:
	MOV		REF0CN,#03H		;内部偏压发生器和电压基准缓冲器工作,基准从VREF引脚输出
	ORL		DAC0CN,#80H		;DAC0允许,DAC输出更新发生在写DAC0H时
	RET

;初始化定时器3
Timer3_Init:
	MOV		TMR3CN,#00H				;停止定时器3,清定时器中断标志
									;用SYSCLK/12作为时基
    MOV		TMR3RLH, #HIGH(-COUNT)  ;装载重装载值
    MOV   	TMR3RLL, #LOW(-COUNT)
    MOV 	TMR3H, #0ffh            ;设置重载值
    MOV		TMR3L, #0ffh
    ORL		TMR3CN,#04H				;打开定时器3
	ORL		EIE2,#01H				;使能定时器3中断
	RET

;定时器中断服务子程序
Timer3_ISR:
	ANL		TMR3CN,#NOT(80H)		;清定时器3中断标志
	RETI
	END

⌨️ 快捷键说明

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