单片机三相脉冲触发C程序_第1页
单片机三相脉冲触发C程序_第2页
单片机三相脉冲触发C程序_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/整个控制过程为先键入所要的控制角,控制角被汁算成相应的触发延时时间, 并等待当单片机检测到外部中断信号。当检测到外部中断信号后启动定时器1延时 相应的时间,/之后接着启动定时器0并产生发出六脉冲信号经过变换放大触发相应的晶闸管导 通,以获得相应的电压#include/SincludeO#include#define uint unsigned int#define uchar unsigned charuchar code table=0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c,0x39, 0x5e

2、, 0x79, 0x71, 0;uchar temp;uchar num;/键盘返回值uchar jishu;uchar ge;uchar shi;uchar shijian;float dingshi;uint dingshi_l;sbit dula=P26;sbit wela=P27;/sbit A_1 二P2飞;/sbit B_1二P2"7;sbit ug_l=Pr2; /脉冲输出引脚定义sbit ug_2=Pl"3;sbit ug_3二F4;sbit ug_4二Pl/5;sbit ug_5二Fl/6;sbit ug_6二F7;uchar js=0;/六脉冲计数器vo

3、id init ()/定时器、中断初始化函数TM0D二0x11;EA二 1;ET0二1;ET1二1;TR1二0;TR0二0:IP二0x08; /Tlwei gao you xian ji IP二0x09 /IPH=0x01;ITO二1;/外中断0为下降沿触发 TCON中设置THO二(65536-1667)/256;定时时间,即脉冲宽度TLO二(65536-1667)%256;void delay (uint z)/1ms 延时uint x, y;for (x二z;x>0;x-)for (y=U0;y>0;y);void display(uchar shi, uchar ge)dul

4、a=l;Portableshi;dula=0;P0二Oxff;wela=l;F0二Oxfe;wela=0;delay(5);dula=l;Portablege;dula=0;P0二Oxff;wela=l;P0二Oxfd;wela=0;delay(5);uchar Keyboard()P3=0xfe;temp二P3;temp=temp&0xfO;while(temp!=0xf0)delay (5);temp二P3; temp=temp&0xfO;while(temp!=0xf0) jishu+;temp二P3;switch(temp)case Oxee:num=l; break;

5、case Oxde:num=2; break;case Oxbe:num=3; break;case 0x7e:num=4; break; while (temp !=OxfO)/松手检测 temp二P3; temp=temp&OxfO;P3二Oxfd;temp二F3;temp=temp&OxfO;while(temp!=OxfO)delay (5);temp二P3; temp二temp&OxfO; while(temp!=OxfO) jishu+;temp=P3; switch(temp)case 0xed:num=5; break;case Oxdd:num=6;

6、break;case 0xbd:num=7: break;case 0x7d:num=8; break;wh订e(temp!=OxfO) temp=P3; temp=temp&OxfO;P3二Oxfb;temp=P3;temp=temp&OxfO;while(temp!=OxfO)delay(5);temp二P3; temp二temp&OxfO;while(temp!=OxfO) jishu+;temp=P3;switch(temp)case Oxeb:num=9; break;case 0xdb:num=10; break;case Oxbb:num=ll; brea

7、k;case 0x7b:num=12; break;while(temp!=OxfO) temp二P3; temp=temp&OxfO;P3二Oxf7;temp二F3;temp=temp&OxfO;while(temp!=OxfO)delay (5);temp二P3;temp二temp&OxfO; wh订e(temp!=OxfO) jishu+;temp二P3;switch(temp)case 0xe7:num=13; break;case 0xd7:num=14; break;case 0xb7:num=15; break;case 0x77:num=16; brea

8、k;while(temp!二Oxf0)temp二P3; temp=temp&0xfO;return num;void main()init();EXO二1; dula=l;PO二0x3f; dula=0;PO二Oxff; wela=l;PO二Oxfc; wela=0; delay (5);while(1) Keyboard ();/按键一次shiwei/按键两次geweiif(jishu=l) shi=num;if(jishu=2)ge=num; jishu=O;shijian=shi*10+ge;T二20MSdisplay (shil, gel);/*从同步电压跳跃点算起经控制角a+

9、30。的延时,将a+30。转化为C/T1的时间常 数,在同步电压跳跃点开始定时,C/T1溢出时,在中断中置入新的时间常数,其 数据对应的定时时间为工频交流电的30°脉宽时间,并且启动T0,在TO中断中输 出6路脉冲。*/3最后进入的中断void zhongduan() interrupt 1/定时器 t0 中断函数js+; /js为6脉冲计数值,执行完该语句JS二1TH0二(65536-1667)/256;TL0二(65536-1667)%256;辻(js 二二 1)ug_6二0;Ug_l二0;辻(js=2)Ugl=l;ug_2二1;辻(js3)ug_l=0;ug_2二0;if (j

10、s=4)ug_2二1;ug_3二1;辻(js=5)ug_2=0;ug_3二0;辻(js=6)ug_3二1;ug_4二1;辻(js=7)ug_3二0;ug_4二0;辻(js二二8)ug_4二1;ug_5二1;if(js=9)ug_4二0;ug_5二0;if(js=10)ug_5二1;ug_6二1;辻(js=ll)ug_5=0;ug_6二0;if (js=12)ug_6=l;Ug_l二1;js 二0;/2其次进入的中断void Tl_dingshi() interrupt 3TR1=O;THO二(65536-1667)/256;/脉宽定时时间为脉冲宽度30°所对应的时间约,其 中晶振12MHZ,工频f二50HZTL0二(65536-1667)%256;TR0二1;/启动定时器0/I首先进入的中断 同步脉冲为矩形脉冲(经变换过的)且为反向(经过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论