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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2030|回復: 4
收起左側

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

[復制鏈接]
ID:1080867 發表于 2023-9-8 17:20 | 顯示全部樓層 |閱讀模式
代碼功能:持續從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口內部自帶上拉,外加上拉的意義?通訊的數據線上加上拉電阻有啥作用?
還請各位不吝賜教。

ds1302接線

ds1302接線

讀寫時序

讀寫時序
  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工程

回復

使用道具 舉報

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、軟件待優化,一般無需但可借本壇里的程序試試
回復

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜视频在线 | 国产精品久久久久久久7777 | 久久久久国产精品一区二区 | 亚洲一区日韩 | 中文字幕日韩一区 | 在线观看的av | 久久久精品一区 | 黄视频网址 | 国内自拍视频在线观看 | 日韩精品一区二区三区视频播放 | 羞羞色在线观看 | 成人免费视频一区二区 | 久久电影一区 | 欧美专区在线 | 日本电影免费完整观看 | 91精品国产91久久久久久 | 国产一区二区三区四区 | 亚洲永久精品国产 | 国产精品高潮呻吟久久 | 91免费视频观看 | 91毛片在线观看 | 日韩成人中文字幕 | 成人三区 | 久久成人av电影 | 国产精品久久久久久久模特 | 成年人在线观看 | 久久久噜噜噜久久中文字幕色伊伊 | 天天综合久久 | av永久免费| 精品网站999www | 色资源在线 | 成人国产免费视频 | 成人毛片视频免费 | 色偷偷人人澡人人爽人人模 | 欧美日韩一区在线 | 综合亚洲视频 | 亚洲一区二区精品 | 中文字幕一区二区三区在线观看 | 最新黄色在线观看 | 99这里只有精品视频 | 精品久久久久久久久久久久 |