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

📄 pwm.asm

📁 关于ADUC841(51内核)的各种实验程序,有串口,ADC,DAC,PWM,的应用及基于ADUC841设计的万用表源程序
💻 ASM
字号:
;PWM脉宽调制,按00h键开始,按其他键结束
$MOD841
CLK81 EQU P3.5
DAT81 EQU P3.3
KEY   EQU P3.2
KEYVAL EQU 30H

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP SERVE
ORG 0060H
MAIN:MOV R0,#0FFH;
CLR_IN_RAM:MOV @R0,#00H
DJNZ R0,CLR_IN_RAM
MOV SP,#50H
LCALL YS
;***********************初始化
LCALL INI841
LCALL INIWH8281
;***********************欢迎菜单
LCALL WELCOME
MOV 40H,#0FFH
ZYS:LCALL YS
DJNZ 40H,ZYS
;***********************清屏
MOV A,#16H
LCALL WTO81
MOV A,#00H
LCALL WTO81

START:LJMP $
SERVE:
MOV A,#93H
LCALL WTO81
LCALL RDKVAL
MOV A,30H
CJNE A,#00H,J1
MOV CFG841,#60H
MOV PWMCON,#13H
MOV PWM0L,#55H
MOV PWM1L,#00H
MOV PWM0H,#05H
MOV PWM1H,#10H
LJMP HUIQU
J1:MOV PWMCON,#80H
HUIQU:RETI

 ;********************初始化841
 INI841:SETB EA
 SETB EX0
 RET
;***********************初始化WH8281
INIWH8281:SETB CLK81;
          SETB DAT81;
MOV A,#12H
LCALL WTO81;
MOV A,#84H;
LCALL WTO81;
RET
;***********************欢迎界面子程
WELCOME:MOV A,#14H;
LCALL WTO81
MOV A,#0CH
LCALL WTO81
MOV A,#14H
LCALL WTO81
MOV A,#1BH
LCALL WTO81
MOV A,#14H
LCALL WTO81
MOV A,#2DH
LCALL WTO81
MOV A,#14H
LCALL WTO81
MOV A,#3DH
LCALL WTO81
MOV A,#14H
LCALL WTO81
MOV A,#40H
LCALL WTO81
RET
;***********************写入WH8281子程序
WTO81:	MOV	R6,#08H
WAT:	CLR	CLK81
        NOP
	NOP
        SETB	CLK81
	JB	DAT81,WAT
	CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JNB	DAT81,$
WTB81:	RLC	A
	MOV	DAT81,C
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	LCALL	DELAY
	LCALL	DELAY
	DJNZ	R6,WTB81
	SETB	DAT81
        RET
DELAY:NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;***********************读取键值子程序
RDKVAL:CLR CLK81
NOP
NOP
SETB CLK81
JB DAT81,$
CLR CLK81
LCALL DELAY
SETB CLK81
MOV R6,#08H
RD1:LCALL DELAY
LCALL DELAY
MOV C,DAT81
RLC A
CLR CLK81
LCALL DELAY
SETB CLK81
DJNZ R6,RD1
MOV KEYVAL,A
RET
;***********************延时程序
YS:MOV R5,#00H
MOV R4,#50H
YS1:DJNZ R5,$
DJNZ R4,YS1
RET

END

⌨️ 快捷键说明

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