国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Proteus的電子鐘項(xiàng)目的實(shí)踐教學(xué)

2017-11-07 01:31王莉軍
科技視界 2017年17期
關(guān)鍵詞:電子鐘

王莉軍

【摘 要】單片機(jī)是一種集成度很高的微型計(jì)算機(jī),是現(xiàn)代電子系統(tǒng)中重要的智能化工具,廣泛應(yīng)用于工業(yè)自動(dòng)化控制、家用電器、智能儀表、汽車(chē)電子、航天電子等。在單片機(jī)課程教學(xué)中,理論結(jié)合實(shí)踐的綜合性課程設(shè)計(jì)項(xiàng)目教學(xué)是非常重要的。本論文介紹了一個(gè)單片機(jī)課程設(shè)計(jì)中非常經(jīng)典的電子鐘設(shè)計(jì)項(xiàng)目,通過(guò)該案例的設(shè)計(jì)分析,可以使同學(xué)們能夠熟練掌握并靈活運(yùn)用所學(xué)的知識(shí),了解一個(gè)產(chǎn)品開(kāi)發(fā)的全過(guò)程,鍛煉學(xué)生的創(chuàng)新、獨(dú)立思考、解決問(wèn)題的能力。

【關(guān)鍵詞】電子鐘;Proteus;LCD1602;DS1302

中圖分類(lèi)號(hào): F426.63 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2017)17-0004-002

Practice Teaching of Electronic Clock Project Based on Proteus

WANG Li-jun

(Department of Computer Science and Technology,Sanda University,Shanghai 201209,China)

【Abstract】In Single chip microcomputer course, project teaching of comprehensive curriculum design is very important. This paper introduces a very classic curriculum design of the electronic clock project. Through this project, students can master and apply the knowledge, understand the whole process of a product development. Students' creativity, independent thinking and problem solving skills can be exercised.

【Key words】Electronic Clock; Proteus; LCD1602; DS1302

0 前言

隨著LCD液晶顯示屏的普及,很多地方我們都能看到電子鐘的應(yīng)用,比如電子手表、測(cè)試儀器、智能家電、公共場(chǎng)合的大屏幕時(shí)間顯示屏等。本論文介紹了一個(gè)基于Proteus單片機(jī)仿真平臺(tái)的電子鐘設(shè)計(jì)[1]。

1 總體設(shè)計(jì)

本電子鐘的功能是通過(guò)液晶顯示屏實(shí)時(shí)顯示時(shí)鐘。電子鐘包括時(shí)鐘模塊、顯示模塊,具體的流程是先把設(shè)置的初始時(shí)間寫(xiě)入時(shí)鐘芯片并驅(qū)動(dòng)時(shí)鐘運(yùn)行,然后單片機(jī)每隔一段時(shí)間讀出時(shí)鐘芯片的當(dāng)前時(shí)間,并通過(guò)液晶顯示屏顯示出來(lái)。

2 詳細(xì)設(shè)計(jì)

2.1 時(shí)鐘模塊

2.1.1 DS1302模塊電路設(shè)計(jì)

時(shí)鐘模塊采用DS1302芯片,該芯片總共包括8個(gè)引腳:1腳VCC2為主電源和8腳VCC1為后備電源,可接電池;2腳X1和3腳X2為晶振引腳,外接32768Hz晶振;4腳GND接地;5腳/RST為復(fù)位/片選引腳;6腳I/O為串行數(shù)據(jù)輸入輸出引腳;7腳SCLK為串行時(shí)鐘引腳。單片機(jī)通過(guò)5、6、7腳控制DS1302時(shí)鐘芯片。5腳/RST連接到單片機(jī)P1.7, 6腳I/O連接到單片機(jī)P3.4,7腳SCLK連接到單片機(jī)P3.5[1]。

2.1.2 DS1302模塊軟件設(shè)計(jì)

對(duì)DS1302的操作實(shí)際上就是對(duì)主要的8個(gè)時(shí)鐘寄存器進(jìn)行讀寫(xiě)。具體的控制流程是先寫(xiě)入控制字,然后再寫(xiě)入或讀出寄存器數(shù)據(jù)。寄存器控制字包括讀寫(xiě)的寄存器地址和讀寫(xiě)操作等信息,最高位bit7固定為1,bit6為RAM和時(shí)鐘的選擇位,bit5~bit1為寄存器地址位,bit0為讀寫(xiě)選擇位。

接下來(lái)就是怎樣寫(xiě)入寄存器控制字和讀寫(xiě)寄存器數(shù)據(jù),這就要涉及到DS1302讀寫(xiě)時(shí)序。DS1302

單字節(jié)一次讀取和寫(xiě)入過(guò)程可以看成是對(duì)兩個(gè)字節(jié)的讀寫(xiě)操作,即1個(gè)字節(jié)的寄存器控制字和1個(gè)字節(jié)的讀寫(xiě)寄存器數(shù)據(jù)。例如單字節(jié)讀時(shí)序是先寫(xiě)入一個(gè)字節(jié)的寄存器控制字(以便知道要讀取哪個(gè)寄存器數(shù)據(jù)),然后再讀出對(duì)應(yīng)寄存器的一個(gè)字節(jié)數(shù)據(jù)。單字節(jié)寫(xiě)時(shí)序也是先寫(xiě)入一個(gè)字節(jié)的寄存器控制字,然后寫(xiě)入一個(gè)字節(jié)數(shù)據(jù)到對(duì)應(yīng)的寄存器。而且對(duì)于一個(gè)字節(jié)的寄存器控制字和寄存器數(shù)據(jù),它們的寫(xiě)過(guò)程是一樣的,也就是說(shuō)寫(xiě)一個(gè)寄存器控制字和寫(xiě)一個(gè)寄存器數(shù)據(jù)可以調(diào)用同一個(gè)函數(shù)的,所以可以只設(shè)計(jì)兩個(gè)底層接口函數(shù),用于讀、寫(xiě)單個(gè)字節(jié):void write_byte(uchar addr)和uchar read_byte(void)。DS1302單字節(jié)讀時(shí)序可以調(diào)用寫(xiě)控制字write_byte(addr)和讀數(shù)據(jù)read_byte()兩個(gè)函數(shù),對(duì)上一層的接口函數(shù)為uchar read_ds1302(uchar addr),即從某個(gè)寄存器中讀取數(shù)據(jù)。而DS1302單字節(jié)寫(xiě)時(shí)序可以調(diào)用寫(xiě)控制字write_byte(addr)和寫(xiě)數(shù)據(jù)write_byte(data),對(duì)上層的接口函數(shù)為write_ds1302(uchar addr,uchar dat),即將數(shù)據(jù)寫(xiě)入指定地址的寄存器。

寫(xiě)單字節(jié)函數(shù)void write_byte(uchar addr)的流程是在時(shí)鐘的上升沿將每一個(gè)數(shù)據(jù)位寫(xiě)入DS1302,具體流程為:將字節(jié)從低位開(kāi)始依次寫(xiě)入DS1302,即先取數(shù)據(jù)的最低位放在I/O數(shù)據(jù)線(xiàn)上,然后SCLK電平設(shè)為高電平,產(chǎn)生上升沿,此時(shí)I/O上數(shù)據(jù)會(huì)寫(xiě)入DS1302,再將SCLK置為低電平,數(shù)據(jù)右移一位,為下一次數(shù)據(jù)位傳輸做準(zhǔn)備,然后又進(jìn)入下一位數(shù)據(jù)的傳輸。讀單字節(jié)函數(shù)uchar read_byte(void)的流程是在時(shí)鐘的下降沿時(shí)通知DS1302要取數(shù)據(jù)位,在低電平一段時(shí)間等DS1302準(zhǔn)備好數(shù)據(jù)后,再?gòu)腎/O數(shù)據(jù)線(xiàn)上讀取一位數(shù)據(jù),而且在寫(xiě)控制字的最后一位的時(shí)鐘周期,要讀取的數(shù)據(jù)最低位已經(jīng)在I/O數(shù)據(jù)線(xiàn)上,具體流程為:先讀取I/O數(shù)據(jù)線(xiàn)上的數(shù)據(jù)位,將它保存在一個(gè)數(shù)據(jù)的最高位,SCLK置為高電平,然后再置為低電平,產(chǎn)生下降沿,通知DS1302要取下一位數(shù)據(jù),并且將保存的數(shù)據(jù)右移一位,以便將新接收的數(shù)據(jù)位放在保存數(shù)據(jù)的最高位[2]。endprint

2.1.3 DS1302模塊仿真測(cè)試

通過(guò)Proteus和Keil軟件聯(lián)合仿真DS1302時(shí)鐘模塊,寫(xiě)入時(shí)間2017年9月1日 12點(diǎn)30分30秒能正常寫(xiě)入,仿真結(jié)果如圖1所示:

圖1 DS1302模塊仿真測(cè)試結(jié)果

圖2 LCD1602液晶顯示流程圖

2.2 顯示模塊

2.2.1 電路設(shè)計(jì)

顯示模塊采用LCD1602,它總共能顯示32個(gè)字符,分兩行顯示。LCD1602芯片總共有16個(gè)引腳。主要的控制和數(shù)據(jù)引腳有:RS指令/數(shù)據(jù)寄存器選擇引腳4,高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器,接單片機(jī)P1.0;RW讀寫(xiě)選擇引腳5,高電平時(shí)讀操作,低電平時(shí)寫(xiě)操作,接單片機(jī)P1.1;E使能引腳6,接單片機(jī)P1.5;D0~D7數(shù)據(jù)引腳7~14,接單片機(jī)P0端口[3]。

2.2.2 軟件設(shè)計(jì)

單片機(jī)主要是通過(guò)4腳寄存器選擇RS、5腳讀寫(xiě)選擇RW、6腳使能E來(lái)控制LM1602液晶顯示模塊。

LM1602有16×2個(gè)顯示位,每個(gè)顯示位對(duì)應(yīng)于一個(gè)RAM單元,而且系統(tǒng)規(guī)定,寫(xiě)操作時(shí)的地址最高位為1,讀操作時(shí)的地址最高位為0,所以讀操作時(shí)RAM的地址范圍為:第一行00H~0FH,第二行40H~4FH,寫(xiě)操作時(shí)RAM的地址范圍為:第一行80H~8FH,第二行C0H~CFH。根據(jù)RAM地址表,可以確定如何顯示字符,即先寫(xiě)入字符顯示的首地址,然后依次連續(xù)寫(xiě)入要顯示的字符。那么如何將顯示的地址和顯示的字符寫(xiě)入LCD1602呢,它們都是根據(jù)LM1602芯片的讀寫(xiě)操作控制時(shí)序?qū)懭氲模?dāng)E為下降沿脈沖時(shí)寫(xiě)入指令或數(shù)據(jù),當(dāng)E為高電平時(shí)讀出狀態(tài)字或數(shù)據(jù),而且它是并行數(shù)據(jù)傳輸?shù)?,時(shí)序相對(duì)于DS1302的串行數(shù)據(jù)傳輸簡(jiǎn)單些。

要在液晶顯示器上顯示兩行字符串,可以將需要顯示的兩行字符串分別存放在兩個(gè)字符數(shù)組里,流程圖如圖2所示。LCD的初始化主要是設(shè)置LCD的工作模式、清屏、光標(biāo)顯示方式等,即清屏顯示指令為0x01,表示清除所有顯示數(shù)據(jù);輸入模式指令為0x06,表示讀寫(xiě)一個(gè)字符后地址指針會(huì)自動(dòng)加1;顯示開(kāi)關(guān)控制指令為0x0F,表示整屏顯示;顯示模式指令為0x38,表示8位數(shù)據(jù)接口,雙行顯示。設(shè)置第一、二行首地址,寫(xiě)命令和寫(xiě)數(shù)據(jù)操作可以根據(jù)LM1602芯片的讀寫(xiě)操作控制方式寫(xiě)出[4]。

2.2.3 仿真測(cè)試

LCD1602模塊顯示功能測(cè)試結(jié)果如圖3所示,第一二行都能正常顯示字符。

圖3 LCD1602模塊仿真測(cè)試結(jié)果

圖4 電子鐘系統(tǒng)仿真測(cè)試結(jié)果

2.3 系統(tǒng)測(cè)試

將時(shí)鐘模塊和液晶顯示模塊聯(lián)合仿真測(cè)試,結(jié)果如圖4所示,設(shè)置的初始時(shí)間為2017年9月1日,12點(diǎn)30分30秒,星期五,設(shè)置后,時(shí)鐘能正常工作。圖中也包括單片機(jī)的時(shí)鐘、復(fù)位電路[5]。(下轉(zhuǎn)第7頁(yè))

(上接第5頁(yè))

3 結(jié)語(yǔ)

本文介紹了基于Proteus的電子鐘項(xiàng)目的教學(xué)實(shí)踐過(guò)程,它的特點(diǎn)是在沒(méi)有硬件開(kāi)發(fā)平臺(tái)的環(huán)境下,同學(xué)們也可以進(jìn)行項(xiàng)目的開(kāi)發(fā)實(shí)踐,并且通過(guò)該項(xiàng)目,同學(xué)們可以了解一個(gè)項(xiàng)目的開(kāi)發(fā)流程,以及熟練掌握常用的時(shí)鐘模塊DS1302、液晶顯示模塊LCD1602的設(shè)計(jì)方法。

【參考文獻(xiàn)】

[1]老楊.51單片機(jī)工程師是怎樣煉成的-基于C語(yǔ)言和Proteus仿真[M].北京:電子工業(yè)出版社,2012:284-298.

[2]宋雪松,李冬明,崔長(zhǎng)勝.手把手教你學(xué)51單片機(jī)[M].北京:清華大學(xué)出版社,2014:264-298.

[3]魏芬主,戴麗佼,李紅霞.基于Proteus的單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì)[M].北京:清華大學(xué)出版社,2015:218-222.

[4]林立,張俊亮.單片機(jī)原理及應(yīng)用-基于Proteus和Keil C. 第3版[M].北京:電子工業(yè)出版社,2014:213-218.

[5]張霞,周克,何威,張超.基于MCS-51單片機(jī)的液晶顯示設(shè)計(jì)[J].自動(dòng)控制,2014.3:71-74.endprint

猜你喜歡
電子鐘
基于LIN總線(xiàn)的車(chē)載電子鐘控制系統(tǒng)設(shè)計(jì)與研發(fā)
電子鐘被拆之后
基于STC80C51的電子鐘研制
基于QuartusⅡ可校時(shí)電子鐘的設(shè)計(jì)
用電子鐘演示電容器的電荷量與電壓的關(guān)系值得商榷
基于EPM1270的可校時(shí)電子鐘設(shè)計(jì)
迁安市| 略阳县| 大埔区| 山西省| 类乌齐县| 东乡族自治县| 法库县| 清徐县| 汉阴县| 柘城县| 高阳县| 邹平县| 鄯善县| 介休市| 恩施市| 黄陵县| 三都| 邯郸县| 中西区| 华亭县| 水富县| 永德县| 兴业县| 安化县| 正镶白旗| 民勤县| 定南县| 怀安县| 贵定县| 吉林省| 彭泽县| 定结县| 乾安县| 平和县| 石泉县| 镇赉县| 宁阳县| 郸城县| 丰顺县| 章丘市| 柘城县|