c51单片机学习笔记-IO扩展(串转并)实验 - 74HC595

发布者:BlissfulHiker最新更新时间:2022-07-13 来源: csdn关键字:c51单片机  IO扩展  串转并  74HC595 手机看文章 扫描二维码
随时随地手机看文章

目的:通过 74HC595 模块控制 LED 点阵以一行循环滚动显示。


编译软件:keil5


过程:


(1)先定义好74HC595 控制管脚,以及点阵列控制口


//定义 74HC595 控制管脚

sbit SRCLK=P3^6; //移位寄存器时钟输入

sbit RCLK=P3^5; //存储寄存器时钟输入

sbit SER=P3^4; //串行数据输入

#define LEDDZ_COL_PORT P0 //点阵列控制端口

u8 ghc595_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

(2)重新定义了一个 ms 级延时函数 delay_ms,该函数与前面 delay_10us 类似,都是利用循环占用 CPU 起到延时效果


void delay_ms(u16 ms)

{

u16 i,j;

for(i=ms;i>0;i--)

for(j=110;j>0;j--);

}

(3)定义了 74HC595 的控制函数 hc595_write_data,该函数完全按照 74HC595 的通信时序要求编写,主要要注意 的是 74HC595 是先传输字节的高位后传输低位,所以需要将字节低位移动到高位传输,在传输数据时,要注意移位寄存器时钟和存储寄存器时钟的先后顺序,将 要写入的数据先传输到 74HC595 寄存器中,即在准备好每位数据时要将 SRCLK 进行一个上升沿变化,此时即可将数据传输到寄存器内,待循环 8 次即一个字节 传输到寄存器中时,就可以来一个存储时钟上升沿,此时就可以将 74HC595 寄存 器中的数据全部一次传输到 595 端口输出。


void hc595_write_data(u8 dat)

{

u8 i=0;

for(i=0;i<8;i++)//循环 8 次即可将一个字节写入寄存器中

{

SER=dat>>7;//优先传输一个字节中的高位

dat<<=1;//将低位移动到高位

SRCLK=0;

delay_10us(1);

SRCLK=1;

delay_10us(1);//移位寄存器时钟上升沿将端口数据送入寄存器中

}

RCLK=0;

delay_10us(1);

RCLK=1;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出

}

(4)main 函数中调用 74HC595 的控制函数,将实验中要实现的效果数据写入进去,从而控制 LED 点阵的阳极, 而阴极由 P0 口控制,默认初始化时已经设置为 0,也就是说只要 595 输出高电 平,那么对应的行就会点亮。


void main()

{

u8 i=0;

LEDDZ_COL_PORT=0x00;//将 LED 点阵列全部设置为 0,即 LED 阴极为低电平

while(1)

{

for(i=0;i<8;i++)

{

hc595_write_data(0x00);//消除前面寄存器缓存数据

hc595_write_data(ghc595_buf[i]);//写入新的数据

delay_ms(500);//延时 500ms

}

}

(5)编译整段代码烧录到开发板

 

(6)如图连接观察实验现象

 

 


关键字:c51单片机  IO扩展  串转并  74HC595 引用地址:c51单片机学习笔记-IO扩展(串转并)实验 - 74HC595

上一篇:51单片机-控制LED灯
下一篇:【51单片机快速入门指南】2.4:74HC595、LED点阵屏及其SPI控制

推荐阅读最新更新时间:2024-10-31 11:15

C51单片机学习笔记(二)——花样流水灯的实现
1.单片机引脚、晶振、复位的作用 复位电路:,复位是单片机的初始化操作。单片机启动时都需要先付薇,其作用是“清零”,也就是CPU和其他部件处于一个确定的初始状态,并从这个初始状态开始。 复位实质上是单片机的复位脚保持很短时间的高电平,按键复位就是通过按键接高电平(按一下的时间已经足够) 时钟电路(晶振):产生时间信号,使单片机按照一定的时间规律进行指令,晶振频率越高,时钟信号的周期就小,单片机运行也就越快。 32个I/O口 P1.0 ~ P1.7 对应1 ~ 8 号引脚 P2.0 ~ P2.7 对应21 ~ 28 号引脚 P3.0 ~ P3.7 对应10 ~ 17 号引脚 P0.0 ~ P0.7 对应39
[单片机]
<font color='red'>C51单片机</font>学习笔记(二)——花样流水灯的实现
89C51单片机按键控制数码管动态显示0~9
1.preteus仿真图 2.keli代码 #include reg51.h sbit key1=P3^0; int CC_num ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int CC_I=0; void delay_ms(int ms) { int i,j; for(i=0;i ms;i++) for(j=0;j 110;j++); } void key1_exam() { if(key1 == 0) { //按钮延时去抖动 delay_ms(20); if(key1 =
[单片机]
89<font color='red'>C51单片机</font>按键控制数码管动态显示0~9
80c51单片机的控制总线信号有哪些 80c51单片机特点
  80c51单片机的控制总线信号有哪些   80C51单片机的控制总线信号包括以下几种:   ALE(Address Latch Enable)地址锁存使能信号:当CPU向外部总线发出地址时,ALE信号会使地址锁存器(Latch)中的地址保持稳定,供外设使用。   PSEN(Program Store Enable)程序存储器使能信号:当CPU要从程序存储器中读取指令时,PSEN信号会使程序存储器选择器(Program Memory Selector)选择程序存储器。   RD(Read)读信号:当CPU从外部读取数据时,RD信号会通知外设将数据准备好。   WR(Write)写信号:当CPU向外部写入数据时,WR信号会通知外设
[单片机]
STC89c51单片机的定时器T2
定时器T2的功能比T1、T0都强大,但描述它的资料不多,可能是使用得比较少的缘故吧。它是一个16位的具有自动重装和捕获能力的定时/计数器,它的计数时钟源可以是内部的机器周期,也可以是P1.0输入的外部时钟脉冲。T2的控制寄存器的功能描述如下: TCON2(T2的控制寄存器),字节地址0C8H: 位地址 0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8H 符号 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RT2 各位的定义如下: TF2:定时/计数器2溢出标志,T2溢出时置位,并申请中断。只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或
[单片机]
8位数码管显示电子时钟c51单片机程序
/* 8位数码管显示 时间格式 05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include reg52.h sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char
[单片机]
用AT89C51单片机控制步进电机的汇编源程序
  下面程序完成的主要功能:实现步进电机的正反转,加速、减速;显示电机转速(转速级别)和工作状态(正转、反转、不转)。   源程序   SPEED EQU 10H ;SPEED为转速等级标志,共7级,即1~7   FX EQU 11H ;FX 为方向标志   COUNT EQU 12H ;COUNT中断次数标志   ORG 0000H   AJMP MAIN   ORG 0003H ;外部中断0入口地址,加速子程序   AJMP UP   ORG 0013H ;外部中断1入口地址,减速子程序   AJMP DOWN   ORG 000BH ;定时器0中断入口地址,控制中断次数来达到控制转速 AJMP ZDT0
[单片机]
基于AT89C51单片机的RS 232串行数据截取器设计
0 引言 目前,我国的装备技术水平和发达国家相比还有一定的差距,对于国外引进的先进设备,如何才能在没有任何技术资料的情况下破解其技术瓶颈,实现装备技术水平的跨越式发展是我国普遍面临的技术难题。为此作者认为获取设备与控制计算机之间的通信数据,分析其通信协议是解决这个难题的基础。基于此,本文设计了数据截取器。 很多设备和其控制计算机之间采用的是RS 232标准串行接口进行通信,本文设计和实现了RS 232串行通信数据截取器,能有效地截取设备与其控制计算机之间的通信数据。 1 截取器硬件部分设计 1.1 总体框图及原理 系统原理框图如图1所示。 原理分析:具体设备与其控制计算机之间的通信线路通过电平转换分两路。一路是
[单片机]
基于AT89<font color='red'>C51单片机</font>的RS 232串行数据截取器设计
80C51单片机上电复位和复位延时的时序分析
  80C51单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。为什么在每次单片机接通电源时,都需要加入一定的延迟时间呢?分析如下。 1 上电复位时序   在单片机及其应用电路每次上电的过程中,由于电源回路中通常存在一些容量大小不等的滤波电容,使得单片机芯片在其电源引脚VCC和VSS之间所感受到的电源电压值VDD,是从低到高逐渐上升的。该过程所持续的时间一般为1~100 ms(记作taddrise)。上电延时taddrise的定义是电源电压从10% VDD上升到90% VDD所需的时间,如图1所示。 图1 上电延时taddrise和起振延时tosc实
[单片机]
80<font color='red'>C51单片机</font>上电复位和复位延时的时序分析
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved