設計要求:
(1)設計一個電子定時器,控制洗衣機作如下運轉:定時啟動→正轉20s→暫停10s→反轉20s→暫停10s→定時未到回到"正轉20s-→暫停10s→反轉20s→暫…“定時到則停止轉動;
(2)若定時到,則停機發出音響信號;
(3)用兩個數碼管顯示洗滌的預置時間(分鐘數),按倒計時方式對洗滌程序作計時顯示,直到時間到停機;洗滌程序由“開始”信號開始;
(4)用三只LED燈表示"正轉”、“反轉”、“暫停"三個狀態,
文章目錄
- 摘要
- 引言
- 1、設計方案的選擇
- 2、硬體設計
- 2.1 各單元模塊電路
- 2.2 仿真結果及分析
- 3、軟體設計
- 3.1 系統流程圖
- 3.2 系統程式部分
- 4、識訓和總結
- 5、元器件清單
- 6、主要參考文獻資料
摘要
摘要: 根據洗衣機的控制要求,從功能要求、硬體設計、軟體設計三個方面描述了一個以AT89C51單片機為控制核心的洗衣機控制系統,給出了硬體線路框圖和相關的控制程式流程圖,
關鍵詞: AT89C51單片機;洗衣機控制系統;硬體;控制程式
Abstract: According to the washing machine control requirements, a control system with the AT89C51 SCMC as the core about washing machines were described in the following three aspects of functional requirements, hardware design, software design. The hardware circuit diagram and related control flow chart of the program were given.
Key words : AT89C51SCMC ; Washing machine control system ; Hardware ; Control program
引言
隨著單片機技術日新月異的發展,單片機以其集成度高、運算速度快、體積小、運行可靠、價格低廉等特點在程序控制、機電一體化、智能化儀表、家用電器等方面得到了廣泛應用,本文采用MCS-51單片機作為洗衣機控制系統的核心,硬體線路及控制程式的設計是該系統的重要組成部分,硬體線路設計主要包括電源、功能及控制系統、洗衣機狀態顯示、輸出控制電路的設計,控制程式設計主要包括主程式、內部定時中斷服務程式、外部中斷服務程式的設計,
1、設計方案的選擇
洗衣機控制電路是用來控制洗衣機電機的正轉反轉暫停三個狀態的,該電路可以控制洗衣機的定時啟動,洗衣機的作業狀態,而且當達到定時終點時會停止洗衣機作業同時發出報警信號,時間的顯示采用兩位數碼管(一分鐘為單位),按倒計時方式作業,直到達到定時終點而停機,
第一部分方案:本電路的計數系統因為要求實作倒計時,所以可以用雙向計數器74LS192或程式定時計數,根據自身情況,為減少制作成本和產品性價比,本設計采用程式定時計數的方法,
第二部分方案:顯示單元采用數碼管顯示或者LCD顯示,因設計要求采用兩位數碼管顯示,還有考慮到成本問題,本設計采用兩位數碼管作為顯示單元,
第三部分方案:主控制單元,采用STC89C52芯片或者AT89C51芯片作為硬體核心,STC89C52是一種帶4K位元組閃爍可編程可擦除只讀存盤器,采用Flash ROM,內部具有4KB ROM 存盤空間,能于3V的超低壓作業,而且與MCS-51系列單片機完全兼容,與工業標準的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存盤器組合在單個芯片中,STC89C52是一種高效微控制器,51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案但是運用于電路設計中時由于不具備在線編程(ISP)技術,當在對電路進行除錯時,由于程式的錯誤修改或對程式的新增功能需要燒入程式時,對芯片的多次拔插可能對芯片造成一定的損壞,AT89C51跟STC89C52功能基本相同,但目前STC89C52型號芯片已經停產,所以此設計采用AT89C51作為主控芯片,
第四部分方案:報警的警鈴在作業時間結束后就會響起,但是根據實際情況不能一直的響下去,應此利用一個單穩電路,當暫穩態結束后就可以回到穩態,警鈴就不再響了,
綜上比較,本設計采用各分電路的最優化方案,
2、硬體設計
2.1 各單元模塊電路
定時顯示單元

此模塊選用兩個一位7段數碼管作為顯示,跟單片機的P0,P2相連接,
定時時長控制單元

此模塊作為洗衣機定時時間加、減,以及啟動洗衣機作業開關,用三個微動開關來控制,
單片機最小系統單元

此電路是單片機的最小系統,用來作為主控芯片,
電機狀態顯示單元

此模塊是電機運轉顯示正反轉以及停止狀態,
洗衣機運作單元

報警單元

此單元模塊用作定時結束洗衣機停止作業,發出報警信號,
2.2 仿真結果及分析
proteus仿真軟體采用直觀的圖形界面創建電路:在計算機螢屏上模仿真實實驗室的作業臺,繪制電路圖需要的元器件、電路仿真需要的測驗儀器均可直接從螢屏上選取;軟體儀器的控制面板外形和操作方式都與實物相似,可以實時顯示測量結果,proteus軟體帶有豐富的電路元件庫,提供多種電路分析方法,作為設計工具,它可以同其它流行的電路分析、設計和制板軟體交換資料,EWB還是一個優秀的電子技術訓練工具,利用它提供的虛擬儀器可以用比實驗室中更靈活的方式進行電路實驗,仿真電路的實際運行情況,熟悉常用電子儀器測量方法,可用proteus仿真軟體對各單元電路和整體電路進行元器件仿真和運行仿真,便于對設計方案的理解和分析,
用proteus仿真的總圖如圖 2.2所示

3、軟體設計
3.1 系統流程圖

3.2 系統程式部分
/******************************************************************************************************************************
******************************************************************************************************************************/
//----------------------------------------------------------------------------------------------------------------------------//
// //
//標題:基于51單片機的洗衣機控制系統 // //
//創建人:朽木自雕i 1547013894@qq.com //
//日期:2020/11/14 修改日期:2020/11/15 //
//描述:
// 設計要求:
// (1)設計一個電子定時器,控制洗衣機作如下運轉:定時啟動→正轉20s→暫停10s→反轉20s→暫停10s→定時未到
// 回到"正轉20s-→暫停10s→反轉20s→暫.......“定時到則停止轉動;
// (2)若定時到,則停機發出音響信號;
// (3)用兩個數碼管顯示洗滌的預置時間(分鐘數),按倒計時方式對洗滌程序作計時顯示,直到時間到停機;洗滌
// 程序由“開始”信號開始
// (4)用三只LED燈表示"正轉”、“反轉”、“暫停"三個狀態,
//
//宣告:
// 以下代碼僅免費提供給學習用途,但參考或修改后必須在檔案中宣告出處, //
// 如有商業用途請與作者聯系, //
// //
//-----------------------------------------------------------------------------------------------------------------------------//
#include"reg51.h"//此檔案中定義了單片機的一些特殊功能暫存器
void DelayMs(unsigned int x);//延時函式宣告
unsigned char code Ledcode[16]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};//定義字符型陣列
unsigned int i,j,disp;//定義兩個無符號整型變數i 和 disp
sbit K1=P3^5;
sbit K2=P3^6;
sbit K3=P3^7;
sbit MA = P1^3;
sbit MB = P1^4;
sbit LED1 = P1^5;
sbit LED2 = P1^6;
sbit LED3 = P1^7;
sbit BEEP=P2^7;
void DelayMs(unsigned int x)//定義延時函式
{
unsigned char i;
while(x--)
{
for(i=0;i<120;i++);//大約1ms
}
}
void Beep()
{
BEEP=~BEEP;
DelayMs(3000);
BEEP=1;
}
void zheng() //模擬電機正反向轉動大概20S鐘
{
for(i=0;i<20;i++)
{
DelayMs(800);//延時1s
LED1 = 0;
LED2 = 1;
LED3 = 1;
MA = 0;
MB = 1;
}
}
void fan() //模擬電機反反向轉動大概20S鐘
{
for(i=0;i<20;i++)
{
DelayMs(800);//延時1s
LED1 = 1;
LED2 = 0;
LED3 = 1;
MA = 1;
MB = 0;
}
}
void ting() //模擬電機停止轉動大概10S鐘
{
for(i=0;i<10;i++)
{
DelayMs(800);//延時1s
LED1 = 1;
LED2 = 1;
LED3 = 0;
MA = 0;
MB = 0;
}
}
void keyscan()
{
if(K1==0)
{
DelayMs(5);
if(K1==0)
{
for(j=disp;j>0;j--)
{
zheng();
ting();
fan();
ting();
disp--;
P0=Ledcode[disp/10%10];//把十位數的值賦給P2口,即第一位數碼管
P2=Ledcode[disp%10]; //把個位數的值賦給P3口,即第二位數碼管
if(disp==0)
{
Beep();
}
}
}
}
else if(K2==0)
{
DelayMs(5);
if(K2==0)
{
disp++;
P0=Ledcode[disp/10%10];//把十位數的值賦給P2口,即第一位數碼管
P2=Ledcode[disp%10]; //把個位數的值賦給P3口,即第二位數碼管
if(disp==90) //最多定時90分鐘,即1.5小時
{
disp=0;
}
}
while(!K2);
}
else if(K3==0)
{
DelayMs(5);
if(K3==0)
{
disp--;
P0=Ledcode[disp/10%10];//把十位數的值賦給P2口,即第一位數碼管
P2=Ledcode[disp%10]; //把個位數的值賦給P3口,即第二位數碼管
if(disp==0)
{
disp=91; //最多定時90分鐘,即1.5小時
}
}
while(!K3);
}
}
void main()
{
disp=15;
P0=Ledcode[disp/10%10];//把十位數的值賦給P2口,即第一位數碼管
P2=Ledcode[disp%10]; //把個位數的值賦給P3口,即第二位數碼管
while(1)
{
keyscan();
}
}
4、識訓和總結
課程設計是一個探索與實踐的程序,雖然我們沒有用實際電路來連接除錯,但是由于現在的軟體功能強大,用軟體來仿真也是很好的方法,
雖然在設計的程序中遇到了這樣或那樣的困難,但是通過示波器的波形分析,電路的不斷改進,困難都一一的克服了,我認為我們在設計的程序中不僅是熟悉了軟體的用法,更重要的是學會了設計的方法以及設計的精神,當然說設計的精神似乎有點不恰當,但我認為設計就是一種精神意志的磨練,我曾多次想放棄,想直接去抄襲別人的,但是始終有一股精神支撐著我——課程設計是鍛煉的機會,是對將來作業的一種積累,糊弄只會是害了自己,于是我硬著頭皮把電路拆了又接接了又拆,雖然很麻煩,也很頭疼(到處是線,看的眼睛都花了),不過也是有樂趣在其中的,每當解決一個問題,或者一部分電路實作了其作業都感覺到很高興,這些細小的成功帶給我完成整個設計的力量,于是通過不斷的除錯,不斷的改進終于是把電路弄出來了,雖然我設計出的這個電路能夠作業,不過在有些地方還是不夠很好的,但是我還是堅持自己原創,比方說,彩燈顯示回圈控制部分,如果用一個譯碼器的話很簡單的就實作了,不過我還是采用了門電路來搭建,一來是我自己設計的,而來也是復習一下組合邏輯電路的設計,還有BO的置數問題,我幾乎是頭疼了很長時間,后來大家一起討論,用示波器觀察波形,才知道了原因,然后加以改進,這里我體會到了團結協作的力量,我們將來出去作業也是一個個的團隊,自己是團隊中的一員,既要獨立思考努力為團隊作出貢獻也要從團隊中吸收經驗,
總而言之,受益匪淺,在知識水品上學到了數字電路的知識,體會到了數字電路的巧妙;但更重要的是學會了方法,學會了堅韌,相信只要具備正確的設計方法和堅忍不拔的拼搏意志無論多么復雜多么龐大的電路都會設計的出來!
5、元器件清單

6、主要參考文獻資料
[1] 李朝青.單片機原理及介面技術(簡明修訂版)[M].北京:北京航空航天大學出版社,1998.
[2] 李全利.單片機原理及介面技術[M].高等教育出版社,2003.
[3] 楊將新,李華軍,劉到駿等.單片機程式設計及應用(從基礎到實踐)[J].電子工業出版社,2006.
[4] 黃智偉.全國大學生電子設計競賽訓練教程[M].北京:電子工業出版社, 2005.
[5] 陳有卿.集成電路妙用巧用300例.北京:人民郵電出版社,1999.
[6] 陳安凱.最新集成電路資料手冊.北京:人民郵電出版社,1996.
[7]瞿安連.應用電子技術.北京:科學出版社,2003.
創作不易,分享更需勇氣! 喜歡的可以給點個 ?贊? 嗎?歡迎評論區留言交流~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/230357.html
標籤:其他
