?? 7289.c
字號:
#include "reg52.h"
sbit KEY = P3^3;
sbit CS = P3^1;
sbit CLK = P3^0;
sbit DIO= P3^2;
void DisPlay(KeyValue, char all);
void Delay(int time)
{
do
{
int j;
for(j=0; j<5; j++)
;
} while (--time);
}
/*發(fā)送指令或數(shù)據(jù)到7289*/
void SendCmd(unsigned char cmd)
{
unsigned char BitCnt = 8;
CS = 0;
Delay(50);
while(BitCnt--)
{
DIO = cmd >> 7;
cmd<<=1;
CLK = 1;
Delay(10);
CLK = 0;
Delay(10);
}
DIO = 0;
}
/*接受Key值從7289*/
unsigned char Receive()
{
unsigned char BitCnt = 8;
unsigned char rec = 0;
DIO = 1;
CS = 0;
Delay(50);
while(BitCnt--)
{
CLK = 1;
Delay(10);
rec= (rec<<1)|DIO;
CLK=0;
Delay(10);
}
DIO = 0;
return rec;
}
/*等待Key按下,如果按下,接受Key值*/
unsigned char FindKey(NewKey)
{
unsigned char KeyValue;
KEY = 1;
Delay(50);
while(KEY)
{
;
}
SendCmd(0x15);
KeyValue = Receive();
CS=1;
return KeyValue ;
}
/*如果all=1, 8個數(shù)碼 管一起顯示KeyValue,否則根據(jù)位數(shù)顯示*/
void DisPlay(KeyValue, char all)
{
unsigned char LedValue;
unsigned char ledsel = 0x87;
int i;
if(!all)
SendCmd(0xA4);
for(i=0; i<8;i++)
{
LedValue = KeyValue%10;
SendCmd(ledsel-i);
SendCmd(LedValue);
CS = 1;
KeyValue/=10;
if((!all) && (KeyValue ==0))
break;
}
}
/*on=1 Led 閃,否則on=0,不閃*/
void LedShine(int on)
{
SendCmd(0x88);
if(on)
SendCmd(0x0);
else
SendCmd(0xff);
CS = 1;
}
/*Led左移一位*/
void LedLsl()
{
SendCmd(0xA0);
CS = 1;
}
void main(void)
{ unsigned char KeyValue,NewKey;
int i;
CS = 1;
KEY = 1;
DIO = 1;
Delay(10);
SendCmd(0xA4);
Delay(10);
DisPlay(0, 1);
Delay(5000);
DisPlay(8, 0);
for(i=0; i<8; i++)
{
Delay(3000);
LedLsl();
}
while(1)
{
KeyValue = FindKey(NewKey);
DisPlay(KeyValue,0);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -