|
一個51單片機做的帶過零檢測的可控硅驅動,下面是仿真原理圖:
利用單片機中斷實現可控硅的過零檢測,下面是源代碼:
- #include <reg51.h>
- #include"intrins.h"
- sbit fan=P3^7;
- sbit pressed=P3^5;
- unsigned char fan_open=0;
- unsigned char int_time=0;
- unsigned char table[9]={20,30,40,50,60,70,80,90,100};
- unsigned char p=0;
- //中斷子程序
- void ext0(void) interrupt 0
- {
- int_time++;
- fan_open--;
- if(fan_open==0) {fan_open=table[p];fan=0;}
- if(int_time>=100) {fan_open=table[p];int_time=0;fan=1;}
- }
- //延時子程序
- void delay(void)
- {
- unsigned int i,j;
- for(i=0;i<10000;i++)
- for(j=0;j<4;j++)
- _nop_();
- }
- /************主 程序*************/
- void main(void)
- {
- fan_open=table[p];
- IT0=1;
- EA=1;
- EX0=1;
- fan=1;
- while(1)
- {
- if(pressed==0) {if(p>=9) p=0;p++;}
- delay();
- }
- }
復制代碼
|
-
-
可控硅過零檢測.rar
2016-9-9 20:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
67.49 KB, 下載次數: 577, 下載積分: 黑幣 -5
評分
-
查看全部評分
|