//整个控制过程为先键入所要的控制角,控制角被计算成相应的触发延时时间,//并等待当单片机检测到外部中断信号
当检测到外部中断信号后启动定时器1延时相应的时间,//之后接着启动定时器0并产生发出六脉冲信号经过变换放大触发相应的晶闸管导通,以获得相应的电压#include//#include#include#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};uchartemp;ucharnum;//键盘返回值ucharjishu;ucharge;ucharshi;ucharshijian;floatdingshi;uintdingshi_1;sbitdula=P2^6;sbitwela=P2^7;//sbitA_1=P2^6;//sbitB_1=P2^7;sbitug_1=P1^2;//脉冲输出引脚定义1
2-7sbitug_2=P1^3;sbitug_3=P1^4;sbitug_4=P1^5;sbitug_5=P1^6;sbitug_6=P1^7;ucharjs=0;//六脉冲计数器voidinit()//定时器、中断初始化函数{TMOD=0x11;EA=1;ET0=1;ET1=1;TR1=0;TR0=0;IP=0x08;//T1weigaoyouxianjiIP=0x09
//IPH=0x01;IT0=1;//外中断0为下降沿触发TCON中设置TH0=(65536-1667)/256;//定时时间,即脉冲宽度TL0=(65536-1667)%256;}voiddelay(uintz)//1ms延时{uintx,y;for(x=z;x>