資源描述:
《遠程電子鐘-遠程控制端》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、課程設(shè)計報告設(shè)計課題:遠程電子鐘專業(yè)班級:學生姓名:指導教師:設(shè)計時間:題目:遠程電子鐘——遠程控制端一、課程設(shè)計目的:通過實驗,更深刻地了解了單片機的工作原理,掌握單片機的簡單開發(fā)過程。了解485總線傳送數(shù)據(jù)單片機對數(shù)據(jù)的接收和LCD1602的程序編譯及工作原理,熟悉液晶顯示器的性能和使用,以及如何將單片機與其他器件聯(lián)合使用。二、課程設(shè)計題目:通過485總線將數(shù)據(jù)傳送到遠程控制端。遠程控制端將所接受的數(shù)據(jù)在液晶顯示器顯示年、月、日、時、分、秒。遠程控制端需設(shè)計看門狗813程序,以保證遠程控制端的穩(wěn)定性。三、系統(tǒng)分析與設(shè)計1:系統(tǒng)總體設(shè)計-確定系統(tǒng)功能模塊劃分及說明
2、;本系統(tǒng)使用到的芯片:89C51、LCD1602字符液晶、看門狗813模塊,串口MAX232,地址鎖存器74HC573,Max485總線。各芯片功能說明:單片機89c51:集成了CPU,ROM,RAM,定時器/計數(shù)器和多功能等基本功能部件。LCD1602字符液晶:顯示字符。串口MAX232:進行串行通信??撮T狗813:能夠?qū)纹瑱C89c51進行復位,防止單片機死機。地址鎖存器573:對單片機89c51的P0口地址進行鎖存。本實驗總共由兩個步驟組成:(1)數(shù)據(jù)接收:通過485總線單片機AT89C51來接收數(shù)據(jù)。(2)輸出顯示:單片機處理接收來的時間,并在LCD1602
3、?顯示。?2:系統(tǒng)詳細設(shè)計:上位機完成時鐘的產(chǎn)生與發(fā)送的功能:時鐘系統(tǒng)由時鐘芯片8563來完成,從此子系統(tǒng)可以獲得時間信息。發(fā)送子系統(tǒng)將時間數(shù)據(jù)經(jīng)由232總線發(fā)送到遠程電子鐘的接受端,以供其顯示。下位機遠程控制端完成接收和顯示的功能:數(shù)據(jù)的接收,將代表年、月、日、星期、時、分、秒的數(shù)據(jù)接收后,從串口緩沖區(qū)中讀出數(shù)據(jù)。處理后的數(shù)據(jù)顯示分兩行顯示在液晶。1、系統(tǒng)流程圖上位機系統(tǒng)程圖:開始初始化:時鐘、串口、LCD讀取時間數(shù)據(jù),判斷秒是否改變否是調(diào)用數(shù)據(jù)處理函數(shù),以供顯示調(diào)用串口發(fā)送函數(shù)設(shè)置顯示位置調(diào)用顯示函數(shù),將時間顯示出來結(jié)束下位機系統(tǒng)程圖:開始初始化調(diào)中斷從緩沖器中
4、讀取上位機的請求信息否是否與本機相同否是讀入數(shù)據(jù)并求校驗和從緩沖器中讀入校驗和是否與上位機相同是送入緩沖器準備顯示年、月、日時、分、秒結(jié)束2、電路圖圖1.系統(tǒng)硬件連接圖圖2.單片機89c51連接圖圖3.看門狗連接圖圖4.串口232及其電路連接圖5.LCD1602電路連接3:源程序清單:/*********************************************************///遠程電子鐘——遠程控制端//主要功能模塊有//1.數(shù)據(jù)接收模塊//2.單片機控制輸出模塊//3.輸出顯示模塊//4.為了保證接收穩(wěn)定性采用看門狗程序/*******
5、*************************************************/#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineLCDCOM0XBYTE[0Xe000]#defineLCDCOM1XBYTE[0Xe000]#defineLCDDATAXBYTE[0Xe800]#defineLCDDATA_READXBYTE[0Xe800
6、]#define_Nop()_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//fosc=12MHZ時延時10us/**********************************************************/ucharbuf[14];ucharpf;ucharidatas_shuzi[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//數(shù)據(jù)0——9/*********
7、************串行口初始化**************************/voidinit(void){TMOD=0x20;//設(shè)定T/C1為定時方式2TH1=0xe8;//設(shè)定波特率TL1=0xe8;PCON=0x00;TR1=1;//啟動T/C1SCON=0x50;//串行口工作在方式1}/***********************************************************/sbitbflag=ACC^7;voidwait(void){do{ACC=LCDCOM1;}while(bflag==1);}/***