📄 ad9832.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define key_bus P0
sbit sdata=P2^0;
sbit sclk=P2^1;
sbit load=P2^2;
sbit ps=P2^3;
sbit fs0=P2^4;
sbit fs1=P2^5;
sbit loadp=P3^6;
void delay(uchar d)
{
while(--d);
}
uchar key()
{
uchar keycode=0xff,temp,i;
key_bus=0x0f;
temp=key_bus&0x0f;
if(temp!=0x0f) //有键按下
{
key_bus=0x7f;
for(i=0;i<4;i++)
{
temp=key_bus&0x0f;
if(temp==0x07)
{
keycode=i*4;
break;
}
else if(temp==0x0b)
{
keycode=i*4+1;
break;
}
else if(temp==0x0d)
{
keycode=i*4+2;
break;
}
else if(temp==0x0e)
{
keycode=i*4+3;
break;
}
key_bus=(key_bus>>1)|0x80;
}
while((key_bus&0x0f)!=0x0f) //等待释放
{
key_bus=0x0f;
}
}
return keycode;
}
void send_char(uint x)
{
uchar i;
load=0;
for(i=0;i<16;i++)
{
sclk=1;
if(x&0x8000)sdata=1;
else sdata=0;
sclk=0;
x=x<<1;
}
load=1;
}
main()
{
uchar ii;
uchar x[4]={0x0,0x2,0x00,0x00};
ps=0;
fs0=0;
fs1=0;
send_char(0xf800);
send_char(0x3000+x[3]);
send_char(0x2100+x[2]);
send_char(0x3200+x[1]);
send_char(0x2300+x[0]);
send_char(0xc000);
while(1)
{
ii=key();
if(ii!=0xff)
{
loadp=0;
P1=ii<<4+ii;
loadp=1;
delay(200);delay(200);delay(200);delay(200);
delay(200);delay(200);delay(200);
loadp=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -