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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13754|回復: 18
打印 上一主題 下一主題
收起左側

單片機旋轉電子鐘制作 帶PCB原理圖,源程序

  [復制鏈接]
跳轉到指定樓層
樓主
旋轉電子鐘制作資料分享給大家

元件名稱型號封裝數量參數
單片機U1LQFP 441STC89C52
時鐘芯片U2DIP 41DS1302
貼片電阻RO-R19O805201K
貼片電阻R22-R25O8O5410K
貼片LEDO8O5O8O520
電阻R20AXIAL0.21470
瓷片電容C1-C4O8O5433P
紅外接收Q1TO-2201 3P
晶振X1CC2111.0592 MHZ
晶振X2CC2132.768 MHZ
排插J1SIP1SIP4
電感線圈L2(次級)L10180匝
鈕扣電池座BattayAXIAL0.913V
                              無線供電部份
三極管Q1TO921B772
三極管Q2TO9219013
電容C1CC41222
電阻R-R3RW103470
電阻R4RW10110K
二極管D1-D2DW1021N4007
二極管D3LED1紅外發射
插口J1-J2CON222P
電感L1(初級線圈)L101100匝


PCB原理圖,源程序都有,想要的同學可以下去參考下。本人做成功了。就不上圖了。做的不好看。電源部分沒做成


















































  1. /***************************************************************************************************/
  2. //指針式時鐘 簡單版 有待改進!
  3. #include
  4. #define uchar unsigned char    //宏定義
  5. #define uint unsigned int
  6. //sbit KEY=P3^2 ;
  7. //sbit led1=P1^0 ;

  8. sbit ACC0=ACC^0;           //1bit數據存儲位
  9. sbit ACC7=ACC^7;

  10. sbit T_CLK=P3^5;                    //DS1302引腳連接
  11. sbit T_IO =P3^6;
  12. sbit T_RST=P3^7;

  13. uchar i=1 ;
  14. uint Pt,S ;
  15. uint D=0 ;
  16. uchar miao,Cent,Hour,Month,Day,Week,miaot,centt,hourt;
  17. void du1302();
  18. /*******************************************************************************/
  19. /*外部中斷0處理函數*/
  20. void intersvr0(void)interrupt 0 using 0
  21. {
  22.    
  23. //        D=D+(S-180);
  24.     //D=0;
  25.     //修正值
  26.    // Pt=580;
  27.     //得到定時器T0的初設值
  28.     S=0;
  29.            
  30.     //計數器清零,將重新計數

  31. }

  32. /*定時中斷0處理函數*/
  33. void timer0(void)interrupt 1 using 1
  34. {
  35.     TH0=(65536-630)/256 ;
  36.     TL0=(65536-630)%256 ;
  37.     //設置定時器T0的初設值
  38.     S++;
  39.     //計數
  40.     switch(S)
  41.     {
  42.         case 15 :
  43.         //0點
  44.         case 30 :
  45.         //1點
  46.         case 45 :
  47.         //2點
  48.         case 60 :
  49.         //3點
  50.         case 75 :
  51.         //4點
  52.         case 90 :
  53.         //5點
  54.         case 105 :
  55.         //6點
  56.         case 120 :
  57.         //7點
  58.         case 135 :
  59.         //8點
  60.         case 150 :
  61.         //9點
  62.         case 165 :
  63.         //10點
  64.         case 1 :
  65.         //11點
  66.         P0=0xF8 ;
  67.         while(i--);
  68.         break ;
  69.     }
  70.     //0-180   0-60
  71.     if((miaot==S/3)&&(S%3==1))
  72.     {
  73.         P0=0X07 ;
  74.         P2=0X00 ;
  75.         P1=0X00 ;
  76.         while(i--);
  77.     }
  78.     //0-180   0-60
  79.     if((centt==S/3)&&(S%3==1))
  80.     {
  81.         P0=0XFF ;
  82.         P2=0X00 ;
  83.         P1=0X00 ;
  84.                while(i--);
  85.     }
  86.    
  87.     //0-180   0-60
  88.     if((hourt==S/3)&&(S%3==1))
  89.     {
  90.         P0=0XFF ;
  91.         P2=0X0F ;
  92.         P1=0X00 ;
  93.         while(i--);
  94.     }

  95.     P0=0XFF ;
  96.     P1=0XFF ;
  97.     P2=0XFF ;
  98. }
  99. /*******************DS1302讀寫程序**********************************
  100. /********************************************************************
  101. 函 數 名:RTInputByte()
  102. 功    能:實時時鐘寫入一字節
  103. 說    明:往DS1302寫入1Byte數據 (內部函數)
  104. 入口參數:d 寫入的數據
  105. 返 回 值:無  
  106. ***********************************************************************/
  107. void RTInputByte(uchar d)
  108. {
  109.     uchar h;
  110.     ACC = d;
  111.     for(h=8; h>0; h--)
  112.     {
  113.         T_IO = ACC0;           /*相當于匯編中的 RRC */
  114.         T_CLK = 1;
  115.         T_CLK = 0;
  116.         ACC = ACC >> 1;
  117.     }
  118. }
  119. /********************************************************************
  120. 函 數 名:RTOutputByte()
  121. 功    能:實時時鐘讀取一字節
  122. 說    明:從DS1302讀取1Byte數據 (內部函數)
  123. 入口參數:無  
  124. 返 回 值:ACC
  125. 設    計:zhaojunjie           日    期:2002-03-19
  126. 修    改:                     日    期:
  127. ***********************************************************************/
  128. uchar RTOutputByte(void)
  129. {
  130.     uchar h;
  131.     for(h=8; h>0; h--)
  132.     {
  133.         ACC = ACC >>1;         /*相當于匯編中的 RRC */
  134.         ACC7 = T_IO;
  135.         T_CLK = 1;
  136.         T_CLK = 0;
  137.     }
  138.     return(ACC);
  139. }
  140. /********************************************************************
  141. 函 數 名:W1302()
  142. 功    能:往DS1302寫入數據
  143. 說    明:先寫地址,后寫命令/數據 (內部函數)
  144. 調    用:RTInputByte() , RTOutputByte()
  145. 入口參數:ucAddr: DS1302地址, ucData: 要寫的數據
  146. 返 回 值:無
  147. ***********************************************************************/
  148. /*void W1302(uchar ucAddr, uchar ucDa)
  149. {
  150.     T_RST = 0;
  151.     T_CLK = 0;
  152.     T_RST = 1;
  153.     RTInputByte(ucAddr);       /* 地址,命令 */
  154. /*   RTInputByte(ucDa);       /* 寫1Byte數據*/
  155. /*   T_CLK = 1;
  156.     T_RST = 0;
  157. /*}
  158. /********************************************************************
  159. 函 數 名:R1302()
  160. 功    能:讀取DS1302某地址的數據
  161. 說    明:先寫地址,后讀命令/數據 (內部函數)
  162. 調    用:RTInputByte() , RTOutputByte()
  163. 入口參數:ucAddr: DS1302地址
  164. 返 回 值:ucData :讀取的數據
  165. ***********************************************************************/
  166. uchar R1302(uchar ucAddr)
  167. {
  168.     uchar ucData;
  169.     T_RST = 0;
  170.     T_CLK = 0;
  171.     T_RST = 1;
  172.     RTInputByte(ucAddr);             /* 地址,命令 */
  173.     ucData = RTOutputByte();         /* 讀1Byte數據 */
  174.     T_CLK = 1;
  175.     T_RST = 0;
  176.     return(ucData);
  177. }

  178. /********************************************************************
  179. 函 數 名:Set1302()
  180. 功    能:設置初始時間
  181. 說    明:先寫地址,后讀命令/數據(寄存器多字節方式)
  182. 調    用:W1302()
  183. 入口參數:pClock: 設置時鐘數據地址 格式為: 秒 分 時 日 月 星期 年
  184.                                7Byte (BCD碼)1B 1B 1B 1B 1B  1B  1B
  185. 返 回 值:無
  186. ***********************************************************************/
  187. /*void Set1302(uchar *pClock)
  188. {
  189.     uchar h;
  190.     uchar ucAddr = 0x80;
  191.     W1302(0x8e,0x00);           /* 控制命令,WP=0,寫操作?*/
  192.   /*  for(h =7; h>0; h--)
  193.     {
  194.   /*      W1302(ucAddr,*pClock);  /* 秒 分 時 日 月 星期 年 */
  195.   /*      pClock++;
  196.         ucAddr +=2;
  197.   /*  }
  198.         W1302(0xc0,0x01);
  199.         W1302(0XC2,0X03);                        //初始自動轉換顯示時間為3秒。
  200.     W1302(0x8e,0x80);           /* 控制命令,WP=1,寫保護?*/

  201. /*}
  202. /******************讀取DS1302中的時間****************/
  203. void du1302()
  204. {
  205.       miao=R1302(0x81);  //對取 秒 分 時 日 月 星期 年
  206.           Cent=R1302(0x83);         
  207.           Hour=R1302(0x85);
  208.           //Day=R1302(0x87);
  209.           //Month=R1302(0x89);
  210.           //Week=R1302(0x8b);

  211.          
  212. }
  213. /*****主函數*****/
  214. void main(void)
  215. {
  216.     TMOD=0x01 ;
  217.     //定時器0和1工作方式都為1
  218.     EX0=1 ;
  219.     //開外部中斷0
  220.     IT0=1 ;
  221.     //外部中斷0設置為下降沿中斷
  222.     ET0=1 ;
  223.     //定時器0開中斷
  224.     // ET1=1;   //定時器1開中斷
  225.     TH0=(65536-630)/256 ;
  226.     TL0=(65536-630)%256 ;
  227.     TR0=1 ;
  228.     EA=1 ;
  229.     //開總中斷
  230.    
  231.     //無限循環
  232.     while(1)
  233.     {
  234.           du1302();
  235.         miaot=miao/16*10+miao%16 ;
  236.         centt=Cent/16*10+Cent%16 ;
  237.         hourt=Hour/16*10+Hour%16 ;
  238.         
  239.     }
  240. }
  241. /*****END*****/
復制代碼







旋轉LED資料.zip

4.18 MB, 下載次數: 185, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +5 收起 理由
5760985 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏16 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:112242 發表于 2016-9-10 08:54 | 只看該作者
好資料先收藏以后有空再做,
回復

使用道具 舉報

板凳
ID:136460 發表于 2016-9-12 20:55 | 只看該作者
51有你更精彩
回復

使用道具 舉報

地板
ID:134810 發表于 2016-9-20 16:17 來自手機 | 只看該作者
早就看過這個高大上的東西,原來是51做的,要試一下
回復

使用道具 舉報

5#
ID:196897 發表于 2017-5-5 13:07 | 只看該作者
好資料先收藏以后有空再做,
回復

使用道具 舉報

6#
ID:198504 發表于 2017-5-9 09:35 來自手機 | 只看該作者
感覺好厲害。
回復

使用道具 舉報

7#
ID:229326 發表于 2017-9-5 15:07 | 只看該作者
可否給份資料
回復

使用道具 舉報

8#
ID:232386 發表于 2017-9-12 18:22 | 只看該作者
樓主可以告訴我你是怎么把程序燒進去的么
回復

使用道具 舉報

9#
ID:238958 發表于 2017-10-12 20:10 | 只看該作者
剛好也要做這東西
回復

使用道具 舉報

10#
ID:279798 發表于 2018-1-25 22:54 | 只看該作者
先保存下來,回頭做做。
回復

使用道具 舉報

11#
ID:298016 發表于 2018-4-21 22:52 | 只看該作者
好資料收藏了
回復

使用道具 舉報

12#
ID:99130 發表于 2018-6-4 18:00 | 只看該作者
13028848122 發表于 2017-9-12 18:22
樓主可以告訴我你是怎么把程序燒進去的么

先做一個下載板,裝上單片機,接好線,下載一個燒錄器,選擇單片機型號,點擊燒錄,給下載板通電,下載成功。這是STC單片機的大致步驟。不過要注意單片機的接線,還要有串口轉USB線,不轉也行,只是轉USB更方便,還有一根USB電源線
回復

使用道具 舉報

13#
ID:517489 發表于 2019-4-22 18:29 來自手機 | 只看該作者
779380649@qq.com 謝謝大佬
回復

使用道具 舉報

14#
ID:560864 發表于 2019-6-12 14:19 | 只看該作者
有沒有大佬下載了能給我一份??
回復

使用道具 舉報

15#
ID:606097 發表于 2019-9-1 17:27 來自手機 | 只看該作者
alexjohnny 發表于 2019-6-12 14:19
有沒有大佬下載了能給我一份??

請尊重別人的勞動成果好吧!
回復

使用道具 舉報

16#
ID:317206 發表于 2020-2-13 17:26 | 只看該作者
你好,有PCB文件嗎?我資料下載了么有PCB文件
回復

使用道具 舉報

17#
ID:82732 發表于 2021-12-19 09:24 | 只看該作者
非常值得學習,好好學習一下,謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜小电影 | 亚洲高清视频一区二区 | 国产免费一区二区 | 国产亚洲欧美另类一区二区三区 | 欧美精品久久久久久久久久 | 日韩欧美在线视频观看 | 黄色毛片免费视频 | 欧美日韩精品一区二区天天拍 | 日韩欧美高清dvd碟片 | 国产精品毛片一区二区在线看 | 久久久婷婷 | a天堂在线 | 综合久久av| 国产黄色大片在线观看 | 国产欧美在线播放 | 在线播放中文字幕 | 国产亚洲欧美日韩精品一区二区三区 | 国产精品久久国产精品 | 国产一区电影 | 一区二区三区在线电影 | 色片在线观看 | 毛片一级黄色 | 天天色天天| 99久久精品免费看国产四区 | 在线视频日韩 | 亚洲精品片 | 精品日韩一区 | 中文字幕在线一区二区三区 | 免费国产精品久久久久久 | 国产乱码精品一区二区三区五月婷 | 日韩毛片免费看 | 日韩精品一区二区三区在线播放 | 国产成人精品一区二区三 | 草久久 | 天天干天天爽 | 免费一级片 | 色婷婷av一区二区三区软件 | 国产97碰免费视频 | 欧美日本一区 | 蜜桃精品视频在线 | 久久高清 |