📄 disp.c
字号:
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==1){
if(m_cLineIdx>(16-m_cMoveCnt)){
m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx-16+m_cMoveCnt];
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==0xFF){
m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx];
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx];
}
}else if(data5045.cF2==3){ //数字箭头滚动
if(cFlg==0){
if(m_cLineIdx<m_cMoveCnt){
m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx+16-m_cMoveCnt];
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==1){
if(m_cLineIdx>(16-m_cMoveCnt)){
m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx-16+m_cMoveCnt];
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==0xFF){
m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx];
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx];
}
}
}else{ // 单字符
m_c15_16singledoubleFlg=0;
if((data5045.cF2==0)||(P1_7==0)){ //固定显示
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx];
}else if(data5045.cF2==1){ //箭头滚动
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx];
}else if(data5045.cF2==2){ //数字滚动
if(cFlg==0){
if(m_cLineIdx<m_cMoveCnt){
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==1){
if(m_cLineIdx>(16-m_cMoveCnt)){
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==0xFF){
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx];
}
}else if(data5045.cF2==3){ //数字箭头滚动
if(cFlg==0){
if(m_cLineIdx<m_cMoveCnt){
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==1){
if(m_cLineIdx>(16-m_cMoveCnt)){
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt];
}else{
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = 0xFF;
}
}else if(cFlg==0xFF){
m_cSrcFloorHigh = 0xFF;
m_cSrcFloorLow = PR[cIndexLow][m_cLineIdx];
}
}
}
}
void showtext(void)
{
uchar cC, cB, cA;
uchar cMoveLineNum,j;
uchar cLoopCnt=0;
cC=0xFF;
cB=0xFF;
cA=0xFF;
//行选择
if(m_cLineIdx<=7){
cMoveLineNum=7-m_cLineIdx;
PD377=0x01<<cMoveLineNum;
PE377=0x00;
// }else if((m_cLineIdx>=8)&&(m_cLineIdx<=16)){
}else if((m_cLineIdx>=8)&&(m_cLineIdx<=15)){
// cMoveLineNum=16-m_cLineIdx;
cMoveLineNum=15-m_cLineIdx;
PD377=0x00;
PE377=0x01<<cMoveLineNum;
}
//列选择
if(m_cOverloadFlg==1){ //超载
//此处可将超载字符右移
cC=(cC<<1)|0x01;
cC=cC|((m_cSrcFloorHigh<<6)&0xC0);
cB=(m_cSrcFloorHigh>>2)&0x3F;
cB=cB|((m_cSrcFloorLow<<6)&0xC0);
cA=0xC0;
cA=cA|((m_cSrcFloorLow>>2)&0x3F);
}else{
if(m_c15_16singledoubleFlg==0){ //单字
if(data5045.cF6==1){ //非居中显示
cC=0x07; //cC第1至3位空
cC=cC|((m_cSrcDirect&0x1F)<<3); //第4至8位为方向的低5位
cB=(m_cSrcDirect&0xE0)>>5; //cB第1至3位为方向的高3位
cB=cB|0x38; //cB第4至6位空
cB=cB|((m_cSrcFloorLow&0x03)<<6); //cB第7至8位为数字的低2位
cA=(m_cSrcFloorLow&0xFC)>>2; //cA第1至6位为数字的高6位
cA=cA|0xC0; //cA第7至8位空
}else{ //居中显示
if((m_RecData.cDirect==0)||(m_RecData.cDirect==1)){
cC=0x07; //cC第1至3位空
cC=cC|((m_cSrcDirect&0x1F)<<3); //第4至8位为方向的低5位
cB=(m_cSrcDirect&0xE0)>>5; //cB第1至3位为方向的高3位
cB=cB|0x38; //cB第4至6位空
cB=cB|((m_cSrcFloorLow&0x03)<<6); //cB第7至8位为数字的低2位
cA=(m_cSrcFloorLow&0xFC)>>2; //cA第1至6位为数字的高6位
cA=cA|0xC0; //cA第7至8位空
}else{
cC=0xFF; //cC空
cB=m_cSrcFloorLow;
cA=0xFF; //cA空
}
}
}else{ //双字
if(data5045.cF6==1){ //非居中显示
cC=0x01; //cC第1位空
cC=cC|((m_cSrcDirect&0x7F)<<1); //cC第2至8位为方向的1至7位
cB=0x01; //cB第1位空
cB=cB|((m_cSrcFloorHigh&0x7F)<<1); //cB第2至8位为高字节的1至7位
cA=m_cSrcFloorLow; //cA第1至8位为低字节的1至8位
}else{
if((m_RecData.cDirect==0)||(m_RecData.cDirect==1)){
cC=0x01; //cC第1位空
cC=cC|((m_cSrcDirect&0x7F)<<1); //cC第2至8位为方向的1至7位
cB=0x01; //cB第1位空
cB=cB|((m_cSrcFloorHigh&0x7F)<<1); //cB第2至8位为高字节的1至7位
cA=m_cSrcFloorLow; //cA第1至8位为低字节的1至8位
}else{
cC=0x0F; //cC第1至4位空
cC=cC|((m_cSrcFloorHigh&0x0F)<<4); //cC第5至8位为高字节的1至4位
cB=(m_cSrcFloorHigh&0xF0)>>4; //cB第1至4位为高字节的5至8位
cB=cB|((m_cSrcFloorLow&0x0F)<<4); //cB第5至8位为低字节的1至4位
cA=(m_cSrcFloorLow&0xF0)>>4; //cA第1至4位为低字节的5至8位
cA=cA|0xF0; //cA第5至8位空
}
}
}
}
PA377=cA;
PB377=cB;
PC377=cC;
if(m_cLockDarkFlg==1){ //变暗
cLoopCnt=80;
}else{ //不变暗
cLoopCnt=50;
}
for(j=0;j<=cLoopCnt;j++)
{_nop_();}
PA377=0xFF;
PB377=0xFF;
PC377=0xFF;
}
//取得字库索引
uchar getindex(uchar szText)
{
uchar ret=0;
switch(szText){
case '0': ret=0; break;
case '1': ret=1; break;
case '2': ret=2; break;
case '3': ret=3; break;
case '4': ret=4; break;
case '5': ret=5; break;
case '6': ret=6; break;
case '7': ret=7; break;
case '8': ret=8; break;
case '9': ret=9; break;
case 'B': ret=10; break;
case 'F': ret=11; break;
case '-': ret=12; break;
}
return ret;
}
// 16进制数字转换为ASCII
uchar __toascii(uchar c)
{
uchar ret;
if(c>9)
ret=0x37+c;
else
ret=0x30+c;
return ret;
}
void led(void) //can总线正在通讯状态和通讯错误状态显示灯赋值片断。
{
if((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x80)==0x80) //总线状态为关闭时
{P3_1=0;
P2_7=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
P2_7=1;
can_init();
}
if((XBYTE[((P2&0xe0)|0x0F)*256]&0x01)!=0x00) //总线状态为复位时
{P3_1=0;
P2_7=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
P2_7=1;
can_init();
}
if((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x40)==0x40) //错误寄存器为1时
{P3_1=0;
P2_7=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
P2_7=1;
can_init();
}
else
{P3_1=1;
}
if(((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x20)==0x20)||((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x10)==0x10))//正在发送或正在接收时
{P3_0=0;}
else
{P3_0=1;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -