当前位置:首页 > 单片机 > 单片机
[导读]#include#include "lcd12864.h"#include "typedef.h"#define cyCSBIT0//P2.0,片选信号#define cySIDBIT1//P2.1,串行数据#define cyCLKBIT2//P2.2,同步时钟#define cyPORTP2OUT#define cyDDRP2DIRvoid Write_8bits

#include
#include "lcd12864.h"
#include "typedef.h"

#define cyCSBIT0//P2.0,片选信号
#define cySIDBIT1//P2.1,串行数据
#define cyCLKBIT2//P2.2,同步时钟
#define cyPORTP2OUT
#define cyDDRP2DIR


void Write_8bits(u8 W_bits)
{
u8 i;
cyDDR |= cyCLK + cySID;//设置输出方向
for(i = 0; i < 8; i++)
{
if(( W_bits << i )&0x80)
{
cyPORT |= cySID;

}
else
{
cyPORT &= ~cySID;
}
delay_ms(1);
cyPORT |= cyCLK;
delay_ms(1);
delay_ms(1);
cyPORT &= ~cyCLK;
}
}


void w_1byte(u8 RS, u8 w_data)
{
u8 H_Data,L_Data;
u8 tmp_Data = 0xf8;

cyDDR |= cyCS;//设置CS口为输出
if(RS == 0) tmp_Data &= ~0x02;
elsetmp_Data |= 0x02;

H_Data = w_data;//高位数据
H_Data &= 0xf0;
L_Data = w_data;//低位数据
L_Data &= 0x0f;
L_Data <<= 4;

cyPORT |= cyCS;
Write_8bits(tmp_Data);
Write_8bits(H_Data);
Write_8bits(L_Data);
cyPORT &= ~cyCS;
}


void init_Lcd(void)
{
cyDDR |= cyCLK + cySID + cyCS;//相应的位端口设置为输出
delay_ms(10);//延时等待液晶完成复位
w_1byte(0,0x30);
delay_ms(1);
w_1byte(0,0x02);
delay_ms(5);
w_1byte(0,0x0c);
delay_ms(1);
w_1byte(0,0x01);
delay_ms(5);
w_1byte(0,0x06);
delay_ms(1);
}

//清屏
void clear_lcd(void)
{
delay_ms(1);
w_1byte(0,0x01);
delay_ms(5);
}

void lcd_pos(u8 x,u8 y)//定位
{
u8 pos;
switch(x)
{
case 1:pos=0x80;break;
case 2:pos=0x90;break;
case 3:pos=0x88;break;
case 4:pos=0x98;break;
default:pos=0x80;
}
pos += y;
w_1byte(0,pos);
}

//显示汉字
void Disp_HZ(const u8 * pt,u8 num)
{
u8 i;
for(i = 0;i < num*2;i++)
{
w_1byte(1,*(pt++));
}
}

//显示字符
void Disp_Ch(const u8 ch)
{
w_1byte(1, ch);
}

//汉字和字符混合显示
void disp_lcd_str(u8 x, u8 y, const u8 *str, u8 len)
{
u8 i;
lcd_pos(x, y);
for(i = 0;i < len && *str; )
{
if(*(str) >= 0x80)
{
w_1byte(1,*(str++));
w_1byte(1,*(str++));
i++;
i++;
}
else
{
w_1byte(1,*(str++));
i++;
}
}
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

尽管我们称之为“字符显示”,但每个字符并非是一个单独的完整块状物。如果你给屏幕通电并仔细观察,就会发现每个字母或数字都是由一个由小点组成的网格构成的。

关键字: Arduino 液晶显示器 连接器

本文将演示一种加速嵌入式系统设计原型阶段的方法,说明如何将与硬件无关的驱动程序和传感器结合使用,简化整个嵌入式系统的器件选择。同时还将介绍嵌入式系统的器件、典型软件结构以及驱动程序的实现。后续文章“利用与硬件无关的方法简...

关键字: 嵌入式系统 驱动程序 传感器

随着科技的飞速发展,嵌入式系统已经成为现代生活不可或缺的一部分,它们被广泛应用于从智能家居到自动驾驶汽车的各个领域。而在这些系统中,C语言由于其高效性、可移植性和对硬件的直接控制能力,成为了嵌入式系统开发的首选语言。

关键字: C语言 驱动程序

每个嵌入式软件应用程序都必须在某个时候访问最低级别的固件并控制硬件。驱动程序的设计和实现对于确保系统能够满足其实时要求至关重要。

关键字: 嵌入式 驱动程序

在Linux内核开发中,字符设备驱动程序是连接硬件设备与用户空间应用程序的重要桥梁。本文将详细介绍如何编写一个基本的字符设备驱动程序,从理论框架到实际代码实现,再到测试和部署。

关键字: Linux 字符设备 驱动程序

液晶显示器作为现代计算机系统和各种电子设备中的核心输出部件,其稳定性和可靠性直接影响着用户的使用体验。然而,在长期使用过程中,液晶显示器难免会遇到一些故障问题。本文旨在提供一份详细的液晶显示器维修教程,涵盖故障识别、基本...

关键字: 液晶显示器 液晶显示器维修

以下内容中,小编将对液晶显示器的相关内容进行着重介绍和阐述,希望本文能帮您增进对液晶显示器的了解,和小编一起来看看吧。

关键字: 显示器 液晶显示器

在显示技术日新月异的今天,液晶显示器(LCD)已成为众多电子设备中的核心组件。为了确保不同型号、规格的LCD显示器能够与各种主机设备兼容,LCD转接板应运而生。本文将对LCD转接板的概念、功能、应用及其重要性进行详尽阐述...

关键字: 液晶显示器 电子设备 LCD转接板

USB摄像头是一种采用USB接口的视频采集设备,其优点在于即插即用、操作简便,无需额外驱动程序,支持笔记本电脑,并且成本较低,可以支持远程网络观看。

关键字: usb摄像头 驱动程序

与两相双极步进电机的驱动电路相比,两相单极步进电机的驱动电路在输入段配置、内部逻辑及控制电路和驱动电路使用双通道方面基本相同,但是输出段的配置不同。

关键字: 四相步进电机 驱动程序 程序电路
关闭