学到定时器和中断系统后又出51
学到定时器 和 中断系统了 于是乎 又编了 一个 能调速的啊大神给看看 这样 能行不。4个中断全用上了!赤纬 正反转只能直接控制驱动板了!还有导星赤经赤纬同时需要调整怎么弄好像弄不了啊?只能先调整赤经在调整赤纬了!#include <reg52.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit DIR = P1^3;
unsigned int a;
unsigned int d;
void delay(int z)
{
unsigned int b,c;
for(b=z;b>0;b--)
for(c=20;c>0;c--);
}
void main()
{
TMOD = 0X11; //定时器0,1。16位定时器
TH0 = 0X45;
TL0 = 0X96; //装载初值17814.
TR0 = 1; //启动定时器0
ET0 = 1; //启动定时器0中断
TH1 = 0X45;
TL1 = 0X96; //装载初值17814.
TR1 = 1; //启动定时器1
ET1 = 1; //启动定时器1中断
IT0 = 0;//低电平触发
EX0 = 1;//外部中断0允许
IT1 = 0;//低电平触发
EX1 = 1;//外部中断1允许
EA = 1; //开总中断
while(1); // 等待中断
}
void waizhong0() interrupt 0 //开外部中断0加速
{
LED1 = ~LED1;
delay(5);
LED1 =~LED1;
}
void waizhong1() interrupt 2 //开外部中断1减速
{
delay(1000);
LED1 =~LED1;
}
void timer0() interrupt 1 //定时器0中断服务程序
{
LED1 = ~LED1; //电机脉冲
}
void timer1() interrupt 3 //定时器1中断服务程序
{
LED2 = ~LED2; //电机脉冲
}
学得挺快嘛,加油啊 xiaoguilink 发表于 2016-2-24 22:22
学得挺快嘛,加油啊
嘿嘿 没事的时候 一边学一边调试着玩还挺好玩!{:2_185:}
本帖最后由 optical 于 2016-2-24 22:36 编辑
不用软件延时加减速,直接在中断里改变定时器的装载值速度就变了,还占用CPU少, 印象中在中断程序里面要给定时器重新赋值 另外楼主需要的话,我去年自己做的有AVR主控的带导星和USB转232的电跟控制器还有几套,主板是4层PCB,驱动32细分。原理图源代码都有你可以看我以前发过的帖子,目前只有跟踪功能,再多的功能没时间写了,你可以继续在这个基础上发挥。 optical 发表于 2016-2-24 22:40
另外楼主需要的话,我去年自己做的有AVR主控的带导星和USB转232的电跟控制器还有几套,主板是4层PCB,驱动3 ...
本人 对于编程是个菜啊!!刚开始自学51这 AVR 不懂啊{:2_185:}
页:
[1]