当前位置: 首页 > news >正文

h5模板网站免费源码买卖网站

h5模板网站免费,源码买卖网站,福州建设银行官网招聘网站,谷歌seo技术LCD1602 liquid crystal display 液晶显示屏,一种字符型液晶显示模块,可以显示 16*2 个字符,每个字符是 5*7 点阵。 P0 P2 会和数码管、LED 一定程度上冲突。 地。 Vcc。 调对比度的。 RS:数据指令端。1代表 DB 是数据&#x…

LCD1602

liquid crystal display 液晶显示屏,一种字符型液晶显示模块,可以显示 16*2 个字符,每个字符是 5*7 点阵。

image-20230203004049189

P0 P2 会和数码管、LED 一定程度上冲突。

  1. 地。

  2. Vcc。

  3. 调对比度的。

  4. RS:数据指令端。1代表 DB 是数据,0代表是指令。

  5. RW:1读0写。

  6. E:类似时钟的使能。高电平有效,下降沿执行。

  7. DB:并行输入。一个字节长。

  8. BG:背光灯电源。

内部结构图

image-20230221024102411

类似 SMG,想显示1并不是直接输入1,而是操纵数码管右侧一竖被点亮。字模库起的就是这个作用,里面有固定的 ROM 和用户课自定义的 RAM。

DDRAM 长于屏幕,可以通过移平实现滚动效果。

AC address controller,可以自动移位写入数据。

字模库中的数据大多数和 ASCII 码是一样的。

指令

image-20230221195404983

image-20230221195434495

image-20230221195450094

image-20230221200656434

image-20230221200839017

image-20230221201026593

image-20230221201247867

image-20230221201355749

image-20230222162315672

image-20230221205604331

初始化指令

初始化要做哪些操作?

规定显示区域(如8位数据接口,2行显示,5*7点阵,即为0011 10xx,如果取0即为 0x38.)。

显示的模式设置(如开启显示,关闭光标,关闭光标闪烁:0000 1101,即 0x0D)。

进入模式设置(如读写后光标++,屏幕不动:0000 0110,0x06。如果是滚动屏幕则为)。

清屏(0x01)。

显示指令

先设置 DDRAM 初始地址,0x80|AC(开头的8是 DDRAM 固定指令信息不能改。后面的全是0,与 AC 光标位置做与,AC 不同位置的值见 DDRAM 地址表).

然后发送数据。

时序

image-20230221210035721 image-20230221210102393 image-20230221210614193

模块化

第一阶段我们先编写 LCD1602 模块化编程代码,这一部分主要显示静态内容,用于程序编写过程中显示变量进行调试。

目标模块化函数:

image-20230203004415880
//LCD1602.h
#ifndef __LCD1602_H__
#define __LCD1602_H__#include "reg52.h"
#include "intrins.h"
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_E=P2^7;
#define LCD_DATAPORT P0void LCD_Delay1ms();		//@11.0592MHz
void LCD_WriteCommand(unsigned char Command);
void LCD_WriteData(unsigned char Data);
void LCD_Init();
void LCD_SetCursor(unsigned char line, unsigned char column);
unsigned int LCD_Pow(unsigned char x, unsigned char y);
void LCD_ShowChar(unsigned char line, unsigned char column, unsigned char c);
void LCD_ShowString(unsigned char line, unsigned char column, unsigned char str[]);
void LCD_ShowNum(unsigned char line, unsigned char column, unsigned int num, unsigned char length);
void LCD_ShowSignedNum(unsigned char line, unsigned char column, int num, unsigned char length);
void LCD_ShowHexNum(unsigned char line, unsigned char column, unsigned int num, unsigned char length);
void LCD_ShowBinNum(unsigned char line, unsigned char column, unsigned int num, unsigned char length);
#endif
//LCD1602.c
#include "LCD1602.H"void LCD_Delay1ms()		//@11.0592MHz
{unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);
}void LCD_WriteCommand(unsigned char Command){LCD_RS=0;LCD_RW=0;LCD_E=0;LCD_DATAPORT=Command;LCD_Delay1ms();LCD_E=1;LCD_Delay1ms();LCD_E=0;
}void LCD_WriteData(unsigned char Data){LCD_RS=1;LCD_RW=0;LCD_E=0;LCD_DATAPORT=Data;LCD_Delay1ms();LCD_E=1;LCD_Delay1ms();LCD_E=0;
}void LCD_Init(){LCD_WriteCommand(0x38);LCD_WriteCommand(0x0C);LCD_WriteCommand(0x06);LCD_WriteCommand(0x01);
}void LCD_SetCursor(unsigned char line, unsigned char column){if(line==1){LCD_WriteCommand(0x80|(column-1));}else{LCD_WriteCommand(0x80|(column-1)+0x40);}
}unsigned int LCD_Pow(unsigned char x, unsigned char y){unsigned char i=y;unsigned int res=1;for(;i>0;i--)res*=x;return res;
}void LCD_ShowChar(unsigned char line, unsigned char column, unsigned char c){LCD_SetCursor(line, column);LCD_WriteData(c);
}void LCD_ShowString(unsigned char line, unsigned char column, unsigned char str[]){unsigned int i=0;LCD_SetCursor(line, column);while(str[i]!='\0'){LCD_WriteData(str[i]);i++;}
}void LCD_ShowNum(unsigned char line, unsigned char column, unsigned int num, unsigned char length){unsigned char i;unsigned base;LCD_SetCursor(line, column);for(i=length;i>0;i--){base=LCD_Pow(10, i-1);LCD_WriteData(num/base%10+'0');	}
}void LCD_ShowBinNum(unsigned char line, unsigned char column, unsigned int num, unsigned char length){unsigned char i;unsigned char base;unsigned char single_num;LCD_SetCursor(line, column);for(i=length;i>0;i--){base=LCD_Pow(2, i-1);single_num=num/base%2+'0';LCD_WriteData(single_num);	}
}void LCD_ShowHexNum(unsigned char line, unsigned char column, unsigned int num, unsigned char length){unsigned char i;unsigned char base;unsigned char single_num;LCD_SetCursor(line, column);for(i=length;i>0;i--){base=LCD_Pow(16, i-1);single_num=num/base%16;if(single_num<=9)single_num+='0';else single_num+='A'-10;LCD_WriteData(single_num);	}
}void LCD_ShowSignedNum(unsigned char line, unsigned char column, int num, unsigned char length){unsigned char i;unsigned base;LCD_SetCursor(line, column);if(num>0)LCD_WriteData('+');else {LCD_WriteData('-');num=-num;}for(i=length;i>0;i--){base=LCD_Pow(10, i-1);LCD_WriteData(num/base%10+'0');	}
}

如果希望屏幕滚动,一定时间执行一次LCD_WriteCommand(0x18); 屏幕左移指令。

http://www.yayakq.cn/news/867408/

相关文章:

  • 门户网站有wordpress 抓取时间长
  • 网站开发设计开题报告房产网站推广方法
  • 上海网站高端WordPress主题会包含木马吗
  • 个人网站怎么命名青岛制作网站
  • 刷赞网站建设怎么做一个个人网页
  • 保定网站建设报价河北建设工程信息网官网入口
  • wordpress免费开放版网站做SEO优化多少钱
  • 外链推广网站都有哪些jeecg低代码开发平台
  • 信息技术制作网站首页做网站用哪个工具
  • 做游戏用什么电脑系统下载网站好木马文创的工业设计
  • 吉安网站设计八角网站建设
  • 大连企业制作网站电子商务网站建设侧重哪几个方面
  • 做初中数学题的网站张掖哪家公司做网站
  • 瑞安 网站建设深汕特别合作区包括哪些地方
  • 上海 网站建设公司餐饮网站建设案例
  • 曲阜建设公司网站故宫网站建设
  • 网站关键词怎么选择网站设计知识
  • 合肥高端网站建设设计公司宣传广告设计模板
  • 加强网站信息内容建设管理大冶seo网站优化排名推荐
  • 电子商务网站建设定义php网站集成支付宝接口
  • 营销型网站建设的一般过程包括哪些环节旅游网站制作方案
  • 建站公司网站模板论坛品牌型网站建设
  • 建设网站虚拟主机福田网站建设电话
  • php怎样做网站的注删页面郑州最好的男科医院哪家好
  • 东莞市网站建设系统企业北京门户网站
  • 可以接项目做的网站第一接单网app
  • 园林古建设计网站加强网站安全建设方案
  • 建设网站运营收入网推什么平台好用
  • 沈阳市城乡建设局网站首页flask api式网站开发
  • 北京网站开发培训付费资源下载站源码