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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己做板,32X64雙色點陣時鐘制作。有程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:55980 發表于 2013-10-16 15:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
看到網上有人做32X64雙色點陣時鐘,效果不錯,于是咱也買了幾塊點陣屏,做了起來,話說,看著簡單自己做起來那是相當的難啊,由于是第一次自己做PCB,在第一次感光上循環了很多次(因為不是用的紫外線燈),左后終于曝光成功了。可惜過程中都是接觸液體,而且我僅靠雙手是無法順利完成制作和照相的工作,照片就無法上傳了,僅附完成照片和成功的照片。PS:因為是第一次做這個東西,很多都不了解,在制作PCB上面浪費了很多時間,哈哈哈?匆曨l!




最后放上視頻視頻效果!有需要資料的,請跟帖問我要,有建議的也灰常歡迎提出來,我也僅僅是個剛剛學51的菜鳥而已

點陣程序.rar (91.95 KB, 下載次數: 435)

評分

參與人數 2黑幣 +10 收起 理由
孤星..殘月 + 5
18316719944 + 5 樓主能發份控制卡原理圖和程序給我嗎?黑幣.

查看全部評分

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

使用道具 舉報

沙發
ID:51142 發表于 2013-10-31 16:56 | 只看該作者
不錯,51黑有你更精彩!。。。

下面是樓主的源碼:
  1. #include <STC12C5A60S2.h>
  2. //#include <STC12C5410AD.h>
  3. //#include <STC90C58RD.h>
  4. //#include <REG52.H>
  5. //extern void delay1(unsigned int time);

  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. //this is for 1632
  9. sbit     T_CLK      = P3^5;   /*實時時鐘時鐘線引腳7 */
  10. sbit     T_IO       = P3^6;   /*實時時鐘數據線引腳6 */
  11. sbit     T_RST      = P3^7;   /*實時時鐘復位線引腳5 */
  12. sbit     ACC0=ACC^0;
  13. sbit     ACC1=ACC^1;
  14. sbit     ACC2=ACC^2;
  15. sbit     ACC3=ACC^3;
  16. sbit     ACC4=ACC^4;
  17. sbit     ACC5=ACC^5;
  18. sbit     ACC6=ACC^6;
  19. sbit     ACC7=ACC^7;


  20. /*******************************************************************  
  21. *
  22. * 名稱: v_RTInputByte
  23. * 說明:
  24. * 功能: 往DS1302寫入1Byte數據
  25. * 調用:
  26. * 輸入: ucDa 寫入的數據
  27. * 返回值: 無
  28. ***********************************************************************/
  29. void  v_RTInputByte(uchar  ucDa)  
  30. {                              
  31.     uchar  i;
  32.     ACC = ucDa;
  33.     for(i=8; i>0; i--)
  34.     {
  35.          T_IO = ACC0;          /*相當于匯編中的  RRC  */
  36. //                 delay(20);       
  37.          T_CLK = 1;
  38. //                 delay(20);       
  39.          T_CLK = 0;
  40. //                 delay(20);       
  41.          ACC = ACC >> 1;   
  42.      }     
  43. }
  44. /********************************************************************  
  45. *
  46. * 名稱: uchar uc_RTOutputByte
  47. * 說明:
  48. * 功能: 從DS1302讀取1Byte數據
  49. * 調用:
  50. * 輸入:
  51. * 返回值: ACC
  52. ***********************************************************************/
  53. uchar uc_RTOutputByte(void)  
  54. {                             
  55.     uchar i;
  56.     for(i=8; i>0; i--)
  57.     {
  58.          ACC = ACC >>1;       /*相當于匯編中的  RRC  */
  59.          ACC7 = T_IO;
  60. //                 delay(20);       
  61.          T_CLK = 1;
  62. //                 delay(20);       
  63.          T_CLK = 0;
  64. //                 delay(20);       
  65.     }     
  66.     return(ACC);
  67. }
  68. /********************************************************************  
  69. *
  70. * 名稱: v_W1302
  71. * 說明: 先寫地址,后寫命令/數據
  72. * 功能: 往DS1302寫入數據
  73. * 調用: v_RTInputByte()
  74. * 輸入: ucAddr: DS1302地址, ucDa: 要寫的數據
  75. * 返回值: 無
  76. ***********************************************************************/
  77. void  v_W1302(uchar ucAddr, uchar ucDa)
  78. {
  79.     T_RST = 0;
  80. //        delay(20);       
  81.     T_CLK = 0;
  82. //        delay(20);       
  83.     T_RST = 1;
  84. //        delay(20);       
  85.     v_RTInputByte(ucAddr);      /* 地址,命令 */
  86.     v_RTInputByte(ucDa);        /* 寫1Byte數據*/
  87.     T_CLK = 1;
  88. //        delay(20);       
  89.     T_RST =0;
  90. //        delay(20);       
  91. }
  92. /********************************************************************  
  93. *
  94. * 名稱: uc_R1302
  95. * 說明: 先寫地址,后讀命令/數據
  96. * 功能: 讀取DS1302某地址的數據
  97. * 調用: v_RTInputByte() , uc_RTOutputByte()
  98. * 輸入: ucAddr: DS1302地址
  99. * 返回值: ucDa :讀取的數據
  100. ***********************************************************************/
  101. uchar  uc_R1302(uchar ucAddr)
  102. {
  103.     uchar ucDa;
  104.     T_RST = 0;
  105. //        delay(20);       
  106.     T_CLK = 0;
  107. //        delay(20);       
  108.     T_RST = 1;
  109. //        delay(20);       
  110.     v_RTInputByte(ucAddr);      /* 地址,命令 */
  111.     ucDa = uc_RTOutputByte();   /* 讀1Byte數據 */
  112.     T_CLK = 1;
  113. //        delay(20);       
  114.     T_RST =0;
  115. //        delay(20);       
  116.     return(ucDa);
  117. }
  118. /********************************************************************  
  119. *
  120. * 名稱: v_BurstW1302T
  121. * 說明: 先寫地址,后寫數據(時鐘多字節方式)
  122. * 功能: 往DS1302寫入時鐘數據(多字節方式)
  123. * 調用: v_RTInputByte()
  124. * 輸入: pSecDa: 時鐘數據地址    格式為: 秒 分 時 日 月 星期 年 控制
  125. *                 8Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B  1B
  126. * 返回值: 無
  127. ***********************************************************************/
  128. /*void  v_BurstW1302T(uchar *pSecDa)
  129. {
  130.     uchar  i;
  131.     v_W1302(0x8e,0x00);       // 控制命令,WP=0,寫操作?
  132.     T_RST = 0;
  133.     T_CLK = 0;
  134.     T_RST = 1;
  135.     v_RTInputByte(0xbe);      // 0xbe:時鐘多字節寫命令
  136.     for (i=8;i>0;i--)         //8Byte = 7Byte 時鐘數據 + 1Byte 控制
  137.     {
  138.         v_RTInputByte(*pSecDa);// 寫1Byte數據
  139.         pSecDa++;
  140.     }
  141.     T_CLK = 1;
  142.     T_RST =0;
  143. }                         */
  144. /********************************************************************  
  145. *
  146. * 名稱: v_BurstR1302T
  147. * 說明: 先寫地址,后讀命令/數據(時鐘多字節方式)
  148. * 功能: 讀取DS1302時鐘數據
  149. * 調用: v_RTInputByte() , uc_RTOutputByte()
  150. * 輸入: pSecDa: 時鐘數據地址          格式為: 秒 分 時 日 月 星期 年
  151. *                       7Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B
  152. * 返回值: ucDa :讀取的數據
  153. ***********************************************************************/
  154. /*void  v_BurstR1302T(uchar *pSecDa)
  155. {
  156.     uchar i;
  157.     T_RST = 0;
  158.     T_CLK = 0;
  159.     T_RST = 1;
  160.     v_RTInputByte(0xbf);      // 0xbf:時鐘多字節讀命令
  161.     for (i=8; i>0; i--)      
  162.     {
  163.         *pSecDa = uc_RTOutputByte();   // 讀1Byte數據
  164.          pSecDa++;
  165.     }
  166.     T_CLK = 1;
  167.     T_RST =0;
  168. }                         */
  169. /********************************************************************  
  170. *
  171. * 名稱: v_BurstW1302R
  172. * 說明: 先寫地址,后寫數據(寄存器多字節方式)
  173. * 功能: 往DS1302寄存器數寫入數據(多字節方式)
  174. * 調用: v_RTInputByte()
  175. * 輸入: pReDa: 寄存器數據地址
  176. * 返回值: 無
  177. ***********************************************************************/
  178. /*id  v_BurstW1302R(uchar *pReDa)
  179. {
  180.     uchar  i;
  181.     v_W1302(0x8e,0x00);       // 控制命令,WP=0,寫操作
  182.     T_RST = 0;
  183.     T_CLK = 0;
  184.     T_RST = 1;
  185.     v_RTInputByte(0xfe);      // 0xbe:時鐘多字節寫命令
  186.     for (i=31;i>0;i--)        //31Byte  寄存器數據   
  187.     {
  188.         v_RTInputByte(*pReDa);        // 寫1Byte數據
  189.         pReDa++;
  190.     }
  191.     T_CLK = 1;
  192.     T_RST =0;
  193. }          */
  194. /********************************************************************  
  195. *
  196. * 名稱: uc_BurstR1302R
  197. * 說明: 先寫地址,后讀命令/數據(寄存器多字節方式)
  198. * 功能: 讀取DS1302寄存器數據
  199. * 調用: v_RTInputByte() , uc_RTOutputByte()
  200. * 輸入: pReDa: 寄存器數據地址
  201. * 返回值: 無
  202. ***********************************************************************/
  203. /*void  v_BurstR1302R(uchar *pReDa)
  204. {
  205.     uchar i;
  206.     T_RST = 0;
  207.     T_CLK = 0;
  208.     T_RST = 1;
  209.     v_RTInputByte(0xff);      // 0xbf:時鐘多字節讀命令
  210.     for (i=31; i>0; i--)       //31Byte  寄存器數據   
  211.     {
  212.         *pReDa = uc_RTOutputByte();   //讀1Byte數據
  213.          pReDa++;
  214.     }
  215.     T_CLK = 1;
  216.     T_RST =0;
  217. }                                 */

  218. void  Set_Charge(void)  
  219. {
  220.     v_W1302(0x8e,0x00);          /* 控制命令,WP=0,寫操作?*/
  221.     v_W1302(0x90,0xaa);          /* 控制命令,WP=0,寫操作?*/
  222.     v_W1302(0x8e,0x80);  /* 控制命令,WP=1,寫保護?*/
  223.         v_W1302(0x90,0xa5);
  224. }

  225. /********************************************************************  
  226. *
  227. * 名稱: v_Set1302
  228. * 說明:
  229. * 功能: 設置初始時間
  230. * 調用: v_W1302()
  231. * 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年
  232. *                       7Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B
  233. * 返回值: 無
  234. ***********************************************************************/
  235. void  Set_Time(uchar *pSecDa)  
  236. {
  237.     uchar i;
  238.     uchar ucAddr = 0x80;
  239.    
  240.     v_W1302(0x8e,0x00);          /* 控制命令,WP=0,寫操作?*/
  241.     for(i =7;i>0;i--)
  242.     {
  243.         v_W1302(ucAddr,*pSecDa);  /* 秒 分 時 日 月 星期 年 */
  244.    
  245.         pSecDa++;
  246.         ucAddr +=2;
  247.      }
  248.      v_W1302(0x8e,0x80);  /* 控制命令,WP=1,寫保護?*/
  249. }
  250. /********************************************************************  
  251. *
  252. * 名稱: v_Get1302
  253. * 說明:
  254. * 功能: 讀取DS1302當前時間
  255. * 調用: uc_R1302()
  256. * 輸入: ucCurtime: 保存當前時間地址。當前時間格式為: 秒 分 時 日 月 星期 年
  257. *                              7Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B
  258. * 返回值: 無
  259. ***********************************************************************/
  260. void Read_Time(uchar ucCurtime[])      
  261. {
  262.     uchar  i;
  263.     uchar  ucAddr = 0x81;
  264.     for (i=0;i<7;i++)
  265.     {
  266.          ucCurtime[i] = uc_R1302(ucAddr);/*格式為: 秒 分 時 日 月 星期 年 */
  267.          ucAddr += 2;
  268.     }
  269. }

  270. void Write_RAM(unsigned char *s,unsigned char startbyte,unsigned char length)
  271. {
  272.     uchar i;
  273.     uchar ucAddr;   
  274.    
  275.         ucAddr=0xc0+startbyte*2;

  276.         v_W1302(0x8e,0x00);          /* 控制命令,WP=0,寫操作?*/
  277.     for(i =0;i<length;i++)
  278.     {
  279.         v_W1302(ucAddr,*s);
  280.    
  281.         s++;
  282.         ucAddr +=2;
  283.      }
  284.      v_W1302(0x8e,0x80);  /* 控制命令,WP=1,寫保護?*/

  285. }

  286. void Read_RAM(unsigned char *s,unsigned char startbyte,unsigned char length)
  287. {
  288.     uchar  i;
  289.     uchar  ucAddr;
  290.        
  291.         ucAddr=0xc1+startbyte*2;
  292.     for (i=0;i<length;i++)
  293.     {
  294.          s[i] = uc_R1302(ucAddr);
  295.          ucAddr += 2;
  296.     }
  297. }

復制代碼
回復

使用道具 舉報

板凳
ID:43781 發表于 2013-10-31 22:54 | 只看該作者
樓主頭像挺帥的,呵呵
回復

使用道具 舉報

地板
ID:14052 發表于 2013-11-1 10:30 | 只看該作者
真的不錯,51黑有你更精彩!
回復

使用道具 舉報

5#
ID:58986 發表于 2014-1-31 15:53 | 只看該作者
我想學習一下...可以給我資料嗎...386245215@qq.com
回復

使用道具 舉報

6#
ID:59173 發表于 2014-2-21 16:24 | 只看該作者
高端上檔次!
回復

使用道具 舉報

7#
ID:59153 發表于 2014-2-22 01:02 | 只看該作者
牛哦,厲害!
回復

使用道具 舉報

8#
ID:53433 發表于 2014-3-7 08:09 | 只看該作者
好東西,目前正在研究中
回復

使用道具 舉報

9#
ID:46750 發表于 2014-4-6 14:23 | 只看該作者
不錯,下了看看。
回復

使用道具 舉報

10#
ID:61227 發表于 2014-4-28 22:14 | 只看該作者
謝謝樓主慷慨,謝謝了
回復

使用道具 舉報

11#
ID:61200 發表于 2014-4-28 22:18 | 只看該作者
高手啊,我也有幾塊雙色屏改天試試,感謝分享
回復

使用道具 舉報

12#
ID:33668 發表于 2014-5-17 21:02 | 只看該作者

謝謝分享,借鑒學習學習,頂一個
回復

使用道具 舉報

13#
ID:47760 發表于 2014-9-13 06:09 | 只看該作者
謝謝樓主分享!
回復

使用道具 舉報

14#
ID:66338 發表于 2014-9-18 21:39 | 只看該作者
謝謝分享,借鑒學習學習,頂一個
回復

使用道具 舉報

15#
ID:65864 發表于 2014-9-19 09:14 | 只看該作者
好靚的東東,可惜我做不出來
回復

使用道具 舉報

16#
ID:60628 發表于 2014-10-13 12:07 | 只看該作者
謝謝 分享 呵呵  頂你
回復

使用道具 舉報

17#
ID:73674 發表于 2015-2-16 14:29 | 只看該作者
太酷了,先收藏著,以后說不定可以用上,謝謝樓主
回復

使用道具 舉報

18#
ID:81901 發表于 2015-6-3 11:34 | 只看該作者
我期末要做一個點陣屏的作品,下回去看看
回復

使用道具 舉報

19#
ID:73815 發表于 2015-6-3 14:21 | 只看該作者
我也想做一個32*64雙色點陣時鐘制作請指教
回復

使用道具 舉報

20#
ID:81950 發表于 2015-6-3 21:34 | 只看該作者
51hei論壇有你更精彩
回復

使用道具 舉報

21#
ID:67984 發表于 2015-6-8 09:17 | 只看該作者
請問樓主,你的屏是啥借口的?
回復

使用道具 舉報

22#
ID:67984 發表于 2015-6-8 09:17 | 只看該作者
啥接口
回復

使用道具 舉報

23#
ID:67984 發表于 2015-6-8 15:27 | 只看該作者
能把資料發我QQ 625756413@qq.com
回復

使用道具 舉報

24#
ID:79642 發表于 2015-6-20 03:43 來自手機 | 只看該作者
支持,
回復

使用道具 舉報

25#
ID:67678 發表于 2015-6-20 23:26 | 只看該作者
收藏了
謝謝樓主的無私奉獻
回復

使用道具 舉報

26#
ID:86023 發表于 2015-7-18 13:47 | 只看該作者
我想做一個給我姐當結婚禮物 ,,樓主,求助你啊 ,全部資料。1410309996@qq.com
回復

使用道具 舉報

27#
ID:85940 發表于 2015-7-19 22:12 | 只看該作者
看看怎么樣
回復

使用道具 舉報

28#
ID:65533 發表于 2015-9-8 17:17 | 只看該作者
謝謝分享,支持創作
回復

使用道具 舉報

29#
ID:88360 發表于 2015-10-10 21:14 | 只看該作者
為什么沒有蜂鳴器呢?
回復

使用道具 舉報

30#
ID:88360 發表于 2015-10-10 21:15 | 只看該作者
非常好,改天我也做一個。
回復

使用道具 舉報

31#
ID:92134 發表于 2015-10-12 11:48 | 只看該作者
樓主厲害
回復

使用道具 舉報

32#
ID:99651 發表于 2015-12-20 12:14 | 只看該作者
高端上檔次!
回復

使用道具 舉報

33#
ID:65980 發表于 2015-12-20 23:02 | 只看該作者
求資料 謝謝 郵箱397846891@qq.com
回復

使用道具 舉報

34#
ID:103808 發表于 2016-1-21 23:45 | 只看該作者
謝謝分享,借鑒學習學習,頂一個
回復

使用道具 舉報

35#
ID:103808 發表于 2016-2-12 15:02 | 只看該作者
51黑有你更精彩。。。!
回復

使用道具 舉報

36#
ID:93151 發表于 2016-4-16 21:14 | 只看該作者
不錯,加油
回復

使用道具 舉報

37#
ID:151073 發表于 2016-11-30 22:31 | 只看該作者
家里有塊空置的點陣屏,老婆最近需要個時鐘,樓主能發控制板原理圖和程序給我嗎?剛好家里又有STC的芯片
回復

使用道具 舉報

38#
ID:151073 發表于 2016-11-30 22:32 | 只看該作者
回復

使用道具 舉報

39#
ID:126804 發表于 2016-12-13 18:48 | 只看該作者
樓主,江湖救急呀!1275203963@qq.com
回復

使用道具 舉報

40#
ID:83466 發表于 2017-1-26 18:25 | 只看該作者
話說調時沒按鍵沒紅外怎么調的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产一 | 一区二区三区高清 | 欧美片网站免费 | 久久久久国产一区二区三区不卡 | 蜜臀久久| 日本中出视频 | 午夜a级理论片915影院 | 精品久久一区 | 色免费视频 | 97免费在线观看视频 | 日韩av免费在线电影 | 国产精品欧美一区二区三区不卡 | 男女一区二区三区 | 亚洲高清在线观看 | 久久伊人精品 | 久久33 | 午夜在线 | www久久99| 在线a视频网站 | 精品国产视频 | 成人黄色av网址 | 国产日韩欧美一区二区 | 91久久精品一区二区二区 | 国产成人精品一区二 | 色综合视频在线 | 中文字幕一区二区三区精彩视频 | 亚洲一区二区久久 | 国产成人免费视频网站高清观看视频 | 亚洲精品一区二区三区在线 | 怡红院成人在线视频 | 一区二区三区在线免费观看视频 | 色综合久 | 国产成人精品一区二区三区视频 | 999久久久久久久久6666 | 日韩精品一区二区三区中文在线 | 免费av在线网站 | 日韩不卡一二区 | 夜夜草 | 999久久久久久久久6666 | 国产成人精品一区二区三区四区 | 久久精品福利视频 |