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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3183|回復: 11
收起左側

單片機驅動數(shù)碼管有一段微亮,如何修改程序?

[復制鏈接]
ID:585817 發(fā)表于 2022-11-8 21:40 | 顯示全部樓層 |閱讀模式
共陰極數(shù)碼管做數(shù)字時鐘有一段微亮。仿真沒有問題,實物出現(xiàn)這樣現(xiàn)象,單片機程序如下:

單片機源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. sbit P0_0 = P0^0;
  4. sbit P0_1 = P0^1;
  5. sbit P0_2 = P0^2;
  6. sbit P0_3 = P0^3;
  7. sbit P0_4 = P0^4;
  8. sbit P0_5 = P0^5;

  9. sbit key_hour=P3^2;//s1
  10. sbit key_min=P3^3;//s2
  11. sbit key_sec=P3^4;//s3
  12. sbit key_rst=P3^5;//s4
  13. static unsigned char second,minute,hour;
  14. unsigned int tcount;
  15. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  16. void delay(uchar i)
  17. {
  18.   uchar j,k;
  19.   for(j=i;j>0;j--)
  20.     for(k=125;k>0;k--);
  21. }

  22. void display()
  23. {

  24.    P1=table[hour/10];
  25.    P0_0 = 0;
  26.    delay(5);
  27.    P0_0 = 1;

  28.    P1=(table[hour%10]|0x80);
  29.    P0_1 = 0;
  30.    delay(5);
  31.    P0_1 = 1;

  32.    P1=table[minute/10];
  33.    P0_2 = 0;
  34.    delay(5);
  35.    P0_2 = 1;

  36.    P1=(table[minute%10]|0x80);
  37.    P0_3 = 0;
  38.    delay(5);
  39.    P0_3 = 1;
  40.         
  41.          P1=table[second/10];
  42.    P0_4 = 0;
  43.    delay(5);
  44.    P0_4 = 1;

  45.    P1=table[second%10];
  46.    P0_5 = 0;
  47.    delay(5);
  48.    P0_5 = 1;

  49. }
  50. void main(void)
  51. {
  52.         
  53.                 TMOD=0x02;
  54.     TH0=0x06;
  55.     TL0=0x06;
  56.     TR0=1;
  57.     ET0=1;
  58.     EA=1;
  59. //hour=16,minute=48,second=0;        
  60. while(1)
  61. {
  62.         display();
  63.          
  64.                                          if(key_hour==0)
  65.                 {
  66.                         delay(10);
  67.                         if(key_hour==0)
  68.                         {
  69.                                 hour++;
  70.                                 if(hour==24)        hour=0;
  71.                         }
  72.                         while(!key_hour);
  73.                 }
  74.                                 if(key_min==0)
  75.                 {
  76.                         delay(10);
  77.                         if(key_min==0)
  78.                         {
  79.                                 minute++;
  80.                                 if(minute==60)        minute=0;
  81.                         }
  82.                         while(!key_min);
  83.                 }
  84.                                 if(key_sec==0)
  85.                 {
  86.                         delay(10);
  87.                         if(key_sec==0)
  88.                         {
  89.                                 second++;
  90.                                 if(second==24)        second=0;
  91.                         }
  92.                         while(!key_sec);
  93.                 }
  94.                         if(key_rst==0)
  95.                 {
  96.                         delay(10);
  97.                         if(key_rst==0)
  98.                         {
  99.                                 hour=0;
  100.                                 minute=0;
  101.                                 second=0;
  102.                         }
  103.                         while(!key_rst);
  104.                 }
  105. }
  106. }

  107. void t0(void) interrupt 1 using 0
  108.   {        
  109.                   tcount++;
  110.                            if(tcount==5000)
  111.           {
  112.                         tcount=0;
  113.             second++;
  114.                  if(second==60)
  115.                   {
  116.                                 second=0;
  117.                     minute++;
  118.                     if(minute==60)
  119.                          {
  120.                                  minute=0;
  121.                            hour++;
  122.                           if(hour==24)
  123.                            {
  124.                                  hour=0;minute=0;second=0;
  125.                            }
  126.                          }
  127.                   }
  128.           }
  129.         }
復制代碼

        

52f355ebcbe0952933359fef078141a.jpg
回復

使用道具 舉報

ID:384109 發(fā)表于 2022-11-8 22:20 | 顯示全部樓層
消隱時間不夠
回復

使用道具 舉報

ID:883242 發(fā)表于 2022-11-8 22:20 | 顯示全部樓層
不太像是軟件問題,不做顯示代碼,看這個段是否還是微亮???
回復

使用道具 舉報

ID:965189 發(fā)表于 2022-11-8 22:31 | 顯示全部樓層
用萬用表檢查一下硬件電路可以知道是不是硬件問題。
回復

使用道具 舉報

ID:585817 發(fā)表于 2022-11-8 23:22 | 顯示全部樓層
這是讓它顯示全8的實物圖,還是這一段有問題,電路問題還是數(shù)碼管問題?
15e7375b4eaa72a8cdddf3528d0f51a.jpg
回復

使用道具 舉報

ID:585817 發(fā)表于 2022-11-8 23:38 | 顯示全部樓層
讓它顯示全8還是有問題
15e7375b4eaa72a8cdddf3528d0f51a.jpg
回復

使用道具 舉報

ID:1005692 發(fā)表于 2022-11-9 08:11 | 顯示全部樓層
389156621 發(fā)表于 2022-11-8 23:38
讓它顯示全8還是有問題

有問題數(shù)碼管和其他位置的互換一下,確認下是不是排除一下是不是硬件問題
回復

使用道具 舉報

ID:1050867 發(fā)表于 2022-11-9 08:15 | 顯示全部樓層
軟件應該是沒有太大問題,萬用表查一下硬件是否出現(xiàn)問題
回復

使用道具 舉報

ID:121859 發(fā)表于 2022-11-9 09:49 | 顯示全部樓層
第一,沒有消隱處理。第二,延時函數(shù)放錯了地方,應該放在鎖存之后。
回復

使用道具 舉報

ID:123289 發(fā)表于 2022-11-9 11:15 | 顯示全部樓層
多為硬件不良。
回復

使用道具 舉報

ID:220661 發(fā)表于 2022-11-9 13:17 | 顯示全部樓層
很大可能性是焊接時間過長,對應引腳內LED燈芯損壞了。
回復

使用道具 舉報

ID:585817 發(fā)表于 2022-11-9 16:32 | 顯示全部樓層
我再試試,感謝各位大佬。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产97在线看 | 精品久久久久香蕉网 | 欧美激情在线精品一区二区三区 | 狠狠干狠狠插 | 亚洲婷婷六月天 | 91精品国产色综合久久 | 成人精品在线观看 | 精品av久久久久电影 | 欧美看片 | 九九精品在线 | 午夜伦4480yy私人影院 | 色综合久久久 | 久久www免费视频 | 亚洲欧美一区二区三区在线 | 999国产视频 | 中文字幕 在线观看 | 一区二区成人 | 久久精品国产一区二区电影 | 一区二区视频在线 | 欧美日韩成人网 | 成人综合一区二区 | 久久精品亚洲精品国产欧美 | 91精品久久久 | 视频一区二区中文字幕日韩 | 欧美日韩视频在线 | 韩日一区 | 一级特黄色毛片 | 欧美综合网 | 久久综合九九 | 欧美日韩亚洲国产综合 | 99免费精品 | 国产精品区一区二 | 久久激情网 | 精产国产伦理一二三区 | 99热精品在线 | 日韩一二区 | 91社区在线高清 | 精品中文字幕一区二区 | 国产97在线 | 日韩 | 欧美一区二区在线观看 | 免费一区二区三区 |