8*8LED点阵点亮一个点

#include<reg51.h>

typedef unsigned int u16; //对系统默认数据进行重定义

typedef unsigned char u8;

//定义74HC595控制管脚

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

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

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

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

//函数名delay_10us,延时函数,ten_us=1时,大约延时10us,输入 ten_us,输出无

void delay_10us(u16 ten_us)

{

while(ten_us--);

}

//函数名 hc595_write_data(u8 dat) 函数功能 向74HC595写入一个字节的数据,输入 dat数据,输出无

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=1;

delay_10us(1);

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

}

//主函数

void main()

{

u8 i=0;

LEDDZ_COL_PORT=0x7f; //将LED点阵左边第一列设置为0,即LED阴极为低电平,其余列为1,即高电平

while(1)

{

hc595_write_data(0x80); //将LED点阵上边第一行设置为1,即LED阳极为高电平,其余行为0,即低电平

}

}

相关推荐
A9better14 分钟前
嵌入式开发学习日志37——stm32之USART
stm32·嵌入式硬件·学习
国科安芯4 小时前
ASP4644芯片低功耗设计思路解析
网络·单片机·嵌入式硬件·安全
充哥单片机设计4 小时前
【STM32项目开源】基于STM32的智能厨房火灾燃气监控
stm32·单片机·嵌入式硬件
CiLerLinux11 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
时光の尘11 小时前
【PCB电路设计】常见元器件简介(电阻、电容、电感、二极管、三极管以及场效应管)
单片机·嵌入式硬件·pcb·二极管·电感·三极管·场效应管
Lu Zelin11 小时前
单片机为什么不能跑Linux
linux·单片机·嵌入式硬件
宁静致远202112 小时前
stm32 freertos下基于hal库的模拟I2C驱动实现
stm32·嵌入式硬件·freertos
Wave84517 小时前
STM32--智能小车
stm32·单片机·嵌入式硬件
wdfk_prog19 小时前
[Linux]学习笔记系列 -- lib/timerqueue.c Timer Queue Management 高精度定时器的有序数据结构
linux·c语言·数据结构·笔记·单片机·学习·安全
充哥单片机设计1 天前
【STM32项目开源】基于STM32的智能家居环境(空气质量)检测系统
stm32·单片机·嵌入式硬件