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

📄 alcda.c

📁 soc单片机试验、实践与应用设计——基于C8051F系列的例程
💻 C
字号:
/*参考程序B.LCDA.c程序功能;在该液晶模块上显示二行字符:
Welcom To NCD
www.xhl.com.cn*/
#include <c8051f020.h>                 
unsigned long x;  //www.xhl.com.cn
unsigned 	char 	xdata Netdata[15]={0x77,0x77,0x77,0x2e,0x78,0x68,0x6c,0x2e,0x63,0x6f,//|
                                0x6d,0x2e,0x63,0x6e};//                              |
    unsigned 	char 	xdata NCDdata[15]={0x57,0x65,0x6c,0x63,0x6f,0x6d,0x65,0x20,0x74,0x6f,//|
                                0x20,0x4e,0x43,0x44};//                              |
unsigned char *lcdpoint;         //指向 lcddata数组的指针
unsigned char lcd_data_count;        //要显示的数据个数 
void SYSCLK_Init (void);
void PORT_Init (void);
void LCD_Init(void);
void SEND_LCD(unsigned char lcd_data_count);
void main (void)
 {
static unsigned char data1,data2;
    WDTCN = 0xde;
    WDTCN = 0xad;                       //禁止看门狗定时器
    SYSCLK_Init ();                        // 系统时钟初始化
                                          
    PORT_Init ();                          // 交叉开关和通用I/O口初始化
 	while(1){
	    LCD_Init();                            //LCD初始化
	    //P6  = 0x0d;                             //准备送数据
	    for(x=0;x<5000;x++);
	    lcdpoint=&NCDdata;
	    for(lcd_data_count=14;lcd_data_count>0;lcd_data_count--)     //显示第一行字符
	    { 
		    data1=*lcdpoint;
		    P7 = data1; //向LCD送数据
			P6 = 0x05;
	        P6 = 0x04;
			lcdpoint++;
			for(x=0;x<100;x++);
		}
	   	    P7 = 0xc0;
   	    	P6 = 0x1;	
   	     	P6 = 0x0; 		
   		for(x=0;x<1000;x++);
	    lcdpoint=&Netdata;
	    for(lcd_data_count=14;lcd_data_count>0;lcd_data_count--)     //显示第一行字符
	    { 
		    data1=*lcdpoint;   //向LCD送数据
		    P7 = data1; 
			P6 = 0x04;
	        P6 = 0x05;
			lcdpoint++;
			for(x=0;x<100;x++);
		}
	}
}
//函数名称:      SYSCLK_Init ()
//函数功能:      系统时钟初始化
void SYSCLK_Init (void)
{

   OSCICN = 0x05;                          // 系统时钟初始化为片内的 24.5MHz / 8                       
                                         
 }
void PORT_Init (void)
{
   XBR0     = 0x00;                       // 没有选择数字外设
   P74OUT  = 0xf0;                       // P6,P7口设为推挽方式
}
void LCD_Init(void) //向LCD送命令
{
	P6 = 0x01;
	for(x=0;x<50000;x++);
   //P7 = 0x30;				/*一行显示*/
   P7 = 0x38;				/*两行显示*/
   P6 = 0x1;
   P6 = 0x0;                //向LCD送命令
   for(x=0;x<1000;x++);
   P7 = 0x0e;				/*开显示,开光标,字符不闪烁*/
   P6 = 0x1;
   P6 = 0x0;
   for(x=0;x<1000;x++);
   P7= 0x06;				/*I/D=1,AC自动增1;S=0,整体显示不移动*/
   P6 = 0x1;
   P6 = 0x0;
   for(x=0;x<5000;x++);
   P7 = 0x01;				/*清除DDRAM,置AC=0*/
   P6 = 0x1;
   P6 = 0x0; 
   for(x=0;x<5000;x++);
}
 

⌨️ 快捷键说明

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