首页 > 电路 > 集成电路 > stc89c52rc内部固定时钟是多少,89c52最高时钟频率时多少

stc89c52rc内部固定时钟是多少,89c52最高时钟频率时多少

来源:整理 时间:2024-05-10 08:58:24 编辑:亚灵电子网 手机版

本文目录一览

1,89c52最高时钟频率时多少

好像是24M……

89c52最高时钟频率时多少

2,单片机STC89C52 有内部时钟吗

没有,STC15系列的才有内部振荡器(就是晶振)。

单片机STC89C52 有内部时钟吗

3,stc89c52有多少个定时器计数器

3个16位定时器/计数器
恩。对的。就是这样理解滴

stc89c52有多少个定时器计数器

4,请问89c52单片机的内部定时器工作时T脚及p3口还能同时用于作为

可以,内部定时器工作与端口无关。除非你把定时器用着外部计数器。
定时器0方式:setb ea ; setb tr0;方式一:mov tmod,#01 定时器1方式:setb ea ; setb tr1;方式二:mov tmod,#10 后面两个问会了吧
可以通过TMOD寄存器设置,当C/T位为0时TIMER做定时器用,与IO口无关,当C/T=1时,TIMER做计数器使用,与相对应的IO口有关.

5,用12M晶振驱动的STC89C52单片机做一个时钟用计时器0工作方

楼上的说的很明确了!1302是个不错的选择~“可我还是不清楚,就算是用DS1302也要用到显示调用的指令,同样会产生一定偏差,而且我觉得执行指令产生的时间误差,每次都有,这样每次显示的间隔应该就是相对固定的计时器中断产生的时间”你完全不用担心走时不准!因为走时是1302的工作!单片机只是把当前时间读出然后用1602显示!你就是写再多的程序也不会影响走时!顶多就是刷新速度慢!
由于方式1装入时要两个机器周期,所。。。----从定时器产生溢出、到发生中断、再到重新写入初始值,远远不止两个机器周期。 按照10个周期,基本上差不多。最好是用自动装入初始值的方式。
单片机每个指令消耗的时间一到两个机器周期的时间,用1602显示的程序要调用大量指令(汇编),所以显示的时间肯定不会分秒不差的。你想做很精确的时钟的话,最好用专门的时钟芯片比如:DS1302什么的。希望能帮到你哈再看看别人怎么说的。

6,我用STC89C52单片机给ADC0809编写一个的时钟信号脉冲程序请

和你的晶振频率有关的啊,如果是12M的话,定时器诶加倍,那就是200us翻转一次,周期400us,不然就不一定了。0809的转换的时钟频率典型值好像是600K吧,560k-600k之间。具体不记得了。
你的芯片的晶振呢?6M还是11.95M?
“每隔(65536-200)us,CLK翻转1次” 不是吧!应该是每隔200us翻转一次,楼上的不要搞反了。就如楼上的算法:CLK周期=2*200=400us
同样的问题,想问楼主是否有解决方案?在线急等。。感谢。。
你用的是定时器1,模式1(16位定时/计数),如果单片机用的是12MHz或11.0592MHz的晶振,则机器周期为1us,那么每隔200us,CLK翻转1次,CLK周期为400us
你好!和你的晶振频率有关的啊,如果是12M的话,定时器诶加倍,那就是200us翻转一次,周期400us,不然就不一定了。0809的转换的时钟频率典型值好像是600K吧,560k-600k之间。具体不记得了。希望对你有所帮助,望采纳。

7,STC89C52RC 单片机时钟带定时闹钟

stc89c52rc有3个定时器,t0、t1、t2
#include typedef unsigned int uint; typedef unsigned char uchar; sbit DS1302_SDA=P1^0; sbit DS1302_SCK=P1^1; sbit DS1302_RST=P1^2; sbit KEY1=P3^0; sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit BEEP=P3^7; uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar Display_Buffer[]={0x00,0x00,0xbf,0x00,0x00,0xbf,0x00,0x00}; uchar Display_Buffer1[]={0x00,0x00,0xbf,0x00,0x00,0xbf,0x00,0x00}; uchar Bit_CODE[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; uchar Current_Time[7]; uchar alarm_clock[7]; char Flag=0; char T_OR_A=0; uchar w=0,u=0,v; void delay_ms(uint x) { uchar i; while(x--)for(i=0;i<120;i++); } void WriteAByteToDS1302(uchar x) { uchar i; for(i=0;i<8;i++) { DS1302_SDA=x&0x01; DS1302_SCK=1; DS1302_SCK=0; x>>=1; } } uchar GetAByteFromDS1302(void) { uchar i,b=0X00,t; for(i=0;i<8;i++) { b>>=1; t=DS1302_SDA; b|=t<<7; DS1302_SCK=1; DS1302_SCK=0; } return (b/16*10+b%16); } void ResetDS1302(void) { DS1302_RST=0; DS1302_SCK=0; DS1302_RST=1; } uchar ReadData(uchar addr) { uchar dat; ResetDS1302(); WriteAByteToDS1302(addr); dat=GetAByteFromDS1302(); DS1302_SCK=0; DS1302_RST=0; return dat; } void WriteDS1302(uchar addr,uchar dat) { ResetDS1302(); WriteAByteToDS1302(addr); WriteAByteToDS1302(dat); DS1302_SCK=0; DS1302_RST=0; } void SetDS1302(void) { uchar i; WriteDS1302(0x8e,0x00); for(i=0;i<7;i++) { WriteDS1302(0x80+i*2,(Current_Time[i]/10<<4)|(Current_Time[i]%10)); } WriteDS1302(0x8e,0x80); } void GetTime(void) { uchar i,addr=0x81; for(i=0;i<7;i++) { Current_Time[i]=ReadData(addr); addr+=2; } } void time0Init(void) { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void ScanKey(void) { if(KEY1==0) { delay_ms(10); if(KEY1==0); { while(!KEY1); w=w++; if(w==5)w=1; switch(w) { case 1:Flag=1;break; case 2:Flag=1; break; case 3:Flag=1; break; case 4:SetDS1302(); Flag=0; break; } } } if(w!=0) { if(KEY2==0) { delay_ms(10); if(KEY2==0) { while(!KEY2); switch(w) { case 1:Current_Time[0]++;break; case 2:Current_Time[1]++;break; case 3:Current_Time[2]++;break; } } } if(KEY3==0) { delay_ms(10); if(KEY3==0) { while(!KEY3); switch(w) { case 1:Current_Time[0]--;break; case 2:Current_Time[1]--;break; case 3:Current_Time[2]--;break; } } } } if(KEY4==0) { delay_ms(10); if(KEY4==0) { while(!KEY4); u++; if(u==5)u=1; switch(u) { case 1:T_OR_A=1; break; case 2:break; case 3:break; case 4:T_OR_A=0;break; } } } if(u!=0) { if(KEY2==0) { delay_ms(10); if(KEY2==0) { while(!KEY2); switch(u) { case 1:alarm_clock[0]++;break; case 2:alarm_clock[1]++;break; case 3:alarm_clock[2]++;break; } } } if(KEY3==0) { delay_ms(10); if(KEY3==0) { while(!KEY3); switch(u) { case 1:alarm_clock[0]--;break; case 2:alarm_clock[1]--;break; case 3:alarm_clock[2]--;break; } } } } } void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP = ~BEEP; delay_ms(t); } BEEP = 0; } void main(void) { //uchar i; SetDS1302(); time0Init(); //GetTime(); while(1) { if(Flag==0) GetTime(); Display_Buffer[0]=DSY_CODE[Current_Time[2]/10]; Display_Buffer[1]=DSY_CODE[Current_Time[2]%10]; Display_Buffer[3]=DSY_CODE[Current_Time[1]/10]; Display_Buffer[4]=DSY_CODE[Current_Time[1]%10]; Display_Buffer[6]=DSY_CODE[Current_Time[0]/10]; Display_Buffer[7]=DSY_CODE[Current_Time[0]%10]; //Display_Buffer[0]=DSY_CODE[Current_Time[2]/10]; ScanKey(); /*for(i=0;i<8;i++) { P2=Bit_CODE[i]; P0=Display_Buffer[i]; delay_ms(2); }*/ Display_Buffer1[0]=DSY_CODE[alarm_clock[2]/10]; Display_Buffer1[1]=DSY_CODE[alarm_clock[2]%10]; Display_Buffer1[3]=DSY_CODE[alarm_clock[1]/10]; Display_Buffer1[4]=DSY_CODE[alarm_clock[1]%10]; Display_Buffer1[6]=DSY_CODE[alarm_clock[0]/10]; Display_Buffer1[7]=DSY_CODE[alarm_clock[0]%10]; if((Current_Time[2]==alarm_clock[2])&&(Current_Time[1]==alarm_clock[1])&&(Current_Time[0]==alarm_clock[0])) Play(1); } } void tiemr0() interrupt 1 { //if(flag1) j++; uchar i,j; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(T_OR_A==0) { for(i=0;i<8;i++) { P2=Bit_CODE[i]; P0=Display_Buffer[i]; delay_ms(2); } } else { for(j=0;j<8;j++) { P2=Bit_CODE[j]; P0=Display_Buffer1[j]; delay_ms(2); } } } 你可参考一下!
文章TAG:内部stc89c52rc内部固定时钟是多少89c52最高时钟频率时多少

最近更新

  • 大口钳形表指针式钳口直径最大多少,液压钳口径最大的是多少大口钳形表指针式钳口直径最大多少,液压钳口径最大的是多少

    液压钳口径最大的是多少你太聪明了,液压钳最大的钳口能到150mm,甚至还要大,你不可能做这么粗的锁。建议你用65mn钢制作一个淬火锁鼻,在买把锁将锁鼻更换,这样就不怕了。65mn钢比液压钳的工.....

    集成电路 日期:2024-05-10

  • 8088芯片线宽,芯片80868088芯片线宽,芯片8086

    目前芯片内部采用主流集成电路芯片的线宽,m是指晶体管的宽度(也叫线宽)。在芯片占用相同面积的情况下,因为原来的设备和芯片大部分都是用纳米技术生产的,但老对手AMD还在,芯片的最底层器件是.....

    集成电路 日期:2024-05-10

  • 低压无极调光电路,无级调光电路图低压无极调光电路,无级调光电路图

    无限调光。无级调光电阻可以实现无级调光控制,可以满足客户对各种照明场景的需求,调光灯是由双向触发二极管和双向晶闸管组成的台灯调光电路,无级调光技术还可以实现多通道调光,在同一电路.....

    集成电路 日期:2024-05-10

  • io高电压的好处,高压处理器怎么样?io高电压的好处,高压处理器怎么样?

    高电压平台的锂电池有两个优点:容量可以比普通锂电池更大,将高电压引入大城市和大负荷中心带来的好处如下:(1)提高了电网的传输能力,可以很好地满足人们生活和工业用电负荷的日益增长的需.....

    集成电路 日期:2024-05-09

  • 300k是多少钱,无线网卡300KS的价格要多少有没有限制时间300k是多少钱,无线网卡300KS的价格要多少有没有限制时间

    无线网卡300KS的价格要多少有没有限制时间300包年一般12002,400k是多少钱工资待遇400k可以有很多种意思的,但是如果是在说工资,那就是400000元,k就是千的简称,400k就是四十万的意思。3,300K.....

    集成电路 日期:2024-05-09

  • 小米5换电源芯片多少钱,急5200换个手机电源ic要多少钱小米5换电源芯片多少钱,急5200换个手机电源ic要多少钱

    急5200换个手机电源ic要多少钱2,5530手机的电源IC坏了换一个大概多少钱3,小米5s换电池电芯多少钱手机店老板开价四五百还价一百被宰了4,手机维修换个ic电源得多少钱5,小米5电源芯片多少钱6.....

    集成电路 日期:2024-05-09

  • 控电压电路,控制电路电压控电压电路,控制电路电压

    功能不同:通俗地说,电源电路是主电路,驱动负载,电流和电压水平相对较高,而信号电路用于采样、传感和控制,相当于计算机的CPU,它反馈信号处理并作用于主电路。multisim中有几个受控电压源,这里.....

    集成电路 日期:2024-05-09

  • 并联电路中的分压,电阻是并联分压的吗?并联电路中的分压,电阻是并联分压的吗?

    也就是说,串联电路中电阻大的电器共用一个大电压。并联电路中没有分压定律,因为并联电路中所有支路两端的电压都相等,并联电路中存在分流定律:I、电流回路中电源的电压由各元件承担,这意味.....

    集成电路 日期:2024-05-09