STC12C5A32S2单片机之1602渐入显示

2019-05-20来源: eefocus关键字:STC12C5A32S2  单片机  1602  渐入显示

基本框架根据郭天祥Lesson8中的程序来编写,但是渐入显示的时候郭用的指令是write_com(0x18);


可我用的时候就是显示不出来,于是根据1602的说明书,用了另外一个指令write_com(0x07)    //当写一个字符,整屏显示左移


程序如下:


可直接运行,已调试OK



#include



sbit LCD_rs=P1^0;

sbit LCD_rw=P1^1;

sbit LCD_en=P2^5;


unsigned char num;

unsigned char code table[]="I Love ZYN";

unsigned char code table1[]="0123456789";


void Delay(unsigned int i)   //注意,若此处用char声明,否则会看不到延时渐进的效果,疑问?

{

unsigned int j,k;

for(j=i;j>0;j--)

for(k=110;k>0;k--);

}


void LCD_Write_com(unsigned char a)

{

LCD_rs=0;

Delay(5);

LCD_rw=0;

Delay(5);

P0=a;

Delay(5);

LCD_en=1;

Delay(5);

LCD_en=0;

Delay(5);

}



void LCD_Write_data(unsigned char b)

{

LCD_rs=1;

Delay(5);

LCD_rw=0;

Delay(5);

P0=b;

LCD_en=1;

Delay(5);

LCD_en=0;

Delay(5);

 }



void LCD_init()

{

Delay(15);

LCD_Write_com(0x38);

Delay(5);

LCD_Write_com(0x08);

Delay(5);

LCD_Write_com(0x01);

Delay(5);

LCD_Write_com(0x07);  //当写一个字符,整屏显示左移

Delay(5);

LCD_Write_com(0x0e);

Delay(5);

}


void main()

{

LCD_init();


        LCD_Write_com(0x80+0x16);//此处0x16也可用十进制数22

Delay(5);


for(num=0;num<10;num++)

{

LCD_Write_data(table[num]);

Delay(3000);

   }


 

LCD_Write_com(0x80+0x59);//此处0x59也可用十进制数89表示

for(num=0;num<10;num++)

{

LCD_Write_data(table1[num]);

Delay(3000);

}

while(1);

}

实际效果如下:

关键字:STC12C5A32S2  单片机  1602  渐入显示 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic462279.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:C51 定时器 TL0=(65536-50000)%256是怎么推导出来的?
下一篇:程序有误,为什么Keil却没有报错

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STC12C5A60S2单片机双串口同时通讯的完整版modbus程序
电路原理图如下:/******************************程序功能:    modbus RTU 模式设置读取十六个继电器状态,以及内部保持寄存器的设置读取 硬件测试环境:单片机stc89C52RC十六继电器485接口控制板  通信协议:    晶振:11.0592  波特率:9600  8位数据 1位停止位 偶校验   485通位接口P3.7控制方向端控制板地址:  修改localAddr(变量)线圈个数:16个  线圈地址范围:0x0000
发表于 2019-12-26
STC12C5A60S2单片机双串口同时通讯的完整版modbus程序
STC12C5A60S2单片机AD采样程序及其寄存器讲解
/**********************************************************************************************************************************************************程序说明:本程序使用STC12C5A60S2 ADC转换功能,ADC采样使用查询方式*芯片供电:5V*时间:2013/3/27*采样通道:P1^0 
发表于 2019-12-24
STC12C5A60S2利用PCA时钟溢出做的PWM信号
*//*实现的功能是,控制CR的开通和关断来实现混频效果*//*第二次修改时间2019-10-6*//*作者 Alan*/#include <STC12C5A60S2.H>#include <stdint.h>//#include <intrins.h>#define FOSC 18432000/*分别定义了两个不高低位的变量用于保存 定时器初值,从而初值计算里面带变量计算以后保存到这个变量 这时候就能在中断正常重新装初值了,也不会出错*/uint8_t  TH,TL;      /*上一次的状态*/uint8_t  
发表于 2019-11-12
STC12C5A60S2利用PCA时钟溢出做的PWM信号
stc12c5a60s2 0-30电压测量 有注释
#include <STC12C5A60S2.H>#include "intrins.h"#define uchar unsigned char#define uint  unsigned int#define ulong unsigned long/*Define ADC operation const for ADC_CONTR*/#define ADC_POWER   0x80            //ADC 电源控制位  10000000  0X80  /#define
发表于 2019-11-08
基于STC12C5A60S2的双电源供电智能控制系统设计
摘要:文章介绍了基于STC12C5A60S2单片机的双电源供电智能控制系统,实现对主电源和备用电源的实时监测,保证供电的连续性和可靠性。文中阐述丫系统的整体设计方案、硬件电路设计、软件设计及后台监控的设计。通过理论分析及实践汪明能有效的检测当前主备电路的电压值并实现双电源之间的准确转换,相应状态可以通过GSM模块发送给监控主机和相关操作人员,具有重要的现实意义。0 引言随着国民经济的迅速发展,人们对供电连续性、可靠性的要求越来越高,对于不允许断电的重要场合,如医院手术室、高层建筑安全保障系统、热电站、化工企业、银行等,都要求配备至少两路电源来保证供电的连续性。因此,需要一种能在两路电源之间进行自动转换的系统,以保证正在使用中的电源
发表于 2019-10-24
基于STC12C5A60S2的双电源供电智能控制系统设计
STC12C5A60S2_PWM
#include <reg52.h>#include <intrin.h>#define uint unsigned int #define uchar unsigned charsfr CCON = 0XD8;sbit CCFO = CCON^0;sbit CCF1 = CCON^1;sbit CR = CCON^6;sbit CF = CCON^7;sfr CMOD = 0XD9;sfr CL = 0XE9;sfr CH = 0XF9;sfr CCAPM0 = 0XDA;sfr CCAP0L = 0XEA;sfr CCAP0H = 0XFA;sfr CCAMP1 = 0XDB;sfr CCAP1
发表于 2019-06-01
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved