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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1624|回復: 3
收起左側

單片機+洞洞板調試DS12C887芯片遇到的問題 附程序

[復制鏈接]
ID:961087 發表于 2022-5-5 09:34 | 顯示全部樓層 |閱讀模式
各位大神幫忙看看
問題詳述:在進行DS12C887芯片進行調試的時,液晶顯示不正常,剛上電,秒表的位置顯示|||+(1-9)順序轉,大概循環了有二三十秒的樣子又變成正常的數字顯示,而且斷電之后在重新上電的時間也沒有繼續走而是從一個隨機的時間開始走,而且我手動一下那個887芯片那個洞洞板,時間全部變成了||5:||5:||5(具體現象下圖)。不知道是不是887 的芯片壞了。剛開始以為是我把數據傳輸的腳位給焊接短路了,但是用萬用表測量都沒有短路,而且所有的線都進行了測試,都是沒問題的(程序參考郭天祥)
題外問題:有沒有新手獲得芯片推薦的地方。
圖片描述:實驗現象
附錄:單片機開發板原理圖

14D01F26-984D-4651-AE0A-CAA2FEEDD25C.png
剛上電的現象

3FAF43B1-2AE9-49fa-A50C-FD07F3BF2879.png
上電一段之間之后的現象

FF6D30E8-957B-4d7c-9256-C9A882972475.png
用手動887這個芯片的現象


單片機源程序如下:
  1. #include <REGX52.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. sbit rs=P3^5;
  7. sbit RW=P3^6;
  8. sbit lcden=P3^4;
  9. sbit key1=P3^0;
  10. sbit key2=P3^1;
  11. sbit key3=P3^2;
  12. sbit rd=P3^7;
  13. sbit dscs=P1^4;
  14. sbit dsas=P1^5;
  15. sbit dsrw=P1^6;
  16. sbit dsds=P1^7;
  17. sbit dsirq=P3^3;
  18. sbit beef=P2^3;
  19. uchar code table[]="  2022-04-28 WED";
  20. uchar code table1[]="    09:59:50";
  21. uchar count,key1num,flag,flag1;
  22. void set_time();
  23. void write_ds(uchar add,uchar date);
  24. void set_alarm(uchar ashi,uchar afen,uchar amiao);
  25. uchar read_ds(uchar add);
  26. char shi,fen,miao;
  27. void write_sfm(uchar add,uchar date);
  28. void delay(uint xms)
  29. {
  30.         uint i,j;
  31.         for(i=xms;i>0;i--);
  32.         for(j=110;j>0;j--);
  33. }

  34. void write_com(uchar com)
  35. {
  36.         rs=0;
  37.         RW=0;
  38.         lcden=0;
  39.         P0=com;
  40.         delay(5);
  41.         lcden=1;
  42.         delay(5);
  43.         lcden=0;
  44. }

  45. void write_date(uchar date)
  46. {
  47.         rs=1;
  48.         RW=0;
  49.         lcden=0;
  50.         P0=date;
  51.         delay(5);
  52.         lcden=1;
  53.         delay(5);
  54.         lcden=0;
  55. }


  56. void LCDINIT()
  57. {
  58.         uchar num;
  59.         dula=0;
  60.         wela=0;
  61.         lcden=0;
  62.         write_com(0x38);
  63.         write_com(0x0c);
  64.         write_com(0x06);
  65.         write_com(0x01);
  66.         write_com(0x80);
  67.         for(num=0;num<15;num++)
  68.         {
  69.                 write_date(table[num]);
  70.                 delay(20);
  71.         }
  72.         write_com(0x80+0x40);
  73.         for(num=0;num<12;num++)
  74.         {
  75.                 write_date(table1[num]);
  76.                 delay(5);
  77.         }
  78. }

  79. void init()
  80. {
  81.         EA=1;
  82.         EX1=1;
  83.         IT1=1;
  84.         set_time();
  85.         set_alarm(13,52,00);
  86.         
  87.         
  88.    
  89.    
  90.         write_ds(0x0b,0x26);
  91.         read_ds(0x0c);
  92. }



  93. //void write_ds(uchar add,uchar date
  94. void keyscan()
  95. {
  96.         rd=0;
  97.         if(flag1==1)
  98.         {
  99.                         if(key2==0)
  100.                 {
  101.                         delay(5);
  102.                         if(key2==0)
  103.                         {
  104.                                 while(!key2);
  105.                                 flag1=0;
  106.                         }
  107.                 }
  108.                         if(key3==0)
  109.                 {
  110.                         delay(5);
  111.                         if(key3==0)
  112.                         {
  113.                                 while(!key3);
  114.                                 flag1=0;
  115.                         }
  116.                 }
  117.         }

  118.         if(key1==0)
  119.         {
  120.                 delay(5);
  121.                 if(key1==0)
  122.                 {
  123.                         flag=1;
  124.                         flag1=0;
  125.                         key1num++;
  126.                         while(!key1);
  127.                         
  128.                         if(key1num==1)
  129.                         {
  130.                                 
  131.                                 write_com(0x80+0x40+11);
  132.                                 write_com(0x0f);
  133.                         }
  134.                         if(key1num==2)
  135.                         {
  136.                                 
  137.                                 write_com(0x80+0x40+8);
  138.                                 write_com(0x0f);
  139.                         }
  140.                         if(key1num==3)
  141.                         {
  142.                                 
  143.                                 write_com(0x80+0x40+5);
  144.                                 write_com(0x0f);
  145.                         }
  146.                         if(key1num==4)
  147.                         {
  148.                                 key1num=0;
  149.                                 flag=0;
  150.                                 write_ds(0,miao);
  151.                                 write_ds(2,fen);
  152.                                 write_ds(4,shi);
  153.                                 
  154.                                 
  155.                                 write_com(0x0c);
  156.                         }
  157.                 }
  158.         }
  159.                         
  160.                         if(key1num!=0)
  161.                         {
  162.                                 if(key2==0)
  163.                                 {
  164.                                         delay(5);
  165.                                         if(key2==0)
  166.                                         {
  167.                                                 while(!key2);
  168.                                                 if(key1num==1)
  169.                                                 {
  170.                                                         miao++;
  171.                                                         if(miao==60)
  172.                                                         {
  173.                                                                 miao=0;
  174.                                                         }
  175.                                                         write_com(0x80+0x40+10);
  176.                                                         write_sfm(10,miao);
  177.                                                 }
  178.                                                 if(key1num==2)
  179.                                                 {
  180.                                                         fen++;
  181.                                                         if(fen==60)
  182.                                                         fen=0;
  183.                                                         write_sfm(7,fen);
  184.                                                         write_com(0x80+0x40+7);
  185.                                                 }
  186.                                                 if(key1num==3)
  187.                                                 {
  188.                                                         shi++;
  189.                                                         if(shi==24)
  190.                                                         shi=0;
  191.                                                         write_sfm(4,shi);
  192.                                                         write_com(0x80+0x40+4);
  193.                                                 }
  194.                                         }
  195.                                 }
  196.                                 if(key3==0)
  197.                                 {
  198.                                         delay(5);
  199.                                         if(key3==0)
  200.                                         {
  201.                                                 while(!key3);
  202.                                                 if(key1num==1)
  203.                                                 {
  204.                                                         
  205.                                                         miao--;
  206.                                                         if(miao==-1)
  207.                                                         {
  208.                                                                 miao=59;
  209.                                                                 write_sfm(10,miao);
  210.                                                                 write_com(0x80+0x40+10);
  211.                                                         }
  212.                                                                                                                
  213.                                                 }
  214.                                                 if(key1num==2)
  215.                                                 {
  216.                                                         fen--;
  217.                                                         if(fen==-1)
  218.                                                                 fen=59;
  219.                                                         write_sfm(7,fen);
  220.                                                         write_com(0x80+0x40+7);
  221.                                                 }
  222.                                                 if(key1num==3)
  223.                                                 {
  224.                                                         shi--;
  225.                                                         if(shi==-1)
  226.                                                                 shi=23;
  227.                                                         write_sfm(4,shi);
  228.                                                         write_com(0x80+0x40+4);
  229.                                                 }
  230.                                         }
  231.                         }
  232.                 }
  233.         }
  234. /
  235. /

  236. void write_sfm(uchar add,uchar date)
  237. {
  238.         uchar shi,ge;
  239.         shi=date/10;
  240.         ge=date%10;
  241.         write_com(0x80+0x40+add);
  242.         write_date(0x30+shi);
  243.         write_date(0x30+ge);
  244. }

  245. void write_ds(uchar add,uchar date)
  246. {
  247.         dscs=0;
  248.         dsas=1;
  249.         dsds=1;
  250.         dsrw=1;
  251.         P0=add;
  252.         dsas=0;
  253.         dsrw=0;
  254.         P0=date;
  255.         dsrw=1;
  256.         dsas=1;
  257.         dscs=1;
  258. }

  259. uchar read_ds(uchar add)
  260. {
  261.         uchar ds_date;
  262.         dscs=0;
  263.         dsas=1;
  264.         dsds=1;
  265.         dsrw=1;
  266.         P0=add;
  267.         dsas=0;
  268.         dsds=0;
  269.         P0=0xff;
  270.         ds_date=P0;
  271.         dsds=1;
  272.         dsas=1;
  273.         dscs=1;
  274.         return ds_date;
  275. }


  276. void set_time()
  277. {
  278.         write_ds(4,00);
  279.         write_ds(2,00);
  280. }

  281. void set_alarm(uchar ashi,uchar afen,uchar amiao)
  282. {
  283.         write_ds(1,amiao);
  284.         write_ds(3,afen);
  285.         write_ds(5,ashi);
  286. }
  287. void didi()
  288. {
  289.         beef=0;
  290.         delay(50);
  291.         beef=1;
  292.         delay(100);
  293.         beef=0;
  294.         delay(50);
  295.         beef=1;
  296. }

  297. void main()
  298. {
  299.         LCDINIT();
  300.         
  301.         init();
  302.         
  303.         
  304.         
  305.         while(1)
  306.         {
  307.                 keyscan();
  308.                
  309.                
  310.                 if(flag1==1)
  311.                         didi();
  312.                         
  313.                 if(flag==0)
  314.                 {
  315.                         miao=read_ds(0);
  316.                         fen=read_ds(2);
  317.                         shi=read_ds(4);
  318.                         write_sfm(10,miao);
  319.                         write_sfm(7,fen);
  320.                         write_sfm(4,shi);
  321.                 }

  322.         }
  323.       
  324.         
  325. }

  326. void exter() interrupt 2
  327. {
  328.         uchar c;
  329.         
  330.         flag1=1;
  331.         c=read_ds(0x0c);
  332. }
復制代碼

TX-1C增強版原理圖.pdf

243.32 KB, 下載次數: 4

回復

使用道具 舉報

ID:94031 發表于 2022-5-5 10:05 | 顯示全部樓層
杜邦線接觸不良造成。
回復

使用道具 舉報

ID:301191 發表于 2022-5-6 15:45 | 顯示全部樓層
頂一下
回復

使用道具 舉報

ID:961087 發表于 2022-5-9 10:24 | 顯示全部樓層
xuyaqi 發表于 2022-5-5 10:05
杜邦線接觸不良造成。

你好謝謝回復,就是在調試的過程中我有更換過杜邦線,使用前也都用那個萬用表簡單的測試了一下,還是一樣的現象。所以有點不知道怎么解決了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久婷婷 | 在线播放中文字幕 | 国产精品18久久久久久久 | 天天干视频 | 放个毛片看看 | www.日本在线观看 | 亚洲男人的天堂网站 | 欧产日产国产精品国产 | 精品欧美一区免费观看α√ | japanhd美女动 | 日韩av一区在线观看 | 99久久精品国产麻豆演员表 | 日韩成人av在线 | 久久久精品| 国产精品福利网站 | 中文字幕免费视频 | av网站在线播放 | 颜色网站在线观看 | 久久日韩精品 | 日本精品一区二区三区四区 | 国产一区久久精品 | 欧美激情一区二区三级高清视频 | 免费在线观看一级毛片 | 免费观看一级特黄欧美大片 | 久草网址| 久操av在线 | 日韩一区二区在线免费观看 | 成人精品久久 | av夜夜操| 欧美中文字幕一区二区 | 精品一区二区三区四区外站 | 黄色国产| 国产成人午夜高潮毛片 | 精品一区在线 | 97av在线| 国产成人99 | 中文字幕乱码一区二区三区 | 狠狠干综合视频 | 中文字幕免费视频 | 国产综合精品 | av中文字幕在线播放 |