找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8691|回復(fù): 24
打印 上一主題 下一主題
收起左側(cè)

基于LCD 1602的電子多功能萬年歷

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:168632 發(fā)表于 2017-4-9 13:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
花了10天連寫帶調(diào)試到?jīng)]有BUG,一個(gè)51的單片機(jī)多功能電子鐘,不僅具有萬年歷的功能,還具有很多有用的其他功能,注意我用的是定時(shí)器加軟件補(bǔ)償,但是加了斷電后開機(jī)傻瓜調(diào)節(jié)時(shí)間法,沒有用1302但是軟件補(bǔ)償后調(diào)試日誤差可以小于1秒。
該電子中具有以下的功能:
1.萬年歷,自動(dòng)換算大小月自動(dòng)算星期,任何時(shí)候都不會(huì)出現(xiàn)超出天數(shù)范圍的情況
2.溫度顯示,精確到小數(shù)點(diǎn)后1位
3.電子鬧鐘,可以設(shè)置打開或關(guān)閉,光標(biāo)調(diào)節(jié)時(shí)間,默認(rèn)為OFF關(guān)閉
4.兩種調(diào)時(shí)方法,一種是斷電后的傻瓜調(diào)節(jié),一次只調(diào)一個(gè)參數(shù),一種是主界面后的移動(dòng)光標(biāo)調(diào)節(jié)。
5.溫度報(bào)警,可以設(shè)置 單開上限或者下限或者上下限或者關(guān)閉,溫度調(diào)節(jié)自己設(shè)置為0-50度,可改范圍,默認(rèn)為NO-NO關(guān)閉。
6.秒表 可以選擇秒表打開,暫停,計(jì)次,清零,秒表范圍9999秒,精度到10MS,自己對(duì)著IPHONE優(yōu)化調(diào)試后誤差在0.00-0.02之間,做一般的秒表沒問題。
7.所有模塊的開啟或者關(guān)閉都沒有沖突與BUG,比如秒表與走時(shí)可以同時(shí)打開沒有沖突等,所以設(shè)置帶記憶功能
8.按鍵手感優(yōu)化調(diào)試后,也沒有BUG,不會(huì)出錯(cuò)速度也比較舒服。
需要的硬件很簡(jiǎn)單,只要一個(gè)有源(無源亦可)蜂鳴器+單片機(jī)最小系統(tǒng)+18B20溫度傳感器+4個(gè)按鍵就好了,這樣可以滿足多功能的電子鐘還是很劃算的,為什么不用1302是因?yàn)槲以谲浖a(bǔ)償后發(fā)現(xiàn)日誤差可以達(dá)到一個(gè)很高的精度,而實(shí)測(cè)在室內(nèi)溫度飄移的影響幾乎沒有發(fā)現(xiàn),只用了一個(gè)定時(shí)器0就可以滿足所有模塊的計(jì)時(shí)要求而且不會(huì)沖突,精度日誤差補(bǔ)償后可以小于1秒,如果用1302還得買單獨(dú)的電池焊接,懶得弄了。
本人是新手,學(xué)了剛好一個(gè)月,由于只花了幾天時(shí)間匆匆寫的肯定還有很多不夠精簡(jiǎn)的地方,代碼不完善之處還請(qǐng)大神輕噴,代碼寫的比較長(zhǎng)但是都是經(jīng)過測(cè)試后沒有什么發(fā)現(xiàn)問題的,歡迎大家在自己板子上調(diào)試一下,發(fā)出來僅供大家互相學(xué)習(xí)。

說明一下 ,K1鍵為選擇位減,K2加鍵,K3減鍵,K4確定鍵,所有參數(shù)調(diào)節(jié)到最大或者最小后都會(huì)自動(dòng)復(fù)位最小或最大,方便調(diào)節(jié),但是比如K3鍵還有清零等其他功能大家可以自己摸索出來。


評(píng)分

參與人數(shù) 2黑幣 +8 收起 理由
close_two + 5 很給力!
hzh嘎嘎嘎 + 3 贊一個(gè)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-4-9 14:52 | 只看該作者
只學(xué)一個(gè)月就達(dá)到這這樣的程度,也是很難得的了,樓主能分享一下源碼和原理圖嗎?傳個(gè)附件
回復(fù)

使用道具 舉報(bào)

板凳
ID:74784 發(fā)表于 2017-4-9 22:00 | 只看該作者
支持不用1302做數(shù)字表!
回復(fù)

使用道具 舉報(bào)

地板
ID:157238 發(fā)表于 2017-4-9 22:19 | 只看該作者
求源代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:168632 發(fā)表于 2017-4-15 12:43 | 只看該作者
本帖最后由 打死大四多 于 2017-4-17 20:46 編輯

抱歉來晚了,第一次玩論壇,前幾天新加了I/O口控制背光自動(dòng)熄滅,還有一些小細(xì)節(jié)就不說了。
自己焊了硬件調(diào)試了一周了,沒有發(fā)現(xiàn)有BUG,誤差也很小,秒表的精度也非常高
源代碼在下面,寫的程序邏輯較多,大神見笑了


多功能電子萬年歷.zip (5.94 KB, 下載次數(shù): 79)

這個(gè)是沒帶注釋版本的,詳細(xì)帶注釋版和原理圖+仿真的在19樓

評(píng)分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:168632 發(fā)表于 2017-4-15 12:52 | 只看該作者
本帖最后由 打死大四多 于 2017-4-15 17:05 編輯

代碼在附件里,還有注意事項(xiàng)
回復(fù)

使用道具 舉報(bào)

7#
ID:168632 發(fā)表于 2017-4-15 12:54 | 只看該作者
admin 發(fā)表于 2017-4-9 14:52
只學(xué)一個(gè)月就達(dá)到這這樣的程度,也是很難得的了,樓主能分享一下源碼和原理圖嗎?傳個(gè)附件

源代碼發(fā)了,在樓下好像還在審核,不知道為什么沒有顯示
原理圖我沒有畫,因?yàn)橛玫降臇|西太少了,我是直接焊接的
回復(fù)

使用道具 舉報(bào)

8#
ID:168632 發(fā)表于 2017-4-15 12:55 | 只看該作者

在樓下面,正在審核不知道為什么不顯示
回復(fù)

使用道具 舉報(bào)

9#
ID:189954 發(fā)表于 2017-4-15 20:30 | 只看該作者
我也是新人,學(xué)一個(gè)月能獨(dú)立寫出萬年歷已經(jīng)很厲害了
回復(fù)

使用道具 舉報(bào)

10#
ID:190036 發(fā)表于 2017-4-16 09:49 | 只看該作者
能不能看一下原理圖?
回復(fù)

使用道具 舉報(bào)

11#
ID:190036 發(fā)表于 2017-4-16 09:49 | 只看該作者
能不能看一下原理圖?
回復(fù)

使用道具 舉報(bào)

12#
ID:190036 發(fā)表于 2017-4-16 09:55 | 只看該作者
樓主,你的程序里
sbit DQ=P3^6;
sbit bg=P2^7;
DQ,bg分別是什么意思?
回復(fù)

使用道具 舉報(bào)

13#
ID:168632 發(fā)表于 2017-4-16 15:23 來自手機(jī) | 只看該作者
sum 發(fā)表于 2017-4-16 09:55
樓主,你的程序里
sbit DQ=P3^6;
sbit bg=P2^7;

原理圖我沒有畫,我直接焊接的,過兩天畫一個(gè),很簡(jiǎn)單的可以說沒有什么硬件,最近在弄霍爾傳感器測(cè)速。
bg是指背光變量,你把1602的背光k極連到bg就行了,自動(dòng)控制背光,這樣省電很多
DQ是18b20的數(shù)據(jù)傳輸位

回復(fù)

使用道具 舉報(bào)

14#
ID:140489 發(fā)表于 2017-4-17 12:13 | 只看該作者
本帖最后由 lids 于 2017-4-17 14:17 編輯

仿真了一下,不能實(shí)時(shí)顯示溫度值,一直顯示15.9℃,用手摸18B20溫度值不變,其他都正常
回復(fù)

使用道具 舉報(bào)

15#
ID:140489 發(fā)表于 2017-4-17 14:47 | 只看該作者
本帖最后由 lids 于 2017-4-17 15:58 編輯

static u16 i;               
    TH0=(65535-923)/256;        
        TL0=(65535-923)%256;        
        i++;
        beiguangpd();
        if(mbflag==1)
        {
         mbw++;
         if(mbw==10)
         {
         mbw=0;
         MB1++;
         }
        }
        if(i==1000)
        {
    k++;
        if(beiguang<60)
        beiguang++;
         i=0;buchang++;        
         temper=ReadTemperature();
    }        
        if(k==60)
        {
          k=0;
      e++;
        }
        if(buchang==5000)                                     //精度補(bǔ)償部分,不一定適合你的晶振
        {
     buchang=0;k+=1;
         }
         if(e==60)
    {
           e=0;
           d++;
         }
         if(d==24)
         {
           d=0;
樓主用的是11.0592MHz的晶振嗎?923*1.085us=1001us,我的實(shí)驗(yàn)板上是11.0592MHz的晶振,實(shí)際測(cè)試時(shí)間太慢了,10分鐘過后就慢了2分鐘。
一句注釋都沒有,過段時(shí)間可能樓主自己都不知道那些代碼的意思了
回復(fù)

使用道具 舉報(bào)

16#
ID:160317 發(fā)表于 2017-4-17 14:56 | 只看該作者
哪位大神幫幫忙啊,紅外遙控的畢設(shè)啊。。!
回復(fù)

使用道具 舉報(bào)

17#
ID:168632 發(fā)表于 2017-4-17 17:11 | 只看該作者
本帖最后由 打死大四多 于 2017-4-17 17:20 編輯
lids 發(fā)表于 2017-4-17 14:47
static u16 i;               
    TH0=(65535-923)/256;        
        TL0=(65535-923)%256;        ...

不好意思,仿真沒調(diào)試過是因?yàn)槲沂侵苯覭EIL做的,proteus仿真里的18B20溫度時(shí)序圖要求比較嚴(yán)格,有很多情況是實(shí)物沒問題仿真卻出問題了,你可以在實(shí)物上試試肯定沒問題的,想要仿真沒問題就把18B20里的時(shí)序圖程序重新嚴(yán)格寫一下就好了,我用的是12M晶振的不是11.05,如果你用11.05的話就改一下中斷里的923,通過KEIL算一下每一步的時(shí)間然后實(shí)際調(diào)試一下再改buchang就好了,肯定是沒問題的,程序沒注釋確實(shí)是疏忽了,最近在玩霍爾測(cè)速比較忙,我再搞個(gè)注釋版和原理圖給大家吧。
回復(fù)

使用道具 舉報(bào)

18#
ID:140489 發(fā)表于 2017-4-17 17:20 | 只看該作者
打死大四多 發(fā)表于 2017-4-17 17:11
仿真沒調(diào)試過是因?yàn)槲沂侵苯覭EIL做的,仿真18B20溫度時(shí)序圖可能比較嚴(yán)格,但是實(shí)物絕對(duì)沒有問題,我用的 ...

期待樓主的詳細(xì)注釋版
回復(fù)

使用道具 舉報(bào)

19#
ID:168632 發(fā)表于 2017-4-17 19:46 | 只看該作者
花了兩個(gè)小時(shí)搞了一下注釋
下面是詳細(xì)注釋版+原理圖+仿真
  大家要注意你的晶振,因?yàn)槲沂诸^沒有11.05M的晶振只有12M的所以11.05M晶振的朋友請(qǐng)根據(jù)KEIL仿真或者實(shí)物測(cè)速修改中斷里的923這個(gè)值就可以了,剩下的注意事項(xiàng)我都在程序里寫了,感謝支持!
源程序(注釋版)帶仿真原理圖.zip (441.8 KB, 下載次數(shù): 104)

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

20#
ID:168632 發(fā)表于 2017-4-17 19:48 | 只看該作者
lids 發(fā)表于 2017-4-17 17:20
期待樓主的詳細(xì)注釋版

已經(jīng)發(fā)了,帶原理圖帶仿真帶注釋程序 審核中。。。
回復(fù)

使用道具 舉報(bào)

21#
ID:191196 發(fā)表于 2017-4-19 13:49 來自手機(jī) | 只看該作者
樓主厲害,我最近也在做  感謝樓主的程序
回復(fù)

使用道具 舉報(bào)

22#
ID:216813 發(fā)表于 2017-7-11 09:47 | 只看該作者
點(diǎn)贊,點(diǎn)贊,點(diǎn)贊!
回復(fù)

使用道具 舉報(bào)

23#
ID:241829 發(fā)表于 2017-10-29 11:30 | 只看該作者
樓主我的1602是51板子,接口默認(rèn)是P0  但是我換了你的1602接口接上去沒反應(yīng)
回復(fù)

使用道具 舉報(bào)

24#
ID:692999 發(fā)表于 2020-2-17 21:37 | 只看該作者
非常好  感謝樓主
回復(fù)

使用道具 舉報(bào)

25#
ID:1064915 發(fā)表于 2023-5-19 15:00 | 只看該作者
獨(dú)立按鍵消抖如何處理
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表