📄 led.c
字号:
uchar idata i,j,high_count; //高计数器
j=da_high-1;
for(i=j;i!=0xff;i--) //从最后一行扫描到0行
{
v3_getmdp(i); //确定6264和数据指针
v3_movdph(i); //放1行数据
for(j=0;j<da_loog/2;j++)
{
disp();
}
}
}
//***********************************
// 1列1列的取数据
//***********************************
void v2_movalh(uchar dad_word1,uchar dad_long1)
{
uchar idata i,j;
uchar idata dad_mod; //放第几个6264
uchar idata dad_val;
uint idata dad_addr; //放信息地址
dad_mod=da_high/da_scan; //算出用几个6264
for(i=0;i<dad_mod;i++)
{
sdram0(i);
// i=1;
for(j=0;j<da_scan;j++) //根据扫描行数扫描
{
dad_addr=(i*da_scan+j)*da_loog+dad_long1; //算出当前行地址
daw_6264e+=dad_addr; //确定信息地址
daw_6264f+=dad_addr;
dad_val=*daw_6264e; //取出地址数据
dad_val|=dad_word1;
*daw_6264f=dad_val;
//------------------------地址复位
daw_6264e=&dram;
daw_6264f=&dramm;
}
}
}
//***********************************
// 3从左向右显示
//***********************************
void v2o_le_ri()
{
uchar idata i,j,h,dad_word;
uchar code *pnt4=&cd_le_ri;
uchar code *pnt4c=&cd_le_ri_c;
for(i=0;i<da_loog;i++) //1列1列的从左向右显示
{
for(j=0;j<8;j++) //1列8位数据 1位1位的向右显示
{
if(!b_clean)
{
pnt4=&cd_le_ri; //取出 与的位
}
else
{
pnt4=&cd_le_ri_c;
}
pnt4+=j;
dad_word=*pnt4; //取出 与的位
v2_movalh(dad_word,i); //1列1列显示
for(h=0;h<da_loog/8;h++)
{
disp();
}
}
}
}
//***********************************
// 4从右向左显示
//***********************************
void v2o_ri_le()
{
uchar idata i,j,h,dad_word;
uchar idata dad_val; //临时用的
uchar code *pnt4=&cd_ri_le;
uchar code *pnt4_c=&cd_ri_le_c;
dad_val=da_loog-1;
for(i=dad_val;i!=0xff;i--) //1列1列的从左向右显示
{
for(j=0;j<8;j++) //1列8位数据 1位1位的向右显示
{
if(!b_clean)
{
pnt4=&cd_ri_le; //取出 与的位
}
else
{
pnt4=&cd_ri_le_c; //取出 与的位
}
pnt4+=j;
dad_word=*pnt4; //取出 与的位
v2_movalh(dad_word,i); //1列1列显示
for(h=0;h<da_loog/8;h++)
{
disp();
}
}
}
}
//***********************************
// 5上下开门
//***********************************
void v2o_updo_open()
{
uchar idata i,j;
uchar idata dad_val1; //一半行数
uchar idata dad_val2; //上半指针
uchar idata dad_val3; //下半指针
dad_val1=da_high/2;
dad_val2=dad_val1-1;
dad_val3=dad_val1;
for(i=0;i<dad_val1;i++)
{
v3_getmdp(dad_val2); //确定6264和数据指针
v3_movdph(dad_val2); //放1行数据
for(j=0;j<da_loog/2;j++)
{
disp();
}
v3_getmdp(dad_val3); //确定6264和数据指针
v3_movdph(dad_val3); //放1行数据
for(j=0;j<da_loog/2;j++)
{
disp();
}
dad_val2--;
dad_val3++;
}
}
//***********************************
// 6上下关门
//***********************************
void v2o_updo_close()
{
uchar idata i,j;
uchar idata dad_val1; //一半行数
uchar idata dad_val3; //下半指针
dad_val1=da_high/2;
dad_val3=da_high-1; //最后一行
for(i=0;i<dad_val1;i++)
{
v3_getmdp(i); //确定6264和数据指针
v3_movdph(i); //放1行数据
for(j=0;j<da_loog/2;j++)
{
disp();
}
v3_getmdp(dad_val3); //确定6264和数据指针
v3_movdph(dad_val3); //放1行数据
for(j=0;j<da_loog/2;j++)
{
disp();
}
dad_val3--;
}
}
//***********************************
// 7向右百叶
//***********************************
void v2o_right_leaf()
{
uchar idata i,j,h,dad_word;
uchar code *pnt4=&cd_le_ri;
uchar code *pnt5=&cd_le_ri_c;
for(i=0;i<8;i++) //1列1列的从左向右显示
{
for(j=0;j<da_loog;j++) //1列8位数据 1位1位的向右显示
{
if(!b_clean)
{
pnt4=&cd_le_ri; //取出 与的位
}
else
{
pnt4=&cd_le_ri_c; //取出 与的位
}
pnt4+=i;
dad_word=*pnt4; //取出 与的位
v2_movalh(dad_word,j); //1列1列显示
for(h=0;h<1;h++)
{
disp();
}
}
}
}
//***********************************
// 8向下百叶
//***********************************
void v2o_down_leaf()
{
uchar idata i,j,h,high_count; //高计数器
for(i=0;i<8;i++) //8行百叶
{
for(h=0;h<da_high;h+=8)
{
j=i+h;
v3_getmdp(j); //确定6264和数据指针
v3_movdph(j); //放1行数据
for(j=0;j<da_loog/2;j++)
{
disp();
}
}
}
}
//***********************************
// 9左右开门显示
//***********************************
void v2o_leri_open()
{
uchar idata dad_val4;
uchar idata dad_val5;
uchar idata dad_val6;
uchar idata i,j,h,dad_word;
uchar code *pnt4=&cd_le_ri;
uchar code *pnt4c=&cd_le_ri_c;
uchar code *pnt5=&cd_ri_le;
uchar code *pnt5c=&cd_ri_le_c;
dad_val4=da_loog/2;
dad_val5=dad_val4;
dad_val6=dad_val4-1;
for(i=0;i<dad_val4;i++) //1列1列的从左向右显示
{
for(j=0;j<8;j++) //1列8位数据 1位1位的向右显示
{
if(!b_clean)
{
pnt5=&cd_ri_le; //取出 与的位
}
else
{
pnt5=&cd_ri_le_c; //取出 与的位
}
pnt5+=j;
dad_word=*pnt5; //取出 与的位
v2_movalh(dad_word,dad_val6); //1列1列显示
if(!b_clean)
{
pnt4=&cd_le_ri; //取出 与的位
}
else
{
pnt4=&cd_le_ri_c; //取出 与的位
}
pnt4+=j;
dad_word=*pnt4; //取出 与的位
v2_movalh(dad_word,dad_val5); //1列1列显示
for(h=0;h<da_loog/4;h++)
{
disp();
}
}
dad_val6--;
dad_val5++;
}
}
//***********************************
// 10左右关门显示
//***********************************
void v2o_leri_close()
{
uchar idata dad_val4;
uchar idata dad_val5;
uchar idata dad_val6;
uchar idata i,j,h,dad_word;
uchar code *pnt4=&cd_ri_le;
uchar code *pnt5=&cd_le_ri;
uchar code *pnt4c=&cd_le_ri_c;
uchar code *pnt5c=&cd_ri_le_c;
dad_val4=da_loog/2;
dad_val6=da_loog-1;
for(i=0;i<dad_val4;i++) //1列1列的从左向右显示
{
for(j=0;j<8;j++) //1列8位数据 1位1位的向右显示
{
if(!b_clean)
{
pnt5=&cd_le_ri; //取出 与的位
}
else
{
pnt5=&cd_le_ri_c; //取出 与的位
}
pnt5+=j;
dad_word=*pnt5; //取出 与的位
v2_movalh(dad_word,i); //1列1列显示
if(!b_clean)
{
pnt4=&cd_ri_le; //取出 与的位
}
else
{
pnt4=&cd_ri_le_c; //取出 与的位
}
pnt4+=j;
dad_word=*pnt4; //取出 与的位
v2_movalh(dad_word,dad_val6); //1列1列显示
for(h=0;h<da_loog/4;h++)
{
disp();
}
}
dad_val6--;
}
}
//***********************************
// 11向左百叶
//***********************************
void v2o_left_leaf()
{
idata uchar i,j,h,dad_word;
idata uchar code *pnt4=&cd_ri_le;
idata uchar code *pnt4c=&cd_ri_le_c;
idata uchar dad_val; //临时用的
dad_val=da_loog-1;
for(j=0;j<8;j++) //1列8位数据 1位1位的向右显示
{
for(i=dad_val;i!=0xff;i--) //1列1列的从左向右显示
{
if(!b_clean)
{
pnt4=&cd_ri_le; //取出 与的位
}
else
{
pnt4=&cd_ri_le_c; //取出 与的位
}
pnt4+=j;
dad_word=*pnt4; //取出 与的位
v2_movalh(dad_word,i); //1列1列显示
for(h=0;h<1;h++)
{
disp();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -