‘壹’ 求51单片机代码 STC15F2K60S2.H
给一种模式答案:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
MOV R2,#8
MOV A,#0FEH
SJMP $
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
DJNZ R2,T0E
MOV P1,A
RL A
T0E:
RETI
END
‘贰’ STC15F2K60S2单片机
这个不能改的。只能通过时钟分频寄存器把主时钟分频。比如主时钟设为16M,分频值为16,那么单片机及外设的时钟就是1M。不过即使如此,相同的代码执行时间也和STC89系列不一致。因为STC15系列并不是把所有的指令执行时间都提高了12倍,所以还是修改代码吧。。。
‘叁’ STC15F2K60S2单片机用定时器2做波特率发生器的串口程序,求大神解答
/*这个STC-ISP带这个工具的,我一般也就用这个,下面供参考*/
voidUartInit(void) //[email protected]
{
S2CON=0x50; //8位数据,可变波特率
AUXR|=0x04; //定时器2时钟为Fosc,即1T
T2L=0xE0; //设定定时初值
T2H=0xFE; //设定定时初值
AUXR|=0x10; //启动定时器2
}
‘肆’ STC15系列单片机的延时函数问题
你这里的系统频率应该是指晶振频率,和指令周期是两码事,不过他们是存在个比率关系;
如C51芯片,通常系统频率为12MHz,但是其最小指令周期为 1uS,即 1MHz;
又如STM32f1xx芯片,其晶振频率为12MHz,可在内部就把这个频率提升到了72MHz,这样其最小指令周期就会比 1uS小得多了;
‘伍’ 请教STC15系单片机《ADC使用内部基准计算外部电压》问题
这个在数据手册里有详细描述,也可参考工具软件里面的例程。
也就是说“隙电压”是一个稳定的值,这个值在“标准供电电压下”的“测量值”存储在单片机的内部,通过读取这个事先存储的值,已知标准供电电压值,再和当下读取的值共同计算出当下实际供电电压值,然后就可以计算出你想要检测的东西。
‘陆’ 求讲解这段STC15单片机的代码,外部中断2让LED灯亮
“为什么按下外部中断键就能让LED灯亮一下”
因为程序里面一旦进入外部中断,就把P1.0管脚翻转一下,如果接了LED就会有亮灭的变化。
“P10=!P10 是什么意思”、
将P1.0管脚的输出电平翻转。
“为什么我改成P20=!P20就报错”
因为程序里只定义了P10,P20这个符号没有定义,你需要自己添加 sbit P20 = P2^0;
“开发板的外部中断焊接到单片机的P1.0引脚,如果我焊接的不是P1.0引脚,那P10=!P10还好使吗”
外部中断跟P1.0管脚没有关系。你重新看电路图去……
“为什么头文件加上#include“STC15.H”就会报错”
因为编译器找不到这个文件在哪儿,当然就会嗷嗷叫唤……
‘柒’ 关于STC15单片机定时器产生PWM的问题。官方例程如下。
貌似确实如此,if....else里面应该再加一个P_PWM置位、清零语句。
‘捌’ STC15F2K60S2单片机利用中断求脉冲周期可直接调用的子函数(要求输出的值是频率f0)
第一个上升沿到来,读取计数器数据jishu1,第二个上升沿到来,读取计数器数据jishu 2,两者相减根据时钟频率算出时间T ,其倒数即为频率