0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

const uch col[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列码

//初始化子程序

void init()

{

ADCON1=0x06;//初始化RA口为普通数字端口

TRISA=0X20;

PORTA=0;

TRISB=0;

PORTB=0;

TRISC=0;

PORTC=0;

TRISD=0;

PORTD=0;

}

//延时子程序

void delay1ms()

{

uch i;

for(i=0;i《150;i++)

{NOP();

}

}

//从右往左显示

void display1()

{

uch i,j,k,t,n;

int m=0;//字符定位变量

for(n=0;n《6;n++)

{

for(offset=0;offset《24;offset++)//偏置最多24位

{

for(t=0;t《4;t++)//每个位置显示4次

{

for(i=0;i《24;i++)//取数,每行24列,故取24个数

{

PORTD=0xff;//一开始先把列置高电平,关显示

PORTC=0x70;

NOP();

PORTC=0;

PORTB=zxhn[i+offset+m];//取行码

if((i+offset)》23)PORTB=zxhn[i+offset+48+m];

RC0=1;

NOP();

RC0=0;

PORTB=zxhn[i+24+offset+m];

if((i+offset)》23)PORTB=zxhn[i+offset+72+m];

RC1=1;

NOP();

RC1=0;

PORTB=zxhn[i+48+offset+m];

if((i+offset)》23)PORTB=zxhn[i+offset+96+m];

RC2=1;

NOP();

RC2=0;

j=i/8;//求需要选通的行线

k=i%8;//求需要选通的列线

PORTD=col[k];

switch(j)

{

case 0: RC4=1; NOP(); RC4=0; break;

case 1: RC5=1; NOP(); RC5=0; break;

case 2: RC6=1; NOP(); RC6=0; break;

}

delay1ms();//视觉暂留

}

}

}

m=m+72;//定位下一个初始字符

}

}

//从左往右显示

void display2()

{

uch i,j,k,t,n,tt1,tt2,tt3;

int m=0;//字符定位变量

for(n=0;n《6;n++)

{

for(offset=24;offset》0;offset--)//偏置最多24位

{

for(t=0;t《4;t++)//每个位置显示4次

{

for(i=24;i》0;i--)//取数,每行24列,故取24个数

{

if((i+offset)》23)

{

tt1=zxhn[i+offset-24+m];

tt2=zxhn[i+offset+m];

tt3=zxhn[i+offset+24+m];

}

else

{

tt1=zxhn[i+offset+m+72];

tt2=zxhn[i+offset+m+96];

tt3=zxhn[i+120+offset+m];

}

PORTD=0xff;//一开始先把列置高电平,关显示

PORTC=0x70;

NOP();

PORTC=0;

PORTB=tt1;//取行码

RC0=1;

NOP();

RC0=0;

PORTB=tt2;

RC1=1;

NOP();

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查