熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2017-1-13 15:45
正文摘要:當(dāng)電機(jī)較大時(shí),啟動(dòng)是個(gè)必須注意的問題。比較簡單且用的很多的是星三角啟動(dòng),這里寫出了星三角啟動(dòng)的核心部分。每一個(gè)IO口接上繼電器,再控制交流接觸器,就OK了。但,要注意,星、角交流接觸器一定要互鎖,否則一旦 ... |
| #include <reg51.h> // 硬件定義 sbit K1 = P3^1; // 啟動(dòng)按鍵 sbit J1 = P1^5; // 主繼電器 sbit J2 = P1^6; // 星接繼電器 sbit J3 = P1^7; // 角接繼電器 // 全局變量 unsigned int ms_count = 0; // 毫秒計(jì)數(shù)器(10ms/次) unsigned char sec_count = 0; // 秒計(jì)數(shù)器(100次10ms=1s) bit star_start_flag = 0; // 星型啟動(dòng)標(biāo)志 bit delay_done_flag = 0; // 50s延時(shí)完成標(biāo)志 bit switch_delay_flag = 0; // 200ms切換緩沖延時(shí)標(biāo)志 // 定時(shí)器0初始化(10ms中斷一次,12MHz晶振) void Timer0_Init(void) { TMOD &= 0xF0; // 清定時(shí)器0模式 TMOD |= 0x01; // 定時(shí)器0:16位定時(shí)模式 TH0 = (65536 - 10000) / 256; // 10ms初值(12MHz) TL0 = (65536 - 10000) % 256; ET0 = 1; // 使能定時(shí)器0中斷 TR0 = 1; // 啟動(dòng)定時(shí)器0 EA = 1; // 開總中斷 } // 定時(shí)器0中斷服務(wù)函數(shù)(10ms觸發(fā)一次) void Timer0_ISR(void) interrupt 1 { TH0 = (65536 - 10000) / 256; // 重裝載10ms初值 TL0 = (65536 - 10000) % 256; // 1. 50s星型啟動(dòng)延時(shí)計(jì)數(shù) if (star_start_flag && !switch_delay_flag) { ms_count++; if (ms_count >= 100) { // 100*10ms=1s ms_count = 0; sec_count++; if (sec_count >= 50) { // 累計(jì)50s sec_count = 0; delay_done_flag = 1; } } } // 2. 200ms切換緩沖延時(shí)計(jì)數(shù)(僅在切換階段生效) if (switch_delay_flag) { ms_count++; if (ms_count >= 20) { // 20*10ms=200ms ms_count = 0; switch_delay_flag = 0; // 200ms延時(shí)完成 } } } // 按鍵消抖(穩(wěn)定檢測) bit Key_Scan(sbit key) { if (key == 0) { unsigned int i; for (i = 0; i < 2000; i++); // 20ms消抖 if (key == 0) return 1; } return 0; } void main(void) { Timer0_Init(); J1 = 1; J2 = 1; J3 = 1; // 初始狀態(tài):所有繼電器斷開 while (1) { // 檢測啟動(dòng)按鍵,觸發(fā)星型啟動(dòng) if (Key_Scan(K1)) { star_start_flag = 1; delay_done_flag = 0; switch_delay_flag = 0; J1 = 0; // 主繼電器閉合 J2 = 0; // 星接繼電器閉合 while (Key_Scan(K1)); // 等待按鍵松開 } // 50s延時(shí)完成后,執(zhí)行星→三角切換 if (star_start_flag && delay_done_flag) { J2 = 1; // 先斷開星接繼電器 switch_delay_flag = 1; // 啟動(dòng)200ms緩沖延時(shí) ms_count = 0; // 清零毫秒計(jì)數(shù)器 // 等待200ms延時(shí)完成 while (switch_delay_flag); J3 = 0; // 閉合角接繼電器(J1保持閉合) star_start_flag = 0; // 清零啟動(dòng)標(biāo)志 } } } |
| 不好使 |
cycy1030 發(fā)表于 2020-12-16 13:24 我也想問有沒有仿真圖呀 |
| 有沒有延時(shí)調(diào)節(jié)功能 |
| 謝謝,正需要實(shí)在太及時(shí)了 |
| 你好,請(qǐng)問有對(duì)應(yīng)的proteus圖嗎 |
| 不錯(cuò)可以參考 |
| 正需要謝謝 |
| 好好好好好好好好 |
| 就是延時(shí)10~40秒切換交流接觸器吧? |
Powered by 單片機(jī)教程網(wǎng)