STC 89C52 单片机引脚功能详解及实例讲解
光看引脚是不够的,下面我们看看实物图是什么样子的
一、P1^0~7 对应八个二极管
二级管的实物图如下
从上往下 分别对应引脚中的 P1^0 ~ P1^7
这里就以一个比较简单流水灯作为实例代码
#include<reg52.h>
#include<intrins.h>//包含_crol_函数所在的头文件
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa; //定义一个变量来给P1赋值
void main()
{
aa=0xfe;//赋初值11111110
while(1)
{
P1=aa;//点亮第一个灯
delayms(500);//延时500ms
aa=crol(aa, 1);//aa循环左移1位后再给aa
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i–)
for(j=110;j>0;j–);
}
如果有不懂的可以查看我的关于流水灯的博客
51单片机 流水灯的实现
二、数码管的使用
下面是数码管的实物图
dula=P2^6 段选
wela=P2^7 位选
每次要使用 数码管时
在主函数 中先打开位选,再送入位选信号,再关闭位选
然后再打开段选,输送段选信号,关闭段选
实例代码
#include<reg52.h>
sbit dula=P26;//申明U1寄存器的锁存端,P26是段锁
sbit wela=P27;//申明U2,P27是挝凰?
main()
{
wela=1; //打开U2锁存端
P0=0xfe;//送入位选信号,确定哪几个数码管发光
wela=0;//关闭U2锁存器
dula=1;//段锁
P0=0x5e;//0x06代表1,确定数码管显示哪些字符 0~F
dula=0;
while(1);
}
如果你不满足这段代码,可以看看我的这篇博客
51单片机开发中数码管显示与应用
三、矩阵键盘的使用
独立键盘,即最下面一排的键盘分别为S2、S3、S4、S5
分别对应S2—–P3^4
分别对应S3—–P3^5
分别对应S4—–P3^6
分别对应S5—–P3^7
光说是肯定不够的,要拿实际的东西出来才可以,
我用红圈标记的地方就是s2 按键
下面就以这个简单的程序讲一下矩阵键盘的使用
#include<reg51.h>
sbit s2=P3^4; //采集按键状态,此时作为输入引脚
sbit led=P1^0; //此时作为输出引脚。
void delay(unsigned char p)
{
unsigned char m,n;
for(m=p;m>0;m–)
for(n=125;n>0;n–);
}
void main()
{
while(1)
{
if(s2==0)
{
delay(10); //消抖
if(s2==0)
{ while(!s2);//等待按键松开。
led=~led;
}
}
}
}
这段代码的实际作用,当你按下 s2 开关的时候,P1^0 所对应的二级管会变亮,当你再按下一次,二级管就会熄灭。
四、液晶显示补充
液晶显示器是额外的显示仪器,它有两种显示型号,它们分别是 1602 和 12864,我这里只有1602型号的,我就简要介绍一下1602 的型号b把
1602液晶显示(1602型的液晶屏只能显示32字符,两行,每行18个)
这是属于一个独立的区块,需要另外再加上单片机的y上
引脚对应功能
sbit lcden=P3^4; //对应液晶使能端
sbit lcdrs=P3^5; //液晶数据命令选择端
实例代码
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^5;
sbit lcden=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uchar table1[]=“TX-51STAR MCU”;
uchar table2[]=“WWW.TXMCU.COM”;
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a–)
for(b=10;b>0;b–);
}
void delay1(uint x)
{
uint a,b;
for(a=x;a>0;a–)
for(b=100;b>0;b–);
}
void write_com(uchar com)
{
P0=com;
rs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
本次面试答案,以及收集到的大厂必问面试题分享:
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
本次面试答案,以及收集到的大厂必问面试题分享:
[外链图片转存中…(img-7TYZivaM-1713342125731)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
作者:普通网友