STC89C52学习笔记(四)

STC89C52学习笔记(

综述:本文讲述了在STC89C51中数码管、模块化编程、LCD1602的使用。

一、数码管

1.数码管显示原理

位选:对74HC138芯片的输入端的配置(P22、P23、P24),来选择实现位选(哪个数码管显示数字)。

段选:对74LS245芯片的输入端进行配置(P00、P01、P02、P03、P04、P05、P06、P07),来实现段选(显示什么数字)。

数码管连接方式:共阳极时配置0则点亮,共阴极配置1则点亮。

2.显示方式

1)直接配置
P2_4=1;
P2_3=0;
P2_2=1;
P0=0x7d;

即可实现第三个数码管显示数字6

2)撰写子函数
unsigned char NixieTable[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x3e,0x79,0x71,0x00};

void Nixie(unsigned char Location,Number)
{
	switch(Location)
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];
	Delay(1);//稳定显示
	P0=0x00;//清零

}

void main()
{
    Nixie(7,2);
    while(1)
	{	
	}
}

二、模块化编程

传统方式的编程直接放在main函数里面,不利于代码的组织、管理、移动和查找错误。模块化编程将各个模块的代码放在不同的c文件里面,在h文件里面提供外部可调用函数的声明,需要代码时,只需要#include “xxx.h”

①建立.c文件和.h文件

②攥写.c文件,记得添加头文件

③攥写.h文件

前两行是为了防止重复定义,第三行的函数末尾记得加分号,否则会报错。

三、LCD1602

注意:LCD1602与数码管和LED引脚冲突,当使用LCD1602时,一般不使用数码管和LED。

①LCD1602的相关函数和作用

②函数的使用和演示结果

先将LCD1602的.c和.h文件复制到当前的项目文件夹下,然后在项目中添加LCD1602的.c和.h文件

在main函数中调用LCD1602.h,并使用相关函数

LCD1602演示结果


参考视频:51单片机学习视频

侵权联系删除!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值