久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 47718|回復: 40
收起左側

簡單的四位數碼管單片機時鐘

  [復制鏈接]
ID:76127 發表于 2015-4-8 22:09 | 顯示全部樓層 |閱讀模式
     
其實早有想寫一寫這方面的東西了,要不是雜事情多,應該早出來報告了。
言歸正傳吧,不知道是什么原因使我喜歡上了單片機,以前的時候,覺得單片機是那么神秘,但是實踐證明:只要有興趣就沒有學不會的東西,當然學會容易,學好就要下一番功夫了。
       話說那是2012年末臨近放寒假的時候,某一日在網上溜達看到了單片機,于是乎就買了個單片機的開發板全散件(那時候只知道是單片機散件,不大明白為啥叫開發板)。幾天的時間就回來了,晚上就把它給焊接好了,憑借多年的焊接經驗,一次成功,跟成品板看不出區別(你是看不出來的,你不能跟我比啊!呵呵,不要臉一下)。平時沒有時間去研究,一晃就到了假期,所以就天天查資料學習,您還別說,一旦進去就陷進去了,里面真是別有洞天啊。不客氣的說,假期的十多天時間,比我當學生的時候學的都踏實和牢固深刻。
           下面是我用單片機做的簡單的時鐘,最初是用單片機本身的定時功能進行計時的,軟件調整誤差,精度可以做的很高,但是斷電需要再調整,用計時芯片的話可以斷電記憶,但是要保證計時精準就要高精度的晶振,這也是個矛盾。我先沒有用時鐘芯片,對于初學者還是合適的,能夠很快入門,了解單片機的結構,定時器的編寫,數碼管的顯示原理,等等。我用的是c語言,以前有點基礎,加之其可移植性好,上手容易等優點,所以就沒有去學難啃的匯編語言。后面我又加了個時鐘芯片(DS1302),這個芯片精度不高,家用還湊合,以后換成887高精度的芯片就相當實用了。這些對于程序的編寫也有提高。

         結構:
      上下兩塊洞洞板,兩邊有排陣接插的,同時兼顧傳導信號,上板是數碼管,下板是單片機。板子是10x16cm的,一位數碼管3x4.4cm,共陽極的。單片機stc89c52,12M的晶振,數碼管是7位的,所以其小數點不亮,我外接了兩個led做秒閃爍用,一秒一眨眼的。如果采用8段數碼管,可以用數碼管的點做秒閃爍,即小時的個位點和分鐘的十位點(數碼管倒置安排形成8.8:8.8樣式)同時閃爍,效果會更好,這個我在開發板上已經修改成功,以后用8段數碼管就采用這種方式。板子的5v供電用USB接口。3位按鍵調節時間,其一為時分選擇,其二加,其三為減。

       總結:
       最滿意的是洞洞板的背面布線,完全手工,很滿意,也很漂亮的。其實一開始也是有點彎路,后來發現了一個小軟件:Sprint-Layout 6.0 這個軟件對我等初學者真是個福音啊,完全可以安著洞洞板的界面來設計電路(直接在設計界面上設置洞洞板的孔間距 2.54mm),對照原理圖直接安放元件,連線即可,雖然有些原理圖的樣子,但是直接對照即可進行實物連線。對于連線我用細銅線,就是包皮的粗電線里的一根細的,點焊,不要全部拖錫,這樣的好處是美觀,不易粘連。
     其次就是單片機的c語言,有位老鳥說的真好:其實就是if來if去的!不過進來以后還真能發現,就這么if來if去的,也充滿了邏輯性,充滿了美感,有興趣的童鞋們也進來發掘一下體驗一下其內在的美吧。

         我借鑒的 代碼:(沒有驅動時鐘芯片DS1302的),其實我找了很多,覺得此程序很精煉,真的不錯,里面有我改動的地方,因為最初是移植到我的開發板上的。說到開發板,其實就是燒寫程序方便,做實驗方便的板子,一旦成功可以在另外的板子上單獨焊接專用的元件,開發出成品。比如我就用了洞洞板,當然也可以用覆銅板加工,會更美觀。


/**** 本程序中,晶振為12MHz,           ****/
/**** 時間控制采用定時中斷控制方式。  ****/
/**** 模式和時間調整采用查詢方式。    ****/
#include<reg52.h>
sbit P13=P1^3; //分個位控制端
sbit P12=P1^2; //分十位控制端
sbit P11=P1^1; //時個位控制端
sbit P10=P1^0; //時十位控制端
sbit led=P2^7; //秒閃爍 led
sbit key0=P3^7; //模式設置
sbit key1=P3^6; //加
sbit key2=P3^5; //減
unsigned char hour,min,sec,T50ms;
unsigned char modstate; //模式狀態
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//段碼 (0--9、黑屏)
//unsigned char code tablemin[]={0xc0,0xcf,0xa4,0x86,0x8b,0x92,0x90,0xc7,0x80,0x82};//秒十位倒置編碼
void init();                                        //初始化子程序聲明 /
void delay500us(unsigned char X); //延時子程序聲明
void display();                                 //顯示子程序聲明
void display001();                           //顯示“時”子程序聲明
void display002();                           //顯示“分”子程序聲明
void keyscan();                               //按鍵識別子程序聲明
void main()
{  
init();
while(1)
{
  keyscan();
}
}
void init() //初始化子程序
{
TMOD=0x01;
TH0=(65536-49990)/256;
TL0=(65536-49990)%256;
ET0=1;
EA=1;
TR0=1;
}
void delay500us(unsigned char X)
{
unsigned char i,j;
for(i=X;i>0;i--)
for(j=248;j>0;j--);
}
void timer0() interrupt 1 //timer0中斷服務子程序,定時時間為50ms,本程序加了10us的時間修正量
{
TMOD=0x01;
TH0=(65536-49990)/256;
TL0=(65536-49990)%256;
T50ms++;
if(T50ms>=20)
{
  T50ms=0;
  sec++;
  if(sec>=60)
  {
   sec=0;
   min++;
   if(min>=60)
   {
    min=0;
    hour++;
    if(hour>=24)hour=0;
   }
  }
}
}
        
void display()
{
P1=0xff;
P0=table[hour/10];
P10=0;
delay500us(5);
P1=0xff;
    P0=table[hour%10];
P11=0;
delay500us(5);
P1=0xff;
P0=table[min/10];
P12=0;
delay500us(5);
P1=0xff;
P0=table[min%10];
P13=0;
delay500us(5);
if(T50ms<=10)led=0;
if(T50ms>10)led=1;
}
void display001()
{
     P1=0xff;
P0=table[hour/10];
P10=0;
delay500us(10);

  P1=0xff;
P0=table[hour%10];
P11=0;
delay500us(10);
}
void display002()
{
  P1=0xff;
P0=table[min/10];
P12=0;
delay500us(10);
  P1=0xff;
P0=table[min%10];
P13=0;
delay500us(10);
}
void keyscan()  //按鍵識別鐘程序
{
while(modstate==0)
{
  display();
  if(key0==0)
  {
   display();
   if(key0==0)modstate++;  //這兩句加在一起為延時10ms軟件防抖設計。
   while(key0==0)display001(); //等待按鍵釋放。
  }
}
//****************************************************************************//
while(modstate==1)
{
  display001();
  if(key0==0)
  {
   display001();
   if(key0==0)modstate++;  //這兩句加在一起為延時10ms軟件防抖設計。
   while(key0==0)display002(); //等待按鍵釋放。
  }
  if(key1==0)
  {
   display001();
   if(key1==0)
   {
    hour++;
    if(hour>=24)hour=0;
    while(key1==0)display001();
   }
  }
  if(key2==0)
  {
   display001();
   if(key2==0)
   {
    hour--;
    if(hour>=24)hour=0;
    while(key2==0)display001();
   }
  }
}
//****************************************************************************//
while(modstate==2)
{
  display002();
  if(key0==0)
  {
   display002();
   if(key0==0)modstate=0;  //這兩句加在一起為延時10ms軟件防抖設計。
   while(key0==0)display(); //等待按鍵釋放。
  }
  if(key1==0)
  {
   display002();
   if(key1==0)
   {
    min++;
    if(min>=60)min=0;
    while(key1==0)display002();
   }
  }
  if(key2==0)
  {
   display002();
   if(key2==0)
   {
    min--;
    if(min>=60)min=0;
    while(key2==0)display002();
   }
  }
}
}

好了,先看實物圖吧:


































回復

使用道具 舉報

ID:76625 發表于 2015-4-10 21:44 | 顯示全部樓層
我是新手,也想試試,請問有沒有原理圖
51黑有你更精彩…………
回復

使用道具 舉報

ID:76625 發表于 2015-4-10 21:46 | 顯示全部樓層
有沒有proteus仿真圖看看
回復

使用道具 舉報

ID:76625 發表于 2015-4-10 22:40 | 顯示全部樓層
貼主在不在啊。。。QAQ
回復

使用道具 舉報

ID:70614 發表于 2015-4-20 21:01 | 顯示全部樓層
謝謝分享我也想制作一個
回復

使用道具 舉報

ID:78768 發表于 2015-5-3 20:23 | 顯示全部樓層
想要電路圖
回復

使用道具 舉報

ID:86126 發表于 2015-7-19 11:40 | 顯示全部樓層
看起來很不錯哦
回復

使用道具 舉報

ID:85702 發表于 2015-7-20 17:10 | 顯示全部樓層
焊接不錯。看著真美觀
回復

使用道具 舉報

ID:61876 發表于 2015-7-20 19:23 | 顯示全部樓層
我天天用洞洞板做東西,焊工比起樓主來,差的太遠了。佩服!!!!!
回復

使用道具 舉報

ID:19947 發表于 2015-8-6 23:00 | 顯示全部樓層
贊!樓主能不能原理圖發下
回復

使用道具 舉報

ID:97771 發表于 2015-12-1 21:24 | 顯示全部樓層
大神有沒有電路圖
回復

使用道具 舉報

ID:98638 發表于 2015-12-8 18:01 | 顯示全部樓層
做的真漂亮
回復

使用道具 舉報

ID:94489 發表于 2015-12-19 14:06 | 顯示全部樓層
一直想做一個,非常感謝樓主
回復

使用道具 舉報

ID:95809 發表于 2016-1-5 07:12 來自觸屏版 | 顯示全部樓層
他用的是共陽的數碼管,Io口程序里寫得很明白了,完全可以自己畫出原理圖。
回復

使用道具 舉報

ID:19947 發表于 2016-1-12 15:58 | 顯示全部樓層
加1302程序多好呀!
回復

使用道具 舉報

ID:109896 發表于 2016-3-20 22:32 | 顯示全部樓層
看一看,瞄一瞄,
回復

使用道具 舉報

ID:108508 發表于 2016-3-21 16:40 | 顯示全部樓層
怎么視頻一閃而過
回復

使用道具 舉報

ID:99341 發表于 2016-5-11 21:17 | 顯示全部樓層
樓主電路圖發一個
回復

使用道具 舉報

ID:99341 發表于 2016-5-11 21:20 | 顯示全部樓層
樓主給一個2051+1302電子鐘謝謝,,,,qq1984524872
回復

使用道具 舉報

ID:120206 發表于 2016-5-12 08:21 | 顯示全部樓層
不錯 ,挺好的
回復

使用道具 舉報

ID:99341 發表于 2016-5-13 13:30 來自觸屏版 | 顯示全部樓層
樓主發個電路圖
回復

使用道具 舉報

ID:118644 發表于 2016-5-13 18:04 | 顯示全部樓層
焊接不錯。看著真美觀
回復

使用道具 舉報

ID:127457 發表于 2016-6-21 00:03 來自觸屏版 | 顯示全部樓層
樓主   可以發下原理圖嗎?
回復

使用道具 舉報

ID:127457 發表于 2016-6-22 15:14 來自觸屏版 | 顯示全部樓層
樓主發一下電路圖就更好了
回復

使用道具 舉報

ID:127798 發表于 2016-6-23 12:59 | 顯示全部樓層
ok的。。
回復

使用道具 舉報

ID:116662 發表于 2016-7-2 03:39 來自觸屏版 | 顯示全部樓層
簡單的制作,豐富的經驗,制作過程積累經驗。
回復

使用道具 舉報

ID:116662 發表于 2016-8-5 11:47 來自觸屏版 | 顯示全部樓層
夠厲害,謝謝分享
回復

使用道具 舉報

ID:167551 發表于 2017-3-12 17:44 | 顯示全部樓層
想問樓主一個問題,頂層數碼管洞洞板上的插針怎么弄上去的,還有能給個近照么,用細銅絲怎么焊接的,我老沾不上錫
回復

使用道具 舉報

ID:170147 發表于 2017-3-12 22:06 | 顯示全部樓層
樓主電路圖發一個,謝謝啦
回復

使用道具 舉報

ID:119290 發表于 2017-4-18 09:39 | 顯示全部樓層
手工不錯!值得借鑒!
回復

使用道具 舉報

ID:171111 發表于 2017-5-1 18:37 | 顯示全部樓層
真棒 想做一個 沒看到電路圖呢
回復

使用道具 舉報

ID:146089 發表于 2017-5-1 23:25 | 顯示全部樓層
本帖最后由 ysh711 于 2017-5-1 23:35 編輯

樓主轉我QQ空間的原創也不注明,很不實誠!我在數碼之家論壇也有過發布。
把電路圖發上來的,手繪的不美觀,湊合看。有問題可以共同探討一下,我的QQ:65632752

108_811154_0606e03267941ba.jpg

回復

使用道具 舉報

ID:187675 發表于 2017-5-15 17:29 | 顯示全部樓層
ysh711 發表于 2017-5-1 23:25
樓主轉我QQ空間的原創也不注明,很不實誠!我在數碼之家論壇也有過發布。
把電路圖發上來的,手繪的不美觀 ...

不錯

謝謝分享
回復

使用道具 舉報

ID:200820 發表于 2017-5-17 09:42 | 顯示全部樓層
不錯,謝謝分享
回復

使用道具 舉報

ID:207654 發表于 2017-6-6 15:19 來自觸屏版 | 顯示全部樓層
實物三極管是npn還是pnp 我也做了一個 就是實物出了問題
回復

使用道具 舉報

ID:99341 發表于 2017-6-13 22:03 | 顯示全部樓層
希望求HEX燒寫文件,發上來,或我的郵箱1984524872@QQ.com  謝謝
回復

使用道具 舉報

ID:74784 發表于 2017-6-14 21:10 | 顯示全部樓層
我做的 ~~~~~~~~~~~~

xszb2051cc.jpg xszb2051電路.jpg
回復

使用道具 舉報

ID:334693 發表于 2018-5-21 12:26 | 顯示全部樓層
lxa0 發表于 2017-6-14 21:10
我做的 ~~~~~~~~~~~~

這個可以做串口時間同步嗎?
回復

使用道具 舉報

ID:249455 發表于 2018-11-8 22:44 | 顯示全部樓層
ysh711 發表于 2017-5-1 23:25
樓主轉我QQ空間的原創也不注明,很不實誠!我在數碼之家論壇也有過發布。
把電路圖發上來的,手繪的不美觀 ...

有沒有程序分享下啊,一個單片機的初學者,做個自己玩玩。
回復

使用道具 舉報

40#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品久久久久久久99黑人 | 毛片在线免费 | 国产精品s色 | 老司机67194精品线观看 | 久久精品av麻豆的观看方式 | 久久蜜桃av | 中文字幕亚洲区一区二 | 中文字幕电影在线观看 | 中文在线播放 | 亚洲成人三级 | 欧美一区二区三区在线播放 | 国产伦精品一区二区三区四区视频 | 国产高清免费 | 天天操天天射天天舔 | 日韩在线播放第一页 | 国产传媒毛片精品视频第一次 | 精品一区二区久久久久久久网站 | 日韩精品久久一区二区三区 | 91精品久久久久久久久中文字幕 | 日韩羞羞| 亚洲综合色自拍一区 | 欧美国产日韩一区二区三区 | 给我免费的视频在线观看 | 伊人久久免费视频 | 亚洲国产18 | 国产日韩精品一区 | 亚洲 欧美 日韩 在线 | 亚洲成人精品视频 | 国产一区2区 | 久久久久久久久99精品 | 日韩精品成人 | 99国产精品视频免费观看一公开 | 噜噜噜噜狠狠狠7777视频 | 亚洲色片网站 | 国产精品日韩欧美一区二区三区 | 精品欧美乱码久久久久久 | 欧美一区二区三区的 | 日韩一区二区三区在线观看视频 | 日本在线视频一区二区 | 亚洲国产精品一区二区三区 | 久久精品一级 |