版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
物理與機(jī)電工程學(xué)院課程設(shè)計報告
課程名稱:電子系統(tǒng)實訓(xùn)報告
專業(yè)班級:2012級電子信息工程(信班
學(xué)號:____________________________
學(xué)生姓名:____________________________
指導(dǎo)教師:____________________________
完成時間:2015.3.17—2015616
報告成績:____________________________
評閱意見:
評閱教師日期
時間溫度萬年歷
一、設(shè)計任務(wù)與要求
1.具有年、月、日、星期、時、分、秒等功能。
2.具有溫度計的功能。
3.具有年、月、日、星期、是、分、秒等校準(zhǔn)功能。
4.具有復(fù)位功能。
二、方案設(shè)計與論證
2.1顯示模塊選擇方案與論證:
方案一:
采用LED數(shù)碼管動態(tài)掃描,對于數(shù)字顯示比較合適而且價格也比較合
適。采用動態(tài)掃描法與單片機(jī)連接,占用單片機(jī)線口少。但是顯示容量有所不足,
不太適合采用。
方案二:
采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,
雖然價格比較昂貴,但是比較適合作為本次試驗的顯示模塊。
方案三:
采用點陣式數(shù)碼管顯示。點陣式數(shù)碼管是由八行八列的發(fā)光二極管組
成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且難度也相對較高,
所以不用此種作為顯示。
經(jīng)過綜合比較最終選擇方案二,即選擇LED液晶顯示屏作為顯示模塊。
2.2溫度采集方案論證:
方案一:
利用傳統(tǒng)的溫度采集電路,該電路需要經(jīng)過溫度采集、信號放大、濾波、
A\D轉(zhuǎn)換等一系列工作才能得到溫度的數(shù)字量。因此電路的結(jié)構(gòu)非常復(fù)雜,并且
這種方式不僅是電路復(fù)雜、元器件個數(shù)多,而且溫度采集的線性度和準(zhǔn)確度都不
理想,抗干擾能力弱,不太適合采用。
方案二:
利用數(shù)字溫度傳感器DS18B20,該溫度傳感器功率消耗低、準(zhǔn)確度高,
而且比傳統(tǒng)的溫度傳感器有著更好的線性表現(xiàn),并且電路簡單是單總線控制,使
得系統(tǒng)的調(diào)制和維護(hù)比較簡單,而且抗干擾能力較傳統(tǒng)也比較理想。
經(jīng)過綜合比較最終選擇方案二,即選擇溫度傳感器DS18B20作為溫度采集。
2.3單片機(jī)芯片的選擇方案與論證:
方案一:
采用89C51芯片作為硬件核心,89C51是一種帶4K字節(jié)閃爍可編程
可擦除只讀存儲器,采用FlashROM,內(nèi)部具有4KBROM存儲空間,能于3V的
超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,與工業(yè)標(biāo)準(zhǔn)的MCS-51指
令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯
片中,89C51是一種高效微控制器,單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種
靈活性高且價廉的方案。
方案二:
采用STC12C5A60S2單片機(jī),STC12C5A60S2單片機(jī)是宏晶科技生產(chǎn)的
單時鐘/機(jī)器周期(1T)的單片一機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單
片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專
用復(fù)位電路,2路PW,8路高速10位A/D轉(zhuǎn)換,針對電機(jī)控制,強(qiáng)干擾場。
STC12C5A60S2單片機(jī)內(nèi)部有60KB的程序Flash存儲器,1KB的數(shù)據(jù)Flash
存儲器,具有在線編程可擦除技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤
修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,不需要對芯片多次拔插,所以不會
對芯片造成損壞,但是總體比較昂貴不太適合學(xué)生使用。
經(jīng)過綜合比較最終選擇方案一,即選擇89C51作為主控制器。
2.4時鐘芯片的選擇方案和論證:
方案一:
采用單片機(jī)定時。單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗
低、使用方便、價格低廉等一系列優(yōu)點,單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、
通訊、交通、智能儀表等迅速發(fā)展到家用消費產(chǎn)品、辦公自動化、汽車電子、
PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。直接采用單片機(jī)定時計數(shù)器提供秒信號,
計數(shù)的脈沖由外部提供,定時的脈沖由外部晶振提供,定時加1的周期為一個
機(jī)器周期;定時時間與初值和晶振頻率有關(guān)。使用程序?qū)崿F(xiàn)年、月、日、星期、
時、分、秒計數(shù)。采用此種方案減少芯片的使用,節(jié)約成本,但程序復(fù)雜度較
r?i。
方案二:
采用DS1302時鐘芯片。DS1302是美國DALLAS公司推出的一種高性
能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、星期、時、分、
秒進(jìn)行計時,具有閏年補(bǔ)償功能,工作電壓為2.5V?5.5V。采用雙電源供電
(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后背電源進(jìn)行涓
細(xì)電流充電的能力。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)
點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄,因此廣泛應(yīng)用于測量
系統(tǒng)中。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個
字節(jié)的時鐘信號或RAM數(shù)據(jù)。
經(jīng)過綜合比較最終選擇方案二,即采用DS1302時鐘芯片。
2.5電路設(shè)計最終方案確定:
最終選擇LED液晶顯示屏作為顯示模塊,選擇溫度傳感器DS18B20作
為溫度采集,選擇89C51作為主控制器,采用DS1302時鐘芯片設(shè)計最簡單的
最適合學(xué)生的比較廉價的溫度時間萬年歷。
三、系統(tǒng)硬件電路設(shè)計
3.1元器件清單如下圖所示:
32.768晶振1
11.0592晶振1
4腳開關(guān)4
10uF電容1
100uF電容1
30pF電容2
1k電阻2
10k電阻1
10k排阻1
10k藍(lán)白電位器1
A89c51單片機(jī)1
DS13021
DS18B201
8腳插座1
40腳插座1
16孔排插1
LCD1602液晶顯示器1
3.2總體電路結(jié)構(gòu)圖如下:
主控模塊采用性價比較高的89c51單片機(jī)芯片,在其內(nèi)部燒寫好程序,可
通過程序的運行控制測溫模塊進(jìn)行測溫;測溫模塊主要是由DS18B20構(gòu)成,將
其與所測對象進(jìn)行接觸即可獲取被測對象的溫度數(shù)據(jù),而所測得的溫度和時鐘
芯片測得的實時日歷將通過顯示模塊的液晶顯示器以數(shù)字形式顯示;單片機(jī)調(diào)
用程序,讀取DS1302內(nèi)寄存器,可以得到萬年歷的時間數(shù)據(jù),經(jīng)過程序處理就
可以輸出在LCD上;鍵盤電路可對實時日歷進(jìn)行調(diào)整。
3.3各單元模塊功能分析及模塊電路設(shè)計
3.3.1復(fù)位電路
3.3.2晶振電路
C1
-4
-L
夕
口料2p
則
1叩o
Ip
!瑜n
-CRpo.,up
但PD02p
XPo1H軀□
HL2Ip
Po鍬h
ONIp
PDSMDsp
做h6I]
9PQvIP
RMNK,
3.3.3控制電路
PN7欣伯
1
.r1口
I.P1ITT2P3IVRXD
n11
P1.1H2EXP3.1HXD~~iF
/F12pa^irro
口
sP13
b1*
P3.4/TD5
TP1SP3ST1
S
P1J6P3J&WR
PI?PZ3.7何□L
A
EIfT&tP-
ARED
todNI
3.3.4顯不模塊
四、仿真過程與仿真結(jié)果
4.1仿真操作過程:
(1)新建工程。打開Keil,單擊Project菜單,在彈出的下拉菜單
選擇NewProjecto
(2)選擇要保存的路徑,輸入工程文件名字“時間溫度萬年歷”,保
存。
(3)新建一個工程后彈出一個對話框,根據(jù)需要選擇使用單片機(jī)型號,
單擊確定。
(4)單擊“File”,選擇“New”,新建文件并在其中輸入程序代碼,然
后保存為C語言文件。
(5)回到編輯界面后,單擊“Target1”前面的“+”號,然后在“Source
Group1”單擊右鍵選擇"AddFileToGroup'SourceGroup1'”,選中上一步
保存的“時間溫度萬年歷.C”文件。
(6)單擊“Project”菜單,選中“BuiltTarget",完成程序的編譯,
在工程文件夾中找到“時間溫度萬年歷.hex”文件即可。
(7)打開Proteus軟件,新建一個文件將硬件原理圖繪入圖中。
(8)將KEIL生成的HEX文件下載入單片機(jī)中,點擊“開始”進(jìn)行仿真。
4.2仿真結(jié)果:
五、電路原理圖的繪制、PCB的制作、電路的焊接、實物的展示
5.1電路原理圖的繪制
利用AltiumDesigner軟件電路原理圖繪制時遇到了很多困難,其中遇
到最大的困難時有些元器件無法找到封裝,導(dǎo)致原理圖轉(zhuǎn)為PCB時無法成功。
后來經(jīng)過向同學(xué)請教以及百度得到了解決。自己也學(xué)會了制作封裝。這也是
一個很大的收獲。
成圖如圖所示:
5.2PCB制作
制作PCB時發(fā)現(xiàn)滑動變阻器的封裝是貼片的封裝,如下圖所示:
經(jīng)過自己重新繪制滑動變阻器的封裝后修改PCB如下:
5.3電路的焊接
電路焊接過程中出現(xiàn)了一些問題(檢測時發(fā)現(xiàn)電路連接不正常,
經(jīng)過修改后已經(jīng)沒有得到改善)導(dǎo)致了第一次焊接電路板的失敗。
第二次制作的電路板焊接時也出現(xiàn)虛焊,后來經(jīng)過調(diào)試終于可
以正常顯示了,焊接電路板如下圖所示:
5.4實物的展示
經(jīng)過最終測試得到實物展示的結(jié)果如下圖顯示:
設(shè)置鍵按下:
n4
0'■''
o?1
口
Mon08:30三
09/12/10.
增加鍵按下:
.
33
C三
09/12/IS
-r
減小鍵按下:
復(fù)位鍵按下:
六、實驗總結(jié)
本次實訓(xùn)完成的結(jié)果比較理想,最終成品也達(dá)到預(yù)期想要的結(jié)果,只是本次
實訓(xùn)最讓我遺憾的地方。縱觀本次實訓(xùn)的所有流程以及最后的結(jié)果,發(fā)現(xiàn)自己存
在太多的不足。平時上課沒有注意積累相應(yīng)的知識,導(dǎo)致做實驗時基本就是處在
很茫然的一個狀態(tài),無從下手;幸虧的到同學(xué)的幫助才得以使實訓(xùn)可以繼續(xù)下去。
但是過程依舊充滿著波折。對元器件的選擇和使用方面出現(xiàn)了很大的難題,由于
對元器件缺乏最基本的認(rèn)識,所以在設(shè)計電路是用錯了很多元件,直接導(dǎo)致進(jìn)行
仿真時達(dá)不到所要求的結(jié)果,后來借鑒了同學(xué)的元器件的使用以后,選擇出了正
確的元器件,是的仿真的個方面的指標(biāo)勉強(qiáng)達(dá)到要求。但是在由于對Altium
Designer軟件的的使用方法不夠了解,在電路圖轉(zhuǎn)為PCB的過程中出現(xiàn)了一點
小問題,后來看過同學(xué)的操作以后才會這一方法。PCB布線也是一大難點,雖
然有自動布線,但是自動布線后還是有許多方面是不符合要求的,有些線路不可
避免的重復(fù)在一起,倒置布線的失?。蝗绱朔磸?fù)多次以后才得以解決這一問題。
在硬件電路焊接和軟件程序設(shè)計分別完成的基礎(chǔ)之上,進(jìn)行軟硬件的結(jié)合與
調(diào)試。通過下載將在電腦上已完成的程序下載到單片機(jī)芯片中。在調(diào)試中發(fā)現(xiàn)
軟件中存在的問題,及時解決問題,確保系統(tǒng)能正常工作并達(dá)到設(shè)計要求。通過
反復(fù)的調(diào)試與實驗,可以證明該系統(tǒng)能夠較好地完成設(shè)計所需的基本要求。即能
夠正確的顯示萬年歷。在完成軟件系統(tǒng)時,剛開始我是用的是11.0592M的晶振,
所有器件正常,后來我換了12M的晶振,結(jié)果溫度就不正常了,經(jīng)過認(rèn)真排查
才發(fā)現(xiàn)是由于DS18B20在數(shù)據(jù)讀取時,對時間要求很精確,由于晶振的不同造
成了讀數(shù)據(jù)的錯誤,經(jīng)過這次調(diào)試,讓我更清晰的認(rèn)識到了時序?qū)υ骷闹?/p>
要性。經(jīng)過萬年歷的設(shè)計,讓我學(xué)到了很多,讓我認(rèn)識到了學(xué)習(xí)基礎(chǔ)知識的重
要性,當(dāng)設(shè)計完整的系統(tǒng)時,要考慮到硬件和軟件兩者的結(jié)合,有時硬件的不
足,我們可以用軟件程序來彌補(bǔ),從而節(jié)約硬件成本,在設(shè)計軟件程序時要模
塊化,可以提高程序的可讀性。
七、參考文獻(xiàn)
[1]李群芳,肖看.單片機(jī)原理、接口及應(yīng)用.北京:清華大學(xué)出版社,2007
[2]譚浩強(qiáng).C語言程序設(shè)計.北京:清華大學(xué)出版社,2006
[3]張義和,王敏男,許宏昌等.例說51單片機(jī).北京:人民郵電出版社,2008
[4]劉坤,宋戈,趙紅波等.51單片機(jī)C語言應(yīng)用技術(shù)開發(fā)技術(shù)大全.北京:人民
郵電出版社,2008
[5]白延敏.51單片機(jī)典型系統(tǒng)開發(fā)實例精講.北京:電子工業(yè)出版社,2009
[6]周麗娜.Protel99SE電路設(shè)計技術(shù).北京:中國鐵道出版社,2009
[7]王為青,程國鋼.單片機(jī)KeilCX應(yīng)用開發(fā)技術(shù).北京:人民郵電出版
社,200751
[8]江志紅.51單片機(jī)技術(shù)與應(yīng)用系統(tǒng)開發(fā)案例精選.北京:清華大學(xué)出版
社,2009
八、程序
#include<reg52.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitlcden=P2A7;//定義下面通過Icden來操作P2A7口,1602液晶使能控制
端
sbitlcdwr=P2A5;//定義下面通過Icdrw來操作P2A5口,1602讀寫選擇端
sbitlcdrs=P2A6;〃定義選數(shù)據(jù)寄存器選指令寄存器控制端
sbitsck=P3A6;//定義時鐘總線
sbitsda=P3A4;//定義DS1302數(shù)據(jù)總線
sbitrst=P3A5;//DS1320復(fù)位
sbitsl=P3AO;〃定義設(shè)置按鈕
sbits2=P3A1;//定義調(diào)時按鈕
sbits3=P3A2;//定義確定按鈕
sbitDQ=P3A7;//定義DS18B2O通信端口
sbitACC0=ACCA0;
sbitACC7=ACCA7;
charfen,shi,miao,ri,yue,nian,zhou,s1num,s2num,flag1,flag2;
ucharcodetable[]={M20--”};//要寫入1602液晶的數(shù)據(jù)
ucharcodetable1[]={""};//字庫中的字可直接以外加""號
的形式直接寫入
ucharcode
Weeks[][3]={{"SUN"},{"MON"},{"TUE"},{"WED"},{"THU"},{"FRI"},{"SA
T"},{"SUN"}};
uchari,j;
voiddelayO(uintz)
(
while(z-);
)
voiddelay(uintz)
(
uintx,y;
fbr(x=z;x>0;x—)
for(y=l10;y>0;y");
)
voidwrite_com(ucharcom)
(
lcdwr=0;//Icdwr為讀寫控制端,lcdwr=0,這里可不寫
lcdrs=0;〃液晶rs接口為0時,寫指令,rs為1時寫數(shù)據(jù)
P0=com;〃將要寫的指令賦給P0口,
delay(5);〃由1602讀寫操作時序圖,先將指令賦給P0口,延時后
將使能
lcden=1;//端Icden置高,再延時一段時間,然后將Icden置低,
這樣指令
delay(5);//就寫入到LCD了
lcden=0;
voidwrite_data(uchardate)
lcdrs=l;〃與寫指令類似,這里Icdrs設(shè)為1
PO=date;
delay(5);
lcden=l;
delay(5);
lcden=O;
)
voidinit_1602()
(
lcdwr=0;
lcden=0;
write_com(0x38);〃設(shè)置LCD為16*2顯示、5*7點陣、8位數(shù)據(jù)接口
模式
write_com(0x0c);〃開顯示、不顯示光標(biāo)
write_com(0x06);〃寫一個字符后,地址指針加1
write_com(0x01);〃顯示清0
P0=0xff;
)
//DS18B20初始化函數(shù)
voidInit_DS18B20(void)
(
unsignedcharx=0;
DQ=1;//DQ復(fù)位
delay0(8);〃稍做延時
DQ=0;//單片機(jī)將DQ拉低
delay0(80);〃精確延時大于480us
DQ=1;//拉高總線
delay0(14);
x=DQ;〃稍做延時后如果x=0則初始化成功x=l則初始化失敗
delay0(20);
)
//DS18B20讀一個字節(jié)
ucharReadOneChar(void)
(
unsignedchari=0;
unsignedchardat=0;
for(i=8;i>0;i-){
DQ=0;//給脈沖信號
dat?=l;
DQ=1;〃給脈沖信號
if(DQ)dat|=0x80;
delay0(4);
)
return(dat);
)
//DS18B20寫一個字節(jié)
voidWriteOneChar(unsignedchardat)
(
unsignedchari=0;
for(i=8;i>0;i-){
DQ=0;
DQ=dat&OxOl;
delay0(5);
DQ=1;
dat?=l;
//DS18B20讀取溫度
uintReadTemperature(void)
(
unsignedchara=0;
unsignedcharb=0;
unsignedinttemp=0;
floattt=O;
Init_DS18B20();
WriteOneChar(OxCC);//跳過讀序號列號的操作
WriteOneChar(Ox44);//啟動溫度轉(zhuǎn)換
Init_DS18B20();
WriteOneChar(OxCC);//跳過讀序號列號的操作
WriteOneChar(OxBE);//讀取溫度寄存器等前兩個就是溫度
a=ReadOneChar();
b=ReadOneChar();
temp=b;
temp?=8;
temp=temp|a;
if(temp>Oxfff)
(
temp=(?temp)+l;
flag2=l;
write_com(0x80+0x40+10);
write_data(1-1);
)
else
flag2=0;
write_com(0x80+0x40+10);
write_data(,+,);
)
tt=temp*0.0625;//將溫度的高位與低位合并
temp=tt*10+0.5;//對結(jié)果進(jìn)行4舍5入
return(temp);
)
voidgudingtime_1602()
(
ucharnum;
write_com(0x80);〃將指針指向初始位置
for(num=0;num<16;num++)//循環(huán)函數(shù),用于將"2012--
"寫入液晶
write_data(table[num]);
write_com(0x80+0x40);〃將指針指向1602液晶的第二行
for(num=0;num<16;num++)〃功能與上同,用于將"::
"寫入
write_data(table1[num]);
)
voidwrite_sfm(ucharadd,uchartime)//用于在1602上顯示年、月、日、時、
分、秒。Add為顯示位置,time為要顯示的內(nèi)容
(
ucharshiwei,gewei;
shiwei=time/16;〃將從DS1302中讀取的BCD碼數(shù)
據(jù)轉(zhuǎn)化成十六進(jìn)制十位
gewei=time%16;//十六進(jìn)制個位
write_com(add+0x80);〃定義顯示在液晶的什么位置
write_data(0x30+shiwei);〃由1602液晶字庫可知,0~9的數(shù)據(jù)碼
分別對應(yīng)0x30~0x39
write_data(0x30+gewei);〃初使化中設(shè)定了寫一個字符后,地
址指針加1,因此這里
}//不用重新光標(biāo)寫位
voidwrite_temp(ucharadd,uinttemp)〃用于在1602上顯示年、月、日、時、
分、秒。Add為顯示位置,time為要顯示的內(nèi)容
(
ucharshi,ge,xshu;
shi=temp/100;//將從DS1302中讀取的BCD碼數(shù)據(jù)轉(zhuǎn)化成
10進(jìn)制個位和10
ge=temp%100/10;〃進(jìn)制十位
xshu=temp%10;
write_com(add+0x80);//定義顯示在液晶的什么位置
write_data(0x30+shi);〃由1602液晶字庫可知,0~9的數(shù)據(jù)碼分別
對應(yīng)0x30-0x39
write_data(0x30+ge);〃初使化中設(shè)定了寫一個字符后,地址指針加1,
因此這里
write_com(0x80+0x40+14);
write_data(0x30+xshu);//不用重新光標(biāo)寫位
)
voidwrite_zhou(uchartimel)//用于在1602上顯示周信息,與顯示
(〃時間日期子函數(shù)類似
uchargewei;
gewei=timel%16;〃一周七天,因此只需個位
write_com(0x80+14);
write_data(0x30+gewei);
)
voidInput_lbyte(ucharTD)〃寫一字節(jié)數(shù)據(jù)
uchari;
ACC=TD;
for(i=8;i>0;i-)
sda=ACCO;
sck=1;
sck=O;
ACC=ACC?1;
)
)
ucharOutput_lbyte(void)〃讀一字節(jié)數(shù)據(jù)
(
uchari;
for(i=8;i>0;i-)
(
ACC=ACC?1;
ACC7=sda;
sck=1;
sck=0;
)
sda=0;
return(ACC);
)
voidwrite_1302(ucharDS_ADD,ucharDS_DAT)〃寫操作
(
rst=O;
sck=0;
rst=l;
Input_lbyte(DS_ADD);
Input_lbyte(DS_DAT);
sck=1;
rst=O;
ucharread_1302(ucharDS_ADD)〃讀操作
ucharDS_INF;
rst=O;
sck=O;
rst=1;
Input_1byte(DS_ADD);
DS_INF=Output_1byte();
sck=1;
rst=O;
retum(DS_INF);
)
voidinital_1302()
(
write」302(0x8e,0x00);//禁止寫保護(hù)
write」302(0x90,Oxaa);〃定義充電
write」302(0x80,0x53);//秒
write」302(0x82,0x56);//分
write_l302(0x84,0x09);〃時
write_l302(0x8c,0x15);〃年
write」302(0x88,0x05);〃月
write_l302(0x86,Ox15);//日
write_1302(0x8a,0x03);〃星期
write」302(0x8e,0x80);//開保護(hù)
)
voidkeyscan()
(
if(sl==O)//按鍵1按下且s4在此之前未曾按過
delay(5);
if(sl==O)
flag1=1;
slnum++;
while(!sl);
if(slnum==l)
(
write_com(0x80+4);〃光標(biāo)移動至I」**位置
write_com(OxOf);〃顯示光標(biāo)
)
if(slnum==2)
(
write_com(0x80+7);
)
if(slnum==3)
{
write_com(0x80+10);
)
if(slnum==4)
(
write_com(0x80+14);
)
if(slnum==5)
(
write_com(0x80+0x40+2);
}
if(slnum==6)
write_com(0x80+0x40+5);
if(slnum==7)
write_com(0x80+0x40+8);
if(slnum==8)
flag1=0;
slnum=0;
write_com(0x0c);〃不顯示光標(biāo)
write_l302(0x8e,0x00);
write_l302(0x80,miao);
write_l302(0x84,shi);
write_l302(0x82,fen);
write_l302(0x8a,zhou);
write_l302(0x8c,nian);
write_l302(0x88,yue);
write_l302(0x86,ri);
write_l302(0x8e,0x80);
gudingtime_1602();
if(slnum!=0)〃按鍵1按下*次且s4再次之前未曾按過
if(s2==0)
(
delay(5);
if(s2==0)
while(!s2);
if(slnum==l)
intxl,x2;
xIonian%16;
x2=nian/16;
xl++;
if(x2==9&&xl>9)
(
xl=l;
x2=0;
)
if(xl==10)
(
xl=O;
x2++;
)
nian=xl+x2*16;
write_sfm(3,nian);
write_com(0x80+4);
)
if(slnum==2)
{
intxl,x2;
xl=yue%16;
x2=yue/16;
xl++;
if(x2>=1&&x1>=3)
xl=l;
x2=0;
if(xl==10)
(
xl=O;
x2++;
)
yue=xl+x2*16;
write_sfm(6,yue);
write_com(0x80+7);
)
if(slnum==3)
(
intxl,x2;
xl=ri%16;
x2=ri/16;
xl++;
if(x2>=3&&x1>=1)
(
xl=l;
x2=0;
)
if(xl==10)
(
xl=O;
x2++;
)
ri=xl+x2*16;
write_sfm(9,ri);
write_com(0x80+10);
if(slnum==4)
zhou++;
if(zhou==8)
zhou=l;
write_zhou(zhou);
write_com(0x80+14);
)
if(slnum==5)
{
intxl,x2;
xl=shi%16;
x2=shi/16;
xl++;
if(x2>=2&&xl>=4)
(
xl=O;
x2=0;
)
if(xl==10)
(
xl=O;
x2++;
)
shi=xl+x2*16;
write_sfm(l+0x40,shi);
write__com(0x80+0x40+2);
if(slnum==6)
intxl,x2;
xl=fen%16;
x2=fen/16;
xl++;
if(xl==10)
(
xl=O;
x2++;
if(x2==6)
(
x2=0;
)
)
fen=xl+x2*16;
write_sfm(4+0x40,fen);
write_com(0x80+0x40+5);
)
if(slnum==7)
(
intx5,x6;
x5=miao%16;
x6=miao/16;
x5++;
if(x5==10)
(
x5=0;
x6++;
if(x6==6)
x6=0;
)
}
miao=x5+x6*16;
write_sfm(7+0x40,miao);〃將修改的數(shù)送到1602
顯示
write_com(0x80+0x40+8);〃挪回光標(biāo)
I
}
)
if(s3==0)
(
delay(5);
if(s3==0)
(
while(!s3);
if(slnum==l)
(
intxl,x2;
xl=nian%16;
x2=nian/16;
xl-;
if(x2<=0&&x1==-1)
(
xl=9;
x2=9;
if(xl==-l)
xl=O;
x2-;
)
nian=xl+x2*16;
write_sfm(3,nian);
write__com(0x80+4);
)
if(slnum==2)
{
intxl,x2;
xl=yue%16;
x2=yue/16;
xl-;
if(x2<=0&&xl<=0)
(
xl=2;
x2=l;
)
if(xl==O)
(
xl=9;
x2-;
)
yue=xl+x2*16;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 營養(yǎng)素補(bǔ)充劑的市場前景與監(jiān)管-洞察分析
- 網(wǎng)絡(luò)時代的文化傳播路徑-洞察分析
- 圖像處理與排版協(xié)同優(yōu)化-洞察分析
- 異常流量監(jiān)測與識別-洞察分析
- 《臨江仙》(夢后樓臺高鎖)課件
- 人際關(guān)系與溝通風(fēng)格-組織行為學(xué)課件
- 辦公環(huán)境中的創(chuàng)新教育實踐與思考
- 辦公環(huán)境下的學(xué)生運動團(tuán)隊建設(shè)與組織
- 企業(yè)中層管理崗位的工作規(guī)劃與管理執(zhí)行
- 企業(yè)員工子女教育的政策支持
- 阿托品化課件
- 《休閑學(xué)概論》課后習(xí)題參考答案
- (新版教材)蘇教版三年級上冊科學(xué)全冊單元測試卷
- 剛曉觀所緣緣論略講
- 雙橋靜力觸探分層統(tǒng)計及承載力表0421
- 八卦五行-PPT課件
- ISO8573-2測定懸浮狀油含量的試驗方法學(xué)習(xí)資料
- 薪酬管理試卷及答案
- 大學(xué)無機(jī)及分析化學(xué)----氣體練習(xí)題及答案
- 保險行業(yè)新會計準(zhǔn)則實施指南征求意見稿
- 形式發(fā)票模板 PI模板 英文版
評論
0/150
提交評論