历史上的今天
今天是:2025年01月25日(星期六)
2018年01月25日 | 51汇编 等周期脉宽调制pwm 子程序
2018-01-25 来源:eefocus
;等周期脉宽调制PWM
;晶振:12MHz
;89C51
P_PWM1 EQU P1.0
cycle EQU 1000 ;PWM的周期(单位微秒),则频率为1000赫兹
cycle_high EQU 500 ;一个周期内,PWM端口为高电平的时间(初始值)
DSEG AT 20H
ORG 40H
PWM_HIGH_L DATA 40H
PWM_HIGH_H DATA 41H ;PWM端口为高电平时,定时器寄存器的值
PWM_LOW_L DATA 42H
PWM_LOW_H DATA 43H ;PWM端口为高电平时,定时器寄存器的值
ORG 60H ; stack origin
stack: DS 20H ; stack depth
CSEG
ORG 0000H ; power on/reset vector
jmp on_reset
ORG 0003H ; external interrupt 0 vector
reti ; undefined
ORG 000BH ; timer 0 overflow vector
reti ; undefined
ORG 0013H ; external interrupt 1 vector
reti ; undefined
ORG 001BH ; timer 1 overflow vector
JMP TIMER1_ISR
ORG 0023H ; serial I/O interrupt vector
reti ; undefined
;***********************************************************************************
;系统初始化等
ORG 0033H ; begin code sPACe
USING 0 ; register bank zero
on_reset:
MOV R7,#00H
DJNZ R7,$ ;延时
mov sp, #(stack-1) ; initialize stack pointer
;禁止各中断
MOV IE,#00H
MOV IP,#00H
SYS_INIT:
MOV R0,#00H
SYS_INIT_LOOP:
MOV R1,#00H
DJNZ R1,$
DJNZ R0,SYS_INIT_LOOP ;延时0.13S
;内部RAM(30H-5fH)清零
MOV R1,#30H
MOV A,#0
ZERO_LOOP: MOV @R1,A
INC R1
CJNE R1,#60H,ZERO_LOOP
;定时器1初始化
MOV TMOD,#00010000B ;方式1,16位定时器模式
MOV PWM_HIGH_L,#LOW(65536 - cycle_high)
MOV PWM_HIGH_H,#HIGH(65536 - cycle_high)
MOV PWM_LOW_L,#LOW(65536 - (cycle - cycle_high))
MOV PWM_LOW_H,#HIGH(65536 - (cycle - cycle_high))
SETB P_PWM1 ;先输出高
MOV TL1,PWM_HIGH_L
MOV TH1,PWM_HIGH_H
SETB ET1 ;T1开中断
SETB EA ;开总中断
SETB TR1 ;开定时器1
MAIN_LOOP:
;主循环
SJMP $
;**********************************************************************
;**********************************************************************
;定时器1中断服务程序
TIMER1_ISR:
USING 1 ; register bank 1
PUSH ACC
PUSH PSW
JB P_PWM1,PWM_OUT_LOW ;如果输出为高则,输出低
SETB P_PWM1
MOV TL1,PWM_HIGH_L
MOV TH1,PWM_HIGH_H
JMP TIMER_ISR_RET
PWM_OUT_LOW:
CLR P_PWM1
MOV TL1,PWM_LOW_L
MOV TH1,PWM_LOW_H
TIMER_ISR_RET:
POP PSW
POP ACC
RETI
;*********************************************************************
;
END
史海拾趣
|
哥们今天刚按照实物反推出的,主芯片为DM9081的5口以太网交换机原理图.PROTEL99SE格式. [ 本帖最后由 西门 于 2009-5-12 18:31 编辑 ]… 查看全部问答> |
|
键盘输入作为最常用的输入设备仍有其不可替代的作用。下面首先对传统键盘作一个简单的介绍。 (1)传统键盘的介绍键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。线性键盘由若干个独立的按键组成, ...… 查看全部问答> |
|
Platform Builder 4.2中自带的S3C2410BSP可以用于S3C2440么? Platform Builder 4.2中自带的S3C2410 BSP可以用于S3C2440么? 或者哪里有下载用于S3C2440 BSP for PB4.2的?… 查看全部问答> |
|
中断是MSP430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。 MS430 的中断比较多,几乎每个外围模块都能够产生中断。MSP430 可以在没有事件发生时进入低功耗状态,事件发生时,通过中断唤醒CPU ,事件处理完毕后,CPU 再次进 ...… 查看全部问答> |
|
/******************************* * name: * function: * return: ********************************/ #include \"string.h\" #include \"global.h\" #include \"function.h\" #include #include unsigned char UartDataRecevice; un ...… 查看全部问答> |
|
在大四毕业季后,俺和同学去淘学长们遗留的“废品”。得此物,一查PDF,什么上世纪70年代的PDF,板子上印的是2009年做的。茫然呀… 查看全部问答> |




