1.点阵屏介绍
2.显示原理
3.74hc595介绍
ser一次只能输入一个数据(0或者1),serclk赋1后数据会向下移动一位,类似把子弹装进弹匣,所有数据位都填满后rclk赋值1数据会并行输出出去
4.笑脸代码
#include <REGX52.H>
#include "Delay.h"
sbit rclk=P3^5;
sbit srclk=P3^6;
sbit ser=P3^4;
void write74hc595(unsigned char byte)
{
char i;
for(i=0;i<8;i++)
{
ser=byte&(0x80>>i);
srclk=1;
srclk=0;
}
rclk=1;
rclk=0;
}
void matled(unsigned char lie,unsigned char deta)
{
write74hc595(deta);
P0=~(0x80>>lie);
Delay(1);
P0=0xFF;
}
void main()
{
srclk=0;
rclk=0;
//matled(0,0xAA);
while(1)
{
matled(0,0x3C);
matled(1,0x42);
matled(2,0xA9);
matled(3,0x85);
matled(4,0x85);
matled(5,0xA9);
matled(6,0x42);
matled(7,0x3C);
}
}
delay.h的代码:
#include <REGX52.H>
#include <INTRINS.H>
void Delay(int xms)
{
char i,j;
while(xms--)
{
i=2;
j=239;
do
{
while(--j);
}while(--i);
}
}
效果: