📄 keil.c
字号:
/******************************************************************/
/* 广州天河双龙电子有限公司 */
/* http://www.sl.com.cn */
/* SL279 键盘与LED显示控制芯片演示程序(Keil 51版本) */
/* 程序作者:詹卫前 */
/* 接线方式:CS=P2.4 CLK=P2.3 DATA=P2.2 KEY=P2.1 */
/* 处理器:AT89C51 晶振频率:8MHZ */
/* SL279 晶振频率:12MHZ */
/******************************************************************/
#include<at89x51.h>
sbit cs=P2^4;
sbit clk=P2^3;
sbit dat=P2^2;
sbit key=P2^1;
/* 90us延时程序 */
void delay_90us(void)
{
unsigned char i;
for (i=0;i<18;i++)
;
}
/* 10us延时程序 */
void delay_10us(void)
{
unsigned char i;
for (i=0;i<1;i++)
;
}
/* ms级延时程序 */
void delay_ms(unsigned int number)
{
unsigned char i;
do
{
for(i=0;i<11;i++)
delay_90us();
}
while(--number!=0);
}
/* 字节发送函数 */
void send_byte( unsigned char para)
{
unsigned char i;
cs=0;
delay_90us();
for (i=0;i<8;i++)
{
if (para&0x80)
{
dat=1;
}
else
{
dat=0;
}
clk=1;
delay_10us();
clk=0;
delay_10us();
para=para<<1;
}
dat=0;
clk=0;
}
/* 字节接收函数 */
unsigned char receive_byte(void)
{
unsigned char i, temp;
dat=1;
delay_90us();
for (i=0;i<8;i++)
{
clk=1;
delay_10us();
temp=temp<<1;
if (dat)
{
temp=temp|0x01;
}
clk=0;
delay_10us();
}
dat=0;
return (temp);
}
/* 写sl279双字节命令 */
void write279(unsigned char cmd1, unsigned char cmd2)
{
send_byte (cmd1);
send_byte (cmd2);
cs=1;
}
void test1(unsigned char cmd)
{
send_byte(cmd);
cs=1;
delay_ms(3000);
}
/*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -