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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

共陽數(shù)碼管,不顯示時間數(shù)據(jù),請大家?guī)臀铱纯闯绦蚴裁磫栴}。

查看數(shù): 3334 | 評論數(shù): 6 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2019-12-13 21:32

正文摘要:

共陽數(shù)碼管,不顯示時間數(shù)據(jù)

回復(fù)

ID:213173 發(fā)表于 2019-12-16 07:31
ljz123456 發(fā)表于 2019-12-15 01:03
怎么只顯示0000     1111

程序的位驅(qū)動是按IO口直接輸出編寫,不加三極管放大。你不動腦?
ID:213173 發(fā)表于 2019-12-14 19:40
STC15W402AS可以設(shè)置為推挽模式用于位碼輸出端口,不需要加三極管放大。段碼端口到數(shù)碼管間一定要加8個1K左右限流電阻,以免燒端口。這個代碼是按STC15寫的,仿真用的是8051,兩者管腳不同。按鍵可以短按+長按連+,并有閃秒。


  1. //適用于STC15系列
  2. #include <STC15F2K60S2.H>
  3. //#include "STC15.h"
  4. #define uint unsigned int               
  5. #define uchar unsigned char   

  6. sbit key1 =P3^0;
  7. sbit key2 =P3^1;

  8. sbit seg1 =P5^4;
  9. sbit seg2 =P3^3;
  10. sbit seg3 =P3^7;
  11. sbit seg4 =P5^5;

  12. sbit a=P1^1;
  13. sbit b=P3^6;
  14. sbit c=P1^4;
  15. sbit d=P1^3;
  16. sbit e=P1^2;
  17. sbit f=P1^0;
  18. sbit g=P1^5;
  19. sbit h=P3^2;
  20. //順序共陽極數(shù)碼管段碼表
  21. unsigned char code table[]={//共陽數(shù)碼管段碼"0~f-."
  22.                 0xc0,0xf9,0xa4,0xb0,
  23.                 0x99,0x92,0x82,0xf8,
  24.                 0x80,0x90,0x88,0x83,
  25.                 0xc6,0xa1,0x86,0x8e,0xbf,0x7f};
  26. uchar hour=12,min=0,sec=0;
  27. uchar tcnt;
  28. bit flag;

  29. void delayms(uint k)//1T
  30. {
  31.     uint i,j;            
  32.     for(i=k;i>0;i--)   
  33.         for(j=1250;j>0;j--);//1T
  34. }

  35. /*
  36. void InitTimer0() //50毫秒@11.0592MHz
  37. {
  38.         AUXR &= 0x7F;        //定時器時鐘12T模式
  39.         TMOD &= 0xF0;        //設(shè)置定時器模式
  40.         TL0 = 0x00;                //設(shè)置定時初值
  41.         TH0 = 0x4C;                //設(shè)置定時初值
  42.         TF0 = 0;                        //清除TF0標(biāo)志
  43.         TR0 = 1;                        //定時器0開始計時
  44.         EA  = 1;
  45.         ET0 = 1;
  46. }*/

  47. void InitTimer0()//50毫秒@12.000MHz
  48. {
  49.         AUXR &= 0x7F;        //定時器時鐘12T模式
  50.         TMOD &= 0xF0;        //設(shè)置定時器模式
  51.         TL0 = 0xB0;                //設(shè)置定時初值
  52.         TH0 = 0x3C;                //設(shè)置定時初值
  53.         TF0 = 0;                        //清除TF0標(biāo)志
  54.         TR0 = 1;                        //定時器0開始計時
  55.         EA  = 1;
  56.         ET0 = 1;
  57. }

  58. void keyscan()       
  59. {
  60.         static uchar count1,count2;
  61.         if(!key1)
  62.         {
  63.                 if(++count1>=100)
  64.                 {
  65.                         count1=0;
  66.                         hour++;
  67.                         if(hour>=24)
  68.                                 hour=0;
  69.                 }
  70.         }
  71.         else count1=0;

  72.         if(!key2)
  73.         {
  74.                 if(++count2>=100)
  75.                 {
  76.                         count2=0;
  77.                         min++;
  78.                         tcnt=0;
  79.                         sec=0;
  80.                         if(min>=60)
  81.                                 min=0;
  82.                 }
  83.         }
  84.         else count2=0;
  85. }
  86. void displayHH(uchar i)
  87. {   
  88.     a=i&0x01;i>>=1;       
  89.     b=i&0x01;i>>=1;
  90.     c=i&0x01;i>>=1;
  91.     d=i&0x01;i>>=1;
  92.     e=i&0x01;i>>=1;
  93.     f=i&0x01;i>>=1;
  94.     g=i&0x01;i>>=1;
  95.     h=i&0x01;
  96. }
  97. /*
  98. void displayHH(uchar q)
  99. {   
  100.         switch(q)
  101.         {
  102.                 case 0:a=b=c=d=e=f=0;g=h=1;break;
  103.                 case 1:b=c=0;a=d=e=f=g=h=1;break;
  104.                 case 2:a=b=d=e=g=0;c=f=h=1;break;
  105.                 case 3:a=b=c=d=g=0;e=f=h=1;break;
  106.                 case 4:b=c=f=g=0;a=d=e=h=1;break;
  107.                 case 5:a=c=d=f=g=0;b=e=h=1;break;
  108.                 case 6:a=c=d=e=f=g=0;b=h=1;break;
  109.                 case 7:a=b=c=0;d=e=f=g=h=1;break;
  110.                 case 8:a=b=c=d=e=f=g=0;h=1;break;
  111.                 case 9:a=b=c=d=f=g=0;e=h=1;break;
  112.         }
  113. }*/

  114. void display()
  115. {
  116.         static uchar i=0;
  117.         seg1=seg2=seg3=seg4=0;//消隱
  118.         switch(i)
  119.         {
  120.                 case 0: displayHH(table[hour/10]);seg1=1;seg2=0;seg3=0;seg4=0;break;
  121.                 case 1: if(flag==1)
  122.                                         displayHH(table[hour%10]&0x7f);//加點
  123.                                   else displayHH(table[hour%10]);//不加點
  124.                                                                                                          seg1=0;seg2=1;seg3=0;seg4=0;break;
  125.                 case 2: displayHH(table[min/10]) ;seg1=0;seg2=0;seg3=1;seg4=0;break;
  126.                 case 3: displayHH(table[min%10]) ;seg1=0;seg2=0;seg3=0;seg4=1;break;
  127.         }
  128.         delayms(2);
  129.         i++;
  130.         i%=4;
  131. }

  132. void main(void)
  133. {
  134.         P3M1 = 0x00;         //P3.3/P3.7 推挽:0000 0000
  135.         P3M0 = 0x88;        //P3.3/P3.7 推挽:1000 1000
  136.         P5M1 = 0x00;         //P5.4/P5.5 推挽:0000 0000
  137.         P5M0 = 0x30;         //P5.4/P5.5 推挽:0011 0000
  138.         InitTimer0();
  139.         while (1)
  140.         {
  141.                 keyscan();
  142.                 display();
  143.         }
  144. }

  145. void Timer0Interrupt(void) interrupt 1
  146. {
  147.         tcnt++;
  148.         if(tcnt<10)
  149.                 flag=1;
  150.         else flag=0;
  151.         if(tcnt>=20)
  152.         {
  153.                 tcnt=0;
  154.                 sec++;
  155.                 if(sec>=60)
  156.                 {
  157.                         sec=0;
  158.                         min++;
  159.                         if(min>=60)
  160.                         {
  161.                                 min=0;
  162.                                 hour++;
  163.                                 if(hour>=24)
  164.                                         hour=0;
  165.                         }
  166.                 }
  167.         }
  168. }
復(fù)制代碼



ID:155507 發(fā)表于 2019-12-14 12:19
這里錯了

seg1=1; // <====== PnP三極管  需用IO低電平輸出驅(qū)動
displayHH1(disdata[num/10]);
delay10us();
seg1=0; // <======

換成

seg1=0;
displayHH1(disdata[num/10]);
delay10us();
seg1=1;

ID:3212 發(fā)表于 2019-12-14 06:37
我一個問題:你的MCU是什么封裝?
SOP的,TTSOP的還是DIP的?
ID:235200 發(fā)表于 2019-12-14 01:39
程序都是貼的圖片,程序也不短,光憑眼去分析也是需要花時間的,建議把原程序貼出來,或許會有好心人幫你去調(diào)試一下找到問題!

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 丝袜 亚洲 欧美 日韩 综合 | 欧美乱码精品一区二区三区 | 蜜桃精品噜噜噜成人av | 一区二区三区中文字幕 | 希岛爱理在线 | 欧美激情一区二区三区 | 久久er99热精品一区二区 | 国产精品 亚洲一区 | 日韩一二三区视频 | 精品日韩 | 国产成人精品一区二区三区网站观看 | 一区二区三区在线播放 | 久久九精品 | 欧美a在线 | a级黄色网| 欧美成人猛片aaaaaaa | 日韩视频免费看 | 国产精品一区二区精品 | 免费看a| 免费黄色大片 | 日韩中文字幕av | 久久国产精品偷 | 性色综合| 高清一区二区三区 | 国产精品视频在线播放 | 欧美日韩成人 | 91资源在线 | 欧美日韩免费视频 | 国产精品日韩一区二区 | 中文字幕亚洲精品在线观看 | 亚洲视频区| 久久精品国产一区二区 | 影音先锋中文字幕在线观看 | 日韩国产在线 | 国产99久久 | 精品欧美乱码久久久久久1区2区 | 成人免费观看男女羞羞视频 | 九九亚洲 | 熟女毛片 | 亚洲免费毛片 | 91久久久久久 |