




已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于單片機的八路電壓巡檢系統(tǒng)電路專業(yè): 08自動化 學號:111111 學生姓名:羅琦 指導教師:恩澤摘 要單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應用很廣、發(fā)展很快。而51單片機是各單片機中最為典型和最有代表性的一種。 本次設計以AT89S5芯片為核心,輔以必要的外圍電路,設計了一個簡易的八路電壓巡檢系統(tǒng),它由5V直流電源供電。 路輸入模擬信號數(shù)值顯示巡檢系統(tǒng)電路可以測量0-5V的8路輸入 模擬信號電壓值,并在上顯示或單路選擇顯示。按系統(tǒng)功能實現(xiàn)要求,決定控制系統(tǒng)采用AT8952單片機,A/D轉(zhuǎn)換采用ADC0809。系統(tǒng)除能確保實現(xiàn)要求的功能外,還可以方便地進行8路其他A/D轉(zhuǎn)換量的測量、遠程測量結(jié)果傳送等擴展功能,多路數(shù)據(jù)選,擴展的外圍芯片采用usb接口芯片,設計的整個系統(tǒng)體積小,功耗低,有很好的可維護性,和較強的抗干擾性能。此外該系統(tǒng)還添加了電子時鐘系統(tǒng),采用時鐘芯片,能完成時間的顯示,調(diào)時,復位等功能。軟件方面,考慮到需要指令的執(zhí)行速度快,節(jié)省存儲空間,可讀性好,選擇了C 語言編程。目錄第一章 基于C51系列單片機的八路電壓巡檢系統(tǒng)電路的概述31.1 熟悉Altium designer08軟件繪制電路的原理圖和PCB圖,keil軟件編程單片機C語言,proteus軟件仿真31.2硬件介紹31.3軟件介紹3第二章設計方案的選擇和確定32.1八路電壓巡檢系統(tǒng)設計過程32.2總體設計42.3硬件設計42.4軟件設計52.5總體方案的設計5第三章 系統(tǒng)硬件設計63.1AT89S52單片機最小系統(tǒng)電路63.2ADC0809的資料,DS1302和LCD16026(1)ADC0809 在51 單片機中的應用6(2) DS1302 簡介:8(3) LCD1602 液晶顯示簡介13第四章 系統(tǒng)的軟件設計19第五章 性能測試與分析37(1):測試LCD1602顯示功能37(2):測試DS130237(3):測試ADC080937(4):最后綜合測試37第六章 心得體會38工程訓練成績評定表39附圖:1.基于單片機的八路電壓巡檢系統(tǒng)電路原理圖41附圖:1.基于單片機的八路電壓巡檢系統(tǒng)電路圖42第一章 基于C51系列單片機的八路電壓巡檢系統(tǒng)電路的概述1.1 熟悉Altium designer08軟件繪制電路的原理圖和PCB圖,keil軟件編程單片機C語言,proteus軟件仿真八路電壓巡檢系統(tǒng)電路的設計和制作首先需要繪制電路的原理圖和PCB圖,因此制作的過程中需要使用Altium designer軟件畫圖和制作電路板,本次工程訓練使用的作圖軟件是Altium designer08的版本。了解選取元器件和以及如何畫元器件,學會畫封裝,最關(guān)鍵的是學會手工布置PCB圖。1.2硬件介紹1. AT89S52單片機的最小系統(tǒng):由單片機供電電路,振蕩電路,復位電路組成。2.改系統(tǒng)由電源電路,1602顯示電路,ds1302實時時鐘電路以及ADC0809電壓轉(zhuǎn)換電路和程序下載接口電路組成。2. 原理圖的繪制以及PCB板的制作:電路應有合理的布線,PCB圖要手工布線。3. .鍵盤輸入電路:在本次實驗中,有四個按鍵作為輸入設備1.3軟件介紹1. 學會使用液晶LCD1602,并學會用單片機C語言編程,并編寫液晶1602程序,顯示出自己的名字和學號。2. 學會使用時鐘芯片DS1302,編寫DS1302的程序和液晶顯示程序,然后顯示出來。3. 學會使用芯片ADC0809,編寫ADC0809的程序液晶顯示程序,然后顯示出來。4. 最后編寫三個子程序綜合程序,并在自己的制作出的八路電壓巡檢系統(tǒng)電路板上調(diào)試成功。第二章 設計方案的選擇和確定2.1八路電壓巡檢系統(tǒng)設計過程 接受任務 明確任務,歸并要求 選機,劃分軟硬件 軟件設計硬件設計 調(diào)試 排除故障,修改程序 固化程序應用系統(tǒng)獨立運行完成2.2總體設計在應用系統(tǒng)進行總體設計時,可根據(jù)應用系統(tǒng)提出的各項技術(shù)性能指標,擬定出性能價格比最高的方案。首先,應根據(jù)任務的繁雜程度和技術(shù)指標要求選擇機型。目前,常用單片機有CS51系列,ARM單片機,DSP等。在總體方案設計過程中,必須對軟件和硬件綜合考慮,原則上,能用軟件解決的任務就盡可能用軟件來完成,以降低硬件的成本,簡化硬件結(jié)構(gòu)??傮w方案一旦確立,系統(tǒng)的大致規(guī)模和軟件的基本框架就確定了。2.3硬件設計硬件設計是指應用系統(tǒng)的電路設計,包括主機、控制電路、存儲器、I/O口、AD轉(zhuǎn)換電路等。硬件設計時,應考慮擁有充足余量,下面設計應注意以下問題。用系統(tǒng)硬()程序存儲器(選容量較大的EPROM芯片,如2764(8KB),27128(16KB),盡量避免用小容量的芯片組合。)(2)數(shù)據(jù)存儲器和I/O口 擴展外部RAM或I/O口,那么RAM芯片可用6264(8KB)或62256(32KB)原則上應盡量減少芯片數(shù)量,使譯碼電路簡單,I/O口芯片一般選用8155(帶有256KB靜態(tài)RAM)或8255,這類芯片接口線多,邏輯簡單。(3)地址譯碼電路通常采用全譯碼,部分譯碼或線選法。應考慮充分利用存貯空間和簡化硬件邏輯方面的問題。(4)總線驅(qū)動能力、主要是MCS-51外部擴展能力,4個8位并行口的負載能力有限,P0 口能驅(qū)動8個LSTTL。 (5)系統(tǒng)速度匹配以及抗干擾措施等方面。2.4軟件設計單片機應用系統(tǒng)的軟件設計是研制過程中任務最繁重的一項工作,其難度也比較大,在本實驗中要用到C51來編寫程序。單片機應用系統(tǒng)的軟件主要包括兩大部分:即用于管理單片微型計算機工作的監(jiān)督管理程序和用于執(zhí)行實際具體任務的功能程序。對于前者,盡可能利用現(xiàn)成微型計算機系統(tǒng)的監(jiān)控程序。后者要根據(jù)應用系統(tǒng)的功能要求來編寫程序。計算機應用系統(tǒng)的軟件設計千差五別,不存在統(tǒng)一模式,開發(fā)一個軟件的明智方法是盡可能采用模塊化結(jié)構(gòu)。在各個程序模塊分別進行設計、編制和調(diào)試后,最后再將各個程序模塊連接成一個完整的總程序進行調(diào)試。(1)系統(tǒng)調(diào)試電路故障,包括設計性錯誤和工藝性故障。通常借助電氣儀表進行故障檢查。軟件調(diào)試是利用開發(fā)工具進行軟件在線仿真調(diào)試,在軟件調(diào)試的過程中也可以發(fā)現(xiàn)硬件故障。軟件調(diào)試可以一個模塊一個模塊的進行,一個子程序一個子程序的調(diào)試最后連起來總調(diào)。2.2基于單片機的八路電壓巡檢電路設計設計出的八路電壓巡檢電路應具備以下功能:1. 系統(tǒng)功能:電壓測量,能夠?qū)崟r顯示當前的電壓值。2. 通道選擇:能夠?qū)崟r選擇所需要顯示的通道電壓值。3. 時鐘功能:能作為時鐘使用,顯示當前時間。4. 時鐘設置功能:能夠通過按鍵設定時間,修改當前時間。2.5總體方案的設計設計出的八路電壓巡檢電路要具有AD轉(zhuǎn)換和時鐘的功能。電路所需要的電路模塊及元器件為:單片機AT89S51,AD轉(zhuǎn)換ADC0809,顯示設備液晶1602,時鐘電路DS1302,鍵盤輸入電路,電源電路,以及程序下載接口電路。ADC0809 AT89S52液晶顯示LCD1602DS1302 時鐘模塊鍵盤輸入 程序下載接口電路復位電路 電源電路第三章 系統(tǒng)硬件設計3.1AT89S52單片機最小系統(tǒng)電路單片機的主要功能是負責整個系統(tǒng)的控制,承擔復雜的數(shù)據(jù)處理任務,一個典型的單片機最小系統(tǒng)通常由時鐘電路、復位電路、片外RAM、片內(nèi)ROM、按鍵、液晶顯示器、外部擴展等部分組成,單片機最小系統(tǒng)的結(jié)構(gòu)框圖如圖:(1)時鐘源電路單片機內(nèi)部具有一個高增益反向放大器,用于構(gòu)成振蕩器,通常在引腳XTAL1和XTAL2跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,可以根據(jù)情況選擇6MHZ和12MHZ等頻率的石英晶體,補償電容通常選擇30PF左右的瓷片電容。(2)復位電路單片機最小系統(tǒng)采用上電自動復位和手動按鍵復位兩種方式實現(xiàn)系統(tǒng)的復位操作,(3)鍵盤輸入電路(4)電源電路用來給系統(tǒng)所有電路供電所用。(5)液晶1602顯示電路液晶1602是專門用來顯示字母、數(shù)字、字符等的點陣型液晶模塊,由若干5*7、5*11等點陣字符位組成。3.2ADC0809的資料,DS1302和LCD1602(1)ADC0809 在51 單片機中的應用51 測試網(wǎng)論壇版主/黃海我們在做一個單片機系統(tǒng)時,常常會遇到這樣那樣的數(shù)據(jù)采集,在這些被采集的數(shù)據(jù)中,大部分可以通過我們的I/O 口擴展接口電路直接得到,由于51 單片機大部分不帶AD 轉(zhuǎn)換器,所以模擬量的采集就必須靠A/D或V/F 實現(xiàn)。下現(xiàn)我們就來了解一下AD0809與51 單片機的接口及其程序設計。1、AD0809 的邏輯結(jié)構(gòu)ADC0809 是8位逐次逼近型A/D轉(zhuǎn)換器。它由一個8路模擬開關(guān)、一個地址鎖存譯碼器、一個A/D 轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成(見圖1)。多路開關(guān)可選通8個模擬通道,允許8 路模擬量分時輸入,共用A/D 轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D 轉(zhuǎn)換完的數(shù)字量,當OE 端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。2、AD0809 的工作原理IN0IN7:8 條模擬量輸入通道ADC0809 對輸入模擬量要求:信號單極性,電壓范圍是05V,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。地址輸入和控制線:4條ALE 為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A, B,C 三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進轉(zhuǎn)換器進行轉(zhuǎn)換。A,B 和C 為地址輸入線,用于選通IN0IN7 上的一路模擬量輸入。通道選擇表如下表所示。C B A 選擇的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7數(shù)字量輸出及控制線:11 條ST 為轉(zhuǎn)換啟動信號。當ST 上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D 轉(zhuǎn)換;在轉(zhuǎn)換期間,ST 應保持低電平。EOC 為轉(zhuǎn)換結(jié)束信號。當EOC 為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在進行A/D 轉(zhuǎn)換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7D0 為數(shù)字量輸出線。CLK為時鐘輸入信號線。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ,VREF(),VREF()為參考電壓輸入。3、ADC0809應用說明(1) ADC0809 內(nèi)部帶有輸出鎖存器,可以與AT89S51 單片機直接相連。(2) 初始化時,使ST 和OE信號全為低電平。(3) 送要轉(zhuǎn)換的哪一通道的地址到A,B,C 端口上。(4) 在ST 端給出一個至少有100ns 寬的正脈沖信號。(5) 是否轉(zhuǎn)換完畢,我們根據(jù)EOC 信號來判斷。(6) 當EOC變?yōu)楦唠娖綍r,這時給OE 為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機了。4、AD0809 的應用了解完A/D 轉(zhuǎn)換芯片,下面我們以圖2 為例來完成它的程序設計。電路說明:電路見圖(2),主要由AD 轉(zhuǎn)換器AD0809,頻率發(fā)生器SUN7474,單片機AT89S51及顯示用數(shù)碼管組成。AD0809的啟動方式為脈沖啟動方式,啟動信號START啟動后開始轉(zhuǎn)換,EOC 信號在START 的下降沿10us后才變?yōu)闊o效的低電平。這要求查詢程序待EOC無效后再開始查詢,轉(zhuǎn)換完成后,EOC 輸出高電平,再由OE 變?yōu)楦唠娖絹磔敵鲛D(zhuǎn)換數(shù)據(jù)。我們在設計程序時可以利用EOC 信號來通知單片機(查詢法或中斷法)讀入已轉(zhuǎn)換的數(shù)據(jù),也可以在啟動AD0809 后經(jīng)適當?shù)难訒r再讀入已轉(zhuǎn)換的數(shù)據(jù)。AT89S51的輸出頻為晶振頻的1/6(2MHZ),AT89S1 與SUN7474連接經(jīng)與7474的ST腳提供AD0809 的工作時鐘。AD0809 的工作頻范圍為10KHZ-1280KHZ,當頻率范圍為500KHZ 時,其轉(zhuǎn)換速度為128us。AD0809 的數(shù)據(jù)輸出公式為:Dout=Vin*255/5=Vin*51,其中Vin為輸入模擬電壓,Vout為輸出數(shù)據(jù)。當輸入電壓為5V 時,讀得的數(shù)據(jù)為255 再乘以2,得510。我們用510*98%得499,再將百位數(shù)碼管的小數(shù)點點亮,顯示為.99V,顯示值與輸入值基本吻合。軟件設計思路及程序流程編程思路:(1) 向AD0809 寫入通道號并啟動轉(zhuǎn)換(2) 延時1ms 后等待EOC 出現(xiàn)高電平(JNB EOC,$)(3) 給OE 置高并讀入轉(zhuǎn)換數(shù)據(jù)存入數(shù)據(jù)地址或數(shù)組中。(4) 顯示(2) DS1302 簡介: DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達2.55.5V。采用雙電源供電(主電源和備用電源),可設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。DS1302的外部引腳分配如圖1所示及內(nèi)部結(jié)構(gòu)如圖2所示。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄,因此廣泛應用于測量系統(tǒng)中。 各引腳的功能為: Vcc1:主電源;Vcc2:備份電源。當Vcc2Vcc1+0.2V時,由Vcc2向DS1302供電,當Vcc20; i- ) /循環(huán)8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&0x01); /每次傳輸?shù)妥止?jié) addr = 1; /右移一位 SCLK = 1; /發(fā)送數(shù)據(jù) for ( i=8; i0; i- ) SCLK = 0; temp = dat; DIO = (bit)(temp&0x01); dat = 1; SCLK = 1; CE = 0; /數(shù)據(jù)讀取子程序unsigned char Read1302 ( unsigned char addr ) unsigned char i,temp,dat1,dat2; CE=0; SCLK=0; CE = 1; /發(fā)送地址 for ( i=8; i0; i- ) /循環(huán)8次移位 SCLK = 0; temp = addr; DIO =(bit)(temp&0x01); /每次傳輸?shù)妥止?jié) addr = 1; /右移一位 SCLK = 1; /讀取數(shù)據(jù) for ( i=8; i0; i- ) ACC_7=DIO; SCLK =1; ACC=1; SCLK = 0; CE=0; dat1=ACC; dat2=dat1/16; /數(shù)據(jù)進制轉(zhuǎn)換dat1=dat1%16; /十六進制轉(zhuǎn)十進制 dat1=dat1+dat2*10; return (dat1); /初始化DS1302 void Initial(void) Write1302 (WRITE_PROTECT,0X00); /禁止寫保護 Write1302 (WRITE_SECOND,0x56); /秒位初始化 Write1302 (WRITE_MINUTE,0x34); /分鐘初始化 Write1302 (WRITE_HOUR,0x12); /小時初始化 Write1302 (WRITE_PROTECT,0x80); /允許寫保護(3) LCD1602 液晶顯示簡介液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領(lǐng)域。液晶顯示器的分類液晶顯示的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動方式來分,可以分為靜態(tài)驅(qū)動(Static)、單純矩陣驅(qū)動(Simple Matrix)和主動矩陣驅(qū)動(Active Matrix)三種。液晶顯示器各種圖形的顯示原理:線段的顯示點陣圖形式液晶由MN個顯示單元組成,假設LCD顯示屏有64行,每行有128列,每8列對應1字節(jié)的8位,即每行由16字節(jié),共168=128個點組成,屏上6416個顯示單元與顯示RAM區(qū)1024字節(jié)相對應,每一字節(jié)的內(nèi)容和顯示屏上相應位置的亮暗對應。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。字符的顯示用LCD顯示一個字符時比較復雜,因為一個字符由68或88點陣組成,既要找到和顯示屏幕上某幾個位置對應的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應的地址,設立光標,在此送上該字符對應的代碼即可。漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機中提取要顯示的漢字的點陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應的地址,設立光標,送上要顯示的漢字的第一字節(jié),光標位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)直到32B顯示完就可以LCD上得到一個完整漢字。1082 1602字符型LCD簡介字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如圖10-53:圖10-53 1602字符型液晶顯示器實物圖108.2.1 1602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如下圖10-54所示:圖10-54 1602LCD尺寸圖1602LCD主要技術(shù)參數(shù):顯示容量:162個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.954.35(WH)mm引腳功能說明1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表10-13所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極表10-13:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。10823 1602LCD的指令說明及時序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表10-14所示:序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表10-14:控制命令表1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無表10-15:基本操作時序表讀寫操作時序如圖10-55和10-56所示:圖10-55 讀操作時序圖10-56 寫操作時序10824 1602LCD的RAM地址映射及標準字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖10-57是1602的內(nèi)部顯示地址。圖10-57 1602LCD內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先設置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,如圖10-58所示,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”圖10-58 字符代碼與圖形對應圖10825 1602LCD的一般初始化(復位)過程延時15mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38H:顯示模式設置寫指令08H:顯示關(guān)閉寫指令01H:顯示清屏寫指令06H:顯示光標移動設置寫指令0CH:顯示開及光標設置第四章 系統(tǒng)的軟件設計(1)DS1302的顯示程序#include #include #include sbit KEY0 = P12;sbit KEY1 = P13;sbit KEY2 = P14;sbit KEY3 = P27;uchar key_operate = 0;uchar timer =0;uchar key_flag=0;uint counter=0;uchar Lcd_t = 0; /LCD刷新間隔uchar flicker = 0; /調(diào)時閃爍間隔uchar a11=0;uchar h9=0;uchar m4;uchar num3;uchar code week4=MON,TUS,WEN,THU,FRI,SAT,SUN,;void delayms(uint n)uint i,j;for(i=n;i0;i-)for(j=120;j0;j-);void displaydate()con_1302();a0=2;a1=0;a2=time12;a3=time13;a4=-;a5=time8;a6=time9;a7=-;a8=time6;a9=time7;a10=0;void displaytime()con_1302();h0=time4;h1=time5;h2=:;h3=time2;h4=time3;h5=:;h6=time0;h7=time1;h8=0;void clearscr()num0=32;num1=32;num2=0;void main()TMOD=0x01; TH0 = (65536 - 28000)/256; TL0 = (65536 - 28000)%256;EA=1;ET0=1;lcd_init();delayms(10);Init_ds1302();delayms(10);clearscr();set1302(date);TR0=1;while(1)if(Lcd_t1) Lcd_t=0;if(key_operate = 0) get1302(); else set1302(date);displaydate();displaytime();gotoxy(0,0);print(a);gotoxy(12,0);print(weektime11-48);gotoxy(0,1);print(h); if(flicker22) if(flicker30) flicker=0; switch (key_operate) case 1:/分 gotoxy(3,1);print(num); break; case 2: /小時 gotoxy(0,1);print(num); break; case 3: /星期 gotoxy(12,0); print(num); gotoxy(14,0);print(num); break; case 4: /日期gotoxy(8,0); print(num); break; case 5: /月 gotoxy(5,0); print(num); break; case 6: /年 gotoxy(2,0); print(num); break;/ case 7: /年(高位) / gotoxy(0,0); /print(num); / break; default: break; void Timer_0(void) interrupt 1 using 1 TR0 = 0; TH0 = (65536 - 28000)/256; TL0 = (65536 - 28000)%256; Lcd_t +; flicker +; if(!KEY0)|(!KEY1)|(!KEY2)|(!KEY3)&(key_flag=0) timer=0;/清除不按鍵計數(shù)器 key_flag = 20; while(-key_flag);/延時去抖動 key_flag = 1; if(!KEY0)/Modle鍵,進入調(diào)時模式 if(key_operate=0) key_flag = 0;/允許按鍵長按 if(counter+30) /Modle鍵要長按2S生效 key_operate+; key_flag = 1;/不允許按鍵長安 else key_operate+; if( key_operate 6) key_operate = 1; else if(!KEY1) switch (key_operate) case 1:/分鐘 if(timebuf1- =0) timebuf1 = 59; break; case 2:/小時 if(timebuf2- =0) timebuf2 = 23; break; case 3:/星期 if(timebuf5- =0) timebuf5 = 6; break; case 4: /日 if(timebuf3- =1) timebuf3 = 30; break; case 5: /月 if(timebuf4- =1) timebuf4 = 12; break; case 6: /年if(timebuf6- =0) timebuf6 = 99; break; / case 7:if(timebuf7- =0) timebuf7=20;/break; default: break; else if(!KEY2)switch (key_operate) case 1:/分鐘 if(+timebuf159) timebuf1=0; break; case 2:/小時 if(+timebuf223) timebuf2=0; break; case 3:/星期 if(+timebuf56) timebuf5 = 0; break; case 4:/日 if(+timebuf330) timebuf3=1; break; case 5:/月 if(+timebuf412) timebuf4=1; break; case 6:/年 if(+timebuf699) timebuf6=0; break; / case 7:if(+timebuf799) timebuf7=20; break;/ default: break; else if(!KEY3) key_operate=0; counter=0; else if(timer+800)/長期不按鍵,自動回到走鐘狀態(tài) timer=0; key_operate=0; counter=0; if(KEY0)&(KEY1)&(KEY2)&(KEY3) key_flag = 0;TR0 = 1; (2)ADC0809在液晶上的顯示程序#include#define uchar unsigned char#define uint unsigned intuchar LCD_DSY_BUFFER1=VOL:0.00(v) ;uchar code2=12345678;uchar LCD_DSY_BUFFER2=num1;sbit ADDA=P13; sbit ADDB=P22; sbit ADDC=P21;sbit ALE=P20; sbit ST=P24; sbit EOC= P25;sbit OE=P26;void delay_50us(uchar i)uchar a; while(-i!=0) for(a=0;a20;a+); void delay_ms(uchar i)uchar a; while(-i!=0) for(a=0;a125;a+); void set_ad_channel(uchar channel) switch (channel) case 1:ADDA=0;ADDB=0;ADDC=0; break; case 2:ADDA=0;ADDB=0;ADDC=1; break; case 3:ADDA=0;ADDB=1;ADDC=0; break; case
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年官方版離婚財產(chǎn)分割協(xié)議書策劃
- 2025年企業(yè)職工失業(yè)保險費繳納策劃協(xié)議書
- 2025年全球貿(mào)易協(xié)調(diào)協(xié)議集
- 2025年婚典豪華車隊租賃協(xié)議
- 2025年標準婚姻出軌和解協(xié)議書樣本
- 2025年農(nóng)村住宅建筑施工合作協(xié)議
- 供應鏈管理中的法律風險管控
- 企業(yè)如何應對消費者權(quán)益爭議
- 2025年光伏設備安裝協(xié)議書
- 人才培養(yǎng)與社會需求匹配的路徑優(yōu)化
- 延遲退休政策驅(qū)動中國第二次人口紅利的多維度解析與展望
- T/CECS 10032-2019綠色建材評價保溫系統(tǒng)材料
- 江蘇揚州中學2024-2025學年數(shù)學高二下期末經(jīng)典試題含解析
- 銀行背債協(xié)議書
- 2025年四川省水電投資經(jīng)營集團普格電力有限公司招聘筆試參考題庫含答案解析
- 非洲地理課件
- 【公開課】巴西+課件-2024-2025學年七年級地理下學期人教版
- 10.3 保障財產(chǎn)權(quán) 課件-2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 溫州市普通高中2025屆高三第三次適應性考試技術(shù)試題及答案
- 河北開放大學2025年《西方行政制度》形成性考核1答案
- 毛細支氣管炎診斷及治療標準流程
評論
0/150
提交評論