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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6170|回復(fù): 10
收起左側(cè)

單片機(jī)+lcd12864顯示ds1302程序出現(xiàn)亂碼,卡好幾天了

[復(fù)制鏈接]
ID:386762 發(fā)表于 2019-1-16 15:57 | 顯示全部樓層
你的寫入程序有點(diǎn)問題:寫入地址之后直接寫入數(shù)據(jù),你的時(shí)序?qū)е聰?shù)據(jù)沒有寫入,讀出數(shù)據(jù)都為0X7F.
EM截圖_201911615558.jpg

可以參考以下DS1302程序
  1. //---DS1302寫入和讀取時(shí)分秒的地址命令---////---秒分時(shí)日月周年 最低位讀寫位;-------//uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
  2. uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
  3. //---DS1302時(shí)鐘初始化2016年5月7日星期六12點(diǎn)00分00秒。---////---存儲順序是秒分時(shí)日月周年,存儲格式是用BCD碼---//
  4. uchar TIME[7] = {0, 0, 0x12, 0x07, 0x05, 0x06, 0x16};
  5. /********************************************************************************
  6. 函 數(shù) 名         : Ds1302Write
  7. * 函數(shù)功能         : 向DS1302命令(地址+數(shù)據(jù))
  8. * 輸    入         : addr,dat
  9. * 輸    出         : 無
  10. *******************************************************************************/
  11. void Ds1302Write(uchar addr, uchar dat)
  12. {   
  13. uchar n;   
  14. RST = 0;   
  15. _nop_();   
  16. SCLK = 0;
  17. //先將SCLK置低電平。
  18.    _nop_();   
  19. RST = 1;
  20. //然后將RST(CE)置高電平。   
  21. _nop_();   
  22. for (n=0; n<8; n++)
  23. //開始傳送八位地址命令   
  24. {        
  25. DSIO = addr & 0x01;//數(shù)據(jù)從低位開始傳送        
  26. addr >>= 1;        
  27. SCLK = 1;//數(shù)據(jù)在上升沿時(shí),DS1302讀取數(shù)據(jù)      
  28. _nop_();      
  29. SCLK = 0;        
  30. _nop_();   
  31. }   
  32. for (n=0; n<8; n++)//寫入8位數(shù)據(jù)   
  33. {        
  34. DSIO = dat & 0x01;        
  35. dat >>= 1;      
  36. SCLK = 1;//數(shù)據(jù)在上升沿時(shí),DS1302讀取數(shù)據(jù)        
  37. _nop_();        
  38. SCLK = 0;        
  39. _nop_();      
  40. }               
  41. RST = 0;//傳送數(shù)據(jù)結(jié)束    _
  42. nop_();}
  43. /********************************************************************************
  44. 函 數(shù) 名         : Ds1302Read
  45. * 函數(shù)功能         : 讀取一個(gè)地址的數(shù)據(jù)
  46. * 輸    入         : addr
  47. * 輸    出         : dat
  48. *******************************************************************************/
  49. uchar Ds1302Read(uchar addr)
  50. {   
  51. uchar n,dat,dat1;   
  52. RST = 0;   
  53. _nop_();   
  54. SCLK = 0;//先將SCLK置低電平。   
  55. _nop_();   
  56. RST = 1;//然后將RST(CE)置高電平。   
  57. _nop_();   
  58. for(n=0; n<8; n++)//開始傳送八位地址命令   
  59. {        
  60. DSIO = addr & 0x01;//數(shù)據(jù)從低位開始傳送        
  61. addr >>= 1;        
  62. SCLK = 1;//數(shù)據(jù)在上升沿時(shí),DS1302讀取數(shù)據(jù)        
  63. _nop_();        
  64. SCLK = 0;//DS1302下降沿時(shí),放置數(shù)據(jù)        
  65. _nop_();   
  66. }   
  67. _nop_();   
  68. for(n=0; n<8; n++)//讀取8位數(shù)據(jù)   
  69. {        
  70. dat1 = DSIO;//從最低位開始接收        
  71. dat = (dat>>1) | (dat1<<7);        
  72. SCLK = 1;        
  73. _nop_();        
  74. SCLK = 0;//DS1302下降沿時(shí),放置數(shù)據(jù)        
  75. _nop_();   
  76. }   
  77. RST = 0;   
  78. _nop_();    //以下為DS1302復(fù)位的穩(wěn)定時(shí)間,必須的。   
  79. SCLK = 1;   
  80. _nop_();   
  81. DSIO = 0;   
  82. _nop_();   
  83. DSIO = 1;   
  84. _nop_();   
  85. return dat;
  86. }
  87. /*******************************************************************************
  88. * 函 數(shù) 名         : Ds1302Init
  89. * 函數(shù)功能         : 初始化DS1302.
  90. * 輸    入         : 無
  91. * 輸    出         : 無
  92. *******************************************************************************/
  93. void Ds1302Init()
  94. {   
  95. uchar n;   
  96. Ds1302Write(0x8E,0X00);      //禁止寫保護(hù),就是關(guān)閉寫保護(hù)功能   
  97. for (n=0; n<7; n++)//寫入7個(gè)字節(jié)的時(shí)鐘信號:分秒時(shí)日月周年   
  98. {        
  99. Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);     
  100. }   
  101. Ds1302Write(0x8E,0x80);      //打開寫保護(hù)功能}
  102. /*******************************************************************************
  103. * 函 數(shù) 名         : Ds1302ReadTime
  104. * 函數(shù)功能         : 讀取時(shí)鐘信息
  105. * 輸    入         : 無
  106. * 輸    出         : 無
  107. *******************************************************************************/
  108. void Ds1302ReadTime()
  109. {   
  110. uchar n;   
  111. for (n=0; n<7; n++)//讀取7個(gè)字節(jié)的時(shí)鐘信號:分秒時(shí)日月周年   
  112. {        
  113. TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);   
  114. }      
  115.   }
復(fù)制代碼


評分

參與人數(shù) 1黑幣 +15 收起 理由
凌凈清河 + 15 贊一個(gè)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久国产高清情趣图文 | 国产成人一区二区三区久久久 | 欧美一级二级视频 | 久久精品国产99国产精品 | 91在线精品一区二区 | 在线免费观看视频你懂的 | 欧美一级二级视频 | 久久久久久久一级 | 欧美日韩在线一区二区 | 亚洲精品无人区 | 黄色毛片黄色毛片 | 精品一区二区三区中文字幕 | 青草久久免费视频 | 国产精品久久久久久久久免费相片 | 免费三级网站 | 欧美精品一区二区三区四区五区 | 欧美一区二区在线观看 | 久久99精品国产自在现线小黄鸭 | 狠狠躁躁夜夜躁波多野结依 | 天天射影院| 精品免费国产视频 | 国产精品96久久久久久 | 欧美视频在线观看 | 亚洲欧美视频一区 | 国产成人99久久亚洲综合精品 | 二区中文字幕 | 户外露出一区二区三区 | 一级毛片免费视频 | 99re热精品视频 | 亚洲视频一区二区三区 | 国产成人精品a视频一区www | 成人免费视频 | 日本精品一区二区 | 夜久久 | 国产精品一区二区精品 | 午夜精品久久久久久久久久久久久 | 国产综合久久久 | 91久久精品一区二区二区 | 老妇激情毛片免费 | 中文字幕av亚洲精品一部二部 | 久久国|