版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE2科學(xué)技術(shù)學(xué)院SCIENCE&TECHNOLOGYCOLLEGEOFNANCHANGUNIVERSITY《工程訓(xùn)練》報告 REPORTONENGINEERINGTRAINING題目基于單片機的八路電壓巡檢系統(tǒng)基于單片機的八路電壓巡檢系統(tǒng)摘要在電子領(lǐng)域我們經(jīng)常會遇到在研究某些對象時,需要對其中部分電路進行電壓檢測,便于我們分析電路。同時在工業(yè)控制中我們也經(jīng)常需要對各種對象進行電壓實時檢測,方便我們進行工業(yè)控制和生產(chǎn)。 該報告介紹了一種基于單片機的八路電壓巡檢系統(tǒng),可以很方便的對需要檢測的點或是對象進行循環(huán)電壓檢測。該電壓巡檢系統(tǒng)采用AT89S52單片機作為主控制器,ADC0809為模擬電壓轉(zhuǎn)化芯片;并且引出單片機的各個端口,方便外接其他之用,同時從單片機ALE腳引出頻率信號,用4017芯片進行分頻,為ADC0809提供時鐘脈沖;另外還接有ISP在線下載接口,方便程序下載和調(diào)試;同時還有采用DS1302實時時鐘芯片,具備實時顯示年月日時分秒。還有按鍵調(diào)節(jié)功能,方便自己用按鍵選擇各路電壓,以及用按鍵調(diào)節(jié)時間等;并且采用LCD1602液晶顯示,在屏幕上能夠?qū)崟r顯示時鐘與循環(huán)的各路電壓值,方便、直觀,很容易地觀測電壓值和時間等。目錄第一章基于AT89S52單片機的八路電壓巡檢系統(tǒng)概述 41.1八路電壓巡檢系統(tǒng)概述 41.1.1八路電壓巡檢系統(tǒng)的功能 41.1.2單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā) 41.2熟悉Altiumdesigner軟件的使用方法 51.3學(xué)習(xí)使用單片機C語言進行編程 51.4系統(tǒng)硬件的簡介 51.5軟件方面的介紹 6第二章設(shè)計方案的選擇和確定 72.1單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā) 72.2基于單片機的八路電壓巡檢電路設(shè)計 82.3總體方案的設(shè)計 8第三章系統(tǒng)硬件設(shè)計 93.1AT89S52單片機最小系統(tǒng)電路 93.1.1時鐘源電路 93.1.2復(fù)位電路 103.1.2鍵盤輸入電路 103.1.2電源電路 113.1.3液晶1602顯示電路 113.2LCD160液晶介紹 123.3 DS1302實時時鐘芯片及電路介紹 163.4 ADC0809數(shù)模轉(zhuǎn)換電路 20第四章系統(tǒng)的軟件設(shè)計 244.1LCD1602操作的程序流程圖及程序代碼: 244.2DS1302程序流程圖 244.3ADC0809程序流程圖 254.4按鍵程序流程圖 254.5整個系統(tǒng)的程序流程圖: 26第五章性能測試與分析 27第六章心得體會 28附表一工程訓(xùn)練成績評定表 30附表二原理圖和PCB圖 31附錄三完整版源程序 33第一章基于AT89S52單片機的八路電壓巡檢系統(tǒng)概述1.1、八路電壓巡檢系統(tǒng)概述1.1.1、八路電壓巡檢系統(tǒng)的功能 (1)實時顯示電壓值(0V~50V) (2)能夠通過按鍵的方式選擇通道(1~8) (3)實時顯示時鐘1.1.2、單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)單片機應(yīng)用系統(tǒng)的設(shè)計過程是從接受用戶任務(wù)開始,以硬件為基礎(chǔ)進行設(shè)計,到最后完成一個實用系統(tǒng),可分為以下幾步:(1)確定任務(wù):單片機應(yīng)用系統(tǒng)的設(shè)計是以確定系統(tǒng)的功能和技術(shù)指標開始的,首先要仔細分析,研究實際問題,明確各項任務(wù)和要求,從系統(tǒng)的先進行,可靠性,可維護性以及成本,經(jīng)濟效益出發(fā),擬定出合理可靠的技術(shù)指標。(2)總體設(shè)計:在應(yīng)用系統(tǒng)總體設(shè)計時,可根據(jù)應(yīng)用系統(tǒng)提出的各項技術(shù)性能指標,擬定出性能價格比較高的方案。首先應(yīng)根據(jù)任務(wù)的繁雜程度和技術(shù)指標要求選擇機型。在總體方案設(shè)計過程中,必須對軟件和硬件綜合考慮,原則上,能用軟件解決的任務(wù)就盡可能用軟件來完成,以降低硬件的成本,簡化硬件結(jié)構(gòu)??傮w方案一旦確立,系統(tǒng)的大致規(guī)模和軟件的基本框架就確定了。(3)硬件設(shè)計:硬件設(shè)計是指應(yīng)用系統(tǒng)的電路設(shè)計,包括主機、控制電路、存儲器、I/O口、AD轉(zhuǎn)換電路等。單片機應(yīng)用系統(tǒng)硬件電路設(shè)計時還需要考慮程序存儲器、數(shù)據(jù)存儲器和I/O口、地址譯碼電路、總線驅(qū)動能力、系統(tǒng)速度匹配、抗干擾措施等方面。(4)軟件設(shè)計:單片機應(yīng)用系統(tǒng)的軟件設(shè)計是研制過程中任務(wù)最繁重的一項工作,其難度也比較大,在本實驗中要用到C51來編寫程序。單片機應(yīng)用系統(tǒng)的軟件主要包括兩大部分:即用于管理單片微型計算機工作的監(jiān)督管理程序和用于執(zhí)行實際具體任務(wù)的功能程序。對于前者,盡可能利用現(xiàn)成微型計算機系統(tǒng)的監(jiān)控程序。后者要根據(jù)應(yīng)用系統(tǒng)的功能要求來編寫程序。計算機應(yīng)用系統(tǒng)的軟件設(shè)計千差五別,不存在統(tǒng)一模式,開發(fā)一個軟件的明智方法是盡可能采用模塊化結(jié)構(gòu)。在各個程序模塊分別進行設(shè)計、編制和調(diào)試后,最后再將各個程序模塊連接成一個完整的總程序進行調(diào)試。(5)系統(tǒng)調(diào)試:電路故障,包括設(shè)計性錯誤和工藝性故障。通常借助電氣儀表進行故障檢查。軟件調(diào)試是利用開發(fā)工具進行軟件在線仿真調(diào)試,在軟件調(diào)試的過程中也可以發(fā)現(xiàn)硬件故障。軟件調(diào)試可以一個模塊一個模塊的進行,一個子程序一個子程序的調(diào)試最后連起來總調(diào)。1.2、熟悉Altiumdesigner軟件的使用方法基于AT89S52單片機的八路電壓巡檢系統(tǒng)采用時下用的最廣的EDA軟件AltiumDesigned進行原理圖的設(shè)計與PCB圖繪制,主要由于AltiumDesigned軟件在工業(yè)和實踐中使用的最多最廣,其前身就是Protel,該軟件的發(fā)展成熟,性能穩(wěn)定,功能強大。而此次工程訓(xùn)練使用的是Altiumdesigner08的高版本,和以前的6.9版本及Protel相差不大,通過本次工程訓(xùn)練我們可以進一步熟悉Altiumdesigner的使用。同時在此次本軟件的使用中我們又加深了對其功能的認識,如:選取元器件,畫庫里沒有的元器件,畫元器件的封裝等;不過我感覺:最重要的一點是學(xué)會了怎樣合理布局以及如何使用手工繪制較復(fù)雜的PCB圖。1.3學(xué)習(xí)使用單片機C語言進行編程C語言是使用的最多的語言,也是移植性最好的語言,單片機C語言是在C語言的基礎(chǔ)上加了部分專門的函數(shù)庫和數(shù)據(jù)類型,使得其更加適用于單片機的軟件開發(fā)。單片機C編寫程序比匯編更符合人們的思考習(xí)慣,C語言的特點就是可以使你盡量少地對硬件進行操作,具有很強的功能性、結(jié)構(gòu)性和可移植性,常常被優(yōu)選作為單片機系統(tǒng)的編程語言。并且C語言中會使用很多模塊化的子函數(shù),這樣在使用中方便移植,由于單片機C語言編程不同于一般的C語言編程,因為它要和程序存儲器資源結(jié)合起來,雖然其提供的數(shù)據(jù)據(jù)類型十分豐富,但是只有bit和char等數(shù)據(jù)類型是是機器語言直接支持的數(shù)據(jù)類型,并且在單片機上進行C語言程序設(shè)計就必須考慮系統(tǒng)的硬件資源,特別是在寫一些程序較大的地方,不過本次工程訓(xùn)練所使用的資源相對均衡,只要細心編程就應(yīng)該沒有什么問題。1.4、系統(tǒng)硬件的簡介1、AT89S52單片機的最小系統(tǒng):主要由電源電路、振蕩電路、復(fù)位電路組成;2、鍵盤輸入電路:本系統(tǒng)中采用四個按鍵作為輸入設(shè)備,分別為功能選擇鍵、加一鍵、減一鍵,確定鍵;3、電源電路,采用LED燈指示上電正常;4、ADC0809電壓轉(zhuǎn)換電路;5、DS1302實時時鐘電路;6、LCD1602液晶顯示電路;7、ISP在線程序下載接口電路。注:在畫原理圖和繪制PCB圖時:注意要確保原理圖是正確的,繪制PCB時電路應(yīng)該合理布局;且采用手工布線,注意不要走直角。1.5、軟件方面的介紹1、利用keil軟件進行單片機編程開發(fā);學(xué)會根據(jù)數(shù)據(jù)手冊來編程;如在用1602液晶進行編程時,我們首先學(xué)習(xí)液晶1602的dstasheet,根據(jù)其中硬件的時序圖來進行編程語言的實現(xiàn)。最后能夠利用自己的編寫的程序在液晶屏幕上顯示自己的拼音名字和學(xué)號以及其他效果等;2、在學(xué)習(xí)時鐘芯片DS1302時,同樣按照這種方式,首先學(xué)習(xí)DS1302的DATASHEET,根據(jù)各個控制端口的時序圖,來編寫DS1302的程序并,最后能在液晶上顯示出年月日時分星期等。3、在使用模數(shù)轉(zhuǎn)換芯片ADC0809時同其他芯片一樣,首先學(xué)習(xí)ADC0809的DATASHEET,看懂其中數(shù)據(jù)轉(zhuǎn)換過程和操作時序等,位編寫程序打下理論基礎(chǔ)。編寫的ADC0809的程序能在液晶屏上顯示,在自己的電路板上能用液晶1602循環(huán)顯示轉(zhuǎn)換后的電壓值。首先學(xué)習(xí)三個子程序的獨立編程可以為之后的整個系統(tǒng)編程打下基礎(chǔ)。綜合后的程序必須要求能夠在自己的實物目標板上運行成功,并且要求自己能夠在目標板上調(diào)直至成功。設(shè)計方案的選擇和確定2.1單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)單片機應(yīng)用系統(tǒng)的設(shè)計過程如下,從接受用戶任務(wù)開始,以硬件為基礎(chǔ)進行設(shè)計,到最后完成一個實用系統(tǒng),可分為以下幾步:確定任務(wù)單片機應(yīng)用系統(tǒng)的設(shè)計是以確定系統(tǒng)的功能和技術(shù)指標開始的,首先要仔細分析,研究實際問題,明確各項任務(wù)和要求,從系統(tǒng)的先進行,可靠性,可維護性以及成本,經(jīng)濟效益出發(fā),擬定出合理可靠的技術(shù)指標。總體設(shè)計在應(yīng)用系統(tǒng)總體設(shè)計時,可根據(jù)應(yīng)用系統(tǒng)提出的各項技術(shù)性能指標,擬定出性能價格比較高的方案。首先應(yīng)根據(jù)任務(wù)的繁雜程度和技術(shù)指標要求選擇機型。在總體方案設(shè)計過程中,必須對軟件和硬件綜合考慮,原則上,能用軟件解決的任務(wù)就盡可能用軟件來完成,以降低硬件的成本,簡化硬件結(jié)構(gòu)??傮w方案一旦確立,系統(tǒng)的大致規(guī)模和軟件的基本框架就確定了。硬件設(shè)計硬件設(shè)計是指應(yīng)用系統(tǒng)的電路設(shè)計,包括主機、控制電路、存儲器、I/O口、AD轉(zhuǎn)換電路等。單片機應(yīng)用系統(tǒng)硬件電路設(shè)計時還需要考慮程序存儲器、數(shù)據(jù)存儲器和I/O口、地址譯碼電路、總線驅(qū)動能力、系統(tǒng)速度匹配、抗干擾措施等方面。軟件設(shè)計單片機應(yīng)用系統(tǒng)的軟件設(shè)計是研制過程中任務(wù)最繁重的一項工作,其難度也比較大,在本實驗中要用到C51來編寫程序。單片機應(yīng)用系統(tǒng)的軟件主要包括兩大部分:即用于管理單片微型計算機工作的監(jiān)督管理程序和用于執(zhí)行實際具體任務(wù)的功能程序。對于前者,盡可能利用現(xiàn)成微型計算機系統(tǒng)的監(jiān)控程序。后者要根據(jù)應(yīng)用系統(tǒng)的功能要求來編寫程序。計算機應(yīng)用系統(tǒng)的軟件設(shè)計千差五別,不存在統(tǒng)一模式,開發(fā)一個軟件的明智方法是盡可能采用模塊化結(jié)構(gòu)。在各個程序模塊分別進行設(shè)計、編制和調(diào)試后,最后再將各個程序模塊連接成一個完整的總程序進行調(diào)試。系統(tǒng)調(diào)試電路故障,包括設(shè)計性錯誤和工藝性故障。通常借助電氣儀表進行故障檢查。軟件調(diào)試是利用開發(fā)工具進行軟件在線仿真調(diào)試,在軟件調(diào)試的過程中也可以發(fā)現(xiàn)硬件故障。軟件調(diào)試可以一個模塊一個模塊的進行,一個子程序一個子程序的調(diào)試最后連起來總調(diào)。2.2基于單片機的八路電壓巡檢電路設(shè)計此次訓(xùn)練設(shè)計出的八路電壓巡檢系統(tǒng)電路應(yīng)具備以下功能:電壓測量:能夠?qū)崟r循環(huán)顯示當前接入點的電壓值。通道選擇:能夠?qū)崟r或手動選擇所需要顯示的通道電壓值。時鐘功能:能作為時鐘和日歷使用,秒針要走動。按鍵的功能:能夠通過按鍵設(shè)定時間和選擇通道。2.3總體方案的設(shè)計設(shè)計出的八路電壓巡檢電路要具有AD轉(zhuǎn)換、LCD液晶顯示電壓值和時鐘的功能。該系統(tǒng)電路所需要的電路模塊及元器件為:主控制器為AT89S52單片機,AD轉(zhuǎn)換芯片ADC0809,LCD1602液晶顯示,時鐘芯片DS1302,鍵盤輸入電路,以及程序下載接口電路等。具體原理如下:對應(yīng)的PCB圖見附頁系統(tǒng)硬件設(shè)計3.1AT89S52單片機最小系統(tǒng)電路單片機的主要功能是負責(zé)整個系統(tǒng)的控制,承擔復(fù)雜的數(shù)據(jù)處理任務(wù),一個典型的單片機最小系統(tǒng)通常由時鐘電路、復(fù)位電路、片外RAM、片內(nèi)ROM、按鍵、液晶顯示器、外部擴展等部分組成,單片機最小系統(tǒng)的結(jié)構(gòu)框圖如圖:鍵盤輸入電路鍵盤輸入電路AT89S52顯示器振蕩電路電源電路復(fù)位電路3.1.1時鐘源電路單片機內(nèi)部具有一個高增益反向放大器,用于構(gòu)成振蕩器,通常在引腳XTAL1和XTAL2跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,可以根據(jù)情況選擇6MHZ和12MHZ等頻率的石英晶體,補償電容通常選擇30PF左右的瓷片電容。3.1.2復(fù)位電路單片機最小系統(tǒng)采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作,主要操作是產(chǎn)生一個高電平送到RST復(fù)位腳,且該復(fù)位信號(高電平)至少持續(xù)2個機器周期才能完成可靠的復(fù)位。復(fù)位電路的典型電路如下圖所示:3.1.2鍵盤輸入電路采用12*12mm按鍵4個,分別接入單片機的4個IO口,電路如下:3.1.2電源電路采用2.5mm的電源接口3.1.3液晶1602顯示電路3.2LCD160液晶介紹一、LCD1602概述及引腳定義LCD1602是專門用來顯示字母、數(shù)字、字符等的點陣型液晶模塊,由若干5*7、5*11等點陣字符位組成。LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其中:LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,其代碼與標準的ASCII字符代碼一致。因此,我們只要寫入顯示字符的ASCII碼即可實現(xiàn)顯示,這種標準化的設(shè)計給使用帶來了很大的方便。引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。4RSRS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、雙向數(shù)據(jù)總線0位(最低位)8DB1底4位三態(tài)、雙向數(shù)據(jù)總線1位9DB2底4位三態(tài)、雙向數(shù)據(jù)總線2位10DB3底4位三態(tài)、雙向數(shù)據(jù)總線3位11DB4高4位三態(tài)、雙向數(shù)據(jù)總線4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線7位(最高位)(也是busyflag)15BLA背光電源正極16BLK背光電源負極1602LCD寄存器選擇控制表RSR/W操作說明00寫入指令寄存器(清除屏等)01讀busyflag(DB7),以及讀取位址計數(shù)器(DB0~DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)注:關(guān)于E=H脈沖——開始時初始化E為0,然后置E為1,再清0.二、LCD1602操作時序圖:三、顯示地址DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應(yīng)關(guān)系如下表:也就是說想要在LCD1602屏幕的第一行第一列顯示一個"A"字,就要向DDRAM的00H地址寫入“A”字的代碼就行了。在1602中我們就用前16個就行了。第二行也一樣用前16個地址。對應(yīng)如下:四、指令集LCD1602通過D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。清屏指令功能:<1>清除液晶顯示器,即將DDRAM的內(nèi)容全部填入"空白"的ASCII碼20H;<2>光標歸位,即將光標撤回液晶顯示屏的左上方;<3>將地址計數(shù)器(AC)的值設(shè)為0。光標歸位指令功能:<1>把光標撤回到顯示器的左上方;<2>把地址計數(shù)器(AC)的值設(shè)置為0;<3>保持DDRAM的內(nèi)容不變。進入模式設(shè)置指令功能:設(shè)定每次定入1位數(shù)據(jù)后光標的移位方向,并且設(shè)定每次寫入的一個字符是否移動。參數(shù)設(shè)定的情況如下所示:位名 設(shè)置I/D 0=寫入新數(shù)據(jù)后光標左移1=寫入新數(shù)據(jù)后光標右移S 0=寫入新數(shù)據(jù)后顯示屏不移動1=寫入新數(shù)據(jù)后顯示屏整體右移1個字顯示開關(guān)控制指令功能:控制顯示器開/關(guān)、光標顯示/關(guān)閉以及光標是否閃爍。參數(shù)設(shè)定的情況如下:位名 設(shè)置D 0=顯示功能關(guān)1=顯示功能開C 0=無光標1=有光標B0=光標閃爍1=光標不閃爍設(shè)定顯示屏或光標移動方向指令功能:使光標移位或使整個顯示屏幕移位。參數(shù)設(shè)定的情況如下:S/CR/L設(shè)定情況00光標左移1格,且AC值減101光標右移1格,且AC值加110顯示器上字符全部左移一格,但光標不動11顯示器上字符全部右移一格,但光標不動功能設(shè)定指令功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下:位名 設(shè)置DL 0=數(shù)據(jù)總線為4位1=數(shù)據(jù)總線為8位N 0=顯示1行1=顯示2行F 0=5×7點陣/每字符1=5×10點陣/每字符設(shè)定CGRAM地址指令功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。設(shè)定DDRAM地址指令功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。(注意這里我們送地址的時候應(yīng)該是0x80+Address)讀取忙信號或AC地址指令功能:<1>讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令;當BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令;<2>讀取地址計數(shù)器(AC)的內(nèi)容。數(shù)據(jù)寫入DDRAM或CGRAM指令一覽功能:<1>將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符;<2>將使用者自己設(shè)計的圖形存入CGRAM。從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽功能:讀取DDRAM或CGRAM中的內(nèi)容?;静僮鲿r序:讀狀態(tài)輸入:RS=L,RW=H,E=H輸出:DB0~DB7=狀態(tài)字寫指令輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼輸出:無讀數(shù)據(jù)輸入:RS=H,RW=H,E=H輸出:DB0~DB7=數(shù)據(jù)寫數(shù)據(jù)輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)輸出:無DS1302實時時鐘芯片及電路介紹本次工程訓(xùn)練中依據(jù)實際中電路特點或是經(jīng)驗,在DS1302的控制端和數(shù)據(jù)輸出/輸入端均加上一個10K的上拉電阻,以保證時鐘芯片可靠的工作;具體電路如下:一、DS1302實時時鐘芯片簡介及其結(jié)構(gòu)與工作原理現(xiàn)在流行的串行時鐘電路很多,如DS1302、DS1307、PCF8485等。這些電路的接口簡單、價格低廉、使用方便,被廣泛地采用。此次工程訓(xùn)練采用的是DS1302實時時鐘芯片,它是DALLAS公司的一種具有涓細電流充電能力的電路,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。二、引腳功能及結(jié)構(gòu)DS1302的引腳功能圖DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。三、DS1302操作時序圖四、DS1302的控制字節(jié)DS1302的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。五、數(shù)據(jù)輸入輸出(I/O)
在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。六、DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。六、調(diào)試中遇到的問題1、DS1302與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位WriteProtect(D7)必須為邏輯0,如果D7=1,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入),D0=1,指定讀操作(輸出)。2、在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,DS1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。3、DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)。4、要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100μF就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調(diào)整時間。六、結(jié)論DS1302存在時鐘精度不高,易受環(huán)境影響,出現(xiàn)時鐘混亂等缺點。DS1302可以用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結(jié)果的分析及對異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此,只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費單片機的資源,而且,某些測控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時鐘芯片DS1302,則能很好地解決這個問題。ADC0809數(shù)模轉(zhuǎn)換電路ADC0809連接電路與介紹:ADC0809在本系統(tǒng)中的電路:由于ADC0809輸入電壓只有5V,當輸入較大電壓時,會使ADC0809無法正常工作甚至是燒壞芯片,于是我們在電壓接入端口采用9K與1K電阻串聯(lián),進行分壓后輸入ADC0809芯片,這樣我們可以在軟件中實現(xiàn)*10來補償,使得我們能夠檢測較大范圍的電壓值;具體電路如下:2、ADC0809介紹ADC0809是采樣分辨率為8位的、以逐次逼近原理進行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。(1).主要特性1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。2)具有轉(zhuǎn)換起??刂贫恕?)轉(zhuǎn)換時間為100μs(時鐘為640kHz時),130μs(時鐘為500kHz時)4)單個+5V電源供電5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準。6)工作溫度范圍為-40~+85攝氏度7)低功耗,約15mW。(2).內(nèi)部結(jié)構(gòu)ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖13.22所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近(3)引腳功能ADC0809芯片有28條引腳,采用雙列直插式封裝,如下圖所示。IN0~IN7:8路模擬量輸入端。2-1~2-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路ALE:地址鎖存允許信號,輸入,高電平有效。START:A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準電壓。Vcc:電源,單一+5V。GND:地。二ADC0809的操作時序圖二、ADC0809的工作過程首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機進行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認A/D轉(zhuǎn)換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式。(1)定時傳送方式對于一種A/D轉(zhuǎn)換其來說,轉(zhuǎn)換時間作為一項技術(shù)指標是已知的和固定的。例如ADC0809轉(zhuǎn)換時間為128μs,相當于6MHz的MCS-51單片機共64個機器周期??蓳?jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進行數(shù)據(jù)傳送。(2)查詢方式A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可卻只轉(zhuǎn)換是否完成,并接著進行數(shù)據(jù)傳送。(3)中斷方式把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。不管使用上述那種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進行數(shù)據(jù)傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接受。第四章系統(tǒng)的軟件設(shè)計4.1LCD1602操作的程序流程圖及程序代碼:開始開始延時3ms延時3ms設(shè)置顯示地址清理顯示緩存開始設(shè)置顯示地址清理顯示緩存開始設(shè)置顯示方式液晶初始化設(shè)置顯示模式設(shè)置寫入顯示地址的ASCII設(shè)置顯示模式設(shè)置寫入顯示地址的ASCII結(jié)束結(jié)束結(jié)束結(jié)束4.2DS1302程序流程圖4.3ADC0809程序流程圖4.4按鍵程序流程圖4.5整個系統(tǒng)的程序流程圖:功能選擇變量是否為0功能選擇變量是否為0開始定時器初始化初始化LCD1602初始化DS1302時鐘顯示八路電壓循環(huán)顯示等待定時器中斷返回向DS1302寫入調(diào)整時間中斷是否到達定時器T0ADC0809采樣定時器T1按鍵掃描讀取DS1302YN循環(huán)采集各路電壓進行轉(zhuǎn)換對時間、采樣通道進行調(diào)整第五章性能測試與分析基于單片機的八路電壓巡檢系統(tǒng)在整個制作過程中主要有以下四個模塊:單片機最小系統(tǒng)模塊,LCD1602液晶顯示模塊,DS1302實時時鐘模塊,ADC0809模數(shù)轉(zhuǎn)換模塊組成。在完成制作后,在調(diào)試過程中會遇到一些問題:1、在單片機最小系統(tǒng)中,可能會出現(xiàn)無法復(fù)位單片無法正常工作現(xiàn)象等,主要由于復(fù)位鍵沒有接或是復(fù)位電路的電阻阻值不對,還有可能存在虛焊等情況;2、在LCD1602顯示中經(jīng)常會出現(xiàn)只顯示一排方格,調(diào)節(jié)分辨率電阻五反應(yīng),主要由于電路存在虛焊或是精密電阻封裝錯誤,另外也可能是程序中出現(xiàn)的問題,如如果將延時的時間改的太小或是沒有延時,也會出現(xiàn)那種情況;3、在DS1302時鐘芯片電路中(程序正確)也會出現(xiàn)顯示正確數(shù)字,但是時鐘不走,可能由于芯片插反了,或是晶振沒有接好,還有DS1302芯片會存在發(fā)熱現(xiàn)象,可能由于在程序中將涓流電池充電模式打開或是其他,將程序這個部分功能關(guān)閉,對應(yīng)語句屏蔽就行了;在DS1302芯片中還有出現(xiàn)一個現(xiàn)象就是時間走時不準,會在一分鐘之內(nèi)跳過1~2秒,經(jīng)調(diào)試發(fā)現(xiàn)主要原因為:在整個程序中特別是在1602和1302操作過程中將延時的時間設(shè)置的太長。4、在ADC0809電路中,很多時候出現(xiàn)程序無法啟動芯片工作,而這部分的主要原因是硬件沒有連接好,不過同時也會有軟件方面的原因,比如在延時的時候可以適當將時間調(diào)長一點,等待ADC0809轉(zhuǎn)換結(jié)束后在送顯示。經(jīng)過調(diào)試,在上述的問題基本解決后,我們最終得到一個比較好的效果:如電路正常工作,液晶顯示能正常顯示年月日星期時分秒,時鐘走動正常,電壓循環(huán)顯示通道(1~8)和對應(yīng)的電壓值,按鍵也能正常工作,復(fù)位鍵也正常工作,具有功能選擇,加一功能,減一功能,和確定功能鍵一切都正常工作;ISP在線下載程序也能正常下載程序進行調(diào)試。第六章心得體會我們此次工程訓(xùn)練是做一個基于單片機的八路電壓巡檢系統(tǒng),在本系統(tǒng)中我們學(xué)習(xí)了一系列關(guān)于單片機及其外圍器件(如LCD1602,、DS1302、ADC0809等)的知識和他們的具體應(yīng)用。通過使用這些元器件,我們掌握了其中的分析方法,以及編程思路,如何通過看數(shù)據(jù)手冊來進行程序的編寫等。為我們將來參加工作或是后續(xù)課程的學(xué)習(xí)打下了一個基礎(chǔ)。在整個工程訓(xùn)練過程中,我們首先學(xué)習(xí)了使用AltiumDesigned軟件畫原理圖和繪制PCB圖,在原理圖繪制過程中,我了解到我們一定要細心,否則后導(dǎo)致后續(xù)過程出錯,其次,在原理圖的繪制時盡量采用網(wǎng)絡(luò)標號進行連接,連接時一定要確認連接線是連上去的。再次就是將原理圖中個部分模塊化,并用文字標明各模塊的功能作用等,總之要看著清晰,連線完全正確,一目了然;在繪制PCB圖中我明白一個道理,一定要采用手工布線。自動布線雖然快,但是自動布線會存在很多問題,如,有時走線太遠,還有交叉部分也不會報警,線走的不好看等。采用手動布線的關(guān)鍵點是:首先要布局合理,我們在調(diào)整元器件位置時要盡量將飛線交叉的條數(shù)擺到最小。最后開始連線,一定要細心和耐心!之后我們在制作、做板的過程中,只要注意些基本的設(shè)置應(yīng)該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年略陽縣招教考試備考題庫帶答案解析(必刷)
- 2025年濰坊工程職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析(奪冠)
- 2025年沐川縣招教考試備考題庫含答案解析(必刷)
- 2025年山東外貿(mào)職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2025年四川托普信息技術(shù)職業(yè)學(xué)院單招綜合素質(zhì)考試題庫附答案解析
- 2024年閩南理工學(xué)院馬克思主義基本原理概論期末考試題附答案解析(必刷)
- 2025年天峨縣幼兒園教師招教考試備考題庫附答案解析(必刷)
- 2025年南京特殊教育師范學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(必刷)
- 2025年祁縣招教考試備考題庫含答案解析(奪冠)
- 2024年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試題含答案解析(必刷)
- 公司證照管理管理制度
- 鐵精粉選廠合同協(xié)議
- 黑龍江哈爾濱2024年中考語文現(xiàn)代文閱讀真題
- 知識圖譜構(gòu)建實踐
- 部編版五年級語文上冊快樂讀書吧測試題及答案
- 衛(wèi)星傳輸專業(yè)試題題庫及答案
- 細胞治療GMP生產(chǎn)中的工藝控制
- DL-T+5220-2021-10kV及以下架空配電線路設(shè)計規(guī)范
- 視覺傳播概論(第2版)課件全套 任悅 第1-12章 視覺傳播概述- 視覺傳播中的倫理道德與法規(guī)
- 進社區(qū)宣講民法典
- 《被壓扁的沙子》優(yōu)質(zhì)教案與反思
評論
0/150
提交評論