下面是LCD的电路,其中RD接P2^6;LCDE接P2^7,WR接P2^5。
#include
#define uint unsigned int
#define uchar unsigned char
sbit lcd_E = P2^7;
sbit lcd_RS = P2^6;
sbit lcd_WR = P2^5;
uchar code table_show1[] = "Hello!";
uchar code table_show2[] = "I am ChenLu!";
void delay(uint time);
void init_lcd();
void write_lcd_command(uchar comm);
void write_lcd_data(uchar lcdData);
void main()
{
int flag1,flag2,flag3;
init_lcd();
//写入缓存区
write_lcd_command(0x80+0x10);
for(flag1=0; flag1<6; flag1++)
{
write_lcd_data(table_show1[flag1]);
}
//写入缓存区
write_lcd_command(0x80+0x50);
for(flag2=0; flag2<12; flag2++)
{
write_lcd_data(table_show2[flag2]);
}
//整个屏幕向左移动至最左端
for(flag3=0; flag3<16; flag3++)
{
write_lcd_command(0x18);
}
//停在这里,避免反复刷新
while(1);
}
//初始化LCD
void init_lcd()
{
//初始化LCD的属性
//显示模式
write_lcd_command(0x38);
//光标
write_lcd_command(0x0f);
write_lcd_command(0x06);
//清屏
write_lcd_command(0x01);
//数据指针
write_lcd_command(0x80);
}
//LCD写命令
void write_lcd_command(uchar comm)
{
delay(5);
//RS=L RW = L E=H
lcd_RS = 0;
delay(5);
lcd_WR = 0;
//写命令
P0 = comm;
delay(5);
lcd_E = 1;
delay(5);
lcd_E = 0;
}
//LCD写数据
void write_lcd_data(uchar lcdData)
{
delay(5);
//RS=H RW = L E=H
lcd_RS = 1;
delay(5);
lcd_WR = 0;
//写数据
P0 = lcdData;
delay(5);
lcd_E = 1;
delay(5);
lcd_E = 0;
}
//延时函数
void delay(uint time)
{
uint i,j;
for(i=100; i>time; i--)
for(j=0; j<100; j++);
}
使用LCD主要是参考LCD数据手册,基本的用法就是上面的程序,关键是要注意时序问题。
读者可以在网上下载1602液晶资料,然后对着本程序琢磨。
注意:写命令---可以理解为设置显示屏的属性;写数据---可以理解成为你要让显示器显示的数据。
关键字:单片机 LCD使用
引用地址:
单片机第14课:LCD使用
推荐阅读最新更新时间:2024-03-16 15:35
PIC单片机入门_C语言编程技术
1.为什么也是C语言? 用C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高等,因此C 语言编程在单片机系统设计中越来越广泛的运用。PIC 单片机的软件开发,同样可以用C 语言实现。 Microchip 公司没有自行开发PIC单片机的C 语言编译器,但其他公司有开发众多支持PIC 单片机的C 语言编译器,常见的有Hitech、CCS、IAR、Bytecraft 等公司。其中最常用的是Hitech 公司的PICC 编译器,它稳定可靠,编译生成的代码效率高,在用PIC 单片机开发者中得到广泛认可。 Hitech-PICC 编译器基本上符合ANSI C标准,但是不支持函数的递归调用
[单片机]
基于TMP04的PIC单片机测温实现
摘要:数字化温度传感器可以直接将温度量以数字脉冲信号形式输出,具有测量精度高、抗干扰能力强、传输距离远、外围接口电路简单等诸多优点。同时数字温度传感器还可直接与微处理器进行接口,大大方便了传感器输出信号的处理。本文以PWM模式输出的TMP04型数字式温度传感器为例,介绍由PCI单片机实现的几种测温方案,并给出软件设计流程。
关键词:数字式温度传感器 PCI单片机 TMP04 PWM
1 引言
在大多数测控系统中,温度都是必不可少的检测量,温度传感器也是测控系统中十分重要的传感器件。随着数字 化传感器技术的不断发展,
出现了各种类型的数字温度传感器。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,与传统的模拟式
[单片机]
51单片机学习之陆 —— 1.2 第一个c51程序(点亮流水灯)
由于学校的板子跟我买的板子有些差异,为了大家的阅读,以后的所有程序编写烧录都以老师发的板子为主。 1 事先准备 a 驱动安装,注意群中已经发了,吧板子的驱动装好哦。 b 烧写软件(烧录器) stc - isp (这里说明下,板子上的芯片是stc的,你还能看到它的型号stc89c52RC,用stc的烧写软件就可以了) 提问:什么是烧写软件? 答:就是把你写好代码(C或者是汇编)专程的 机器语言 通过一定的方式下载到单片机中。称为烧写。(就先这样简单理解吧) c 编写软件 keil uVision 4 (我仅用它编译生成hex 文件) notpad++ (我用它写c51的代码,然
[单片机]
基于单片机设计的智能测温系统
1 引言 温度在工农业生产中是用的最多的热工量,热电偶作为一种接触式温度传感器由于其结构简单,测温范围宽,精度高等优点,所以在工业温度测量中广泛应用。但在热电偶的使用中,需 解决两方面的问题:一是需对热电偶的冷端进行温度补偿。二是对热电势和温度的非线性处理。本文利用美国MAXIM公司生产的K型温度补偿器MAX6675来实现冷端的温度补偿,用二 次插值的方法对热电势和温度的非线性进行处理,实践证明,该方法精度高、可靠性好。 2 热电偶冷端温度补偿电路 具有冷端补偿的单片K型热电偶放大器与数字转换器MAX6675内部自带冷端温度补偿、线性校正、A/D转换器、热电偶断线检测等功能,它将温度测量值转换为单片机能识别的16 位二进制
[单片机]
51单片机的内部结构及其功能作用
中央处理器(CPU): 刚跟大家讲过,需要提醒的是MCS-51的CPU能处理8位二进制数或代码。CPU是单片机的主要核心部件,在CPU里面包含了运算器、控制器以及若干寄存器等部件给成。 内部数据存储器(RAM): MCS-51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00H~FFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。 内部程序存储器(ROM): 在前面也已讲过,MCS-51内部有4KB/
[单片机]
飞思卡尔系列单片机Bootloader的初步开发经验
BootLoader一般用于后期嵌入式产品的升级使用。由于产品中缺乏jtag硬件调试接口。BootLoader可以实现没有物理破坏性的软件升级。 开发重点: 1、芯片本身的Flash驱动。一般都由官方提供。比如mpc5744P芯片采用的文档是Standard software driver for C55 Flash。我们可以采用vle指令的,c-array形式的驱动。该驱动的表现形式是数组。其实里面应该就是一个完整的独立的,可以接受参数并可以返回的函数。注意,函数接口的参数可能需要理解和试错。 2、芯片本身的CAN通信。CAN通信要实现基本的报文的收发。CAN的初始化工作需要做好。报文的接收通过中断实现。 3、S19
[单片机]
ARM单片机三种中断返回情况的分析与解决
ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,本文就将对ARM异常中断的集中情况进行总结,并给出了一些解决方法。 在正式介绍之前,要为大家补充一些较为重要的基础知识。首先R15(PC)总是指向 正在取指 的指令,而不是指向 正在执行 的指令或正在 译码 的指令。一般来说,人们习惯性约定将 正在执行的指令作为参考点 ,称之为当前第一条指令,因此PC总是指向第三条指令。当ARM状态时,每条指令为4字节长,所以PC始终指向该指令地址加8字节的地址,即:PC值=当前程序执行位置+8
[单片机]
使用电容器降低MCU的电源噪声
STM32是广泛应用的MCU,涵盖Cortex-M0、M3、M4和M7内核,共有1236多个系列,包含STM32主流MCU、STM32高性能MCU、STM32超低功耗MCU、STM32无线MCU、STM32 Arm Cortex MPUs等门类。 STM32 MCU内置高级12位ADC(取决于器件),提供自校准功能。在涉及模数转换的应用中,ADC精度会影响整体的系统质量和效率。而ADC精度不仅取决于ADC性能和功能,还取决于ADC周围的整体应用设计,例如电源噪声,这些恰恰可以能通过电容器过滤掉。 在电源线和地线之间,建议连接具有优良高频特性的电容。也就是说,应在靠近电源的位置安装一个0.1μF和一个1至10μF的电容,这些
[单片机]