📄 hd7279.c
字号:
#include<regx51.h>
#include"HD7279.h"
uchar digit[5]={0,0,0,0,0} ;
uchar keynumber;
uchar cnt,k1,k2;
void main()
{
reset=0;
delay1ms(10);
reset=1;
delay1ms(30);//reset接高电平时,HD7279大约要经过18-25ms的时间才会进入正常工作状态
send_byte(CMD_RESET);//复位
send_byte(CMD_TEST);//测试
delay1ms(3000);//延时3s
send_byte(CMD_RESET);//清除显示
cnt=0;
keynumber=0xff;
write7279(FLASH,0XFC);//1,2两位闪烁
write7279(UNDECODER,0X08);//第1位显示‘—’
write7279(UNDECODER+1,0X08);//第2位显示‘—’
do
{
if(!key)
{
keynumber=read7279(CMD_READ);//读出键码
write7279(DECODER1+1,keynumber/16);//读出高四位
write7279(DECODER1,keynumber&0x0f);//读出低四位
while(!key);//等待按键释放
cnt=0;
}
cnt++;
}while(keynumber!=0&&cnt<0x30000);//如果按键为0或超时进入下一步
write7279(FLASH,0XFF);
//下载数据但不译码演示
write7279(UNDECODER+7,0X49);//第8位显示“三”
delay1ms(1000);
//循环左/右移
for(k1=0;k1<23;k1++)
{
send_byte(RTR_CYCLE);
delay1ms(200);
}
for(k1=0;k1<23;k1++)
{
send_byte(RTL_CYCLE);
delay1ms(200);
}
//译码方式0,左移
for(k1=0;k1<16;k1++)
{
send_byte(RTL_UNCYL);
write7279(DECODER0,k1);
delay1ms(200);
}
delay1ms(1000);
send_byte(CMD_RESET);//清除显示
//译码方式1,右移
for(k1=0;k1<16;k1++)
{
send_byte(RTR_UNCYL);
write7279(DECODER1+7,k1);
delay1ms(200);
}
delay1ms(1000);
send_byte(CMD_RESET);//清除显示
//消隐指令
k2=0xff;
for(k1=0;k1<6;k1++)
{
k2=k2/2;//右移
write7279(BLINK,k2);
delay1ms(200);
}
write7279(BLINK,0XFF);//恢复8位显示
delay1ms(1000);
send_byte(CMD_RESET);//清除显示
//段点亮段
for(k1=0;k1<64;k1++)
{
write7279(SEG_ON,k1); //将64段逐一点亮
write7279(SEG_OFF,k1-1);//关闭前一段
delay1ms(200);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -