西安优化网站,傻瓜动态建站 工具,免费网页制作教程视频,网站开发概要设计更多单片机学习笔记#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~ 目录
0、实现的功能
1、Keil工程
1-1 数码管显示原理
1-2 静态与动态显示
1-3 74HC573锁存器的工作原理
1-…更多单片机学习笔记单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~ 目录
0、实现的功能
1、Keil工程
1-1 数码管显示原理
1-2 静态与动态显示
1-3 74HC573锁存器的工作原理
1-4 上拉电阻的作用
1-5 原理图
2、代码实现
Q发现如果没有代码最后一行的while(1)除了亮1之外其他数码管还会亮WHY? 0、实现的功能 数码管的静态显示
1、Keil工程
1-1 数码管显示原理 数码管在生活中运用的已经很广泛了。该板子用的是共阴极可以拿万用表测数码管的公共端和任意一个管脚来判断是共阴还是共阳极。 不同端口控制不同管脚给出共阴极的数码码表
1-2 静态与动态显示 数码管的a b c d e是段选P0口控制哪个管脚亮灭公共脚GND是位选P0口控制选择8个数码管中的某一个。静态显示就是让显示出的数字保持不变的状态直到下一次输入新的状态
1-3 74HC573锁存器的工作原理 IO口资源很宝贵所以尽量增加外设电路的可操作性。首先OE是低电平有效否则输出高阻态。其次就是LE的状态高电平时随输入D变化而变化低电平时锁存上一状态数据
1-4 上拉电阻的作用 上拉电阻主要是可以钳位在高电平且限流 P0口不是准双向口没有上拉电阻。开漏状态只能输出低电平不能输出高电平 P1 P2 P3口是准双向口是有上拉电阻的。可以输出高低电平。所以要在P0加上拉电阻实现输出高电平的效果
1-5 原理图 实际上就是P0口的分时复用P0口就8个口但是要先控制选择哪个数码管要8个管脚控制再控制亮什么数字要8个管脚控制。 为了同时实现这些条件就需要用到锁存器先位选出哪个数码管工作锁存一下数据因为一会要改变P0口数据实现亮什么数字再段选出亮什么数字再锁存一下 U8是位选先选择亮哪个数码管共阴的位选是接地的置0即可U9是段选控制亮的数字置1即可
2、代码实现
#include reg52.h
#include intrins.h#define uchar unsigned char
#define uint unsigned intsbit WE P2^7; //锁存器位选U8的LE选择哪个数码管
sbit DU P2^6; //锁存器段选U9的LE控制亮什么数字//延时模块
//void delay(uint z)
//{
// uint x;
// uint y;
// for(x z; x 0; x--)
// for(y 114; y 0; y--);
//}void main()
{WE 1;//位选锁存器打开P0 0xfe;//选择第一个数码管WE 0; //关上位选锁存器进入锁存DU 1;//段选锁存器打开P0 0x06;//亮的数字为1DU 0;//关上段选锁存器进入锁存WE 1;//位选锁存器打开P0 0x0;//选择第二个数码管WE 0; //关上位选锁存器进入锁存DU 1;//段选锁存器打开P0 0x5B;//亮的数字为2DU 0;//关上段选锁存器进入锁存while(1){}
} 这段代码会发现结果只显示2因为静态显示当下一个操作来的时候上一个锁存的数据就没了。实物展示 此时静态显示只能亮同一个数字想要同时亮多个不一样的数字需要把代码写到循环里 Q发现如果没有代码最后一行的while(1)除了亮1之外其他数码管还会亮WHY?