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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2816|回復: 7
打印 上一主題 下一主題
收起左側

單片機LED點陣屏左移的程序16*32,用的138和595 多余5個字就沒顯示 求幫助

[復制鏈接]
跳轉到指定樓層
樓主
ID:493146 發表于 2019-6-11 20:38 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
最近學著寫了一個LED點陣屏左移的程序16*32,用的138和595,可是在定義字模數組的時候只能定義5個字,多于5個字就沒有顯示,五個字以內就正常,請
大神們給予指點,
以下是源程序
#include<STC12C5A60S2.h>            
#include <intrins.h>
typedef unsigned char         uchar;
typedef unsigned int          uint;
sbit SDA_G =P4^1; //                                      
sbit SDA_R =P4^5;//串行數據輸入
sbit SHCP =P0^6; //移位時鐘脈沖
sbit STCP =P4^6; //輸出鎖存器控制脈沖
sbit IA=P2^0;//
sbit IB=P2^1;  //  
sbit IC=P2^2; //
sbit ID=P2^3;//      
sbit OE=P4^4; //               
//uint   uiAllData;
uchar  Move,line,Speed;
uint   zimuo;                                 
uchar  BUFF[20];                                   //緩存
void   DelayMs(void);              // 延時
void   in_data();                                   // 調整移動數據
void   rxd_data();                                   // 發送移動數據

uchar code hanzi[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x01,0x00,0x01,0x3F,0x01,0x20,0x3F,0xA0,0x20,0x92,0x10,0x54,0x02,0x28,0x02,
0x08,0x02,0x14,0x05,0x24,0x05,0xA2,0x08,0x81,0x08,0x40,0x10,0x20,0x20,0x10,0x40,/*"歡",0*/
0x00,0x00,0x04,0x01,0xC8,0x3C,0x48,0x24,0x40,0x24,0x40,0x24,0x4F,0x24,0x48,0x24,
0x48,0x24,0x48,0x2D,0xC8,0x14,0x48,0x04,0x08,0x04,0x14,0x04,0xE2,0x7F,0x00,0x00,/*"迎",1*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/

};
/******************************************************/
/*****不影響其他端口的掃描*************************/
void scan(uchar Value)
{
        switch(Value)
        {case  0: {IA=0;IB=0;IC=0;ID=0;};break;
                  case  1:{IA=1;IB=0;IC=0;ID=0;};break;
                   case  2:{IA=0;IB=1;IC=0;ID=0;};break;            
                    case  3: {IA=1;IB=1;IC=0;ID=0;};break;
             case  4: {IA=0;IB=0;IC=1;ID=0;};break;
                      case  5: {IA=1;IB=0;IC=1;ID=0;};break;
                       case  6: {IA=0;IB=1;IC=1;ID=0;};break;
                        case  7:{IA=1;IB=1;IC=1;ID=0;};break;
                 case  8: {IA=0;IB=0;IC=0;ID=1;};break;
                       case  9:  {IA=1;IB=0;IC=0;ID=1;};break;
                      case 10:{IA=0;IB=1;IC=0;ID=1;};break;
                     case 11: {IA=1;IB=1;IC=0;ID=1;};break;
            case 12: {IA=0;IB=0;IC=1;ID=1;};break;
                  case 13:{IA=1;IB=0;IC=1;ID=1;};break;
                 case 14:{IA=0;IB=1;IC=1;ID=1;};break;
            case 15:{IA=1;IB=1;IC=1;ID=1;};break;
           default:break;
        }
}
/**************************延時***********************/

void DelayMs(void)
{
unsigned char i, j;

        _nop_();
        i = 11;
        j = 190;
        do
        {
                while (--j);
        } while (--i);
         }
void Timer0Init(void)                //1毫秒@22.1184MHz
{
    AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TMOD |= 0x01;                //設置定時器模式
        TL0 = 0xCD;                //設置定時初值
        TH0 = 0xF8;                //設置定時初值
        TR0 = 1;                //定時器0開始計時
        EA=1;
        ET0=1;

}


/********************************************/

/*主函數*/
void main()
{   P4SW=0x70;
    P2M1=0x00;P2M0=0x0f;
        P4M1=0x00;P4M0=0xff;      
        P3M1=0x00;P3M0=0x80;
        zimuo=0;
    Move=0;
        SHCP=0;
        STCP=0;
        Timer0Init();
        line=0;      
   while(1)  
  {


         while(zimuo<128)
    {
           while(Move<16)      
     {
             for(Speed=0;Speed<15;Speed++)
             {      

                    for(line=0;line<16;line++)
                          {
                                in_data();        //
                                rxd_data(); //
                                scan(line); //   
                                OE=1;//
                                DelayMs();               
                                OE=0;

                  }
                 }
         Move++;                                             
             }
      Move=0;
         zimuo=zimuo+32;
    }      
     zimuo=0;
    }         
}      


/********************************************************         */

void in_data(void)                                      
{
uchar s;
        for(s=0;s<8;s++)                                            
        {
                 BUFF[2*s]=hanzi[zimuo+32*s+2*line];      
                 BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*line];         
        }
}


/***********************發送移動的數據************************  */
void rxd_data(void)                           
{
uchar h;
uchar inc,tempyid,temp,k;

if(Move<8)
   inc=0;
  else
    inc=1;
  for(h=0+inc;h<4+inc;h++)                  
        {
         if(Move<8)
       tempyid=Move;
     else
     tempyid=Move-8;
         temp=(BUFF[h]>>tempyid)|(BUFF[h+1]<<(8-tempyid));
         temp=~temp;
             for(k=0;k<8;k++)
               {  
                                SHCP=0;      
                           if(temp&0x01==0x01)                          
                            {
                                  SDA_G=1;
                                }
                           else
                           {
                                    SDA_G=0;
                           }

                          // SDA_G=(bit)(temp&0x01);
                          temp=temp>>1;   
                          SHCP=1;         
                            _nop_();                                                                                 
                  _nop_();                     


    }
    STCP=1;
        STCP=0;   
   }
   }


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:493146 發表于 2019-6-12 22:22 | 顯示全部樓層
zhd666 發表于 2019-6-12 09:32
代碼里面有點問題,具體可以問我

你好,請老師指點一下,感激不盡!初學者要學習的還很多
回復

使用道具 舉報

板凳
ID:493146 發表于 2019-6-12 22:23 | 顯示全部樓層
yzwzfyz 發表于 2019-6-12 08:29
顯示的方案不巧妙。

老師,能指點一二嗎?我是一個初學者,
回復

使用道具 舉報

地板
ID:493146 發表于 2019-6-12 22:54 | 顯示全部樓層

六個字改成192也不行,沒有顯示,
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区在线播放 | 一区二区视频在线 | 精品久久久久久久人人人人传媒 | 亚洲第一色站 | av香蕉| 中文字幕乱码一区二区三区 | 久久精品视频12 | 欧美无乱码久久久免费午夜一区 | 国产精品揄拍一区二区久久国内亚洲精 | 四虎影院新网址 | 日韩欧美在线播放 | 亚洲免费视频在线观看 | 日韩在线免费视频 | 91传媒在线观看 | 涩在线| 精品欧美一区免费观看α√ | 日韩三级在线观看 | 美女福利网站 | 三级成人片 | 自拍偷拍中文字幕 | 国产男人的天堂 | 国产欧美在线观看 | 日韩在线免费视频 | 在线观看a视频 | 久久久久国产精品免费免费搜索 | 欧美黑人一区二区三区 | 伊人网综合在线观看 | 久久69精品久久久久久久电影好 | 日韩精品在线观看免费 | 久草青青草 | 97久久精品午夜一区二区 | 国产一区二区三区高清 | 国产精品久久久久久久久大全 | av日日操 | 欧美日韩免费一区二区三区 | 999久久| av中文字幕在线播放 | 青草久久免费视频 | 无人区国产成人久久三区 | 伊人狠狠 | 欧美久久久网站 |