单片机怎么让四个波形变成十倍关系啊?现在是两倍。
#include<reg52.h>
int i;
void t0int() interrupt 1 using 0
{
TH0=(65536-500)/256; //重新赋值 12M晶振计算,指令周期1uS
TL0=(65536-500)%256; //1mS方波半个周期500uS,即定时500次
i++;
}
void main()
{
SCON=0x50;
TH1=-3;
TR1=1;
TI=1;
TMOD = 0x21;//给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
i=0;
while(1){
P1=i%16;
}
}
定时器中断里定义4个变量分别对应4个bit的亮灭,假设就是num1, num2吧
num1计数到10的时候,num1置0,num2加1,num2计数到10的时候,num2置0,num3加1,以此类推
然后num1大于5, bit0输出1,否则输出0, 其它bit一样逻辑
指令中的形式地址不是操作数的地址,而是 “操作数地址的地址”。
其中在多次间址时,需要查看数据单元格中的第一位数据,如果为 111 则表示继续间址,如果为 000 则为真正地址。
特点
JMPJMPJMP @A@A@A 指令,表示跳转到 AAA 单元中所指示的地址,为间接寻址。正因为这条间址指令,我们转入子程序时只需修改 A 单元中数据,即可实现从子程序再跳转回主程序的功能。