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

標(biāo)題: 單片機(jī)+三色點(diǎn)陣的測試 附源程序 [打印本頁]

作者: 3花木城    時間: 2022-1-11 19:54
標(biāo)題: 單片機(jī)+三色點(diǎn)陣的測試 附源程序
淘到一個三色點(diǎn)陣,首先網(wǎng)上找引腳圖,沒有找到,然后就是自己測試。
圖123是單獨(dú)測顏色 ,圖4是匯總。
圖5是接線圖,直接32個IO口全上,沒有74hc595,
圖6是點(diǎn)亮單色
圖7是三色都點(diǎn)亮。
后續(xù)有時間再做個動態(tài)。


附件里是代碼和三色動態(tài)測試視頻

單片機(jī)源程序如下:
  1. #include "reg52.h"


  2. //rotuse可以做到的 8*8點(diǎn)陣陽極接P2口,陰極接P1口,用下面的代碼就可以實(shí)現(xiàn)!
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. void Init_int();
  6. void Init_time();
  7. void display(int yin,int yang);
  8. uint num_num[33][8]={
  9.                                  {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, //上電先全滅  
  10.                                 {0x99,0x00,0x00,0x00,0x81,0xc3,0xe7,0xff,},  //大愛心
  11.                   {0xFF,0xDB,0x81,0x81,0xC3,0xE7,0xFF,0xFF,},  //小愛心                                //1
  12.                                  {0x99,0x66,0x7E,0x7E,0xBD,0xDB,0xE7,0xFF,},   //環(huán)心 中空外圈
  13.                                                                
  14.                  {0x99,0x81,0x81,0xC3,0xE7,0xFF,0xFF,0xFF,},   // 小心上                              //4
  15.                {0xFF,0x99,0x81,0x81,0xC3,0xE7,0xFF,0xFF,},      //   小心下                         //5
  16.                             {0x99,0x81,0x81,0xC3,0xE7,0xFF,0xFF,0xFF,},   // 小心上                              //4
  17.                {0xFF,0x99,0x81,0x81,0xC3,0xE7,0xFF,0xFF,},      //   小心下                         //5

  18.                                  {0x99,0x66,0x7E,0x7E,0xBD,0xDB,0xE7,0xFF,},   //環(huán)心 中空外圈
  19.                                   {0x99,0x00,0x00,0x00,0x81,0xc3,0xe7,0xff,},  //大愛心
  20.                                           //10
  21.                                            //注意:數(shù)組第一個要移到最后


  22.                                    {0xE7,0xE7,0x81,0x99,0x99,0xFF,0xFF,0xFF,},  //坦克
  23.                                          {0xFF,0xE7,0xE7,0x81,0x99,0x99,0xFF,0xFF,},   //坦克下移一位
  24.                                              {0xFF,0xFF,0xE7,0xE7,0x81,0x99,0x99,0xFF,},   // 坦克再下移一位  
  25.                                                  //13
  26.                                                                    
  27.                {0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF,},      // 中間亮4點(diǎn)                       //5
  28.                             {0xEF,0xEF,0xE0,0x7,0xF7,0xF7,0xF7,0xEF,},   // 四點(diǎn)加翅膀                           //4
  29.               {0xF7,0x6F,0xA3,0xC5,0xF6,0xEF,0xDF,0xFB,},      //  翅膀轉(zhuǎn)一度
  30.                            {0xBD,0xDB,0xE7,0xE7,0xD3,0xBD,0x7E,0x7E,},         //  翅膀打直
  31.                                           //17
  32.                                 {0xBD,0xDB,0xE7,0xE7,0xDB,0xBD,0xFF,0xFF,},   //   翅膀收一格
  33.                                 {0xFF,0xDB,0xE7,0xE7,0xDB,0xFF,0xFF,0xFF,},           //   翅膀再收格
  34.                                 {0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF,},            //   翅膀收完  只亮中間四點(diǎn)
  35.                                            //20         //注意:數(shù)組第一個要移到最后


  36.                             {0x7E,0x7E,0x66,0x66,0x7E,0x7E,0x0,0x0,},         //中間四點(diǎn),  外面一圈
  37.                                  {0x81,0xBD,0xA5,0xA5,0xBD,0x81,0xFF,0xFF,}, //中間四點(diǎn), 第二圈
  38.                                  {0xFF,0xC3,0xDB,0xDB,0xC3,0xFF,0xFF,0xFF,},   //小內(nèi)圈
  39.                                                   //23
  40.                                         {0xBD,0xFF,0xE7,0xE7,0xFF,0xBD,0xFF,0xFF,},        //中間四點(diǎn)  中圈四點(diǎn)
  41.                                    {0x9D,0xFD,0xE7,0xE7,0xBF,0xB9,0xFF,0xFF,},         //中間四點(diǎn)  中圈8點(diǎn)
  42.                                    {0xCF,0xFD,0xE5,0xA7,0xBF,0xF3,0xFF,0xFF,},           //中間四點(diǎn)  中圈8點(diǎn)移動一位
  43.                                    {0xE7,0xFF,0xA5,0xA5,0xFF,0xE7,0xFF,0xFF,} ,            //中間四點(diǎn)  中圈8點(diǎn)再移動一位
  44.                                    {0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,0xFF,},                 //中間四點(diǎn)   中圈向中聚攏
  45.                                                    //28
  46.                                     {0xFF,0xE7,0xDB,0xDB,0xE7,0xFF,0xFF,0xFF,},           //顯示空心小圓
  47.                                         {0xC3,0xBD,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,}, //顯示空心中圓
  48.                                         {0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x81,0x81,},    //顯示空心大圓
  49.                                                                         {0x99,0x00,0x00,0x00,0x81,0xc3,0xe7,0xff,},  //大愛心
  50.                  // {0xFF,0xDB,0x81,0x81,0xC3,0xE7,0xFF,0xFF,},  //小愛心                                //1
  51.                                  {0x99,0x66,0x7E,0x7E,0xBD,0xDB,0xE7,0xFF,},   //環(huán)心 中空外圈
  52.                                         //33
  53.                                          };                                  //9

  54. unsigned int count,i=1,weiyi,timer,shu,n=1;
  55. unsigned int YS,YS2;

  56. void main()
  57. {
  58.         Init_time();
  59.       
  60.         while(1)
  61.         {}
  62. }

  63. void Init_time()                                   //定時器初始化
  64. {
  65.         TMOD|=0x01;
  66.         TH0=0xff;
  67.         TL0=0x1F;
  68.         TR0=1;
  69.         ET0=1;
  70.         EA=1;      
  71. }



  72. void time() interrupt 1                          //定時器函數(shù)
  73. {        //        uchar xx;
  74.         TH0=0xfE;                     //50微秒
  75.         TL0=0xFF;
  76.         count++;
  77.         if(count>8)
  78.         {        //        i=0;
  79.                 count=0;
  80.                // if(xx==0){display(i,i);}
  81.                                 //if(xx!=1){ display(i-1,i);}
  82.                                  display(i-1,i);
  83.                 i++;  
  84.                 if(i>8)        //改變的是右邊顯示的亮滅
  85.                 i=1;  // xx=1;
  86.         }  
  87.         timer++;
  88.         if(timer>1250)
  89.         {
  90.                 timer=0;
  91.                 //weiyi++;
  92.                                 weiyi=3; //讓位停在5,字就不會變了
  93.                                      shu++;
  94.                         if(shu>32)
  95.                                                  shu=0; //此行反饋的數(shù),就是顯示的信息,讓SHU=0,就是一直顯示0
  96.                                
  97.                                                     if((shu>=0)&&(shu<12))YS=0;
  98.                                                         if((shu>=12)&&(shu<23))YS=1;
  99.                                                         if((shu>=23)&&(shu<40))YS=2;
  100.                        
  101.         }
  102. }
  103. void display(int yin,int yang)                   //顯示函數(shù)
  104. {
  105. switch (YS)
  106. {
  107.                 case(0): //初次顏色值
  108.                   {
  109.                           P1=P3=0XFF;//亮此色時,其他色關(guān)閉
  110.                 P2 = ~(~num_num[shu][yin]<<weiyi);
  111.                 if(weiyi<3)
  112.                 {
  113.                         P2 = ~(~num_num[shu][yin]>>3-weiyi);               
  114.                 }
  115.                 else
  116.                 {
  117.                         P2 = ~(~num_num[shu][yin]<<weiyi-3);
  118.                 }
  119.                 switch(yang)
  120.                 {
  121.                         case 0 : P0 = 0x01;break;
  122.                         case 1 : P0 = 0x02;break;
  123.                         case 2 : P0 = 0x04;break;
  124.                         case 3 : P0 = 0x08;break;
  125.                         case 4 : P0 = 0x10;break;
  126.                         case 5 : P0 = 0x20;break;
  127.                         case 6 : P0 = 0x40;break;
  128.                         case 7 : P0 = 0x80;break;
  129.                         default : P0 = 0x01; break;
  130.                 }
  131.                         }          break;//顯示第0位               
  132.                
  133.                
  134.                
  135.                 case(1):       
  136.                   {
  137.                                                      P2=P3=0XFF;//亮此色時,其他色關(guān)閉
  138.                                         P1 = ~(~num_num[shu][yin]<<weiyi);
  139.                 if(weiyi<3)
  140.                 {
  141.                         P1 = ~(~num_num[shu][yin]>>3-weiyi);               
  142.                 }
  143.                 else
  144.                 {
  145.                         P1 = ~(~num_num[shu][yin]<<weiyi-3);
  146.                 }
  147.                 switch(yang)
  148.                 {
  149.                         case 0 : P0 = 0x01;break;
  150.                         case 1 : P0 = 0x02;break;
  151.                         case 2 : P0 = 0x04;break;
  152.                         case 3 : P0 = 0x08;break;
  153.                         case 4 : P0 = 0x10;break;
  154.                         case 5 : P0 = 0x20;break;
  155.                         case 6 : P0 = 0x40;break;
  156.                         case 7 : P0 = 0x80;break;
  157.                         default : P0 = 0x01; break;
  158.                         }          
  159.                   
  160.                   }        break;//顯示第0位


  161.                 case(2):        //亮紅燈,P3紅燈
  162.                   {
  163.                                                      P1=P2=0Xff;//亮此色時,其他色關(guān)閉
  164.                                         //        P0=0X00;//COM口重新打開
  165.                                         P3 = ~(~num_num[shu][yin]<<weiyi);
  166.                 if(weiyi<3)
  167.                 {
  168.                         P3 = ~(~num_num[shu][yin]>>3-weiyi);               
  169.                 }
  170.                 else
  171.                 {
  172.                         P3 = ~(~num_num[shu][yin]<<weiyi-3);
  173.                 }
  174.                 switch(yang)
  175.                 {
  176.                         case 0 : P0 = 0x01;break;
  177.                         case 1 : P0 = 0x02;break;
  178.                         case 2 : P0 = 0x04;break;
  179.                         case 3 : P0 = 0x08;break;
  180.                         case 4 : P0 = 0x10;break;
  181.                         case 5 : P0 = 0x20;break;
  182.                         case 6 : P0 = 0x40;break;
  183.                         case 7 : P0 = 0x80;break;
  184.                         default : P0 = 0x01; break;
  185.                         }          
  186.                   
  187.                   }        break;//顯示第0位








  188. }
  189. }
復(fù)制代碼
Keil代碼下載,以及實(shí)物的視頻:
Desktop.rar (3.31 MB, 下載次數(shù): 7)

作者: 3花木城    時間: 2022-1-11 19:56
不小心復(fù)制了東西進(jìn)去,怎么修改呀,





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩一区二区三区四区 | 久久久亚洲 | 日韩亚洲视频在线 | 亚洲国产网 | 日朝毛片 | 91精品国产综合久久久久 | 81精品国产乱码久久久久久 | 日韩精品一区二区三区中文在线 | 亚洲精品视频三区 | 91免费入口 | 亚洲一区二区三区视频 | 亚洲第一av网站 | 狠狠干夜夜草 | 亚洲欧美国产视频 | 天天爱天天操 | 国产精品免费一区二区三区 | 国产一区久久久 | 91九色在线观看 | 色婷婷综合网站 | 亚洲一区二区三区在线视频 | 巨大黑人极品videos精品 | 91大神在线资源观看无广告 | 激情影院久久 | 久久亚洲国产精品日日av夜夜 | 成人视屏在线观看 | 中文字幕 视频一区 | av官网在线 | a免费视频| 99久久精品免费视频 | 国产中文字幕网 | 欧美在线视频一区二区 | 999热视频 | 中文字幕成人av | 日韩欧美国产精品 | 国产免费观看一级国产 | 欧美综合久久久 | 久久久www成人免费无遮挡大片 | 毛片免费在线 | 在线观看成人小视频 | 成人精品在线观看 | 久久久久一区二区三区四区 |