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

📄 lcd.lst

📁 主机板测试机的液晶显示程序; 运行平台STC89C516;开发软件为KEIL 目标器件为19264
💻 LST
📖 第 1 页 / 共 5 页
字号:
 876          unsigned char code asc[]={
 877          0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 878          0x0,0x0,0x38,0xfc,0xfc,0x38,0x0,0x0,0x0,0x0,0x0,0xd,0xd,0x0,0x0,0x0,
 879          0x0,0xe,0x1e,0x0,0x0,0x1e,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 880          0x20,0xf8,0xf8,0x20,0xf8,0xf8,0x20,0x0,0x2,0xf,0xf,0x2,0xf,0xf,0x2,0x0,
 881          0x38,0x7c,0x44,0x47,0x47,0xcc,0x98,0x0,0x6,0xc,0x8,0x38,0x38,0xf,0x7,0x0,
 882          0x30,0x30,0x0,0x80,0xc0,0x60,0x30,0x0,0xc,0x6,0x3,0x1,0x0,0xc,0xc,0x0,
 883          0x80,0xd8,0x7c,0xe4,0xbc,0xd8,0x40,0x0,0x7,0xf,0x8,0x8,0x7,0xf,0x8,0x0,
 884          0x0,0x10,0x1e,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 885          0x0,0x0,0xf0,0xf8,0xc,0x4,0x0,0x0,0x0,0x0,0x3,0x7,0xc,0x8,0x0,0x0,
 886          0x0,0x0,0x4,0xc,0xf8,0xf0,0x0,0x0,0x0,0x0,0x8,0xc,0x7,0x3,0x0,0x0,
 887          0x80,0xa0,0xe0,0xc0,0xc0,0xe0,0xa0,0x80,0x0,0x2,0x3,0x1,0x1,0x3,0x2,0x0,
 888          0x0,0x80,0x80,0xe0,0xe0,0x80,0x80,0x0,0x0,0x0,0x0,0x3,0x3,0x0,0x0,0x0,
 889          0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x1e,0xe,0x0,0x0,0x0,
 890          0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 891          0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc,0xc,0x0,0x0,0x0,
 892          0x0,0x0,0x0,0x80,0xc0,0x60,0x30,0x0,0xc,0x6,0x3,0x1,0x0,0x0,0x0,0x0,
 893          0xf0,0xf8,0xc,0xc4,0xc,0xf8,0xf0,0x0,0x3,0x7,0xc,0x8,0xc,0x7,0x3,0x0,
 894          0x0,0x10,0x18,0xfc,0xfc,0x0,0x0,0x0,0x0,0x8,0x8,0xf,0xf,0x8,0x8,0x0,
 895          0x8,0xc,0x84,0xc4,0x64,0x3c,0x18,0x0,0xe,0xf,0x9,0x8,0x8,0xc,0xc,0x0,
 896          0x8,0xc,0x44,0x44,0x44,0xfc,0xb8,0x0,0x4,0xc,0x8,0x8,0x8,0xf,0x7,0x0,
 897          0xc0,0xe0,0xb0,0x98,0xfc,0xfc,0x80,0x0,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x0,
 898          0x7c,0x7c,0x44,0x44,0x44,0xc4,0x84,0x0,0x4,0xc,0x8,0x8,0x8,0xf,0x7,0x0,
 899          0xf0,0xf8,0x4c,0x44,0x44,0xc0,0x80,0x0,0x7,0xf,0x8,0x8,0x8,0xf,0x7,0x0,
 900          0xc,0xc,0x4,0x84,0xc4,0x7c,0x3c,0x0,0x0,0x0,0xf,0xf,0x0,0x0,0x0,0x0,
 901          0xb8,0xfc,0x44,0x44,0x44,0xfc,0xb8,0x0,0x7,0xf,0x8,0x8,0x8,0xf,0x7,0x0,
 902          0x38,0x7c,0x44,0x44,0x44,0xfc,0xf8,0x0,0x0,0x8,0x8,0x8,0xc,0x7,0x3,0x0,
 903          0x0,0x0,0x0,0x30,0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6,0x0,0x0,0x0,
 904          0x0,0x0,0x0,0x30,0x30,0x0,0x0,0x0,0x0,0x0,0x8,0xe,0x6,0x0,0x0,0x0,
 905          0x0,0x80,0xc0,0x60,0x30,0x18,0x8,0x0,0x0,0x0,0x1,0x3,0x6,0xc,0x8,0x0,
 906          0x0,0x20,0x20,0x20,0x20,0x20,0x20,0x0,0x0,0x1,0x1,0x1,0x1,0x1,0x1,0x0,
 907          0x0,0x8,0x18,0x30,0x60,0xc0,0x80,0x0,0x0,0x8,0xc,0x6,0x3,0x1,0x0,0x0,
 908          0x18,0x1c,0x4,0xc4,0xe4,0x3c,0x18,0x0,0x0,0x0,0x0,0xd,0xd,0x0,0x0,0x0,
 909          0xf0,0xf8,0x8,0xc8,0xc8,0xf8,0xf0,0x0,0x7,0xf,0x8,0xb,0xb,0xb,0x1,0x0,
 910          0xe0,0xf0,0x98,0x8c,0x98,0xf0,0xe0,0x0,0xf,0xf,0x0,0x0,0x0,0xf,0xf,0x0,
 911          0x4,0xfc,0xfc,0x44,0x44,0xfc,0xb8,0x0,0x8,0xf,0xf,0x8,0x8,0xf,0x7,0x0,
 912          0xf0,0xf8,0xc,0x4,0x4,0xc,0x18,0x0,0x3,0x7,0xc,0x8,0x8,0xc,0x6,0x0,
 913          0x4,0xfc,0xfc,0x4,0xc,0xf8,0xf0,0x0,0x8,0xf,0xf,0x8,0xc,0x7,0x3,0x0,
 914          0x4,0xfc,0xfc,0x44,0xe4,0xc,0x1c,0x0,0x8,0xf,0xf,0x8,0x8,0xc,0xe,0x0,
 915          0x4,0xfc,0xfc,0x44,0xe4,0xc,0x1c,0x0,0x8,0xf,0xf,0x8,0x0,0x0,0x0,0x0,
 916          0xf0,0xf8,0xc,0x84,0x84,0x8c,0x98,0x0,0x3,0x7,0xc,0x8,0x8,0x7,0xf,0x0,
 917          0xfc,0xfc,0x40,0x40,0x40,0xfc,0xfc,0x0,0xf,0xf,0x0,0x0,0x0,0xf,0xf,0x0,
 918          0x0,0x0,0x4,0xfc,0xfc,0x4,0x0,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,
 919          0x0,0x0,0x0,0x4,0xfc,0xfc,0x4,0x0,0x7,0xf,0x8,0x8,0xf,0x7,0x0,0x0,
 920          0x4,0xfc,0xfc,0xc0,0xe0,0x3c,0x1c,0x0,0x8,0xf,0xf,0x0,0x1,0xf,0xe,0x0,
 921          0x4,0xfc,0xfc,0x4,0x0,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x8,0xc,0xe,0x0,
 922          0xfc,0xfc,0x38,0x70,0x38,0xfc,0xfc,0x0,0xf,0xf,0x0,0x0,0x0,0xf,0xf,0x0,
 923          0xfc,0xfc,0x38,0x70,0xe0,0xfc,0xfc,0x0,0xf,0xf,0x0,0x0,0x0,0xf,0xf,0x0,
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 16  

 924          0xf8,0xfc,0x4,0x4,0x4,0xfc,0xf8,0x0,0x7,0xf,0x8,0x8,0x8,0xf,0x7,0x0,
 925          0x4,0xfc,0xfc,0x44,0x44,0x7c,0x38,0x0,0x8,0xf,0xf,0x8,0x0,0x0,0x0,0x0,
 926          0xf8,0xfc,0x4,0x4,0x4,0xfc,0xf8,0x0,0x7,0xf,0x8,0xe,0x3c,0x3f,0x27,0x0,
 927          0x4,0xfc,0xfc,0x44,0xc4,0xfc,0x38,0x0,0x8,0xf,0xf,0x0,0x0,0xf,0xf,0x0,
 928          0x18,0x3c,0x64,0x44,0xc4,0x9c,0x18,0x0,0x6,0xe,0x8,0x8,0x8,0xf,0x7,0x0,
 929          0x0,0x1c,0xc,0xfc,0xfc,0xc,0x1c,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,
 930          0xfc,0xfc,0x0,0x0,0x0,0xfc,0xfc,0x0,0x7,0xf,0x8,0x8,0x8,0xf,0x7,0x0,
 931          0xfc,0xfc,0x0,0x0,0x0,0xfc,0xfc,0x0,0x1,0x3,0x6,0xc,0x6,0x3,0x1,0x0,
 932          0xfc,0xfc,0x0,0xc0,0x0,0xfc,0xfc,0x0,0x7,0xf,0xe,0x3,0xe,0xf,0x7,0x0,
 933          0xc,0x3c,0xf0,0xe0,0xf0,0x3c,0xc,0x0,0xc,0xf,0x3,0x1,0x3,0xf,0xc,0x0,
 934          0x0,0x3c,0x7c,0xc0,0xc0,0x7c,0x3c,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,
 935          0x1c,0xc,0x84,0xc4,0x64,0x3c,0x1c,0x0,0xe,0xf,0x9,0x8,0x8,0xc,0xe,0x0,
 936          0x0,0x0,0xfc,0xfc,0x4,0x4,0x0,0x0,0x0,0x0,0xf,0xf,0x8,0x8,0x0,0x0,
 937          0x38,0x70,0xe0,0xc0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x3,0x7,0xe,0x0,
 938          0x0,0x0,0x4,0x4,0xfc,0xfc,0x0,0x0,0x0,0x0,0x8,0x8,0xf,0xf,0x0,0x0,
 939          0x8,0xc,0x6,0x3,0x6,0xc,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 940          0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
 941          0x0,0x0,0x3,0x7,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 942          0x0,0xa0,0xa0,0xa0,0xe0,0xc0,0x0,0x0,0x7,0xf,0x8,0x8,0x7,0xf,0x8,0x0,
 943          0x4,0xfc,0xfc,0x20,0x60,0xc0,0x80,0x0,0x0,0xf,0xf,0x8,0x8,0xf,0x7,0x0,
 944          0xc0,0xe0,0x20,0x20,0x20,0x60,0x40,0x0,0x7,0xf,0x8,0x8,0x8,0xc,0x4,0x0,
 945          0x80,0xc0,0x60,0x24,0xfc,0xfc,0x0,0x0,0x7,0xf,0x8,0x8,0x7,0xf,0x8,0x0,
 946          0xc0,0xe0,0xa0,0xa0,0xa0,0xe0,0xc0,0x0,0x7,0xf,0x8,0x8,0x8,0xc,0x4,0x0,
 947          0x40,0xf8,0xfc,0x44,0xc,0x18,0x0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,0x0,0x0,
 948          0xc0,0xe0,0x20,0x20,0xc0,0xe0,0x20,0x0,0x27,0x6f,0x48,0x48,0x7f,0x3f,0x0,0x0,
 949          0x4,0xfc,0xfc,0x40,0x20,0xe0,0xc0,0x0,0x8,0xf,0xf,0x0,0x0,0xf,0xf,0x0,
 950          0x0,0x0,0x20,0xec,0xec,0x0,0x0,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,
 951          0x0,0x0,0x0,0x0,0x20,0xec,0xec,0x0,0x0,0x30,0x70,0x40,0x40,0x7f,0x3f,0x0,
 952          0x4,0xfc,0xfc,0x80,0xc0,0x60,0x20,0x0,0x8,0xf,0xf,0x1,0x3,0xe,0xc,0x0,
 953          0x0,0x0,0x4,0xfc,0xfc,0x0,0x0,0x0,0x0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,
 954          0xe0,0xe0,0x60,0xc0,0x60,0xe0,0xc0,0x0,0xf,0xf,0x0,0x7,0x0,0xf,0xf,0x0,
 955          0x20,0xe0,0xc0,0x20,0x20,0xe0,0xc0,0x0,0x0,0xf,0xf,0x0,0x0,0xf,0xf,0x0,
 956          0xc0,0xe0,0x20,0x20,0x20,0xe0,0xc0,0x0,0x7,0xf,0x8,0x8,0x8,0xf,0x7,0x0,
 957          0x20,0xe0,0xc0,0x20,0x20,0xe0,0xc0,0x0,0x40,0x7f,0x7f,0x48,0x8,0xf,0x7,0x0,
 958          0xc0,0xe0,0x20,0x20,0xc0,0xe0,0x20,0x0,0x7,0xf,0x8,0x48,0x7f,0x7f,0x40,0x0,
 959          0x20,0xe0,0xc0,0x60,0x20,0xe0,0xc0,0x0,0x8,0xf,0xf,0x8,0x0,0x0,0x0,0x0,
 960          0x40,0xe0,0xa0,0x20,0x20,0x60,0x40,0x0,0x4,0xc,0x9,0x9,0xb,0xe,0x4,0x0,
 961          0x20,0x20,0xf8,0xfc,0x20,0x20,0x0,0x0,0x0,0x0,0x7,0xf,0x8,0xc,0x4,0x0,
 962          0xe0,0xe0,0x0,0x0,0xe0,0xe0,0x0,0x0,0x7,0xf,0x8,0x8,0x7,0xf,0x8,0x0,
 963          0x0,0xe0,0xe0,0x0,0x0,0xe0,0xe0,0x0,0x0,0x3,0x7,0xc,0xc,0x7,0x3,0x0,
 964          0xe0,0xe0,0x0,0x80,0x0,0xe0,0xe0,0x0,0x7,0xf,0xc,0x7,0xc,0xf,0x7,0x0,
 965          0x20,0x60,0xc0,0x80,0xc0,0x60,0x20,0x0,0x8,0xc,0x7,0x3,0x7,0xc,0x8,0x0,
 966          0xe0,0xe0,0x0,0x0,0x0,0xe0,0xe0,0x0,0x47,0x4f,0x48,0x48,0x68,0x3f,0x1f,0x0,
 967          0x60,0x60,0x20,0xa0,0xe0,0x60,0x20,0x0,0xc,0xe,0xb,0x9,0x8,0xc,0xc,0x0,
 968          0x0,0x40,0x40,0xf8,0xbc,0x4,0x4,0x0,0x0,0x0,0x0,0x7,0xf,0x8,0x8,0x0,
 969          0x0,0x0,0x0,0xbc,0xbc,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0xf,0x0,0x0,0x0,
 970          0x0,0x4,0x4,0xbc,0xf8,0x40,0x40,0x0,0x0,0x8,0x8,0xf,0x7,0x0,0x0,0x0,
 971          0x8,0xc,0x4,0xc,0x8,0xc,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 972          0x80,0xc0,0x60,0x30,0x60,0xc0,0x80,0x0,0x7,0x7,0x4,0x4,0x4,0x7,0x7,0x0
 973          };
 974          //DISPLAY ON/OFF
 975          //==================================================================================================
 976          //Sleep time Program STRAT
 977          void nc(int n);
 978          void delay(int n);
 979          void delay_nc(int t);
 980          void long_delay(int t);
 981          //Sleep time Program STOP
 982          //==================================================================================================
 983          
 984          //==================================================================================================
 985          //MUC INI INIT START
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 17  

 986          void int_init(void);
 987          void config_init(void);
 988          void port_init(void);
 989          //MUC INI INIT START
 990          //==================================================================================================
 991          
 992          //==================================================================================================
 993          void incept_int(void);
 994          void Send_String(char Str_Array[],BYTE Int_Len);//MCU RS23 SEND N BYTES
 995          void Send(char chrI);//MCU RS23 SEND BYTE
 996          //==================================================================================================
 997          //================================================================================
 998          Write_0107_Reg(unsigned char Reg_Code);//  KS0107寄存器写入函数
 999          Write_0107_Data(unsigned char Disp_Data);//  KS0107显示数据写入函数
1000          unsigned char Read_0107_Data();//  读取KS0107显示数据函数
1001          void Set_XY_1(unsigned char X_Column, unsigned char Y_Page);//  设置地址,X方向以点为单位,Y方向以page为单
             -位
1002          void Init_0107();//  KS0107寄存器初始化函数
1003          void lcd_busy(void);//忙判别
1004          void set_xy(unsigned char x,unsigned char y);//设置xy
1005          void lw(unsigned char x,unsigned char y,unsigned char dd);
1006          void display_string(unsigned char x,unsigned char y,unsigned char n,unsigned char fb,unsigned char *dis_st
             -ring);
1007          void da(unsigned char x,unsigned char y,unsigned char n,unsigned char fb);
1008          //================================================================================
1009          void delay(int n)
1010          {
1011   1              unsigned int k,j;
1012   1              for(k=0;k<n;k++)
1013   1                      for(j=0;j<200;j++);
1014   1      }
1015          void long_delay(int t)
1016          {
1017   1              int n=0xff;
1018   1              while(--t)
1019   1              {
1020   2                      while(--n);
1021   2                      n=0xff;
1022   2              }
1023   1      }
1024          void delay_nc(int t)
1025          {
1026   1       while(--t);
1027   1      }
1028          void nc(int n)
1029          {
1030   1              unsigned int i;
1031   1              for(i=0;i<n;i++)
1032   1                      _nop_();
1033   1      }
1034          //================================================================
1035          //  KS0108寄存器写入函数
1036          //================================================================
1037          Write_0107_Reg(unsigned char Reg_Code)
1038          {
1039   1              bRWE=1;
1040   1              bDI=0;
1041   1              bRW=0;
1042   1              nc(5);
1043   1              Lcd_Bus=Reg_Code;
1044   1              nc(5);
1045   1              bRWE=0;
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 18  

1046   1              nc(2);
1047   1      }
1048          //================================================================
1049          //  KS0108显示数据写入函数
1050          //================================================================
1051          
1052          Write_0107_Data(unsigned char Disp_Data)
1053          {
1054   1              bRWE=1;
1055   1              bDI=1;
1056   1              bRW=0;
1057   1              nc(2);
1058   1              Lcd_Bus=Disp_Data;
1059   1              nc(5);
1060   1              bRWE=0;
1061   1              nc(2);
1062   1      }
1063          //================================================================
1064          //  读取KS0107显示数据函数
1065          //================================================================
1066          unsigned char Read_0107_Data()
1067          {
1068   1              unsigned char Disp_Data;
1069   1      
1070   1              bDI=1;
1071   1              bRW=1;
1072   1              Lcd_Bus=0xff;
1073   1              nc(2);
1074   1              bRWE=1;
1075   1              Disp_Data=Lcd_Bus;
1076   1              nc(4);
1077   1              bRWE=0;
1078   1              nc(2);
1079   1              return Disp_Data;
1080   1      }
1081          
1082          //================================================================
1083          //  设置地址,X方向以点为单位,Y方向以page为单位
1084          //================================================================
1085          void Set_XY_1(unsigned char X_Column, unsigned char Y_Page)
1086          {  
1087   1              Write_0107_Reg(Set_Page+Y_Page);
1088   1              nc(10);
1089   1              Write_0107_Reg(Set_Column+X_Column);
1090   1      }
1091          
1092          //================================================================
1093          //  KS0107寄存器初始化函数
1094          //================================================================
1095          void Init_0107()
1096          { 
1097   1              bRET=0;
1098   1              nc(10);;
1099   1              bRET=1;
1100   1              nc(10);
1101   1              bCS1=0;
1102   1              bCS2=0;
1103   1              bCS3=0;
1104   1              nc(10);
1105   1              Write_0107_Reg(Set_Disp_Off);
1106   1              nc(10);
1107   1              Write_0107_Reg(Set_Start_Line);
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 19  

1108   1              nc(10);
1109   1              Write_0107_Reg(Set_Page);
1110   1              nc(10);
1111   1              Write_0107_Reg(Set_Column);
1112   1              nc(10);
1113   1              Write_0107_Reg(Set_Disp_On);
1114   1              nc(10);
1115   1      }
1116          //================================================================
1117          //  清除KS0107显示存储器
1118          //================================================================
1119          Clr_Screen(BYTE bData_clr)
1120          { 
1121   1              unsigned char j,k;
1122   1      
1123   1              bCS1=0;
1124   1              bCS2=0;
1125   1              bCS3=0;
1126   1              delay(2);
1127   1              for(k=0;k<8;k++)
1128   1              {
1129   2                      Write_0107_Reg(Set_Page+k);
1130   2                      nc(1);
1131   2                      Write_0107_Reg(Set_Column);
1132   2                      for(j=0;j<64;j++) Write_0107_Data(bData_clr);
1133   2              }
1134   1      }
1135          Clr_x_y_Screen(unsigned char x,unsigned char y,unsigned char n,BYTE bData_clr)
1136          {
1137   1              unsigned char i;
1138   1              unsigned char j;
1139   1      
1140   1              for(i=0;i<n;i++)
1141   1                      for(j=0;j<8;j++)
1142   1                              lw(x*8+i*8+j+1,y,bData_clr);
1143   1      }
1144          //忙判别
1145          void lcd_busy(void) 
1146          {
1147   1              bDI=0;
1148   1              bRW=1;
1149   1              Lcd_Bus=0xFF;
1150   1              while (1) 
1151   1              {
1152   2                      bRWE=1;
1153   2                      if (Lcd_Bus<0x80) break;
1154   2                      bRWE=0;
1155   2              } 
1156   1              bRWE=0;
1157   1      }
1158          //设置xy
1159          void set_xy(unsigned char x,unsigned char y) 
1160          {
1161   1              if (x>=64) 
1162   1              {
1163   2                      if(x>=128)
1164   2                      {
1165   3                              bCS1=1;
1166   3                              bCS2=1;
1167   3                              bCS3=0;                         
1168   3                      }
1169   2                      else

⌨️ 快捷键说明

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