C51单片机常用接口电路设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/5/14
20
#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define SLED_BIT P0 //LED位选信号输入管脚
sbit clk=P2^7; //595时钟信号输入管脚 sbit st =P2^6; //595锁存信号输入管脚 sbit io =P2^5; //595数据信号输入管脚
实际上为了节约并口资源,P0口连接两个 74HC573,另一片驱动点阵及交通灯电路。两 个驱动芯片的转换通过一个波段开关控制。当开 关拨到上边时,点阵驱动电路起作用,相反当拨 到下边时,数码管驱动电路起作用。
2019/5/14
15
实验1
在左边第一个LED上显示数字5 步骤: (1)通过74HC595送5的段码
码管)和LED点阵显示屏。
液晶显示器(LCD)又分为字符液晶与图形液晶。
2019/5/14
2
7.1.1 七段LED显示器(数码管)
LED的工作原理 多位LED显示问题的解决
2019/5/14
3
LED的工作原理
七段式LED显示部件 (a)典型的七段式LED器件 (b) 共阳极LED (c) 共阴极LED
共阳极LED显示器的发光二极管的阳极连在一起, 通常此公共阳极接正电压,当某个发光二极管的 阴极接低电平时,发光二极管被点亮,相应的段 被显示 。
2019/5/14
6
数字到段码的译码方法 将一个4位二进制数据转换为LED的7位 显示代码(段码)的方法有: (1)专用芯片译码
(2) 软件译码
2019/5/14
}
st=0;
st=1;
//锁存数据
}
2019/5/14
22
延迟程序 delay(uint dat) {
while(dat--) {; } }
(2)通过P0口送位选信号
2019/5/14
16
include <reg51.h> #define uchar unsigned char sbit clk=P2^7; //595时钟信号输入管脚 sbit st =P2^6; //595锁存信号输入管脚 sbit io =P2^5; //595数据信号输入管脚
void wr595(uchar ucdat)
{
uchar i;
clk=1;
st=1;
for(i=8;i>0;i--) //循环八次,写一个字节
{
io=ucdat&0x01; //发送BIT0 位
clk=0;
clk=1;
//时钟上升沿
ucdat=ucdat>>1;/ /要发送的数据右移,准备发送下一位
2019/5/14
4
LED的主要部分是七段发光管,分别为a、b、c、 d、e、f、g。有的产品还附带有小数点DP。通 过发光段的不同组合,可以显示0~9和A~F共 16个字母数字。
LED可分为:
(1)共阳级结构
(2)共阴极结构
2019/5/14
5
共阴极LED显示器的发光二极管的阴极连在一起, 通常此公共阴极接地。当某个发光二极管的阳极 为高电平时,发光二极管点亮,相应的段被显示。
第7章 80C51单片机常用接口电路设计
7.1 显示器接口原理及应用 7.2 键盘接口原理及应用 7.3 80C51单片机的模拟量接口
2019/5/14
1
7.1 显示器接口原理及应用
在单片机应用系统中,显示器是最常用的输出设 备。常用的显示器有: 发光二极管(LED) 液晶显示器(LCD) 。 发光二极管(LED)又分为七段LED显示器(数
7
用专用芯片完成段译码的示意(共阳极)
2019/5/14
8
软件译码法
①将0~F(或0~9)对应的段码组成一个表,存 在存储器中;
②查表得段码
2019/5/14
9
多位LED显示问题的解决
(1)问题的提出 实际使用时,往往用几个显示管实现多位显示, 如果每一个LED占用一个独立的输出端口,则 占用的输出端口就很多。
2019/5/14
13
在程序中,软件按一定频率循环输出位选择信 号和对应的显示数据,利用眼睛的视觉惯性, 从LED显示器上便可见到相当稳定的数字显示。
Βιβλιοθήκη Baidu
2019/5/14
14
七段LED数码管实验
硬件连接情况 在实验学习板中,有8个共阴极的LED,位选信 号通过P0口,再通过74HC573驱动LED。段 码通过74HC595(串行输入,并行输出,节约 并口)输出至LED.
一个端口 一个端口 一个端口 一个端口 一个端口
2019/5/14
10
(2)问题的解决方法 硬件:采用公用的驱动电路 软件:采用扫描方法
2019/5/14
11
2019/5/14
12
一个数据通道作为位控制,该端口输出的选择信 号使某一位为高电平(共阳极)时,该位对应的 LED便显示数据。
另一个数据通道输出段码,尽管所有的LED均收 到了段码,但只有被位选择信号选中的那个LED 才显示数据,其他并不发光。
//循环八次,写一个字节 //发送BIT0 位 //时钟上升沿 //要发送的数据右移,准备发送下一位
//锁存数据
2019/5/14
18
Void main() {
while(1) {
uchar k=0xb6; wr595(k); P0=0XFEH; }
//5的段码
}
2019/5/14
19
实验2 让8位数码管显示1、2、3、4、5、6、7、8
uchar code uc7leds[]={0xfc,0x60,0xda,0xf2, 0x66,0xb6,0xbe,0xe0, 0xfe};
//定义0-8段码 uchar display_7leds[8]={1,2,3,4,5,6,7,8};
2019/5/14
21
//功能:向595发送一个字节的数据(先发低位)
2019/5/14
17
//名称:wr595()向595发送一个字节的数据 //功能:向595发送一个字节的数据(先发低位)
void wr595(uchar ucdat) {
uchar i; clk=1; st=1; for(i=8;i>0;i--) {
io=ucdat&0x01; clk=0; clk=1; ucdat=ucdat>>1; } st=0; st=1; }