共享一个新唐M051单片机驱动带字库的LCD12864液晶屏的c语言程序:
#include "SmartM_M0.h"
#define LCD12864_RS_PIN 0
#define LCD12864_RW_PIN 1
#define LCD12864_EN_PIN 2
#define LCD12864_MD_PIN 3
#define LCD12864_RS(x) {if((x))P0_DOUT|= 1UL<
else P0_DOUT&=~(1UL<
#define LCD12864_RW(x) {if((x))P0_DOUT|= 1UL<
else P0_DOUT&=~(1UL<
#define LCD12864_EN(x) {if((x))P0_DOUT|= 1UL<
else P0_DOUT&=~(1UL<
#define LCD12864_MD(x) {if((x))P0_DOUT|= 1UL<
else P0_DOUT&=~(1UL<
关键字:新唐M051 LCD12864 液晶屏程序
引用地址:新唐M051驱动LCD12864液晶屏程序
#define LCD12864_PORT(x) LS164Send((x))
/********************************************
*函数名称:LCD12864WriteByte
*输 入:ucByte 要写入的字节
*输 出:无
*说 明:LCD12864 写字节
********************************************/
VOID LCD12864WriteByte(UINT8 ucByte)
{
LCD12864_PORT(ucByte);
LCD12864_RS(HIGH);
LCD12864_RW(LOW);
LCD12864_EN(LOW);
Delayus(500);
LCD12864_EN(HIGH);
}
/********************************************
*函数名称:LCD12864WriteCommand
*输 入:ucCmd 要写入的命令
*输 出:无
*说 明:LCD12864 写命令
********************************************/
VOID LCD12864WriteCommand(UINT8 ucCmd)
{
LCD12864_PORT(ucCmd);
LCD12864_RS(LOW);
LCD12864_RW(LOW);
LCD12864_EN(LOW);
Delayus(500);
LCD12864_EN(HIGH);
}
/********************************************
*函数名称:LCD12864SetXY
*输 入:x 横坐标 y 纵坐标
*输 出:无
*说 明:LCD12864 设置坐标
********************************************/
VOID LCD12864SetXY(UINT8 x,UINT8 y)
{
switch(y)
{
case 1:
{
LCD12864WriteCommand(0x80|x);
}
break;
case 2:
{
LCD12864WriteCommand(0x90|x);
}
break;
case 3:
{
LCD12864WriteCommand(0x88|x);
}
break;
case 4:
{
LCD12864WriteCommand(0x98|x);
}
break;
default:break;
}
}
/********************************************
*函数名称:LCD12864PrintfString
*输 入:x 横坐标 y 纵坐标 s字符串
*输 出:无
*说 明:LCD12864 打印字符串
********************************************/
VOID LCD12864PrintfString(UINT8 x,
UINT8 y,
UINT8 *s)
{
LCD12864SetXY(x,y); //设置显示坐标
while(s && *s)
{
LCD12864WriteByte(*s); //显示逐个字符
s++;
}
}
/********************************************
*函数名称:LCD12864ClearScreen
*输 入:无
*输 出:无
*说 明:LCD12864 清屏
********************************************/
VOID LCD12864ClearScreen(VOID)
{
LCD12864WriteCommand(0x01);
Delayus(500);
}
/********************************************
*函数名称:LCD12864Init
*输 入:无
*输 出:无
*说 明:LCD12864 初始化
********************************************/
VOID LCD12864Init(VOID)
{
LS164Init();
LCD12864_MD(HIGH);
LCD12864WriteCommand(0x30);//功能设置,一次送8位数据,基本指令集
LCD12864WriteCommand(0x0C);//整体显示,游标off,游标位置off
LCD12864WriteCommand(0x01);//清DDRAM
LCD12864WriteCommand(0x02);//DDRAM地址归位
LCD12864WriteCommand(0x80);//设定DDRAM 7位地址000,0000到地址计数器AC
}
/****************************************
*函数名称:main
*输 入:无
*输 出:无
*功 能:函数主体
******************************************/
INT32 main(VOID)
{
Un_Lock_Reg(); //ISP下载时保护FLASH存储器
PWRCON |= XTL12M_EN; //默认时钟源为外部晶振
while((CLKSTATUS & XTL12M_STB) == 0); //等待12MHz时钟稳定
CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //设置外部晶振为系统时钟
LCD12864Init(); //LCD12864初始化
LCD12864PrintfString(0,1,"1234567890ABCDEF");//显示第一行
LCD12864PrintfString(0,2,"Hello World!!!!!");//显示第二行
LCD12864PrintfString(0,3,"学好电子成就自己");//显示第三行
LCD12864PrintfString(0,4,"I Love You!!!!!!");//显示第四行
while(1);
}
上一篇:新唐M051 CONFIG 程序
下一篇:keil优化等级设置
推荐阅读最新更新时间:2024-03-16 13:48
LCD12864程序
希望对第一次接触液晶屏的人有一定帮助 #include reg52.h #include intrins.h // 声明了void _nop_(void) #include zhicu.h #define uchar unsigned char #define uint unsigned int #define DPORT P3 // 命令数据输出端口 sbit RS =P2^7 ; sbit RW =P2^6 ; sbit E =P2^5 ; sbit CS2=P2^4 ; sbit CS1=P2^3 ; #define disp_start 0xc0 //显示起始行设置. #d
[单片机]
单片机LCD12864无限扩展多级菜单源码
单片机源程序如下: #include delay.h #include 12864.h #include fun.h #include key.h #include wakeup.h u8 func_index=0; void (*current_operation_index)(); //执行当前显示函数 typedef struct { u8 current; //当前状态号 u8 up;//向上翻索引号 u8 down;//向下翻索引号 u8 enter;//确认索引号 u8 num_ent;//编码器确认键 void (*current_operat
[单片机]
基于LCD12864显示器的数字示波器设计
本文针对LCD12864 特性,完成了数字示波器显示必须的绘图驱动程序设计,这个教程定位给初学者使用,我立足从简单到复杂一步一步介绍设计过程,甚至是调试的过程,还包括一些经验总结,特别是提供了完整的keil 工程附件。希望读者立足示波器项目,学到更多软硬件设计经验技巧。 一、简易数字示波器原理 数字示波器基本原理可以简单理解为:数据采集+ 图形显示,该过程循环进行,如图1 所示。 图1 简易数字示波器流程图 LCD 图形显示需要根据LCD 特性设计,不同LCD驱动程序不同,本篇将结合不带字库的LCD12864 设计显示程序。 二、图形液晶LCD12864绘图驱动设计基础 关于LCD 的硬件接
[测试测量]
小广播
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐
最新单片机文章
更多精选电路图
更多热门文章
更多每日新闻
更多往期活动
11月13日历史上的今天
厂商技术中心