📄 16311.c
字号:
#include "define.h"
#include "global.h"
#include <regX52.H>
#include <intrins.h>
void _16311_DISPLAY(uchar ADDRESS,uint _DATA);
void _16311_DA_send(uchar _16311_value,_COMMEND);
extern void Initial_16311(void);
bit BZ_key;
uchar KEY_value;
//---------------发送数剧-----------
void _16311_DA_send(uchar _16311_value,_COMMEND)
{
uchar i;
_16311_ST=0;
for(i=0;i<8;i++)
{
_16311_CK=0;
if(_16311_value & 0x01) //从低位开始
_16311_DA=1;
else _16311_DA=0;
_16311_value>>=1;
_nop_();
_nop_();
_nop_();
_16311_CK=1;
_nop_();
_nop_();
_nop_();
}
if((_COMMEND==1) || (_COMMEND==2) || (_COMMEND==4) || (COMMEND==5))
_16311_ST=1;
else if(_COMMEND==3)
_16311_ST=0;
}
//--------------接收数剧-------------------
uchar _16311_DA_read(void)
{
uchar i;
uchar _value=0;
_nop_();
_nop_();
_nop_();
for(i=1;i<=8;i++)
{
_16311_CK=0;
_nop_();
_nop_();
_nop_();
_16311_CK=1;
_nop_();
_nop_();
_nop_();
_value>>=1;
_nop_();
_nop_();
_nop_();
if(_16311_DA==1)
_value=_value | 0x80;
}
return _value;
}
//--------------------接收按键数剧-------------------
//--此函数通过KEY_value变量与BZ_key变量与外界联系。
//---KEY_value为键值,BZ_key有按键按下的标志变量(用来判断是面板按键还是遥控器按键),
void _16311_read_key(void)
{
uchar i,r,f,TEMP_KEY_VALUE[6];
static uchar _key_temp;
//---------------------------------------------------------------------------
_16311_DA_send(0x42,3); //使能按键扫描(连扫).后面的3代表最
//后不发送高电平ST信号,直接读取键值.
_16311_DA=1;
for(i=0;i<6;i++)
{
TEMP_KEY_VALUE[i]=_16311_DA_read();
if(TEMP_KEY_VALUE[i]>0x00) //continue;
{
f=i;
r=(f<<4)|f;
KEY_value=TEMP_KEY_VALUE[i]+r;
if(_key_temp==KEY_value) { BZ_key=0; _16311_ST=1; return; }//果上一次的键值与此次一样就返回。
else { _key_temp=KEY_value; BZ_key=1; _16311_ST=1; return; }
}
else if(i<=5){continue;}
else {_16311_ST=1; BZ_key=0;return;}
}
}
//--------------------发送显示数据--------------------
void _16311_DISPLAY(uchar ADDRESS,uint _DA)
{
uchar Add,y;
_16311_DA_send(0x40,2);//设置为自动地址.
Add=(0xC0 | ADDRESS); //0XC0代表是地址指令,指令与地址加在一起后做为整条指令发送。
_16311_DA_send(Add,3); //发送地址命令模式。
_16311_DA_send(_DA,3); //发送数据
_16311_DA_send(_DA>>8,5);
_16311_DA_send(0x0C,1); //初始化命令1:15段13位。
_16311_DA_send(0x8F,4);//开显示
for(y=0;y<120;y++)
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -