📄 hc595b.c.bak
字号:
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
sbit stb595 = P0^1; /*定义RD5为595寄存器锁定信号驱动*/
sbit clock595=P0^0; /*定义RD6为595移位寄存器信号驱动*/
sbit data595=P0^2; /*定义RD7为595数据传输位信号驱动*/
void delay10(unsigned char);
bit normal; /*AC normal*/
bank1 bit buck; /*AC buck*/
bank1 bit boost; /*AC boost */
bank1 bit datalow3;
bank1 bit inverter; /*inverter*/
bank1 bit datalow5;
bank1 bit overload;
bank1 bit replace;
bank1 bit battery25;
bank1 bit battery50;
bank1 bit battery75;
bank1 bit battery100;
bank1 bit load20;
bank1 bit load40;
bank1 bit load60;
bank1 bit load80;
void delay10(unsigned char dd) /*主程序调用的延时程序*/
{
unsigned char ff;
for (ff=dd;ff!=0;ff--)
{
continue;
}
}
void display595(void) /*显示LED处理程序*/
{
unsigned char tempcount;
stb595=0; /*准备锁存 */
data595=0;
clock595=0;
delay10(15);
for (tempcount=16;tempcount!=0;tempcount--)
{
switch (tempcount) /*送数据 */
{
case 16:
data595=load80;
break;
case 15:
data595=load60;
break;
case 14:
data595=load40;
break;
case 13:
data595=load20;
break;
case 12:
data595=battery100;
break;
case 11:
data595=battery75;
break;
case 10:
data595=battery50;
break;
case 9:
data595=battery25;
break;
case 8:
data595=replace;
break;
case 7:
data595=overload;
break;
case 6:
data595=datalow5;
break;
case 5:
data595=inverter;
break;
case 4:
data595=datalow3;
break;
case 3:
data595=boost;
break;
case 2:
data595=buck;
break;
case 1:
data595=normal;
break;
}
delay10(15);
clock595=1; /*时钟上半周期,开始移位 */
delay10(15);
clock595=0; /*时钟下半周期 */
delay10(15);
}
delay10(15);
stb595=1; /*开始锁存 */
delay10(15);
stb595=0;
data595=0;
clock595=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -