PWM方波产生51程序

发布者:快乐阳光最新更新时间:2016-09-22 来源: eefocus关键字:PWM方波  51程序 手机看文章 扫描二维码
随时随地手机看文章
 PWMH DATA 30H    ;高电平脉冲的个数

PWM DATA 31H    ;PWM周期
COUNTER DATA 32H
pwmhmin DATA 33H

 ORG 0000H
 AJMP MAIN
 ;ORG 0003H
 ;AJMP INT_X0
 ;ORG 0013H
 ;AJMP INT_X1
 ORG 000BH
 AJMP INT_T0
 ORG 0100H
MAIN: 
 MOV SP,#60H    ;给堆栈指针赋初值
       mov ie,#87h
                 
 MOV PWMH,#02H   ;
 MOV COUNTER,#01H
 MOV PWM,#14H
 MOV TMOD,#02H   ;定时器0在模式2下工作
 MOV TL0,#38H   ;定时器每200us产生一次溢出
 MOV TH0,#38H   ;自动重装的值
 SETB ET0    ;使能定时器0中断
 SETB EA    ;使能总中断
 SETB TR0
 SETB IT0
 SETB IT1
sjmp $

INT_X0:


       MOV A,PWMH
       CJNE A,PWM,INC1
       SJMP EXIT1
       INC1:
      clr TR0
       MOV A,PWMH
          INC A
   MOV PWMH,A
       EXIT1:
      setb TR0
           RETI
INT_X1:

      MOV A,PWMH
      CJNE A,#01h,DEC1
      SJMP EXIT2
    DEC1:
clr TR0
     MOV A,PWMH
        DEC A
  MOV PWMH,A
    EXIT2:
     setb TR0
      RETI
INT_T0:
 
 INC COUNTER    ;计数值加1
 MOV A,COUNTER
 CJNE A,PWMH,INTT01   ;如果等于高电平脉冲数
 CLR P1.0    ;P1.0变为低电平
INTT01: CJNE A,PWM,INTT02   ;如果等于周期数
 MOV COUNTER,#01H   ;计数器复位
 SETB P1.0    ;P1.0为高电平
INTT02: 
 RETI
 
 END

关键字:PWM方波  51程序 引用地址:PWM方波产生51程序

上一篇:使用8051连接到LCD显示器程序
下一篇:89S51输出信号来驱动一个步进马达c程序

推荐阅读最新更新时间:2024-03-16 15:11

MCS-51单片机并行口输出彩灯移动程序举例
  1.程序结构采用主程序和中断服务子程序结构   2.定时中断程序,并行口输出,控制彩灯移动     定时器0于方式1,16位,10ms中断一次   40H 10ms计数单元 41H 初值为01101101B 位地址 00H=1     定时方式1为10MS:THX=0ECH,TLX=78H   3.参考程序 ; DISP EQU 0DE00H ;显示子程序入口 ; ORG 0000H START: AJMP MAIN ; ORG 000BH ;定时器0中断服务程序入口 AJMP TINT0 ; ORG 0030H MAIN: MOV R0,#39H
[单片机]
51单片机的精确延时程序
51单片机的精确延时程序分析(C语言和汇编语言程序) 一、C51程序 在晶振为11.0592的情况下,如下程序能实现ms级的比较精确的延时: 1 void Delayms(unsigned int n) 2 { 3 unsigned int i,j; 4 for(j=n;j 0;j--) 5 for(i=112;i 0;i--); 6 } 用keil可以看出这个延时的时间,我们先延时1ms,即Delayms(1)。 进入Delayms前,sec=0.00042209s 延时后,sec=0.00142253s 可以知道Delayms(1)实际延时
[单片机]
93C46/93c06/93c46/93c56/93c66/93c86的驱动程序(C51)
简介:SPI总线驱动程序 包括的普通封装标准模式,特殊封装标准模式 。 —————————————————————*/ /*通用93c06-93c86系列使用说明 93c06=93c4693c56=93c6693c76=93c86 dipx 可以自行定义*/ #include reg51.h #include intrins.h /*----------------------------------------------------- SPI93cXX系列时序函数调用(普通封装) 调用方式:自行定义 函数说明:私有函数,封装各接口定义 ------------------------------------------
[单片机]
51单片机+74HC595驱动数码管程序
这里是电路图: 完整的源码和图纸下载地址: http://www.51hei.com/bbs/dpj-20392-1.html 下面是51单片机驱动74hc595芯片的程序: #include reg52.h //包含51单片机的头文件 #include stdio.h #define uint unsigned int #define uchar unsigned char //sbit sin_595 =P1^0; //sbit rclk_595 =P1^1; //sbit sclk_595 =P1^2; //sbit s_clr =P1^3; sbit a_cp_595
[单片机]
<font color='red'>51</font>单片机+74HC595驱动数码管<font color='red'>程序</font>
C51中延时程序的编写
C51及C51和汇编的混合编程的资料都是从前辈那儿偷来的,先谢谢各位前辈的分享!:) 众所周知,c51在编程时很难掌握程序运行的时间,所以编写延时程序时很难做到很精确,解决的方式有插入汇编语句,但总觉得汇编用起来不是那么顺手,还可以用定时器来做,但只是一个很小的延时程序而已,不必小题大作。其实办法还是有的,下面介绍一下常用的几种延时程序。 1、us级延时程序 常用的一个函数如下: void delayus(unsigned char x) { while(--x) ; } 生成的汇编代码为: C:0x001C
[单片机]
keil c51是如何启动c程序
汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和链接。下面看看它和main()函数是如何编译的; //主函数如下; void main(void) { while (1)这是个无条件空循环。 { } } 把上面的main()函数编译后的汇编程序和反汇编代码整理后对照如下; ?C_C51STARTUPSEGMENTCODE ?PR?main?TESTMAINSEGMENT CODE ?STACKSEGMENTIDATA RSEG?STACK DS1 CSEGAT0 ?C_STARTUP:LJMPSTARTUP1 C
[单片机]
51单片机汇编语言子程序调用指令RET RETI
控制转移 指令 用于控制程序的流向,所控制的范围即为程序存储器区间,MCS-51系列单片机的控制转移 指令 相对丰富,有可对64kB程序空间地址单元进行访问的长调用、长转移指令,也有可对2kB字节进行访问的绝对调用和绝对转移指令,还有在一页范围内短相对转移及其它无条件转移指令,这些指令的执行一般都不会对标志位有影响。 . 子程序调用指令(1条) 子程序是为了便于程序编写,减少那些需反复执行的程序占用多余的地址空间而引入的程序分支,从而有了主程序和子程序的概念,需要反复执行的一些程序,我们在编程时一般都把它们编写成子程序,当需要用它们时,就用一个调用命令使程序按调用的地址去执行,这就需要子程序的调用指令和返回指令。 LCALL
[单片机]
基于C51的RS232基本通信程序
由于即将用到C#与单片机的通信程序,我回头使用了STC12系列的单片机,暂时停止AVR。因为AVR的编程器不属于RS232接口通信,弄起来麻烦。为了兼容性,我把程序的名称定义为和AVR里的名称一样,而且使用回调方式,让应用程序能够知道单片机现在发生了什么。编译器:Keil 程序如下: /*********** 函数说明 ******************** 本程序由discovery编写,基于8位UART通信 本程序占用TIMER1,并且占用using2寄存器组 使用本函数建议其它程序不要使用TIMER1 需要在系统里指定UART中断回调处理函数 void initUSART( // 初始化UART
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved