⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pt6311 16311 程序(汇编版和c语言版).txt

📁 PT6311 16311 程序(汇编版和C语言版)和16312本样原理
💻 TXT
📖 第 1 页 / 共 2 页
字号:
          DB  70H,0C8H ,00H     ;---E
          DB  70H,48H ,00H      ;---F
          DB  68H,0C8H ,00H     ;---G
          DB  78H,44H ,00H      ;---H
          DB  02H,89H ,00H      ;---I
          DB  08H,0C4H ,00H     ;---J 
          DB  06H,03H ,00H      ;---K
          DB  40H,0C0H  ,00H    ;---L
          DB  0C8H,46H  ,00H    ;---M
          DB  0CCH,44H  ,00H    ;---N
          DB  48H,0CCH  ,00H    ;---O
          DB  70H,4CH ,00H      ;---P
          DB  4CH,0CCH ,00H     ;---Q
          DB  74H,4CH ,00H      ;---R
          DB  02H,09H ,00H      ;---T
          DB  48H,0C4H ,00H     ;---U 
          DB  41H,42H ,00H      ;---V
          DB  4DH,44H ,00H      ;---W
          DB  85H,02H ,00H      ;---X
          DB  82H,02H ,00H      ;---Y
          DB  01H,8AH ,00H      ;---Z
          DB  32H,01H ,00H      ;---"+"
          DB  30H,00H ,00H      ;---"-"
          DB  01H,02H ,00H      ;---"/"
          DB  0CH,04H ,00H      ;---".1"000000010 00000011
          DB  04H,00H ,00H      ;0---DOT
          DB  00H,00H,00H       ;DB
END 
 
C版程序: 
/*序说明:本程序摸拟功放:按K1-显示"DVD",按K2-显示"VCD",按K3-显示"TAPE",按K4-显示"CD/LD"  ;按K5-显示"89C51",按K6-显示"591MCU",按K7-显示"HAIER",按K8-显示"8888888"*/ 

    #include <REGX51.H>
    #include  <intrins.h>
    #include <absacc.h>
    #define   uchar unsigned char
    #define   uint  unsigned int 
    #define   ZG 16
    #define   ZH 17
    #define   ZI 18
    #define   ZJ 19
    #define   ZK 20
    #define   ZL 21
    #define   ZM 22
    #define   ZN 23
    #define   ZO 24
    #define   ZP 25
    #define   ZQ 26
    #define   ZR 27
    #define   ZT 28
    #define   ZU 29
    #define   ZV 30
    #define   ZW 31
    #define   ZX 32
    #define   ZY 33
    #define   ZZ 34
    #define   ZADD 35
    #define   ZSUBB 36
    #define   Zxg 37
    #define   ZAC_3 38
    #define   ZDOT 39
    #define   ZNO 40
    #define   SING0 41
    #define   SIGN1 42
    #define   SIGN2 43
    /*以上是定义字模的值*/
    #define     SMG1 0xc3       /*第一个数码管的地址*/
    #define     SMG2 0xc6       /*第二个数码管的地址*/
    #define     SMG3 0xc9       /*第三个数码管的地址*/
    #define     SMG4 0xcc       /*第四个数码管的地址*/
    #define     SMG5 0xcf       /*第五个数码管的地址*/
    #define     SMG6 0xd2       /*第六个数码管的地址*/
    #define     SMG7 0xd5       /*第七个数码管的地址*/
    #define     dispMode 0x0a   /*显示模式11位17段--0x, 0a*/
  &, nbsp; #define&nbs, p;    datamode 0x40   /*数据设置命令__正常自动加1,写数据到RAM0x40*/
    #, define     lium 0x89       /*显示控制命令,显示开,亮度10/160x8b*/     #defin, e     rdkey 0x42      /*数据设置读键*/
    #define     STB     P0_0
    #define     CLK     P0_1
    #define     DO      P0_3
    #define     DI      P0_2
    uchar       txbuf[11];
    uchar       val;
void  clrVFD(uchar j,address);
 //16段码表//
         
uchar code vfddata[]={/*     H   F   M   G   C   N   P   R    D   E           A   B   K   J
                             P8  P7  P6  P5  P4  P3  P2  P1   P16 P15 P14 P13 P12 P11 P10 P9*/
            0x49,0xCE,0x00,      //;---0  
            0x08,0x04,0x00,      //;---1
            0x30,0xCC,0x00,      //;---2
            0x38,0x8C,0x00,      //;---3
            0x28,0x05,0x00,      //;---4
            0x78,0x88,0x00,      //;---5
            0x78,0xC8,0x00,      //;---6
            0x08,0x0C,0x00,      //;---7
            0x78,0xCC,0x00,      //;---8
            0x78,0x8C,0x00,      //;---9
            0x29,0x06,0x00,      //;---A
            0x2A,0x8D,0x00,      //;---B
            0x40,0xC8,0x00,      //;---C
            0x0A,0x8D,0x00,      //;---D
            0x70,0xC8,0x00,      //;---E
            0x70,0x48,0x00,      //;---F
            0x68,0xC8,0x00,      //;---G
            0x78,0x44,0x00,      //;---H
            0x02,0x89,0x00,      //;---I
            0x08,0xC4,0x00,      //;---J
            0x06,0x03,0x00,      //;---K
            0x40,0xC0,0x00,      //;---L
            0xC8,0x46,0x00,      //;---M
            0xCC,0x44,0x00,      //;---N
            0x48,0xCC,0x00,      //;---O
            0x70,0x4C,0x00,    ,   //;---P
            0x4C,0xCC,0x00,      //;---Q
            0x74,0x4C,0x00,      //;---R
            0x02,0x09,0x00,      //;---T
            0x48,0xC4,0x00,      //;---U
            0x41,0x42,0x00,      //;---V
            0x4D,0x44,0x00,      //;---W
            0x85,0x02,0x00,      //;---X
            0x82,0x02,0x00,      //;---Y
            0x01,0x8A,0x00,      //;---Z
            0x32,0x01,0x00,      //;---"+"
            0x30,0x00,0x00,      //;---"-"
            0x01,0x02,0x00,      //;---"/"
            0x0C,0x04,0x00,      //;---".1"000000010 00000011
            0x04,0x00,0x00,      //;0---DOT
            0x00,0x00,0x00,      //DB
           0x00,0x00,0x00,      //SIGN0
           0x00,0x00,0x00,      //SIGN1
           0x00,0x08,0x00,      //SIGN2
}; 
#define     yk   P3_2
uchar       ykcode[4]; 
uchar       Mvol=40;
bit         Fcont_hit=0;  
#define     LFtime  20  
uchar code keycode[8]={0x10,0x06,0x09,0x1d,0x1f,0x19,0x1b,0x11 void  delay(uchar t)
  {
   while(--t);
  }
void delay840(void)
{
 delay(210);
}
void delay4740(void)
{ uchar i=0;
  for(i=5;i>0;i--) delay(237);
} 

/*带进位右环移写8位数据*/ 
void w8bit_VFD(uchar g)
{uchar i;
 for(i=8;i>0;i--)
                       {
                        CLK=0;
                        if(g&0x01) DI=1;
                        else       DI=0;
                        CLK=1;  
                        g>>=1;   
                      }
} 

/*写命令子程序*/
void wcom_VFD(uchar m)
{
 STB=0;
 w8bit_VFD(m);
 STB=1;
} 
/*写地址子程序*/ 
void waddr_VFD(uchar m)
{
 STB=0;
 w8bit_VFD(m);
} 
/*PT6311初始化*/ 
void inivfd(void)
 {
  wcom_VFD(dispMode);
 } 
/******************************************************************************
Name:      wrbytes(uchar address,uchar zf);
Function:  写多个字符数据
******************************************************************************/ 
 void wrbytes(uchar address,uchar n) /*zf表示数字或者字符*/ 
{
 uchar *p;
 uchar  i;
 clrVFD(11,0xc0);
 wcom_VFD(datamode);
 waddr_VFD(address); 
 for(i=0;i<n;i++)
                         {
                          p=vfddata + 3*txbuf[i];
                          w8bit_VFD(*p);
                          p++;
                          w8bit_VFD(*p);
                          p++;
                          w8bit_VFD(*p);
                         } 
 STB=1;
 wcom_VFD(lium);
 } 
/*清屏程序*/ 
void  clrVFD(uchar j,address)
{uchar k =0;
 wcom_VFD(datamode);
 waddr_VFD(address);
 for(;k<j;k++)
                     {
                      w8bit_VFD(0x00);
                      w8bit_VFD(0x00);
                      w8bit_VFD(0x00);
                     }
  STB=1;
  wcom_VFD(lium);
 } 
 /*以下是VFD数据显示*/
 void  dispSXDZ(void)//SXDZ
 {
    txbuf[0] = 5;
    txbuf[1] = ZX;
    txbuf[2] = 0x0D;
    txbuf[3] = ZZ;
    wrbytes(SMG1,4);
 } 
 void  dispVCD(void)//VCD
 {
    txbuf[0] = ZV;
    txbuf[1] = 0x0c;
    txbuf[2] = 0x0d;
    wrbytes(SMG1,3);
 }
 void  dispAT89C51(void)//AT89C51
 {
    txbuf[0] = 10;
    txbuf[1] = ZT;
    txbuf[2] = 8;
    txbuf[3] = 9;
    txbuf[4] = 12;
    txbuf[5] = 5; 
    txbuf[6] = 1; 
    wrbytes(SMG1,7);
  
  }
  void  dispCCTV5(void)//CCTV5
 {
    txbuf[0] = 12;
    txbuf[1] = 12;
    txbuf[2] = ZT;
    txbuf[3] = ZV;
    txbuf[4] = 5;
    wrbytes(SMG1,5);
  }
 void  dispSCTV(void)//SCTV
 {
    txbuf[0] = 5;
    txbuf[1] = 0X0C;
    txbuf[2] = ZT;
    txbuf[3] = ZV;
    wrbytes(SMG1,4);
  } 
void  dispHUSHAN(void)//HUSHAN
{
    txbuf[0] = ZH;
    txbuf[1] = ZU;
    txbuf[2] = 5;
    txbuf[3] = ZH;
    txbuf[4] = 0x0A;
    txbuf[5] = ZN;
    wrbytes(SMG1,6);
  } 
  void  dispMvol(void)//音量加
 {
    txbuf[0] = ZM;
    txbuf[1] = ZV;
    txbuf[2] = ZO;
    txbuf[3] = ZL;
    txbuf[4] = ZNO;
    txbuf[5] = Mvol/10; 
    txbuf[6] = Mvol%10; 
    wrbytes(SMG1,7);
  } 
  /*读键子程序*/
uchar  ReadKey(void)
{ uchar i;
  STB=0;
  w8bit_VFD(rdkey);  
  for (i=0;i<8;i++)
                           {CLK=1;
                            delay(1);
                            CLK=0;
                            if(DO) val|=0x80;
                            if(i<7) val>>=1;
                            CLK=1;
                            delay(1);
                           }
   
   STB=1;
   return val; 
 } 
 /***************************************************************
//遥控中断处理程序
***************************************************************/
void int0(void) interrupt 0 
{uchar i=0;
 uchar k=0;
 EA=0;
 for(i=10;i>0;i--){delay840();if(yk) {EA=1;return;}}
 while(!yk);
 delay4740();   
 if(yk&&Fcont_hit){for(i=LFtime;i>0;i--) delay4740();}/
 else {for(i=0;i<4;i++)
                {for(k=0;k<8;k++)
                                            {while(!yk);
                                             delay840();
                                             if(yk){
                                                       ykcode[i]|=0x80;delay(245);
                                                       if(yk) {EA=1;return;}
                                                      }
                                             else ykcode[i]&=0x7f;
                                             if(k<7) ykcode[i]>>=1;      
                                            }    
           }
       }
 if((ykcode[0]==0x10)&&(ykcode[0]==~ykcode[1])&&(ykcode[2]==~ykcode[3]))              
        {
       if(ykcode[2]==keycode[0]) {dispSXDZ();   Fcont_hit=0;}
      if(ykcode[2]==keycode[1]) {dispAT89C51();Fcont_hit=0;}
      if(ykcode[2]==keycode[2]) {dispVCD();    Fcont_hit=0;}
      if(ykcode[2]==keycode[3]) {dispCCTV5();  Fcont_hit=0;}
      if(ykcode[2]==keycode[4]) {dispHUSHAN(); Fcont_hit=0;}
      if(ykcode[2]==keycode[5]) {dispSCTV();   Fcont_hit=0;}
      if(ykcode[2]==keycode[6]) {if(Mvol<80) Mvol++;else Mvol=80; dispMvol(); Fcont_hit=1;}
      if(ykcode[2]==keycode[7]) {if(Mvol>0)  Mvol--;else Mvol=0;  dispMvol(); Fcont_hit=1;}
     }
    EA=1;
} 
 void main(void)
 {     IT0=1;
        EX0=1;
        EA=1;
       inivfd();
    txbuf[0] = 5;
    txbuf[1] = ZU;
    txbuf[2] = 0x0c;
    txbuf[3] = 0x0c;
    txbuf[4] = 0x0e;
    txbuf[5] = 5; 
    txbuf[6] = 5; 
    wrbytes(SMG1,7); 
    while(1);   
 } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -