可以做到在自動車床停止工作一段時間后,把電動機關閉,用以節省電能,延時關閉時間可控,數碼管顯示控制時間,單片機工作狀態有數碼管顯示
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png (57.6 KB, 下載次數: 37)
下載附件
2020-3-9 15:39 上傳
51hei.png (17.56 KB, 下載次數: 44)
下載附件
2020-3-9 15:39 上傳
單片機源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- unsigned char yanshishu,xianshishu,yanshishu2,xianshishu2,qqq;
- sbit kaiqi=P1^0;// 自動關閉啟動開關
- sbit stop=P1^1;// 連動停止檢測
- sbit ka=P1^2; // 繼電器輸出
- sbit on=P1^3; // 電源狀態指示
- sbit off=P1^4; // 工作狀態指示
- code unsigned char dis1[]={0xc0,0xf9,0xa4,
- 0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};//數碼管顯示碼
- void csh(void)
- {
- IT0=1;
- IT1=1;
- EX0=1;
- EX1=1;
- EA=1;
- }
- void delay(unsigned int amt) //@12.000MHz
- { unsigned int w;
- unsigned char i, j, k;
- for(w=amt;w>0;w--)
-
- {
- _nop_();
- i = 8;
- j = 154;
- k = 122;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- if(kaiqi==0)
- {
- on=0;
- off=1;
- }
- if(kaiqi==1)
- {
- on=1;
- off=0;
- }
- }
- }
-
- void main()
- { csh();
- yanshishu=1;
- xianshishu=1;
- yanshishu2=0;
- xianshishu2=0;
- P2=dis1[xianshishu2];
- P0=dis1[xianshishu];
- while(1)
- { kaiqi=1;
- stop=1;
- ka=1;
- if(kaiqi==0)
- {
- on=0;
- off=1;
- }
- if(kaiqi==1)
- {
- on=1;
- off=0;
- }
- if(kaiqi==0)
- { if(kaiqi==0)
- {
- on=0;
- off=1;
- }
- if(kaiqi==1)
- {
- on=1;
- off=0;
- }
- delay(3);
- if(stop==0)
- {
- qqq=yanshishu2*60+yanshishu*10;
- delay(qqq);
- if(stop==0)
- {
- ka=0;
-
- delay(3);
- ka=1;
- }
- }
- }
- }
- }
- void wzd0(void) interrupt 0
- {
- yanshishu++;
- xianshishu++;
- P0=dis1[xianshishu];
- if(xianshishu==7)
- {
- xianshishu=1;
- yanshishu=1;
- }
- }
- void wzd1(void) interrupt 2
- {
- yanshishu2++;xianshishu2++;
- P2=dis1[xianshishu2];
- if(xianshishu2==10)
- {
- xianshishu2=0;
- yanshishu2=0;
- }
- }
復制代碼
51hei.png (15.44 KB, 下載次數: 39)
下載附件
2020-3-9 15:39 上傳
所有資料51hei提供下載:
關沖床.zip
(755.97 KB, 下載次數: 15)
2020-3-9 15:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|