我是靠谱客的博主 自信人生,最近开发中收集的这篇文章主要介绍74 HC595 级联控制16 * 16显示屏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include "reg51.h"
#include "intrins.h"

// QA1~8接交通灯

sbit SER = P3^4;  // 74HC595串行数据
sbit RCK = P3^5;  // 74HC595存储寄存器时钟
sbit SCK = P3^6;  // 74HC595移位寄存器时钟

typedef unsigned char u8;


// 行是高点平,列是低电平
void HC595(u8 colHigh, u8 colLow, u8 rowHigh, u8 rowLow)
{
	int i;
	u8 tempData;

	RCK = 0;
	SCK = 0;

	// 先传高位
	for (i = 7; i >= 0; --i)
	{
		tempData = colHigh >> i;
		SER = tempData & 0x01;
		_nop_();
		SCK = 1;  // 上升沿移位
		_nop_();
		SCK = 0;
		_nop_();
	}

	for (i = 7; i >= 0; --i)
	{
		tempData = colLow >> i;
		SER = tempData & 0x01;
		_nop_();
		SCK = 1;  // 上升沿移位
		_nop_();
		SCK = 0;
		_nop_();
	}	


	for (i = 7; i >= 0; --i)
	{
		tempData = rowHigh >> i;
		SER = tempData & 0x01;
		_nop_();
		SCK = 1;  // 上升沿移位
		_nop_();
		SCK = 0;
	}	


	for (i = 7; i >= 0; --i)
	{
		tempData = rowLow >> i;
		SER = tempData & 0x01;
		_nop_();
		SCK = 1;  // 上升沿移位
		_nop_();
		SCK = 0;
		_nop_();
	}	

	_nop_();
	RCK = 1;   // 上升沿4个74HC595并口一起发出8位数据
	_nop_();
}


void Delay(int i)
{
	while (--i);
}


void main()
{
	while (1)
	{
		int i;
		for (i = 0; i < 8; ++i)
		{	
			HC595(0xff, 0xfe, 0x00, 1 << i);
			Delay(5000 * 10);	
		}
	}		
}

 

最后

以上就是自信人生为你收集整理的74 HC595 级联控制16 * 16显示屏的全部内容,希望文章能够帮你解决74 HC595 级联控制16 * 16显示屏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部