历史上的今天
返回首页

历史上的今天

今天是: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


推荐阅读

史海拾趣

Everspin公司的发展小趣事

在XXXX年,Everspin的股票开始在纳斯达克全球市场交易,股票代码为MRAM。这一上市动作不仅为Everspin提供了更多的资金支持,也进一步提升了其在行业中的知名度和影响力。此外,兆易创新旗下的GigaDevice半导体(香港)有限公司还斥资500万美元购买了Everspin约5%的股份,显示出市场对Everspin技术和发展前景的认可。

Fine Products Microelectronics Corp公司的发展小趣事

Everspin公司成立于XXXX年,总部和晶圆厂均位于美国亚利桑那州的钱德勒市。自成立以来,Everspin一直致力于磁阻随机存取存储器(MRAM)技术的研发和商业化。2006年,Everspin成功推出了业界第一款商业化MRAM产品,这一突破性的技术为数据存储领域带来了革命性的变化。

Benchmarq Microelectronics Inc公司的发展小趣事

在半导体行业中,供应链的稳定性和可靠性对企业的发展至关重要。Benchmarq Microelectronics Inc深知这一点,因此始终注重供应链管理和合作伙伴关系的建立。公司与多家知名供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量可控。同时,公司还加强库存管理和物流配送,确保产品能够及时、准确地送达客户手中。这些努力不仅提升了公司的运营效率和市场竞争力,还为客户提供了更加便捷、高效的服务。

Device Engineering Incorporated公司的发展小趣事

在电子行业快速发展的背景下,DEI公司意识到只有不断创新才能保持竞争力。因此,公司加大了对研发的投入,积极引进新技术和人才。通过不断的努力,DEI公司成功推出了一系列具有自主知识产权的创新产品,涵盖了多个领域。这些产品不仅提升了公司的竞争力,也为公司赢得了更多的市场份额。

辰颐电子公司的发展小趣事

在辰颐电子公司的发展过程中,他们意识到单打独斗很难在市场中取得优势。因此,公司开始注重产业链的整合和协同发展。他们与上游供应商建立了紧密的合作关系,确保原材料的稳定供应和质量保证;与下游客户建立了长期的合作伙伴关系,提供定制化的解决方案和优质的服务。此外,公司还积极参与行业协会和组织的活动,加强与同行业企业的交流与合作,共同推动整个电子行业的发展。

Elcos AG公司的发展小趣事

随着国内市场的饱和,Elcos AG开始寻求国际化拓展的机会。公司首先在欧洲市场建立了销售网络,通过与当地合作伙伴的紧密合作,逐渐打开了欧洲市场的大门。随后,Elcos AG又将目光投向了亚洲和北美市场,通过设立海外办事处和参加国际展会等方式,积极推广公司品牌和产品。在国际市场的竞争中,Elcos AG凭借其卓越的产品品质和完善的售后服务体系,赢得了众多客户的信赖和支持。

问答坊 | AI 解惑

5口以太网交换机原理图

哥们今天刚按照实物反推出的,主芯片为DM9081的5口以太网交换机原理图.PROTEL99SE格式. [ 本帖最后由 西门 于 2009-5-12 18:31 编辑 ]…

查看全部问答>

关于OP07

哪位可以给我讲讲这电路上面的二极管是什么作用啊,特别是为什么要在OP07反馈和输出端加上IN4148…

查看全部问答>

一种用N+1条线实现矩阵键盘的方法

键盘输入作为最常用的输入设备仍有其不可替代的作用。下面首先对传统键盘作一个简单的介绍。 (1)传统键盘的介绍键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。线性键盘由若干个独立的按键组成, ...…

查看全部问答>

Platform Builder 4.2中自带的S3C2410BSP可以用于S3C2440么?

Platform Builder 4.2中自带的S3C2410 BSP可以用于S3C2440么? 或者哪里有下载用于S3C2440 BSP for PB4.2的?…

查看全部问答>

我做了一块485通讯板子,帮我看看?

     专业做单片机软硬件开发                地址:哈尔滨市 南岗区 会展中心             ...…

查看全部问答>

学习之MSP430中断

中断是MSP430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。 MS430 的中断比较多,几乎每个外围模块都能够产生中断。MSP430 可以在没有事件发生时进入低功耗状态,事件发生时,通过中断唤醒CPU ,事件处理完毕后,CPU 再次进 ...…

查看全部问答>

请教:TI的M4单片机中的自带ROM里的程序是出厂就烧制好的吗?

用户自己能不能更改这个ROM内容,或者供用户使用?…

查看全部问答>

UDA1341驱动问题

有人用FPGA驱动过UDA1341吗?UDA1341芯片的L3MODE,L3CLOCK.L3DATA三个信号引脚对AD,DA有影响吗?…

查看全部问答>

ADuC7061中断方式实现串口通信

/******************************* * name: * function: * return: ********************************/ #include \"string.h\" #include \"global.h\" #include \"function.h\" #include #include unsigned char UartDataRecevice; un ...…

查看全部问答>

有人熟悉这块单片机板子么?Inter 8086的

在大四毕业季后,俺和同学去淘学长们遗留的“废品”。得此物,一查PDF,什么上世纪70年代的PDF,板子上印的是2009年做的。茫然呀…

查看全部问答>