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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2542|回復(fù): 7
收起左側(cè)

單片機(jī)程序?qū)戇M(jìn)去數(shù)碼管cdg這幾段不亮

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 1 黑幣 回復(fù)本帖可獲得 1 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:906597 發(fā)表于 2021-10-18 20:54 | 顯示全部樓層 |閱讀模式
另附pcb與原理圖
沒有找出原因來,程序?qū)戇M(jìn)去數(shù)碼管cdg這幾段不亮。
然后發(fā)送段碼是P1口的0到5還剩2個(gè)口是P42和P43。

程序
  1. #define MAIN_Fosc                11059200L        //定義主時(shí)鐘
  2. #include        "15W4KxxS4.H"

  3. #define  u8    unsigned char
  4. #define  u16   unsigned int

  5. sbit A=P2^5;
  6. sbit S=P2^6;
  7. sbit C=P2^7;


  8. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  9.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};


  10. void delay(u16 i)
  11. {
  12.         while(i--);        
  13. }


  14. void DigDisplay()                                                                                    
  15. {
  16.         u8 i;
  17.         for(i=0;i<8;i++)
  18.         {
  19.                 switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
  20.                 {
  21.                    case(0):
  22.                                 A=1;S=1;C=1; break;//顯示第0位         
  23.                         case(1):
  24.                                 A=0;S=1;C=1; break;//顯示第1位                          
  25.                         case(2):
  26.                                 A=1;S=0;C=1; break;//顯示第2位                          
  27.                         case(3):        
  28.                                 A=0;S=0;C=1; break;//顯示第3位                          
  29.                         case(4):
  30.                                 A=1;S=1;C=0; break;//顯示第4位                          
  31.                         case(5):
  32.                                 A=0;S=1;C=0; break;//顯示第5位                          
  33.                         case(6):
  34.                                 A=1;S=0;C=0; break;//顯示第6位                          
  35.                         case(7):
  36.                                 A=0;S=0;C=0; break;//顯示第7位                          
  37.                 }
  38.                 P1=smgduan[ i];//發(fā)送段碼
  39.                 delay(100); //間隔一段時(shí)間掃描        
  40.                 P1=0x00;//消隱
  41.         }
  42. }



  43. mian()
  44. {
  45.         P2M1=0X1F;                  P2M0=0X1F;
  46.         while(1)
  47.         {        
  48.                 DigDisplay();  //數(shù)碼管顯示函數(shù)        
  49.         }               



  50. }
復(fù)制代碼

數(shù)碼管0到7
  1. #define MAIN_Fosc                11059200L        //定義主時(shí)鐘
  2. #include        "15W4KxxS4.H"

  3. #define  u8    unsigned char
  4. #define  u16   unsigned int

  5. //#define P4 0X0C
  6. sbit A=P2^5;
  7. sbit S=P2^6;
  8. sbit C=P2^7;
  9. //#define P42 P16
  10. //#define P43 P17
  11. sbit H=P4^2;
  12. sbit D=P4^3;                //點(diǎn)
  13. //                                          4           5        6         7           0   1        2         3
  14. u8 code smgduan[8]={0x66,0x6d,0x7d,0x07,0x3f,0x06,0x5b,0x4f};
  15.                                 

  16. u16 code smgd[8]={0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01};

  17. void delay(u16 i)
  18. {
  19.         while(i--);        
  20. }


  21. void DigDisplay()                                                                                    
  22. {
  23.         u8 i;
  24.         for(i=0;i<8;i++)
  25.         {
  26.                 switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
  27.                 {
  28.                     case(0):
  29.                                 A=1;S=1;C=1; break;//顯示第0位          從左往右進(jìn)制計(jì)算7
  30.                         case(1):
  31.                                 A=0;S=1;C=1; break;//顯示第1位                          6
  32.                         case(2):
  33.                                 A=1;S=0;C=1; break;//顯示第2位                          5
  34.                         case(3):        
  35.                                 A=0;S=0;C=1; break;//顯示第3位                          4
  36.                         case(4):
  37.                                 A=1;S=1;C=0; break;//顯示第4位                          3
  38.                         case(5):
  39.                                 A=0;S=1;C=0; break;//顯示第5位                          2
  40.                         case(6):
  41.                                 A=1;S=0;C=0; break;//顯示第6位                          1
  42.                         case(7):
  43.                                 A=0;S=0;C=0; break;//顯示第7位                          0
  44.                 }
  45.                
  46.                 P1=smgduan[i];//發(fā)送段碼           
  47.             H=smgd[i];               
  48.                 delay(100); //間隔一段時(shí)間掃描        
  49.                 P1=0x00;//消隱、
  50.                 H=0X00;        
  51.         }
  52. }

  53. main()
  54. {
  55.         P2M1=0X1F;                  P2M0=0X1F;
  56.         P1M1=0X00;       P1M0=0X00;
  57.         P4M1=0X00;       P4M0=0X00;
  58.             
  59.         while(1)
  60.         {        
  61.                 D=0;
  62.         
  63.                 //delay(100);
  64.                 DigDisplay();
  65.         }               



  66. }
復(fù)制代碼

pcb原理圖.zip

728.63 KB, 下載次數(shù): 6

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-10-19 06:29 | 顯示全部樓層
你明知段碼是P1口的0到5還剩2個(gè)口是P42和P43。還寫 P1=smgduan[ i];//發(fā)送段碼,當(dāng)然筆畫不全。給你一個(gè)示例,其中處理不同組端口的方法同樣適合數(shù)碼管。 矩陣鍵盤4×4異組非順序端口讀寫 仿真.zip (67.15 KB, 下載次數(shù): 5)

回復(fù)

使用道具 舉報(bào)

ID:906597 發(fā)表于 2021-10-19 09:45 | 顯示全部樓層
main寫錯(cuò)了,但是數(shù)碼管還是顯示不全,我覺得是因?yàn)镻42和43的問題,但是試了一下好像還是不行
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-10-19 11:37 | 顯示全部樓層
把輸出端口輸出高電平試一下不就知道了
不要用數(shù)組,直接 P1=255;
再把另外兩個(gè)IO也輸出高電平
這不就找出問題來了?
段碼輸出不在用一個(gè)端口,你是怎么讓另外兩個(gè)輸出呢?
回復(fù)

使用道具 舉報(bào)

ID:906597 發(fā)表于 2021-10-20 08:22 | 顯示全部樓層
wulin 發(fā)表于 2021-10-19 06:29
你明知段碼是P1口的0到5還剩2個(gè)口是P42和P43。還寫 P1=smgduan[ i];//發(fā)送段碼,當(dāng)然筆畫不全。給你一個(gè)示 ...

好的我試試
回復(fù)

使用道具 舉報(bào)

ID:906597 發(fā)表于 2021-10-20 08:24 | 顯示全部樓層
Y_G_G 發(fā)表于 2021-10-19 11:37
把輸出端口輸出高電平試一下不就知道了
不要用數(shù)組,直接 P1=255;
再把另外兩個(gè)IO也輸出高電平

謝謝指教!
回復(fù)

使用道具 舉報(bào)

ID:319023 發(fā)表于 2021-10-20 08:55 | 顯示全部樓層
初學(xué)單片機(jī) 還是要多看人家的成熟代碼, 多去悟才好啊
回復(fù)

使用道具 舉報(bào)

ID:906597 發(fā)表于 2021-10-24 10:01 | 顯示全部樓層
問題找到了,245芯片有2個(gè)腳沒有焊好,然后是寫了一個(gè)數(shù)碼管顯示0到7的程序
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美一区二区三区国产精品 | 国产精品美女视频 | 久久综合九九 | 1区2区视频 | 久久亚洲二区 | 午夜精品一区二区三区在线视频 | 亚洲激情在线 | 精品中文字幕在线观看 | 日韩中文字幕一区二区三区 | 天天操夜夜操 | 国产精品久久久久一区二区三区 | 精品久久ai电影 | 色网在线看 | 99re在线免费视频 | 美国av片在线观看 | 免费毛片网| 久久夜视频 | 九九热精品视频 | 欧美日韩不卡 | 一本色道久久综合亚洲精品高清 | 三级在线观看 | 日韩成人在线免费视频 | 欧美日本在线观看 | 亚洲国产成人av好男人在线观看 | 国产高清亚洲 | 亚洲成人av | 精品一区二区三区在线观看国产 | 日本成人福利视频 | 一区二区三区欧美 | 亚洲精品电影网在线观看 | 中文字幕成人在线 | 成人午夜毛片 | 九一视频在线播放 | 99精品视频一区二区三区 | 美国十次成人欧美色导视频 | h视频免费看 | 久久久人成影片免费观看 | 精品不卡| 亚洲自拍偷拍免费视频 | 国产传媒在线播放 | 欧美激情国产日韩精品一区18 |