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

單片機開機次數記憶器的設計及實現

2020-12-23 06:20:02下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了這篇《單片機開機次數記憶器的設計及實現》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《單片機開機次數記憶器的設計及實現》。

信息與電氣工程學院

單片機應用系統(三級項目)

設計說明書

(2014/2015學年第二學期)

開機次數記憶器設計及實現

專業班級

電子信息工程班

學生學號

學生姓名

指導教師

設計周數

2周設計成績

2015年X月X日

1、項目設計

1.1

設計要求

(1)以單片機AT89C52為核心,使用24C02串行EEPROM進行存儲開機次數;

(2)用LCD1602顯示存儲的開機次數;

(3)單片機復位一次,從24C02中讀取數據,然后加1;

(4)在此基礎上可以拓展對一組密碼數據存儲對比后,才能進入正常界面。

1.2

設計目的(1)培養學生正確的設計思想,理論聯系實際的工作作風,嚴肅認真、實事求是的科學態度和勇于探索的創新精神。

(2)鍛煉學生自學軟件的能力及分析問題、解決問題的能力。

(3)通過課程設計,使學生在理論計算、結構設計、工程繪圖、查閱設計資料、標準與規范的運用和計算機應用方面的能力得到訓練和提高。

(4)鞏固、深化和擴展學生的單片機理論知識。

(5)培養學生的團隊合作能力。

2、項目設計正文

2.1方案設計

2.1.1設計思路

此次項目設計的目的是實現單片機開機次數的記憶及顯示功能,即其復位斷電關機都能準確的將開機次數顯示在LCD1602顯示屏上。根據對項目設計要求和實際應用的分析,選用以單片機AT89C52為核心,使用24C02串行EEPROM進行存儲開機次數的方法,使C52單片機的P2.0口和P2.1口分別控制24C02的數據線SDA和時鐘信號線SCK來完成數據的讀寫功能,然后用LCD1602顯示屏將24C02中存儲的數據顯示出來。

具體設計實現的邏輯流程圖如圖1所示:

圖1

邏輯實現流程圖

2.1.2主要元器件

(1)

處理器AT89C52,引腳圖如圖2所示:

圖2

AT89C52單片機引腳圖

AT89C52是一個低電壓,高性能CMOS

8位單片機,片內含8k

bytes的可反復擦寫的Flash只讀程序存儲器和256

bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業中有著廣泛的應用。

AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2

個讀寫口線,AT89C52可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發成本。

(2)

外部存儲器24C02

串行E2PROM是基于I2C-BUS的存儲器件,遵循二線制協議,由于其具有接口方便,體積小,數據掉電不丟失等特點,在儀器儀表及工業自動化控制中得到大量的應用。具有以下幾大特點:

1.寬范圍的工作電壓1.8v~5.5v

2.低電壓技術:

1mA典型工作電流

1uA典型待機電流

3.儲存器組織結構

4.2線串行接口,完全兼容I2C總線

5.施密特觸發輸入噪聲抑制

6.硬件數據寫保護

7.內部與周期(最大5ms)

8.自動遞增地址

9.可按照字節寫

10.esd保護大于2.5kV

11.高可靠性:擦寫壽命:100萬次

數據保持時間:100年

12.無鉛工藝,符合RoHS標準

2.2單元電路設計

2.2.1處理器AT89C52引腳的選擇

本次項目設計選擇的引腳分別為P0口、P2口、RES端口。

P0

口是一組8

位漏極開路型雙向I/O

口,也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8

個TTL邏輯門電路,對端口P0

寫“1”時,可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8

位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash編程時,P0

口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。

P2口

是一個帶有內部上拉電阻的8

位雙向I/O

口,P2的輸出緩沖級可驅動(吸收或輸出電流)4

個TTL

邏輯門電路。對端口P2

寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。訪問外部程序存儲器或16

位地數據存儲器(例如執行MOVX

@DPTR

指令)時,P2

口送出高8

位地址數據。在訪問8

位地址的外部數據存儲器(如執行MOVX@RI

指令)時,P2

口輸出P2鎖存器的內容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。P2.0口和P2.1口分別控制24C02的數據線SDA和時鐘信號線SCK來完成數據的讀寫功能。

RST為復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。

單片機引腳圖連接選擇如圖3所示:

圖3

單片機的引腳連接圖

2.2.2

RC復位電路

復位電路圖如圖4所示:

圖4

復位電路圖

系統復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著VCC對電容的充電過程而逐漸回落,即RST端的高電平持續時間取決于電容的充電時間。為了保證系統能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。在圖4的復位電路中,當VCC掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內部電路的限制作用,這個負電壓將不會對器件產生損害。另外,在復位期間,端口引腳處于隨機狀態,復位后,系統將端口置為全“1”態。如果系統在上電時得不到有效的復位,則程序計數器PC將得不到一個合適的初值,CPU可能會從一個未被定義的位置開始執行程序。

2.2.3

LCD1602顯示屏的連接

LCD1602各引腳的功能如下:

第1腳:VSS為電源地

第2腳:VDD接5V電源正極

第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。

第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。

第6腳:E(或EN)端為使能(enable)端。

第7~14腳:D0~D7為8位雙向數據端。

單片機的P2.5,P2.6,P2.7分別接LCD1602的RS、RW、E端口,如圖5所示:

圖5

LCD1602顯示屏的連接

2.2.4

24C02的連接

C52單片機的P2.0口和P2.1口分別控制24C02的數據線SDA和時鐘信號線SCK來完成數據的讀寫功能,具體電路圖如圖6所示:

圖6

24C02的連接

2.2.5

整體電路

系統整體仿真電路和實物操作電路如圖7和圖8所示:

圖7

整體仿真電路圖

圖8

仿真實物圖

2.3系統實現程序

#include

#include

sbit

SDA

=

P2^0;

//AT24C01串行數據

5腳

sbit

SCL

=

P2^1;

//AT24C01串行時鐘

6腳

int

time=0;

int

time2=0;

typedef

unsigned

char

uint8;

/*

defined

for

unsigned

8-bits

integer

variable

無符號8位整型變量

*/

typedef

signed

char

int8;

/*

defined

for

signed

8-bits

integer

variable

有符號8位整型變量

*/

typedef

unsigned

char

BYTE;

typedef

unsigned

int

WORD;

typedef

bit

BOOL

;

sbit

rs

=

P2^6;

sbit

rw

=

P2^5;

sbit

ep

=

P2^7;

BYTE

code

dis1[]

=

{“TIME“};

BYTE

dis2[10]={“0123456789“};

BYTE

dis3[10]={“0123456789“};

delay(BYTE

ms)

{

//

延時子程序

BYTE

i;

while(ms--)

{

for(i

=

0;

i<

250;

i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

BOOL

lcd_bz()

{

//

測試LCD忙碌狀態

BOOL

result;

rs

=

0;

rw

=

1;

ep

=

1;

_nop_();

_nop_();

_nop_();

_nop_();

result

=

(BOOL)(P0

&

0x80);

ep

=

0;

return

result;

}

lcd_wcmd(BYTE

cmd)

{

//

寫入指令數據到LCD

while(lcd_bz());

rs

=

0;

rw

=

0;

ep

=

0;

_nop_();

_nop_();

P0

=

cmd;

_nop_();

_nop_();

_nop_();

_nop_();

ep

=

1;

_nop_();

_nop_();

_nop_();

_nop_();

ep

=

0;

}

lcd_pos(BYTE

pos)

{

//設定顯示位置

lcd_wcmd(pos

|

0x80);

}

lcd_wdat(BYTE

dat)

{

//寫入字符顯示數據到LCD

while(lcd_bz());

rs

=

1;

rw

=

0;

ep

=

0;

P0

=

dat;

_nop_();

_nop_();

_nop_();

_nop_();

ep

=

1;

_nop_();

_nop_();

_nop_();

_nop_();

ep

=

0;

}

lcd_init()

{

//LCD初始化設定

lcd_wcmd(0x38);

delay(1);

lcd_wcmd(0x0c);

delay(1);

lcd_wcmd(0x06);

delay(1);

lcd_wcmd(0x01);

//清除LCD的顯示內容

delay(1);

}

////2402程序2

void

AT2401_Delay()

{;;}

void

busy()

{

BYTE

temp;

temp=0x00;

rs=0;

rw=1;

ep=1;

while((temp&0x80)==0x80)

{

ep=0;

_nop_();

ep=1;

_nop_();

}

}

void

AT2401_Start()//啟動信號

{

SDA=1;

AT2401_Delay();

SCL=1;

AT2401_Delay();

SDA=0;

AT2401_Delay();

}

void

AT2401_Stop()//停止信號

{

SDA=0;

AT2401_Delay();

SCL=1;

AT2401_Delay();

SDA=1;

AT2401_Delay();

}

void

AT2401_Respons()//響應

{

uint8

i;

SCL=1;

AT2401_Delay();

while((SDA==1)&&(i<250))

i++;

SCL=0;

AT2401_Delay();

}

void

AT2401_Init()//初始化函數

{

SDA=1;

AT2401_Delay();

SCL=1;

AT2401_Delay();

}

void

AT2401_WByte(uint8

date)//寫一個字節

{

uint8

i,temp;

temp=date;

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

{

temp=temp<<1;

SCL=0;

AT2401_Delay();

SDA=CY;

AT2401_Delay();

SCL=1;

AT2401_Delay();

}

SCL=0;

AT2401_Delay();

SDA=1;

AT2401_Delay();

}

uint8

AT2401_RByte()//讀一個字節

{

uint8

i,k;

SCL=0;

AT2401_Delay();

SDA=1;

AT2401_Delay();

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

{

SCL=1;

AT2401_Delay();

k=(k<<1)|SDA;

SCL=0;

AT2401_Delay();

}

return

k;

}

void

AT2401_WAddr(uint8

address,uint8

date)//指定地址寫一個數據

{

AT2401_Start();

AT2401_WByte(0xa0);

AT2401_Respons();

AT2401_WByte(address);

AT2401_Respons();

AT2401_WByte(date);

AT2401_Respons();

AT2401_Stop();

}

uint8

AT2401_RAddr(uint8

address)//指定地址讀取一個字節

{

uint8

date;

AT2401_Start();

AT2401_WByte(0xa0);

AT2401_Respons();

AT2401_WByte(address);

AT2401_Respons();

AT2401_Start();

AT2401_WByte(0xa1);

AT2401_Respons();

date=AT2401_RByte();

AT2401_Stop();

return

date;

}

void

wr_com(BYTE

com)

{

ep=0;

rs=0;

rw=0;

P0=com;

_nop_();

ep=1;

_nop_();

ep=0;

}

void

wr_data(BYTE

date)

{

busy();

ep=0;

rs=1;

rw=0;

P0=date;

_nop_();

ep=1;

_nop_();

ep=0;

}

///////////////////////////////////////

///////////////////////////////////////

main()

{

BYTE

i;

lcd_init();

//

初始化LCD

AT2401_Init();

time

=

AT2401_RAddr(0x01);

time2

=

AT2401_RAddr(0x02);

if(time>=9)

{

AT2401_WAddr(0x01,0);

time2+=1;

}

time+=1;

if(time2>9&&time>=9)

{

time=0;

time2=0

;

}

AT2401_WAddr(0x01,time);

AT2401_WAddr(0x02,time2);

lcd_pos(4);

//

設置顯示位置為第一行的第5個字符

i

=

0;

while(dis1[i]

!=

'\0')

{

//

顯示字符“TIME“

lcd_wdat(dis1[i]);

i++;

}

lcd_pos(0x49);

//

設置顯示位置為第二行第一位字符

dis2[time];

lcd_wdat(dis2[time]);

//

顯示字符

delay(1);

lcd_pos(0x48);

//

設置顯示位置為第二行第二位字符

dis2[time2];

lcd_wdat(dis3[time2]);

//

顯示字符

while(1);

}

3、項目設計總結

通過此次課程設計,使我更加扎實的掌握了有關單片機應用系統設計方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。

課程設計誠然是一門專業課,給我很多專業知識以及專業技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設計讓我感觸很深。使我對抽象的理論有了具體的認識。通過這次課程設計,我掌握了AT89C52、24C02和LCD1602的基本知識和連接測試,也通過查資料熟悉了外部存儲24C02的工作原理。了解了C語言程序在單片機系統設計中的應用,掌握了系統電路的調試方法。

在此次的課程設計過程中,也對團隊精神的進行了考察,我們小組三個人分工合作,查資料、電路設計、程序設計、硬件實物仿真都做得有條不紊,我們配合越來越默契,有問題一起解決,在成功后一起體會喜悅。果然是團結就是力量,只有互相之間默契融洽的配合才能換來最終完美的結果。我認為,此次課設不僅培養了我們獨立思考、團隊協作、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,我們學會了很多自主學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰,只有不斷的學習、實踐,再學習、再實踐。這對于我們的將來也有很大的幫助。

4、參考文獻

[1]

張毅剛,彭喜元,董繼成.單片機原理及應用.北京:高等教育出版社,2003.[2]

史良.LCD12864顯示模塊與微處理器的接口設計

[J].礦業安全與環保,1999.項目設計

項目設計

成績

指導教師

(簽字)

****年**月**日

下載單片機開機次數記憶器的設計及實現word格式文檔
下載單片機開機次數記憶器的設計及實現.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    基于單片機實現的調光控制器設計”的心得體會

    “基于單片機實現的調光控制器設計”的心得體會 經過這次單片機實驗我感覺自己學到了很多東西?;叵胍幌抡麄€的單片機實驗的過程,感覺那些經歷還還歷歷在目。 從剛開始魯老師......

    基于單片機的交通燈控制系統設計與實現

    基于單片機的交通燈控制系統設計與實現 目的:本文以AT89S51 單片機為核心器件,設計了多功能交通燈控制系統。 軟件仿真和硬件實現的結果表明該系統具有紅綠燈顯示功能、時間......

    基于單片機的恒壓供水系統的設計與實現

    湖南科技大學畢業設計(論文) 題目 作者 學院 專業 學號 指導教師 二〇一一年四月八日 單片機構成的恒壓供水控制系統設計 李鐵雄 信息與電氣工程 自動化 0704020117 沈宏遠老......

    交通燈單片機實現實習報告

    單 片 機 課 程 設 計學院: 專業: 班級: 小組成員:交通燈單片機課程設計 SECOND1 EQU 30H ;東西路口計時寄存器 LED_G1 BIT P1.0 ;東西路口綠燈 LED_Y1 BIT P1.1 ;東西路......

    右腦記憶和右腦記憶器的關系

    右腦記憶和右腦記憶器的關系 我們人類80%到90%的人,一般都是所謂的左腦思維模式的人,而這種左腦型記憶必須花費大量的時間對所記憶內容進行理解,常常看到一種情形,背了之后會忘,......

    基于SPCE061A單片機的教學樓用打鈴器

    基于SPCE061A單片機的教學樓用打鈴器 作 者:賈金貞 摘要:本文是做一個SPCE061A單片機的教學樓用打鈴器,可以實時顯示當前時間。硬件電路由鍵盤、聲音輸出模塊、指示燈、LED數......

    基于單片機的智能跟隨小車的設計與實現

    基于單片機的智能跟隨小車的設計與實現 【摘要】本文設計了一種能夠通過傳感器實時采集信號、智能分析周圍環境以及路徑信息、自動控制方向等功能的智能小車。小車以STC89c5......

    基于單片機體溫檢測儀系統的設計與實現

    In this paper, a temperature detection system based on a single-chip microcomputer is designed to detect human body temperature, display it in digital form, and......

主站蜘蛛池模板: 思热99re视热频这里只精品| 中国少妇内射xxxxⅹhd| 国产mv在线天堂mv免费观看| 我爱我色成人网| 欧美成人精品第一区二区三区| 国产内射999视频一区| 门卫又粗又大又长好爽| 亚洲综合无码一区二区| 熟女人妻aⅴ一区二区三区电影| 国产成人一区二区三区影院动漫| 99精品众筹模特自拍视频| 在线看午夜福利片国产| 在线精品无码字幕无码av| 综合久久久久6亚洲综合| 新婚人妻不戴套国产精品| 99久久人妻无码精品系列蜜桃| 与子敌伦刺激对白播放的优点| 日产区一线二线三av| 97国语精品自产拍在线观看| 中文毛片无遮挡高潮免费| 欧美大屁股喷潮水xxxx| 亚洲孰妇无码av在线播放| 未满十八18禁止午夜免费网站| 国产精品无码a∨精品影院| 国产成人精品日本亚洲一区| 亚洲成年网站青青草原| 精品高潮呻吟99av无码视频| 色欲色香天天天综合vvv| 国产午夜av秒播在线观看| 丰满多毛的大隂户毛茸茸| 人妻被按摩到潮喷中文不卡| 蜜臀av免费一区二区三区| 日韩免费视频| 亚洲爆乳中文字幕无码专区网站| 真人与拘做受免费视频一| 日本精品人妻无码免费大全| 亚洲色大成网站www在线| 色偷偷人人澡久久超碰97| 狠狠躁天天躁日日躁欧美| 欧美一区二区三区红桃小说| 国产亚洲曝欧美曝妖精品|