您当前的位置:五五电子网电子知识单片机-工控设备51单片机12864显示屏4*4键盘实验 正文
12864显示屏4*4键盘实验

12864显示屏4*4键盘实验

点击数:7279 次   录入时间:03-04 11:36:41   整理:http://www.55dianzi.com   51单片机

12864显示屏4*4键盘实验输出结果:获得键值通过发光二极管显示            
#include <reg52.h>

unsigned char code IC_DAT[];

sbit RS=P3^6;     //RS="H",表示DB7--DB0为显示数据,
                  //RS="L",表示DB7--DB0为显示指令数据

sbit WRD = P2^5;  //R/W="H",E="H",数据被读到DB7--DB0
                   //R/W="L",E="H→L", DB7--DB0的数据被写到IR或DR

sbit E = P2^6;    //使能信号

sbit PSB = P2^3;  //H:并口方式 L:串口方式


void    TransferData(char data1,bit DI); //传送数据或者地址命令(data),
                                         //当DI=0是,传送命令,当DI=1,传送数据.
void    display(void);
void    display_grapic(void);

void    delay1(unsigned int t);
void    delay(unsigned int m);
void    delayms(unsigned int n);

void    DisplayLine(unsigned char line1,unsigned char line2);
void    DisplayGraphic(unsigned char code *adder);

void    LCD_mesg(unsigned char code *adder1);
Key_return(char keyvalue);
keysCAN();
/***************屏幕显示结果*********************/
unsigned char code IC_DAT[]={
"天华杯老师培训班"
"******    ******"
"    按键键值    "
"地点:35号楼 505"
};
unsigned char data1[]={"0123456789ABCDEF "};
/***************LCD字库初始化程序*********************/
void initinal(void)         
          {
           delay(40);               //大于40MS的延时程序
           PSB=1;                   //设置为8BIT并口工作模式
           delay(1);                //延时
          // RES=0;                 //复位
          // delay(1);              //延时
          // RES=1;                 //复位置高
           delay(10);
           TransferData(0x30,0);  //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF
           delay(100);            //大于100uS的延时程序
           TransferData(0x30,0);  //Function Set
           delay(37);             ////大于37uS的延时程序
           TransferData(0x08,0);  //Display on Control
           delay(100);            //大于100uS的延时程序
           TransferData(0x10,0);  //Cursor Display Control光标设置
           delay(100);            //大于100uS的延时程序
           TransferData(0x0C,0);  //Display Control,D=1,显示开
           delay(100);            //大于100uS的延时程序
           TransferData(0x01,0);  //Display Clear    清屏
           delay(10);             //大于10mS的延时程序
           TransferData(0x06,0);  //Enry Mode Set,光标从右向左加1位移动
           delay(100);            //大于100uS的延时程序
          }


//*************显示函数******************************

void lcd_mesg(unsigned char code *adder1)
{
    unsigned char i;
        TransferData(0x80,0);    //Set Graphic Display RAM Address 传地址指令
        delay(100);
    for(i=0;i<32;i++)
        {
              TransferData(*adder1,1);
               adder1++;
        }

        TransferData(0x90,0);    //Set Graphic Display RAM Address
        delay(100);

    for(i=0;i<32;i++)
        {
              TransferData(*adder1,1);
               adder1++;
        }
}
//*************位置显示函数******************************
void lcd_wxs1(unsigned int adder2)
{
        TransferData(0x8C,0);    //Set Graphic Display RAM Address 传地址指令
        delay(100);    

[1] [2] [3] [4]  下一页


本文关键字:显示屏  键盘  51单片机单片机-工控设备 - 51单片机