#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit SHCP=P2^0;
sbit DS=P2^1;
sbit STCP=P2^2;
uchar code ZM[ ]={点阵字模数据}
void delay_ms(unsigned int ms) //延时函数
{
uchar j;
while(ms--)
for(j=0;j<123;j++);
}
void WriteByte(uchar dat) 、//74HC595读入数据函数
{
uchar k;
for(k=0;k<8;k++)
{
dat=dat>>1;
DS=CY;
SHCP=0;
SHCP=1;
}
}
void main() //主函数
{
uchar num,temp,n,m;
while(1)
{
for(n=0;n<192;n++) //
for(m=0;m<8;m++) //重复显示8次
{
for(num=n;num<n;num++)
{
WriteByte(tab[2*num+1]);//行数据读入
WriteByte(tab[2*num+0]);
P1=temp; //列数据读入
STCP=0; // 显示上升沿打开,开始显示
STCP=1;
delay_ms(1); //延时显示
temp++; //列数据更新
if(temp==16)
temp=0;
}
}
}
}
P1=temp,这怎么理解?
用的列驱动芯片是74HC154 P1=temp那是怎么变74HC154的地址二进制码?
P口直接输入char型整数,比如2,就是对应0x10?总感觉怪怪的。。。。
追答P1 = 2 应该是和 P1 = 0x02 = 0000 0010 B 一样的啊
追问哦,是我把16进制直接看成2进制了。 TOT