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

天行健公司网站建设微信公众号做视频网站

天行健公司网站建设,微信公众号做视频网站,emlog wordpress,建筑学学习使用的开发板#xff1a;STC89C52RC/LE52RC 编程软件#xff1a;Keil5 烧录软件#xff1a;stc-isp 开发板实图#xff1a; 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602#xff08;Liquid Crystal Display#xff09;液晶显示屏是…学习使用的开发板STC89C52RC/LE52RC 编程软件Keil5 烧录软件stc-isp 开发板实图 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602Liquid Crystal Display液晶显示屏是一种字符型液晶显示模块可以显示ASCII码的标准字符和其他的一些内置特殊字符还可以有8个自定义字符 显示容量16 × 2 个字符每个字符为 5 × 7 点阵 引脚及应用电路 VSS电源接地相当于负极VO对比度调节电压可通过该旋钮调节RS、RW、E 对应 I/O口如下D0 ~ D7 对应 I/O 口如下A、K背光灯电源正负极 存储结构 LCD1602能显示的字符在出厂时已经被固定好了存储在一个字模库中。 该字模库由 CGRAM(可自定义字符) CGROM(只读) 组成 红色部分为 CGROM出厂时设置好了不可修改 蓝色部分为 CGRAM可由用户自定义字符 从上图可看出“A” 字符对应的高位代码为 0100对应左边低位代码为 0001合起来就是 0100 0001十六进制为 0x41。刚好与 ASCII 码相同因此在向 LCD1602 显示字符时可直接用 P0 ‘A’ 0x20 ~ 0x7F 为标准的 ASCII 码0xA0 ~ 0xFF 为日文字符和希腊文字符其余字符码(0x10 ~ 0x1F 及 0x80 ~ 0x9F)没有定义 LCD1602 的屏幕为 16 * 2但其实 DDRAM(数据显示区) 为 40 * 2超出范围的区域可以通过屏幕左移或右移显示。LCD1602 提供循环显示即一直左移超出范围后会自动衔接上最右侧的内容形成移动横幅的效果 显示逻辑如下 AC光标位置控制写数据的位置 通过控制电路确定 AC 位置往 DDRAM 写入要显示的字符通过字模库转化最终显示在屏幕上 DDRAM地址如下 时序结构 RS数据/指令选择1为数据0为命令RW读/写选择1为读0为写E使能标志。置1时D0 ~ D7 的数据会被写入 指令集如下标红的为较常用的 编码 —— 显示字符、数字 LCD1602 主要的两个操作就是 初始化 和 显示字符其他操作都是基于这两个操作 首先先封装 写数据 和 写命令 的方法 /*** brief 延迟1ms* parm 无* retval 无*/ void LCD_Delay1ms() //11.0592MHz {unsigned char i, j;_nop_();i 2;j 199;do{while (--j);} while (--i); }/*** brief 写命令* parm Command:命令* retval 无*/ void LCD_WriteCommand(unsigned char Command) {LCD_RS 0; //命令LCD_RW 0; //写LCD_DATAPORT Command; //写命令LCD_EN 1; //拉高使能LCD_Delay1ms();LCD_EN 0; //拉低使能LCD_Delay1ms(); }/*** brief 写数据* parm Data:数据* retval 无*/ void LCD_WriteData(unsigned char Data) {LCD_RS 1; //命令LCD_RW 0; //写LCD_DATAPORT Data; //写命令LCD_EN 1; //拉高使能LCD_Delay1ms();LCD_EN 0; //拉低使能LCD_Delay1ms(); }初始化 常用的初始化如下 八位数据接口两行显示5 * 7 点阵显示开光标关闪烁关数据读写操作后光标自动加一画面不动清屏 通过上述指令集都可以找到对应的指令调用LCD_WriteCommand即可 /*** brief 初始化LCD1602* parm 无* retval 无*/ void LCD_Init() {LCD_WriteCommand(0x38); //八位数据接口两行显示5*7点阵LCD_WriteCommand(0x0C); //显示开光标关闪烁关LCD_WriteCommand(0x06); //数据读写操作后光标自动加一画面不动LCD_WriteCommand(0x01); //清屏 }显示字符 需要先确定光标位置将数据写在 DDRAM 的什么位置再发送数据 /*** brief 设置光标位置* parm Row:行号范围1 ~ 2* parm Column:列号范围1 ~ 40* retval 无*/ void LCD_SetCursor(unsigned char Row, unsigned char Column) {if(Row 1) //第一行起始为0x00LCD_WriteCommand(0x80 | (Column - 1));else //第二行起始为0x40LCD_WriteCommand(0x80 | (Column - 1) 0x40); }/*** brief 显示一个字符* parm Row:行号范围1 ~ 2* parm Column:列号范围1 ~ 40* parm Char:字符* retval 无*/ void LCD_ShowChar(unsigned char Row, Column, Char) {LCD_SetCursor(Row, Column);LCD_WriteData(Char); }接下来就是一些扩展方法 显示字符串十进制无符号和有符号数字十六进制二进制 /*** brief 显示字符串* parm Row:行号范围1 ~ 2* parm Column:列号范围1 ~ 40* parm String:字符串* retval 无*/ void LCD_ShowString(unsigned char Row, unsigned char Column, unsigned char *String) {unsigned char i 0;LCD_SetCursor(Row, Column);for(i 0; String[i] ! \0; i)LCD_WriteData(String[i]); }/*** brief X的Y次方* parm X基数* parm Y次方数* retval X^Y*/ unsigned long LCD_Pow(int X, int Y) {unsigned long res 1;while(Y--){res * X;}return res; }/*** brief 在指定位置显示指定长度的无符号数字从高位截取* parm Row: 行号范围1/2* parm Column: 列号范围1 ~ 40* parm Num: 显示的数字范围0 ~ 65535* parm Length: 长度范围1 ~ 40* retval 无*/ void LCD_ShowNum(unsigned char Row, unsigned char Column, unsigned int Num, unsigned char Length) {LCD_SetCursor(Row, Column);for(; Length 0; --Length)LCD_WriteData((Num / LCD_Pow(10, Length - 1) % 10) 0); }/*** brief 在指定位置显示指定长度的有符号数字从高位截取* parm Row: 行号范围1/2* parm Column: 列号范围1 ~ 40* parm Num: 显示的数字范围-32768 ~ 32767。* parm Length: 长度范围1 ~ 40* retval 无*/ void LCD_ShowSignedNum(unsigned char Row, unsigned char Column, int Num, unsigned char Length) {//显示正负号unsigned int ShowNum;if(Num 0){LCD_ShowChar(Row, Column, );ShowNum Num;} else{LCD_ShowChar(Row, Column, -);ShowNum -Num;}LCD_ShowNum(Row, Column 1, ShowNum, Length); }/*** brief 在指定位置显示指定长度的十六进制数字* parm Row: 行号范围1/2* parm Column: 列号范围1 ~ 40* parm Num: 显示的数字范围0 ~ 65535* parm Length: 长度范围1 ~ 40* retval 无*/ void LCD_ShowHexNum(unsigned char Row, unsigned char Column, unsigned int Num, unsigned char Length) {unsigned char Temp;LCD_SetCursor(Row, Column);for(; Length 0; --Length){Temp Num / LCD_Pow(16, Length - 1) % 16;if(Temp 10)LCD_WriteData(Temp - 10 A);elseLCD_WriteData(Temp 0);} }/*** brief 在指定位置显示指定长度的二进制数字* parm Row: 行号范围1/2* parm Column: 列号范围1 ~ 40* parm Num: 显示的数字范围0 ~ 65535* parm Length: 长度范围1 ~ 40* retval 无*/ void LCD_ShowBinNum(unsigned char Row, unsigned char Column, unsigned int Num, unsigned char Length) {LCD_SetCursor(Row, Column);for(; Length 0; --Length)LCD_WriteData(Num / LCD_Pow(2, Length - 1) % 2 0); }完整项目链接【51单片机】LCD1602液晶显示屏 以上就是本篇博客的所有内容感谢你的阅读 如果觉得本篇文章对你有所帮助的话不妨点个赞支持一下博主拜托啦这对我真的很重要。
http://www.dnsts.com.cn/news/221044.html

相关文章:

  • 如何建立优秀企业网站网站定制生成器
  • 同城换物网站为什么做不起来如何更改网站的关键词
  • 温州市建设局网站网络运营商无服务怎么恢复
  • 网站制作源码版权东营今天的消息
  • 公司网站市场价wordpress+5.0
  • 常州建设网站公司哪家好网站开发员需要什么素质
  • 昆山建设银行网站首页做妇产科网站
  • 中国开头的网站怎么做建网站多少钱可以卖货的
  • 一个完整的企业网站怎么做刚刚地震最新消息今天2022
  • 江苏省住房和建设厅网站装修公司加盟品牌排行榜
  • 仿历史网站模板亚马逊跨境电商是做什么的
  • 广州番禺哪里有学网站建设wordpress 删除侧边栏
  • 郑州营销型网站制作教程如何做com的网站
  • 国内网站设计制作手机制作软件
  • 网站开发图片放哪里wordpress设置备份
  • 一个域名可以建设几个网站wordpress 发布外链
  • 某qq非主流个性网源码qq空间网站源码dede内核+采集规则discuz wordpress主题
  • 犀牛云做的网站好不好投资网站策划
  • 威海网站建设公司哪家好网站建站思路
  • 南通城乡建设局网站网络项目推广平台
  • 合肥做网站价格是多少湖南长沙人才市场招聘官网
  • 有哪些做产品产业链分析的网站搜索引擎优化方案模板
  • 网站建设需求文章网站搭建学什么专业
  • 网站建设的进度推荐微信网站建设
  • 温州网站优化推广方案可做ppt的长篇英文阅读网站
  • 可以做网站高仿服装吗手机版文章网站源码
  • 在线黑科技网站对网站和网页的认识
  • 如何设置网站的关键词福田网站建设实训步骤
  • 网站后台程序设计常用语言 技术的分析比较烟台市网站建设
  • 百度百科官网网站的优化从哪里进行