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