题目:在lcd1602显示屏上显示出
“I LIKE MCU!
XIAO WU ”
且显示方式为从右边屏依次向左动态移出。
解决方案:(c语言编程)
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LIKE MCU!";
uchar code table1[]="XIAO WU" ;
sbit lcdrs=P1^7;
sbit lcdrw=P1^6;
sbit lcde=P2^4;
sbit le=P3^ 6;
sbit leden=P2^5;
sbit dkle=P3^7;
void delay(uint a) ;
uchar num;
void write_com(uchar com) //写入命令子函数
{
lcde=0;
lcdrw=0;
lcdrs=0;
delay(1);
lcde=1;
delay(1);
P0=com;
delay(1);
lcde=0;
}
void write_data(uchar dat) //写入数据子函数
{
lcde=0;
lcdrw=0;
lcdrs=1;
delay(1);
lcde=1;
delay(1);
P0=dat;
delay(1);
lcde=0;
}
void init() //初始化子函数
{
lcde=0;
le=0;
leden=0;
write_com(0x38);
write_com(0x0f);
write_com(0x01);
write_com(0x80+0x10);
}
void main() //主函数
{
init();
for(num=0;num<11;num++) //写入第一行
{
write_data(table[num]);
delay(1);
}
write_com(0x80+0x40+4+0x10);
for(num=0;num<7;num++)//写入第二行
{
write_data(table1[num]);
delay(1);
}
for(num=0;num<16;num++) //向左动态左移
{
write_com(0x18);
delay(10);
}
while(1) ;
}
void delay(uint a) { //延时函数
uint i,j;
for(j=a;j>0;j--)
for(i=2500;i>0;i--) ;
}
关键字:单片机 lcd1602 显示实验
引用地址:
单片机学习——lcd1602显示实验之一
推荐阅读最新更新时间:2024-03-16 14:44
基于FPGA和单片机的频率监测系统
O.引言 本系统利用单片机和FPGA有效的结合起来共同实现等精度频率测量和IDDS技术,发挥各自的优点,使设计变得更加容易和灵活,并具有频率测量范围宽、产生的波形频率分辨率高及精度大等特点。 系统方便灵活,测量精度和产生的波形分辨率高,能适应当代许多高精度测量和波形产生的要求,可以在各类测量系统和信号发生器中得到很好的利用,频率测量在电路实验、通讯设备、音频视频和科学研究中具有十分广泛的用途。等精度测量技术具有广阔的应用前景,由于其性能的优越性,在目前各个测量领域中都可以发挥着很好的作用,特别是在海洋勘探,太空探索以及各类实验中都得到了应用。 1.DDS信号发生器的实现 使用FPGA与单片机相结合的方式构成DDS信号
[单片机]
单片机系统中常用的滤波算法
//在 单片机 系统中常用的 滤波 算法 //(1)程序判断法 #define A char data; // 上一次的数据 char fi LTE r_1() { char datanew; // 新数据变量 datanew = get_data(); // 获得新数据 if ( (datanew – data A ) || ( data – datanew A ) // 滤波算法 return data; return datanew; } //(2)中值滤波法 #define N 11 char filter_2() { c
[单片机]
单片机编程方案
语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。 语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。 对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、ler_541.do" target="_blank" ST ACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。
[单片机]
51单片机—步进电机程序
4相5线的步进电机,在51hei单片机开发板上用uln2003驱动,此程序可实现正反转和加减速功能。 电路图如下: c语言源程序 #include reg52.h sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p32=P3^2;//减速 sbit p33=P3^3;//加速 sbit p34=P3^4;//正转 sbit p35=P3^5;//反转 #define A {p10=1;p11=0;p12=0;p13=0;} #define B {p10=0;p11=1;p12=0;p13=0;} #define C {p10=0;p11=0;
[单片机]
基于51单片机实现LED模拟交通灯
具体功能实现: 南北红灯亮,东西绿灯亮;南北绿灯亮,东西红灯亮;在红绿灯转换过程中,黄灯闪烁5次。 使用器件: 若干电阻、4只LED红灯、4只LED绿灯、4只LED黄灯、AT89C51芯片 Proteus仿真原理图: 仿真测试: 知识介绍: Proteus布线 为了让整个原理图看上去简洁明了,我们对元器件的导线进行标号,而不是直接和芯片相连。 LED低电平有效 LED的特性是单向导通,只有当阳极的电压大于阴极的电压才能导通。在仿真图中LED的阳极接了电源,因此阴极我们置0方可导通。 主要代码(C语言)KEIL5实现: #include REGX52.H sbit RED_A = P0^0; //east and
[单片机]
51单片机PWM占空比不到0的解决方案
在使用STC12C5608AD的PWM功能时,需要用到把PWM的占空比从0%调到100%,0%即低电平,100%即高电平。通过改变CCAP0H的值,可以调节占空比,按道理,当CCAP0H的值为255时,占空比应该为0,但是通过示波器发现,还是有那么一点点的脉冲,所以我们为了让PWM引脚输出为0,可以采用把PWM引脚改回GPIO功能,且把引脚拉低的办法。例如: CCAP0H=255;//占空比为0 CR=0;//关PWM定时器 CCAPM0=0x00;//把引脚改回GPIO PWM=0; //引脚输出低电平 除了上述改引脚功能的办法,STC的手册上还提到了一种解决方法,就是再加个EPC0H=1即可。例如: CCAP0H=255;//
[单片机]
利用AVR单片机为主控的臭氧治疗仪设计方案
臭氧作为一种高效冷杀菌手段,目前已经被广泛应用在各行各业中。具有高效、迅速杀菌作用的臭氧在医院环境消毒、术前消毒等方面应用广泛,其治疗效果优于其它传统杀菌治疗仪。因此研制一种运行稳定、使用方便、便携的臭氧治疗仪产品,为妇科疾病患者提供一种方便有效的在家治疗方式,具有实际意义。 目前市面上的同类型产品都是采用80C51单片机为控制核心的, 虽然也能实现它所需求的功能,但执行速度慢,在长期工作环境中,特别在臭氧治疗仪的内部大功率气泵模块和臭氧发生器的干扰下,系统功耗高和抗干扰性能差,系统性能不稳定等问题便凸现出来。对此本文采用了ATMEL公司的一款AVR高档单片机,对控制系统作了改进,提高了整机的性能。 臭氧产生的
[工业控制]
STMCU应用过程中与电源相关的案例分享
我们在从事STM32单片机的应用开发及调试过程中,往往会碰到各类异常。其中有不少比例的问题跟电源有关。对于一个电子产品而言,电源部分很关键、很重要,但在实际开发调试中,我们偶尔会有意无意的忽视它。这里分享几个实际案例,以加强刺激,加深印象。 毕竟因为电源问题可能导致的异常很多很多,这里分享几个案例算是抛砖引玉,希望大家在调试中对电源方面加以重视。个人认为,往往电源出问题时导致的异常时并不太好分析。多数时候异常表现得更为诡异或没章法。 注:下面提到的案例中异常原因都与电源有关,但并不是说出现类似异常时一定是电源的原因。 下面主要分享五个基于STM32应用的案例。 案例1:STM32芯片的PLL无法正常工作。 有人使用STM3
[单片机]