概述
#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显示屏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复