用89S51单片机输出40KHZ方波

作者&投稿:单于闹 (若有异议请与网页底部的电邮联系)
51单片机产生40KHZ方波~

程序为:
#include
#define uchar unsigned char
#define uint unsigned int
sbit Waveout=P1^0;
uchar
void main()
{
TMOD=0x01;
TH0=0xFF;
TL0=0xE8; //TL0=(65536-24)%256=232,即E8
EA=1;
ET0=1;
TR0=1;
while(1);
}
void T0_time() interrupt 1
{
TH0=0xFF;
TL0=0xE8;
Waveout=!Waveout;
}

扩展资料
使用方法
1.将仿真器插入需仿真的用户板的CPU插座中,仿真器由用户板供电;
2.将仿真器的串行电缆和PC机接好,打开用户板电源;
3.通过Keil C 的IDE 开发仿真环境UV2 下载用户程序进行仿真、调试。

硬件说明
1、使用用户板的晶振:仿真器晶振旁有两组跳线用来切换内部晶振和用户板晶振,当两个短路块位于仿真器晶振一侧时,默认使用仿真板上的晶振(11.0592MHz), 当两个短路块位于电容一侧时,使用用户板的晶振。
2、为便于调试带看门狗的用户板,仿真器的复位端未与用户板复位端相连;故仿真器的复位按钮只复位仿真器,不复位用户板;若要复位用户板,请使用用户板复位按钮。
参考资料来源:百度百科-51单片机

估计单片机端口输出限制,不知你用的那款51,我用的一款51比常用的块10倍左右,即使我把中断设为最小,也只能到600KHZ,晶振可是25MHZ的。

void main(void)
{
EA=1;
ET0=1;
TMOD=0x10; //使用定时器T1的模式1
TH1=(65536-12)/256; //定时器T1的高8位赋初值
TL1=(65536-12)%256; //定时器T1的高8位赋初值
TR1=1;
TF1=0;
while(1)
{
while(TF1==0)
;
TF1=0;
P1_0=~P1_0; //将P1.0引脚输出电平取反
TH1=(65536-12)/256;
TL1=(65536-12)%256;
}
}

帮你重新写了个,频率有些偏差,不过很小。可以考虑下

这个程序和实际的会差很远,频率恐怕20K都到不了,程序调用函数的都花几个指令周期,里面又有2个赋值指令,1个置位,将用去近10个单指令周期,即是近10us的时间,
直接在主函数里用空操作几个就得了。

如果用12M的晶振加上你的程序,鬼才知道输出什么。
仔细看看定时器吧,计数时间有问题。
另外,一个指令就是6个周期,你用for最后的跳转和调用的时间不能忽略。
所以只能用重复模式的定时器


AT89S51的下载程序
所以,以下内容是对89S51单片机的中断系统的介绍。1中断:程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理内部事件的中断服务程序中去;完成中断服务的程序后,CPU继续原来被打断的程序,这样的过程称为中断过程。2中断源:能产生中断的外部和内部事件。89S51有5个中断源:(1) INT0:外部中断0请求...

简述89S51单片机特殊功能寄存器IP的各位组成,并说明各位的功能。_百度...
89S51特殊功能寄存器IP是中断优先级控制寄存器,各位功能说明如下:符号 位置 位地址 说明(1=高优先级,0=低优先级)- IP.7 BFH 未实现,备用 - IP.6 BEH 未实现,备用 PT2 IP.5 BDH 定时器2中断优先级(只有80×2)PS IP.4 BCH 串行端口中断...

89s51单片机有哪几个中断源?对应的中断入口地址是什么?
定时器0中断(T0),入口地址000BH,中断号1(interrupt1)。外部中断1(INT1),入口地址0013H,中断号2(interrupt2)。定时器1中断(T1),入口地址001BH,中断号3(interrupt3)。串行中断(RI\/TI),入口地址0023H,中断号4(interrupt4)。此外,89S52多了个定时器2中断(T2),入口地址002BH...

89s51单片机高电平能驱动LED吗?高电平和低电平各是什么范围?
不外接上拉电阻时也可以驱动,通过设置IO口的模式为强推挽输出,其输出电流可达20mA,不过手册建议整个芯片电流不超过55mA。一般外接上拉电阻来驱动LED。对于工作电压5V的MCU,高电平接近于实际输入工作电压,低电平约为0.1V吧,实测。假如是高低电平的定义,TTL电路是大于1.3V还是1.4V的,低电平是小于...

89sc51和89sc51有什么区别?
89s51是89c51的升级版本,89SXX可以向下兼容89CXX等51系列芯片。其区别如下:1、89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。2、新增加很多功能,性能有了较大提升。3、89s51有ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作...

9单片机,AT89S51单片机中既可位寻址又可字节寻址的单元是
A20H89s51单片机中可位寻址和字节寻址的范围为20H~2FH,共128位。内部存储器地址为00H~FFH,而00H~7FH低128字节是RAM区,都是字节寻址的。其中权20H~2FH,共16个字节的RAM,即可以位寻址,也可以字节寻址。单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用...

一个程序能同时在单片机8051,89S51和AT89C51运算吗?三种单片机属于同种...
完全可以的,实际上那个他们是同一系列的单片机,只是他们的系列或型号有些不同罢了。属于是一个公司的产品,新型号的一般都会兼容旧型号的产品的。如果能在8051上运行的程序,在89S51,及AT89C51上也应该能够运行,因为后面的两种单片机兼容第一种单片机,但是,能在后面的片子上运行的程序不一定能在前面的...

单片机89s51有90c51什么区别?可以互相替换吗?
90c51?很多初学51单片机的网友会有这样的问题:AT89S51是什么?书上和网络教程上可都是8051,89C51等!没听说过有89S51?!这里,初学者要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用...

单片机89c51、89 c52、89s51之间的最大区别是什么?
89C51和89C52的区别是51的FLASH为4K,52和8K;89C51\/89C52和89S51的区别是:C系列需要强电擦写程序,需要把电压提到十几伏(还是多少来着,忘记了。反正我当时做的下载器需要MC34063升压才行)才能下载程序。S系列则不需要,买个USB ASP就可以下载了。电脑有并口的话更加简单,用一片74芯片就可以了 ...

89S51单片机复位后,默认的工作寄存器为什么?其中R7占用的片内RAM单元...
89S51单片机复位后,默认的工作寄存器组为0组,该组共8个寄存器,每个寄存器一个字节,其地址分别为00H 01H 02H 03H 04H 05H 06H 07H,其中R7占用的片内RAM单元地址07H。

建阳市18314056423: 用89S51单片机输出40KHZ方波 -
端木榕伊缓: 如果用12M的晶振加上你的程序,鬼才知道输出什么.仔细看看定时器吧,计数时间有问题.另外,一个指令就是6个周期,你用for最后的跳转和调用的时间不能忽略.所以只能用重复模式的定时器

建阳市18314056423: 51单片机编程输出40khz方波 程序? -
端木榕伊缓: 40khz方波是周期为25us的方波,可以正负电平各延时大约12us P1口输出40khz方波 L1:CLR A MOV P1,A LCALL DELAY SETB A MOV P1,A LCALL DELAY SJMP L1 DELAY:MOV R1,#6 L1:DJNZ R1,L1

建阳市18314056423: C51单片机如何产生40Kmz方波 求程序 -
端木榕伊缓: 将定时器的周期设为12.5uS,每次中断时将IO取反,即可得到40KHz的方波输出.这个定时周期对标准51来说,要求有点高,或者你可以用比较高速的51单片机,或者你单片机不做别的事情还是可以的.

建阳市18314056423: 单片机如何输出40KHZ信号 -
端木榕伊缓: 首先要说清楚是用什么型号的单片机,MCS51速度太慢,新设计的PIC、AVR、430速度比51快的多.二是40Khz信号?是什么信号是方波吗?如果是方波,用比较快的单片机,没有问题.

建阳市18314056423: 急求汇编语言,单片机P1.0口输出40KHz方波波发生程序, 在发射超声波同时启动内部的定时器T0
端木榕伊缓: 40KHZ方波持续时间用T0定时,查TF0定时到就退出40KHZ发生程序. ;MOV TH0,TL0 定时值 F40K: setb tr0;开定时 khz:cpl p1.0;输出 jb tf0,kret;定时到?退出 jb tf0,kret jb tf0,kret jb tf0,kret nop sjmp khz;循环发送40K波 kret:ret;定时已到,退出

建阳市18314056423: 单片机的软件设计中如何实现发出40khz的脉冲信号 -
端木榕伊缓: 做个20K的CTC中断 然后控制某个P*.* (I/O口),如P1.0 CPL P1.0 就OK了

建阳市18314056423: 各位大神,我想要一份程序,是由单片机定时器0发送40KHZ方波,定时器1计时,外部中断接收回波的C程序 -
端木榕伊缓: 40K方波,周期是25微秒,定时器做的话,晶振最好是24M的,用12M晶振的话,最好用有1T模式的单片机比如STC1XXX系列.用自动重装载模式就可以了.

建阳市18314056423: 单片机输出40KHz方波对INT1脚有干扰是什么原因 -
端木榕伊缓: INT1脚上有引起中断的波形吗?先看看是不是INT1脚上确实来了一个引起中断的信号,以此确认异常来自外部还是内部,如果是内部,看看程序吧,肯定有BUG,如果是外部,并且线路没有问题的吧,可能是布局不是很合理,如果中断是下降沿触发的话,在前级加点处理电路转成低电平触发试下

建阳市18314056423: 如何用51系列单片机发射脉冲? -
端木榕伊缓: 51单片机本身就有两个自带的可编程定时器/计数器T1,T2有四种工作方式,只要写入控制字和设置记数初值,就可以输出不同频率的脉冲.51单片机的为6M HZ,所以存入的值可以计算的为0F0H,选用方式1,控制字 MOV TMOD,#01H ;选用方式1 MOV TL0,#0F0H ;装入初值 SETB TR0 ;启动 SETB ET0 ;允许中断 SETB EA ;CUP开放中断

建阳市18314056423: 用51的定时器产生40khz的方波,请高手帮忙检查一下哪里不对,谢谢! -
端木榕伊缓: 假设晶振是12M,要产生40K方波,需要延时12.5us,定时器的延时还要考虑函数返回,中断延迟等方面的; 如果要求精度很高的话,楼主的程序实现40k的方波比较困难 延时时间不是很长的话,建议用nop指令来实现

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