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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機+DS1302硬件與編程調試問題

[復制鏈接]
跳轉到指定樓層
樓主
代碼功能:持續從DS1302讀出“秒”數據并在數碼管上面顯示出來,單片機是89c52。
現象:數碼管亂碼,(看起來能正常讀出,但是數碼管不該亮的段也亮了)
  數碼管相關函數單獨測試,顯示沒問題。看了下別人的程序,讀取完后會特意將數據線(ds1302 6腳)拉低,我這么改后,數碼管顯示就正常讀秒了。數據手冊上并沒有看到讀完后需要將數據線置0的操作。平時寫這種時序都是照著數據手冊來的,出了這種問題很難查出原因來,這次還好有別人的程序作參考。另外我嘗試給數據線加上拉電阻,電阻的一端接上DS1302 6腳,另一端什么還什么都沒接時,顯示就正常了,這是什么原理?嘗試拿一根導線一端碰ds1302 6腳,另一端懸空,也正常顯示了
問題1:造成亂碼的原因,是否是代碼寫的有哪不對?為什么讀取完后將數據線(ds1302 6腳連到P3.4口上)拉低能解決亂碼
問題2:僅僅是拿導體觸碰一下DS1302 6腳,也能解決亂碼,是啥原理?
問題3:別人設計的電路ds1302 5,6,7腳會加上拉電阻,也用的89C52的P3口,P3口內部自帶上拉,外加上拉的意義?通訊的數據線上加上拉電阻有啥作用?
還請各位不吝賜教。
  1. unsigned char Ds1302Read(unsigned char command)                        /*從總線上讀取數據,低位在前*/
  2. {
  3.         unsigned char i;
  4.         unsigned char result=0x00;
  5.         command |= 0x01;                                        /*只宏定義了寫的操作字,最低位寫為1變為讀操作字*/
  6.         CE=1;
  7.         for(i=0;i<8;i++)               
  8.         {
  9.                 IO = command & (0x01 << i);   /*從最低位依次取數據并放到數據線上*/
  10.                 SCLK=0;
  11.                 SCLK=1;
  12.         }
  13.         
  14.         for (i = 0; i<8; i++)                        /*從數據線上讀取*/
  15.         {
  16.                 result>>=1;
  17.                 SCLK=1;
  18.                 SCLK=0;
  19.                 if(IO)
  20.                 {
  21.                         result|=0x80;
  22.                 }
  23.         }
  24.         CE=0;
  25. //        IO=0; //??  問題所在,不加這一句亂碼
  26.         return result;
  27. }
復制代碼




ds1302.rar

17.27 KB, 下載次數: 2

keil工程

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

使用道具 舉報

沙發
ID:301191 發表于 2023-9-9 15:18 | 只看該作者
頂一下
回復

使用道具 舉報

板凳
ID:332444 發表于 2023-9-10 08:08 | 只看該作者
可參我帖子里面1302荔枝,集成電路盡量不要長引線用手感應的信號去影響芯片正常運行。
回復

使用道具 舉報

地板
ID:584814 發表于 2023-9-11 08:28 | 只看該作者
1、硬件待優化,如拉電阻、基礎布線、備用電池等
2、硬件本身有暗病,世面上便宜的不好說換個試試
3、軟件待優化,一般無需但可借本壇里的程序試試
回復

使用道具 舉報

5#
ID:123289 發表于 2023-9-11 10:01 | 只看該作者
設你有6個LED數碼管。
1、設置6個變量L1-L6。
2、編寫一個顯示程序,6個LED數碼管,分別從L1-L6中取數字顯示。保證此程序OK。
3、讀取時鐘數據。
4、將時鐘送入L1-L6。
這樣大功就告成了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕亚洲一区二区三区 | 国产99视频精品免费播放照片 | 日本成人免费网站 | 精品国产一区二区三区久久狼黑人 | 色婷婷激情| 一区二区三区回区在观看免费视频 | 精品视频在线一区 | 久久大陆 | 国产精品视频网 | 日本成人二区 | 欧洲性生活视频 | 精品成人佐山爱一区二区 | 免费a网| 亚洲一级在线 | ririsao久久精品一区 | 在线观看国产视频 | 在线免费黄色小视频 | 亚洲福利在线视频 | 久久国产精品无码网站 | 日韩二区 | 精品视频在线观看 | 国产一区2区 | 欧美成人h版在线观看 | 日韩欧美三区 | 日韩av一区二区在线 | 在线中文视频 | 伊人导航| 久久高潮| 久久国产精品免费一区二区三区 | 国产毛片久久久久久久久春天 | 国产精品91视频 | 国产视频线观看永久免费 | 久久精品国产一区老色匹 | 国产黄色大片在线观看 | 欧洲免费视频 | 五月综合久久 | 中文字幕电影在线观看 | 2019天天干天天操 | 91精品久久久久久久久中文字幕 | 中国一级特黄真人毛片 | 天天夜夜操 |