#循循渐进学51单片机#指针基础与1602液晶的初步认识#not.11

news2024/11/18 7:36:58

1、把本节课的指针相关内容,反复学习3到5遍,彻底弄懂指针是怎么回事,即使是死记硬背也要记住,等到后边用的时候可以实现顿悟。学会指针,就是突破了C语言的一道壁垒。

2,1602所有的指令功能都应用一遍,能够灵活使用1602液晶显示任意字符串。

#include <reg52.h>

#define LCD1602_DB  P0
sbit LCD1602_RS = P1^0;
sbit LCD1602_RW = P1^1;
sbit LCD1602_E  = P1^5;

void InitLcd1602();
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);

void main()
{
    unsigned char str[] = "Kingst Studio";

    InitLcd1602();
    LcdShowStr(2, 0, str);
    LcdShowStr(0, 1, "Welcome to KST51");
    while (1);
}
void LcdWaitReady()
{
  unsigned char sta;
  LCD1602_DB = 0xff;
	LCD1602_RS = 0;
	LCD1602_RW = 1;
	do{
	 LCD1602_E = 1;
	sta = LCD1602_DB; 	
		LCD1602_E = 0;
	}while (sta & 0x80); 
}
void LcdWriteCmd(unsigned char cmd)
{
    LcdWaitReady();
    LCD1602_RS = 0;
    LCD1602_RW = 0;
    LCD1602_DB = cmd;
    LCD1602_E  = 1;
    LCD1602_E  = 0;
}
void LcdWriteDat(unsigned char dat)
{
    LcdWaitReady();
    LCD1602_RS = 1;
    LCD1602_RW = 0;
    LCD1602_DB = dat;
    LCD1602_E  = 1;
    LCD1602_E  = 0;
}

void LcdSetCursor(unsigned char x, unsigned char y)
{
  unsigned char addr;
	if(y == 0)
    addr = 0x00 + x;
	else
		addr = 0x40 + x;
	LcdWriteCmd(addr | 0x80); 
}
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)
{
LcdSetCursor(x, y);
	while (*str != '\0')
		LcdWriteDat(*str++);
}
void InitLcd1602()
{
    LcdWriteCmd(0x38);  
    LcdWriteCmd(0x0C); 
    LcdWriteCmd(0x06);  
    LcdWriteCmd(0x01);  
}


3、尝试通过串口调试助手下发字符在1602液晶上显示出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内网穿透,轻松实现PostgreSQL数据库公网远程连接!

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;,下…

外汇天眼:CFTC处罚Advantage Futures 39.5万美元

美国商品期货交易委员会&#xff08;CFTC&#xff09;对Advantage Futures处以39.5万美元罚款&#xff0c;原因是其监管不力。 CFTC今天发布了一项命令&#xff0c;同时提起并解决了对Advantage Futures LLC的指控&#xff0c;这是一家注册的期货佣金经纪商&#xff0c;因未能…

Linux命令基础

一、linux目录结构。 Linux没有windows的盘的概念&#xff0c;是一个树形的结构。唯一的根目录为/&#xff0c;所有的文件都在他下面。 描述方式也与windows有所不同 二、命令基础格式。 command [-options] [parameter]&#xff08;[ ]表示可选的&#xff09; command:必…

智思Ai企联系统去授权版本+uniapp前后端(内含教程)

智思AI企联系统是一款企业级AI系统&#xff0c;与普通版AI产品相比具备显著差异。该系统允许企业按需选择和定制二开任意功能&#xff0c;以满足不同企业的个性化需求和场景要求。企业可以根据实际业务需求扩展和改进系统功能模块&#xff0c;使之更好地适应企业独特需求。

ESP8266 WiFi物联网智能插座—电能计量

目录 1、芯片功能 2、性能指标 3、寄存器说明 4、UART通信协议 4.1、写操作帧格式和时序 4.2、读操作帧格式和时序 4.3、读取全电参数数据包 4.4、配置波特率 4.5、UART保护机制 5、功能说明 5.1、电流电压瞬态波形计量 5.2、有功功率 5.3、有功功率防潜动 5.4、电能计量 5.5、…

【C++】静态成员变量 ( 静态成员变量概念 | 静态成员变量声明 | 静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 )

文章目录 一、静态成员变量概念1、静态成员变量引入2、静态成员变量声明3、静态成员变量初始化4、静态成员变量访问5、静态成员变量生命周期 二、完整代码示例 一、静态成员变量概念 1、静态成员变量引入 在 C 类中 , 静态成员变量 又称为 静态属性 ; 静态成员归属 : 静态成员…

一百八十二、大数据离线数仓——离线数仓从Kafka采集、最终把结果数据同步到ClickHouse的完整数仓流程(待续)

一、目的 经过6个月的奋斗&#xff0c;项目的离线数仓部分终于可以上线了&#xff0c;因此整理一下离线数仓的整个流程&#xff0c;既是大家提供一个案例经验&#xff0c;也是对自己近半年的工作进行一个总结。 二、项目背景 项目行业属于交通行业&#xff0c;因此数据具有很…

please choose a certificate and try again.(-5)报错怎么解决

the server you want to connect to requests identification,please choose a certificate and try again.(-5)

英语——分享篇——每日100词——301-400

straight——str街道(熟词street)aight八(形似eight)——街道上的八条路是笔直的 valley——v维生素(编码)all所有(熟词)ey鳄鱼(拼音)——维生素被所有的鳄鱼在山谷里吃掉了 deer——d狗(编码)ee眼睛(象形)r小草(编码)——狗眼睛看着小草变成一只鹿 goose——goo900(象形)se色(…

git:二、git的本地配置+工作区域和文件状态+git add/commit/log +git reset回退版本

git的使用方式 命令行&#xff08;最常用&#xff09;图形化界面IDE插件/拓展&#xff08;次常用&#xff09; git的本地/系统配置 之前的文章提到过git的全局配置。如下&#xff1a; git config --global user.name "ss" git config --global user.email "…

[杂谈]-八进制数

八进制数 文章目录 八进制数1、概述2、八进制数的表示2.1 八进制数2.2 以八进制计数2.3 二进制数补零 3、八进制到十进制转换4、十进制到八进制转换5、二进制到八进制转换示例6、八进制到二进制和十进制转换示例7、总结 1、概述 八进制编号系统是另一种使用基数为8计数系统&am…

医疗革命的关键推手,看AIGC弥合医疗差距的未来之路

随着科技的飞速进步&#xff0c;医疗水平在过去几十年里取得了巨大的突破。这些科技创新不仅改变了我们对健康和医疗的认知&#xff0c;也深刻地塑造了社会的现状。其中&#xff0c;人工智能作为医疗领域的一项前沿技术&#xff0c;正以前所未有的方式影响着我们的生活。它不仅…

CUDA和cuDNN的安装

参考资料&#xff1a;https://zhuanlan.zhihu.com/p/83971195 目录 CUDA和cuDNN介绍安装验证 CUDA和cuDNN介绍 CUDA(ComputeUnified Device Architecture)&#xff0c;是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构&#xff0c;该架构使GPU能够…

python-docx办公自动化批量生成离职证明

关注公众号&#xff1a;Python Lab 首先&#xff0c;在网络找到这样一份模板内容&#xff0c;可以根据这么模板进行排版 这是存放在Excel中的数据&#xff0c;根据数据遍历其中的内容&#xff0c;写入word当中 完整代码实现 from docx import Document import pandas as pd …

sqlmap tamper脚本编写

文章目录 tamper脚本是什么&#xff1f;指定tamper脚本运行sqlmap安全狗绕过tamper脚本 tamper脚本是什么&#xff1f; SQLMap 是一款SQL注入神器&#xff0c;可以通过tamper 对注入payload 进行编码和变形&#xff0c;以达到绕过某些限制的目的。但是有些时候&#xff0c;SQLM…

SLAM从入门到精通(参数处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在编写ros程序的过程中&#xff0c;很多时候需要不停修改程序的参数。比如说&#xff0c;我们有一个配置文件。在程序还没有运行之前&#xff0c;我…

实至名归!优维科技荣膺NIISA联盟2022年度双项技术创新奖

日前&#xff0c;国家互联网数据中心产业技术创新战略联盟&#xff08;以下简称&#xff1a;NIISA联盟&#xff09;2022年度技术创新奖评选结果公布&#xff01;经过激烈角逐&#xff0c;优维科技脱颖而出&#xff0c;荣膺双项大奖&#xff01; “EasyCore—CMDB超融合数据库”…

移植FreeRTOS的STM32F103双轮平衡小车(开源,代码文末)

耗时大概三四天吧&#xff0c;主要时间还是花在硬件方面上&#xff0c; ps&#xff1a;之前因为还想再完善一点&#xff0c;就一直放在草稿里&#xff0c;并不是今天才写的。面试官看到希望理解。。。 引言 1、系统概述 1.1、设计任务 利用stm32f103作为主控&#xff0c;移…

JavaSE List

目录 1 预备知识-泛型(Generic)1.1 泛型的引入1.2 泛型类的定义的简单演示 1.3 泛型背后作用时期和背后的简单原理1.4 泛型类的使用1.5 泛型总结 2 预备知识-包装类&#xff08;Wrapper Class&#xff09;2.1 基本数据类型和包装类直接的对应关系2.2 包装类的使用&#xff0c;装…

【C++面向对象侯捷下】2.转换函数 | 3.non-explicit-one-argument ctor

文章目录 operator double() const {} 歧义了 标准库的转换函数