89c52从P1.0口输出占空比为50%的1000Hz,100Hz波形汇编语言程序

作者&投稿:运胜 (若有异议请与网页底部的电邮联系)
设系统时钟频率为12mhz,用汇编语言编程实现从p1.1输出频率为1000hz,占空比为40%的~

ORG 0000HLJMP MAINORG 000BHLJMP T0ISRORG 0030HMAIN: MOV TMOD,#02H MOV TH0,#156 MOV TL0,#156 SETB TR0 SETB ET0 SETB EA CLR A SJMP $T0ISR: INC A CJNE A,#4,T01T01: JNC T02 SETB P1.1 RETIT02: CLR P1.1 CJNE A,#10,T03 CLR AT03: RETI END

周期是 10us。
50% 的占空比?
那就是 5us 高电平、5us 低电平。

程序如下:

LOOP:
  SETB P1.0
  NOP
  NOP
  NOP
  NOP

  CLR P1.0
  NOP
  NOP

  SJMP LOOP

END

1000Hz,周期 1000 微秒。
100Hz,周期 10000 微秒。

都不是 1.5 的整数倍,会有误差。

换用 12 MHz、6 MHz,都更好一点。

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-333) ;100Hz=65536-3333
MOV TL0,#LOW(65536-333)
SETB TR0
SETB ET0
SETB EA
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-333)
MOV TL0,#LOW(65536-333)
SETB TR0
CPL P1.0
RETI
END


AT89C52单片机的技术参数??求知道的人给下??
P1.0 引脚除了是一个标准的I\/O 口外, 还可以通过编程使其作为定时\/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输 出时钟频率范围为61Hz—4MHz。 当设置定时\/计数器2 为时钟发生器时,C\/T2(T2CON .1)=0,T2OE (T2MOD.1) =1,必须由TR2(T2CON.2)启 动或停止定时器...

...并转换成二进制从单片机P1.0-P1.3口输出,次数30次
这是中断程序,每隔50毫秒进入一次中断,当count计到40时,即2s之后将count重新清零计数,标志位至一!而在主程序中,当标志位为一就产生一个随机数,同时将标志位置0!如此循环三十次!

单片机C语言 两个按键控制8位花样流水灯,P1.0接按键k1,P1.1接按键k2...
C语言程序如下:\/* 该实验是花样流水灯(8个发光二极管以各种方式循环点亮),功能是花样流水灯(8个发光二极管以1S间隔以各种方式循环点亮) *\/ include\/\/包含reg.52文件 define uint unsigned int\/\/宏定义 define uchar unsigned char\/\/宏定义 void delay(uint z);\/\/声明延时函数 uint a;\/\/定义循环...

用单片机的并行口接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7...
这个没有,不过这种程序网上很好找啊,还有不同的单片机接口不一样,你随便找个改改就好了,很简单的,你只要看懂原理了就很容易的,不要所有东西都希望别人给你整完整啊,这样学不到东西的,给你找了一个大概的,你看看 include<reg52.h> define uint unsignedint define uchar unsignedchar uchar c...

8051单片机的详细资料
对8052、8032,P1.0引脚的第二功能为T2定时\/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。 ③P2口(21脚至28脚):是准双向8位I\/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证...

化学常识1.0
4 Be铍9.0122 5 B硼10.811 6 C碳12.011 7 N氮14.007 8 O氧15.999 9 F氟18.998 10 Ne氖20.17 11 Na钠22.9898 12 Mg镁24.305 13 Al铝26.982 14 Si硅28.085 15 P磷30.974 16 S硫32.06 17 Cl氯35.453 18 Ar氩39.94 19 K钾39.098 20 Ca钙40....

单片机问题 高手 帮我做一下程序 高分
\/*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E , F *\/ void main(){ init(); \/\/初始化 i=0;wela=0x7f;\/\/选择点亮的数码管 while(1){ if(aa==10){ aa=0;dula=num_table[i];P0=dula;i++;wela=_crol_(wela,1)...

php xml读取的问题,在线等待……
php自带xmlrpc扩展,可以操作xml文件

关于CS的问题,机器人的事
bind "p" "waypoint save" (按P删除当前站着的路点) 记得在SAVA的时候输入 waypoint save nocheck SAVE不检查错误,不然路点要做好几乎不可能了,它会说N遍有错误-_-!按~出控制台 PODBOT2.0的厉害相信大家都见识过了,我就不在这罗嗦了,不过PODBOT2.0自己只带了CS1.1里官方地图的路点,如果我们刚从网上下了...

请问在那儿能下载一个免费正版的杀毒软件?
瑞星千禧世纪版升级序列号-name:qdj pass:1789882 n:csxk p:2298915 n:a p:2671367 n:b p:2570049 n:cq p: 2547100 瑞星千禧世纪版ID: TAIHN5YJ TAK4KTNK TAK4N5... TAPJ5UBU TAQ484SF TA94DIZK TA54HA2E TALIVVR8 TA6HM4J1 TAGIYWCQ TAZ4MDK7 TAWI5LL9 TAEIM62X TAP4IED4 T...HMEUY...

昌都地区13497389551: 51单片机两个io口同时输出两个占空比不同的方波?以下程序希望给点灵感. -
旁滢合心: 首先89C52内部没有硬件PWM发生器,只能通过定时器模拟!你可以通过两个定时器,T0控制周期,T1控制占空比.例如:实现周期为1000us,占空比为20%的PWM,用P1.0实现 首先你设置T0为65536-1000 (12M晶振) T1为65536-200 首先...

昌都地区13497389551: 51单片机,在p1.0口输出占空比一定(但不为1/2)的脉冲 -
旁滢合心: 本程序晶振为12MHZ,占空比为1:3,脉冲周期为60ms,低电平为20ms,高电平为40msWSTA EQU 20HSTA BIT WSTA.0 ;占空比标志位ORG 0000HLJMP MAINORG 000BH ;定时器0中断入口地址LJMP B_T0ORG 0030H MAIN: ...

昌都地区13497389551: 利用AT89s52单片机产生一个周期为2s的方波信号,占空比为50%,已知晶振 -
旁滢合心: #include<reg51.h>sbit sout=P1^0;unsigned char count=20;void timer1() interrupt 3 using 0{TH1=0X3C;TL1= 0XB0;Count--;if(count==0){count= 20 ;sout=~sout;}}void main(){IE=0x82;TMOD= 0x10 ;TH1=0X3C;TL1= 0XB0;TR1=1;While(1);}

昌都地区13497389551: 已知51单片机89C51的晶振为24Mhz,请利用定时器0定时的方法在P1.0口输出频率为100Hz,占空比为3/5的矩形波 -
旁滢合心: START:MOV R0,#5 MOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H...

昌都地区13497389551: STC89C52RC单片机,假设我把这个单片机的P0口全部置1(高电平), -
旁滢合心: 这取决于你的单片机供电电压,与你的I/O口置1的数量没有关系,如果供电5V,那么I/O口(空载)高电平也接近5V.

昌都地区13497389551: 用单片机 输出50hz方波 用两个按键调节占空间比例 初始值为最低 89c52单片机做 帮写个程序吧 -
旁滢合心: 50Hz的方波相当于20ms周期,用定时器来做12M晶振下定时计数值为20000,占空比每1%为200,所以可以做如下参考程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit pulse=P1^0; sbit key1=P1^1; sbit key2=P...

昌都地区13497389551: 89c52单片机求编程 -
旁滢合心: #include<reg51.h> #define uchar unsigned char uchar num=0; sbit pulse=P1^0; void t0isr() interrupt 1{ num++; if(num<6)pulse=1; else pulse=0; if(num>80)num=0; } main() { TMOD=0x02; TH0=6; TL0=6; ET0=1; TR0=1; EA=1; while(1); }

昌都地区13497389551: 单片机如何产生PWM信号 -
旁滢合心: 用普通I/O口采用软件定时器中断可以模拟PWM输出/*采用6MHz晶振,在P1.0脚上输出周期为2.5s,占空比为20%的脉冲信号*/ /*定时100ms,周期2.5s需25次中断,高电平0.5s需5次中断*/ #include <reg51.h> typedef unsigned char uchar; sbit P1...

昌都地区13497389551: 单片机输出38khz占空比50%的pwm波 检测p1.0口高电压持续时间是否大于1ms,计算的一个程序 还要控制显示 -
旁滢合心: 38khz占空比50%的pwm波 其实也就是 38khz占空比50%的方波了. 通过程序中断实现38khz占空比50%的pwm波,单片机确实几乎忙得不用做其它事了. 但是现在大多单片机都有 pwm 或者 可编程时钟输出,前者可以调频率和占空比,后者只能调频率(占空比固定50%),只需向特殊寄存器输入参数就可以得到想要的方波了,在不需要改变波形频率时,单片机就不用管它而去做其它事情了. 比如便宜的STC89C52RC 5元,就有一路可编程时钟输出.

昌都地区13497389551: 请问一下懂51单片机的朋友,我用的是 stc89c52的单片机,想问下关于烧录程序的问题. -
旁滢合心: 看来你对STC单片机真不了解,而在不知情的情况下,贸然用AT的烧录器来给STC单片机烧录,你真是敢想敢干,有魄力啊!其实,目前,STC单片机基本上成为国内51单片机的主流芯片,在百度这里关于STC单片机的烧录方法,随便找就能...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网