久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

萬(wàn)年歷單片機(jī)綜合實(shí)驗(yàn)[推薦閱讀]

時(shí)間:2019-05-12 04:31:44下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《萬(wàn)年歷單片機(jī)綜合實(shí)驗(yàn)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《萬(wàn)年歷單片機(jī)綜合實(shí)驗(yàn)》。

第一篇:萬(wàn)年歷單片機(jī)綜合實(shí)驗(yàn)

綜合實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)題目: 萬(wàn)年歷

學(xué)生班級(jí): 學(xué)生姓名: 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 實(shí)驗(yàn)時(shí)間:

摘要

本設(shè)計(jì)是電子萬(wàn)年歷。具備三個(gè)功能:能顯示:年、月、日、時(shí)、分、秒及星期信息,并具有可調(diào)整日期和時(shí)間功能。

我選用的是單片機(jī)STC89C52來(lái)實(shí)現(xiàn)電子萬(wàn)年歷的功能。該電子萬(wàn)年歷能夠成功實(shí)現(xiàn)時(shí)鐘運(yùn)行,調(diào)整,顯示年月日時(shí)分秒等信息。

該電子萬(wàn)年歷使用12MHZ晶振與單片機(jī)STC89C52相連接,通過(guò)軟件編程的方法實(shí)現(xiàn)了以24小時(shí)為一個(gè)周期,同時(shí)顯示小時(shí)、分鐘和秒的要求。利用單片機(jī)定時(shí)器及計(jì)數(shù)器產(chǎn)生定時(shí)效果通過(guò)編程形成數(shù)字鐘效果,再利用數(shù)碼管動(dòng)態(tài)掃描顯示單片機(jī)內(nèi)部處理的數(shù)據(jù)。同時(shí)通過(guò)端口讀入當(dāng)前外部控制狀態(tài)來(lái)改變程序的不同狀態(tài),實(shí)現(xiàn)不同功能。

電子萬(wàn)年歷設(shè)計(jì)與制作可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。若用數(shù)字電路完成,所設(shè)計(jì)的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴(lài)于數(shù)字電路的各功能模塊的組合來(lái)實(shí)現(xiàn),焊接的過(guò)程比較復(fù)雜,成本也非常高。若用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,這樣一來(lái)就降低了硬件電路的復(fù)雜性,從而使得其成本降低,更適合我們大學(xué)生自主研發(fā)。所以在該設(shè)計(jì)與制作中我選用了單片機(jī)STC89C52,它是低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有4KB的Flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。另外, 單片機(jī)STC89C52的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128B 的RAM、32條I/O口線、2個(gè)16位定時(shí)計(jì)數(shù)器、5個(gè)中斷源、一個(gè)全雙工串行口等。

因此,采用單片機(jī)STC89C52原理制作的電子萬(wàn)年歷,不僅僅在原理上能夠成功實(shí)現(xiàn)計(jì)時(shí)等功能,也更經(jīng)濟(jì),更適用,更符合我們實(shí)際生活的需要,對(duì)我們大學(xué)生來(lái)說(shuō)也更加有用。

關(guān)鍵詞:STC89S52,DS1302,LCD,PROTEUS

目錄

一、實(shí)驗(yàn)要求:...............................................................................................................................3

1.1基本要求:.........................................................................................................................3 1.2拓展要求:.........................................................................................................................3

二、方案論證:...............................................................................................................................3

2.1.顯示部分:...........................................................................................................................3 2.2.數(shù)字時(shí)鐘:.........................................................................................................................3

三、總體方案:...............................................................................................................................4

四、系統(tǒng)硬件設(shè)計(jì):.......................................................................................................................4

4.1.時(shí)間設(shè)置模塊:...............................................................................................................4 4.2.時(shí)鐘模塊:...........................................................................................................................4 4.3.整點(diǎn)報(bào)時(shí)電路.....................................................................................................................5 4.4.LCD液晶顯示模塊:.......................................................................................................5

五、整體電路:...............................................................................................................................6

5.1.電路.....................................................................................................................................6

六、數(shù)字時(shí)鐘使用說(shuō)明:...............................................................................................................7

七、心得體會(huì):...............................................................................................................................7

八、程序代碼:...............................................................................................................................7

一、實(shí)驗(yàn)要求:

1.1基本要求:

1、能動(dòng)態(tài)顯示年、月、日、星期、小時(shí)、分鐘、秒。

2、可用鍵盤(pán)進(jìn)行日期時(shí)間的修改。1.2拓展要求:

3、具有鬧鐘功能:可設(shè)定鬧鐘時(shí)間,在時(shí)間到達(dá)后,發(fā)出報(bào)警時(shí)間,持續(xù)5秒。

二、方案論證:

2.1.顯示部分: 顯示部分是本次設(shè)計(jì)的重要部分,一般有以下兩種方案: 方案一:

采用LED顯示,分靜態(tài)顯示和動(dòng)態(tài)顯示。對(duì)于靜態(tài)顯示方式,所需的譯碼驅(qū)動(dòng)裝置很多,引線多而復(fù)雜,且可靠性也較低。而對(duì)于動(dòng)態(tài)顯示方式,雖可以避免靜態(tài)顯示的問(wèn)題,但設(shè)計(jì)上如果處理不當(dāng),易造成亮度低,有閃爍等問(wèn)題。方案二:

采用LCD顯示。LCD液晶顯示具有豐富多樣性、靈活性、電路簡(jiǎn)單、易于控制而且功耗小等優(yōu)點(diǎn),對(duì)于信息量多的系統(tǒng),是比較適合的。

鑒于上述原因,我們采用方案二。2.2.數(shù)字時(shí)鐘:

數(shù)字時(shí)鐘是本設(shè)計(jì)的核心的部分。根據(jù)需要可采用以下兩種方案實(shí)現(xiàn): 方案一:

方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將時(shí)字節(jié)清零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn),但當(dāng)單片機(jī)不上電,程序?qū)⒉粓?zhí)行。而且由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。

方案二:

方案采用Dallas公司的專(zhuān)用時(shí)鐘芯片DS1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時(shí),可使系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨 時(shí)提供正確的時(shí)間。

基于時(shí)鐘芯片的上述優(yōu)點(diǎn),本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。

三、總體方案:

本設(shè)計(jì)采用STC89C52RC單片機(jī)作為本系統(tǒng)的控制模塊。單片機(jī)可把由DS1302、LCD液晶顯示模塊中的數(shù)據(jù)利用軟件來(lái)進(jìn)行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊,實(shí)現(xiàn)日歷和修改的顯示。以LCD液晶顯示器為顯示模塊,把單片機(jī)傳來(lái)的數(shù)據(jù)顯示出來(lái),并且顯示多樣化。在顯示電路中,主要靠按鍵來(lái)實(shí)現(xiàn)日期的修改和選擇。

四、系統(tǒng)硬件設(shè)計(jì):

4.1.時(shí)間設(shè)置模塊:

時(shí)間設(shè)置模塊通過(guò)四個(gè)按鍵實(shí)現(xiàn)萬(wàn)年歷的時(shí)間調(diào)整設(shè)置。KEY1鍵進(jìn)入時(shí)間設(shè)置模式,KEY2鍵實(shí)現(xiàn)設(shè)置內(nèi)容選擇,KEY3鍵實(shí)現(xiàn)設(shè)置內(nèi)容加1,KEY4鍵實(shí)現(xiàn)設(shè)置內(nèi)容減1。

圖1.時(shí)間設(shè)置模塊

4.2.時(shí)鐘模塊: 時(shí)鐘模塊采用DS1302芯片,DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路提供秒分時(shí)日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過(guò) 4 AM/PM指示決定采用24或12小時(shí)格式DS1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線:

RST復(fù)位、I/O數(shù)據(jù)線、SCLK串行時(shí)鐘。時(shí)鐘/RAM的讀/寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信。DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW,其接線電路如圖2所示:

圖2.時(shí)鐘模塊

4.3.整點(diǎn)報(bào)時(shí)電路

整點(diǎn)報(bào)時(shí)電路由一個(gè)NPN三極管和蜂鳴器組成,當(dāng)時(shí)間走到整點(diǎn)時(shí)分,會(huì)每間隔一秒發(fā)出一次報(bào)時(shí),連響五次。

圖3.報(bào)時(shí)電路

4.4.LCD液晶顯示模塊: LCD液晶顯示模塊采用LCD1602型號(hào),具有很低的功耗,正常工作時(shí)電流僅2.0mA/5.0V。通過(guò)編程實(shí)現(xiàn)自動(dòng)關(guān)閉屏幕能夠更有效的降低功耗。LCD1602分兩行顯示,每行可顯示多達(dá)16個(gè)字符。LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,通過(guò)內(nèi)部指令可實(shí)現(xiàn)對(duì)其顯示多樣的控制,并且還能利用空余的空間自定義字符。其接線如圖4所示:

圖4.LCD液晶顯示

五、整體電路:

5.1.電路

圖5.整體電路

六、數(shù)字時(shí)鐘使用說(shuō)明:

調(diào)整時(shí)間設(shè)定:在時(shí)間顯示界面中按KEY1鍵后,進(jìn)入時(shí)間調(diào)整,通過(guò)KEY2選擇需要修改的或設(shè)定的時(shí)間。按KEY2鍵對(duì)應(yīng)內(nèi)容向右移動(dòng),KEY3鍵加1,KEY4鍵減1,設(shè)置完畢,自動(dòng)退出設(shè)置功能。

七、心得體會(huì):

通過(guò)這一周的課程設(shè)計(jì),加深了我對(duì)于單片機(jī)和數(shù)字電路的認(rèn)識(shí),通過(guò)查閱大量的資料,我獲得了以前在課堂上學(xué)不到的東西,我想這對(duì)于以后的畢業(yè)設(shè)計(jì),或者工作也好,都是很有幫助的。在設(shè)計(jì)電路中,往往是先仿真后連接實(shí)物圖,但有時(shí)候仿真和電路連接并不是完全一致的,例如仿真的連接示意圖中,往往沒(méi)有接高電平的16腳或14腳以及接低電平的7腳或8腳,因此在實(shí)際的電路連接中往往容易遺漏。在設(shè)計(jì)的過(guò)程中遇到了很多問(wèn)題,本來(lái)自己的單片機(jī)基礎(chǔ)就比較弱,又是第一次做這樣的設(shè)計(jì),難免會(huì)遇到過(guò)各種各樣的問(wèn)題。同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,比如對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好。此次的電子萬(wàn)年歷設(shè)計(jì)重在于仿真和接線,雖然能把電路圖接出來(lái),并能正常顯示,但對(duì)于電路本身的原理并不是十分熟悉.總的來(lái)說(shuō),通過(guò)這次的設(shè)計(jì)實(shí)驗(yàn)更進(jìn)一步地增強(qiáng)了實(shí)驗(yàn)的動(dòng)手能力。

八、程序代碼:

#include “reg51.h” #include “intrins.h” typedef unsigned char uint8;typedef unsigned int uint16;

#define LED_Y P2 #define LCD_DATA 1 #define LCD_COMMAND 0 #define WORDNUU 11

sbit ALARM=P2^0;sbit LCD_RS=P1^5;sbit LCD_RW=P1^6;sbit LCD_EN=P1^7;sbit RTC_SDA=P3^6;sbit RTC_SCL=P3^5;sbit RTC_RST=P3^4;sbit KEY1=P1^0;sbit KEY2=P1^1;sbit KEY3=P1^2;sbit KEY4=P1^3;

#define LCD_PORT P0 uint8 LCD_NO;uint16 i1,i2;uint8 bdata AA;sbit AA7 = AA^7;#define READ_SECOND #define WRITE_SECOND #define READ_MINE

#define WRITE_MINE

#define READ_HOUR

#define WRITE_HOUR #define READ_DAY #define WRITE_DAY #define READ_MONTH #define WRITE_MONTH #define READ_WEEK #define WRITE_WEEK #define READ_YEAR

#define WRITE_YEAR

uint8 SET;uint8 PRE_HOUR;uint8 DATE[16];uint8 TIME[16];

0x81 0x80 0x83 0x82 0x85 0x84 0x87 0x86 0x89 0x88 0x8b 0x8a 0x8d 0x8c 8

void delaynus(uint8 n){

uint8 i;

for(i=0;i

}

void RTC_Write(uint8 dat){ uint8 i;

RTC_SCL=0;

//拉低SCLK,為脈沖上升沿寫(xiě)入數(shù)據(jù)做好準(zhǔn)備

delaynus(2);

//稍微等待,使硬件做好準(zhǔn)備

for(i=0;i<8;i++)

//連續(xù)寫(xiě)8個(gè)二進(jìn)制位數(shù)據(jù)

{

RTC_SDA=dat&0x01;

//取出dat的第0位數(shù)據(jù)寫(xiě)入1302

delaynus(2);

//稍微等待,使硬件做好準(zhǔn)備

RTC_SCL=1;

//上升沿寫(xiě)入數(shù)據(jù)

delaynus(2);

//稍微等待,使硬件做好準(zhǔn)備

RTC_SCL=0;

//重新拉低SCLK,形成脈沖

dat>>=1;

//將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫(xiě)入下一個(gè)數(shù)據(jù)位

}

}

uint8 RTC_Read(){ uint8 i,dat;

delaynus(2);

//稍微等待,使硬件做好準(zhǔn)備

for(i=0;i<8;i++)

//連續(xù)讀8個(gè)二進(jìn)制位數(shù)據(jù)

{

dat>>=1;

//將dat的各數(shù)據(jù)位右移1位,因?yàn)橄茸x出的是字節(jié)的最低位

if(RTC_SDA==1)

//如果讀出的數(shù)據(jù)是1

dat|=0x80;

//將1取出,寫(xiě)在dat的最高位

RTC_SCL=1;

//將SCLK置于高電平,為下降沿讀出

delaynus(2);//稍微等待

RTC_SCL=0;

//拉低SCLK,形成脈沖下降沿

delaynus(2);//稍微等待

}

return dat;

//將讀出的數(shù)據(jù)返回 }

void RTC_Write_Byte(uint8 addr,uint8 dat){

RTC_RST=0;

//禁止數(shù)據(jù)傳遞

RTC_SCL=0;

//確保寫(xiě)數(shù)居前SCLK被拉低

RTC_RST=1;

//啟動(dòng)數(shù)據(jù)傳輸

delaynus(2);

//稍微等待,使硬件做好準(zhǔn)備

RTC_Write(addr);

//寫(xiě)入命令字

RTC_Write(dat);

//寫(xiě)數(shù)據(jù)

RTC_SCL=1;

//將時(shí)鐘電平置于已知狀態(tài)

RTC_RST=0;

//禁止數(shù)據(jù)傳遞

}

uint8 RTC_Read_Byte(uint8 addr){

uint8 dat;

RTC_RST=0;

//拉低RST

RTC_SCL=0;

//確保寫(xiě)數(shù)居前SCLK被拉低

RTC_RST=1;

//啟動(dòng)數(shù)據(jù)傳輸

RTC_Write(addr);

//寫(xiě)入命令字

dat=RTC_Read();

//讀出數(shù)據(jù)

RTC_SCL=1;

//將時(shí)鐘電平置于已知狀態(tài)

RTC_RST=0;

//禁止數(shù)據(jù)傳遞

return dat;

//將讀出的數(shù)據(jù)返回 }

typedef struct __SYSTEMTIME__ { uint8 Second;uint8 Mine;uint8 Hour;uint8 Day;uint8 Month;uint8 Week;uint8 Year;}SYSTEMTIME;

static SYSTEMTIME TIMETYPE;

void CurrentTime(SYSTEMTIME *dat){ uint8 TimeValue;

TimeValue=RTC_Read_Byte(READ_SECOND);dat->Second=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);

TimeValue=RTC_Read_Byte(READ_MINE);dat->Mine=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);

TimeValue=RTC_Read_Byte(READ_HOUR);dat->Hour=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);

TimeValue=RTC_Read_Byte(READ_DAY);dat->Day=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);

TimeValue=RTC_Read_Byte(READ_MONTH);dat->Month=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);

TimeValue=RTC_Read_Byte(READ_WEEK);dat->Week=(TimeValue&0x0f);

TimeValue=RTC_Read_Byte(READ_YEAR);dat->Year=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);}

bit LCD_BUSY(){ bit result;LCD_RS=0;LCD_RW=1;LCD_EN=1;_nop_();_nop_();result=(bit)(LCD_PORT&0x80);LCD_EN=0;return result;}

void LCD_Write(uint8 dat,uint8 type)

//LCD寫(xiě)字符 { uint8 i;while((LCD_BUSY()&&i<100)){i++;} if(i>99)LCD_NO=1;LCD_RS=type;LCD_RW=0;LCD_EN=0;_nop_();_nop_();_nop_();_nop_();LCD_PORT=dat;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}

void LCD_INITIALIZE()

//LCD初始化 { LCD_Write(0x06,LCD_COMMAND);LCD_Write(0x38,LCD_COMMAND);LCD_Write(0x0c,LCD_COMMAND);LCD_Write(0x01,LCD_COMMAND);}

void LCD_Prints(uint8 *dat,uint8 add)

//LCD打印函數(shù) { LCD_Write(add|0x80,LCD_COMMAND);while(*dat!='

主站蜘蛛池模板: 女人与公人强伦姧人妻完电影| 97色伦午夜国产亚洲精品| 综合成人亚洲网友偷自拍| 亚洲成aⅴ人片在线观| 26uuu另类亚洲欧美日本| 少妇高潮无套内谢麻豆传| 国产免费无码一区二区| 国产中文欧美日韩在线| 亚洲午夜国产精品无码老牛影视| 18禁无遮挡啪啪无码网站| 黑人大战亚洲人精品一区| 国产喷水福利在线视频| 人妻夜夜爽天天爽三区麻豆av网站| 色综合久久蜜芽国产精品| 亚洲精品揄拍自拍首页一| 激情内射亚洲一区二区三区爱妻| 曰本女人牲交全视频免费播放| 亚洲日韩∨a无码中文字幕| 亚洲老妇色熟女老太| 亚洲综合色区在线观看| 在线永久免费观看黄网站| 动漫精品中文无码卡通动漫| 中文无码日韩欧av影视| 成人欧美一区二区三区视频| 久久天天躁夜夜躁狠狠躁2022| 亚洲中文字幕精品久久| 免费人成小说在线观看网站| 国产成人无码综合亚洲日韩| 大学生被内谢粉嫩无套| 国产av午夜精品一区二区三区| 精品无码日韩一区二区三区不卡| 18禁免费观看网站| 秋霞成人午夜鲁丝一区二区三区| 老熟女高潮一区二区三区| 啦啦啦www在线观看免费视频| 亚洲男同志gay 片可播放| 色成人精品免费视频| 亚洲欧美在线x视频| 十八禁在线观看视频播放免费| 久久精品久久精品中文字幕| 2020国产精品永久在线|