//自分のドライブを追加
#include <ad.h>
の#define U8 unsigned char型
の#define U16 unsigned int型
U8 YI、ER、SAN、SI、ウー、劉、チー、BA。
U16コードドゥアン[] = {0x3fを、0x06,0x5b、0x4f、0x66,0x6d、0x7d、0x07の、
から0x7f、0x6f、0x77,0x7c、0x39,0x5e、0x79,0x71,0x00,0X40,0xbf}。
U16 shijian;
U8のdengliang、jidianqikai。
U16のchushuiliang。
ボイドDelay1ms()//@11.0592MHz
{
unsigned char型I、J。
の#define U8 unsigned char型
の#define U16 unsigned int型
U8 YI、ER、SAN、SI、ウー、劉、チー、BA。
U16コードドゥアン[] = {0x3fを、0x06,0x5b、0x4f、0x66,0x6d、0x7d、0x07の、
から0x7f、0x6f、0x77,0x7c、0x39,0x5e、0x79,0x71,0x00,0X40,0xbf}。
U16 shijian;
U8のdengliang、jidianqikai。
U16のchushuiliang。
ボイドDelay1ms()//@11.0592MHz
{
unsigned char型I、J。
_nop_()。
_nop_()。
_nop_()。
I = 11;
J = 190;
実行
{
一方(--j)。
}一方(--I)。
}
_nop_()。
_nop_()。
I = 11;
J = 190;
実行
{
一方(--j)。
}一方(--I)。
}
ボイドallinit()
{
P2 = 0x80を、
P0 = 0xFFで、
P2 = 0xA0を、
P0 = 0x00の;
}
)(表示を無効
{
P2 = 0xC0の、
P0 = 0x01で、
P2 = 0xFFで、
P0 =〜ドゥアン[イル];
Delay1ms() ;
P2 = 0xC0の、
P0 = 0x02の;
P2 = 0xFFで、
P0 =〜ドゥアン[ER];
Delay1ms();
P2 = 0xC0の、
P0 = 0x04を、
P2 = 0xFFで、
P0 =〜ドゥアン[サン];
Delay1ms();
P2 0xC0の=;
P0 = 0x08に、
P2 = 0xFFで、
P0 =〜ドゥアン[シリコン];
Delay1ms();
P2 = 0xC0の、
P0 = 0x10を、
P2 = 0xFFで、
P0 =〜ドゥアン[ウー];
Delay1ms()。
IF(jidianqikai == 1)
{
P2 = 0xC0の、
P0 = 0x20に、
P2 = 0xFFで、
P0 =〜ドゥアン[劉];
Delay1ms();
}
そうIF(jidianqikai == 0)
{
P2 = 0xC0の、
P0 = 0x20に、
0xFFの= P2;
P0 =〜(ドゥアン[劉] |は0x80);
Delay1ms();
}
P2 = 0xC0の、
P0 = 0x40の;
P2 = 0xFFで、
P0〜ドゥアン= [チー];
Delay1ms()。
{
P2 = 0x80を、
P0 = 0xFFで、
P2 = 0xA0を、
P0 = 0x00の;
}
)(表示を無効
{
P2 = 0xC0の、
P0 = 0x01で、
P2 = 0xFFで、
P0 =〜ドゥアン[イル];
Delay1ms() ;
P2 = 0xC0の、
P0 = 0x02の;
P2 = 0xFFで、
P0 =〜ドゥアン[ER];
Delay1ms();
P2 = 0xC0の、
P0 = 0x04を、
P2 = 0xFFで、
P0 =〜ドゥアン[サン];
Delay1ms();
P2 0xC0の=;
P0 = 0x08に、
P2 = 0xFFで、
P0 =〜ドゥアン[シリコン];
Delay1ms();
P2 = 0xC0の、
P0 = 0x10を、
P2 = 0xFFで、
P0 =〜ドゥアン[ウー];
Delay1ms()。
IF(jidianqikai == 1)
{
P2 = 0xC0の、
P0 = 0x20に、
P2 = 0xFFで、
P0 =〜ドゥアン[劉];
Delay1ms();
}
そうIF(jidianqikai == 0)
{
P2 = 0xC0の、
P0 = 0x20に、
0xFFの= P2;
P0 =〜(ドゥアン[劉] |は0x80);
Delay1ms();
}
P2 = 0xC0の、
P0 = 0x40の;
P2 = 0xFFで、
P0〜ドゥアン= [チー];
Delay1ms()。
P2 = 0xc0から。
P0 = 0x80を;
P2 = 0xFFを、
P0 =〜ドゥアン[BA]。
Delay1ms();
}
ボイドanjian()
{
U8 DAT = 0。
IF(P30 == 0)
{
Delay1ms()。
(P30 == 0)であれば
{
DAT = 1。
(P30 == 0)、一方、
}
}
もし(P31 == 0)
{
Delay1ms()。
(P31 == 0)であれば
{
DAT = 2。
(P31 == 0)、一方、
}
}
もし(P32 == 0)
{
Delay1ms()。
(P32 == 0)であれば
{
DAT = 3。
(P32 == 0)、一方、
}
}
IF(P33 == 0)
{
Delay1ms()。
(P33 == 0)であれば
{
DAT = 4。
(P33 == 0)、一方、
}
}
もし(DAT == 1 && jidianqikai == 0)
{
shijian = 0。
chushuiliang = 0;
}
(DAT == 1)であれば
{
TR0 = 1。
jidianqikai = 1。
}
IF(DAT == 2)
{
jidianqikai = 0。
}
}
U8再()
{
U8 DAT。
IIC_Start();
IIC_SendByte(0x90を)。
IIC_WaitAck();
IIC_SendByte(0×01)。
IIC_WaitAck();
IIC_Stop();
IIC_Start();
IIC_SendByte(0x91を)。
IIC_WaitAck();
DAT = IIC_RecByte()。
IIC_WaitAck();
IIC_Stop();
DATを返します。
}
ボイドguangmindianzu()
{
U8 DAT、
DAT =再();
IF(DAT <64)
{
P2 = 0x80を、
P0 = 0x7Fの;
P2 = 0x00で;
}
そうIF(DAT> = 64)
{
P2 = 0x80を、
P0 = 0xFFで;
P2 = 0x00の;
}
}
ボイドliushui()
{
イー16 =;
ER = 18であり、
サン= 5;
のSi = 0;
ウー= chushuiliang / 100;
リュー=%100/10をchushuiliang;
チー= chushuiliang 10%;
BA = 0;
}
ボイドfeiyong()
{
イー16 =;
ER = 18であり、
サン= 5;
のSi = 0;
ウー= chushuiliang 5 * / 1000。
= * 5%chushuiliang劉100分の1000;
チー= chushuiliang 5 * 100%/ 10;。
。BA = 10%* 5 chushuiliang;
}
{
U8 DAT、
DAT =再();
IF(DAT <64)
{
P2 = 0x80を、
P0 = 0x7Fの;
P2 = 0x00で;
}
そうIF(DAT> = 64)
{
P2 = 0x80を、
P0 = 0xFFで;
P2 = 0x00の;
}
}
ボイドliushui()
{
イー16 =;
ER = 18であり、
サン= 5;
のSi = 0;
ウー= chushuiliang / 100;
リュー=%100/10をchushuiliang;
チー= chushuiliang 10%;
BA = 0;
}
ボイドfeiyong()
{
イー16 =;
ER = 18であり、
サン= 5;
のSi = 0;
ウー= chushuiliang 5 * / 1000。
= * 5%chushuiliang劉100分の1000;
チー= chushuiliang 5 * 100%/ 10;。
。BA = 10%* 5 chushuiliang;
}
空Timer0Init(無効)//[email protected]
{
AUXR | = 0x80を; // ????? 1T?
TMOD&= 0xF0が、// ???????
TL0 = 0xCD。// ??????
TH0 =は0xD4; // ??????
TF0 = 0; // ?? TF0 ??
TR0 = 0;
ET0 = 1。
EA = 1。
// ??? 0 ????
}
{
AUXR | = 0x80を; // ????? 1T?
TMOD&= 0xF0が、// ???????
TL0 = 0xCD。// ??????
TH0 =は0xD4; // ??????
TF0 = 0; // ?? TF0 ??
TR0 = 0;
ET0 = 1。
EA = 1。
// ??? 0 ????
}
メインボイド()
{
Timer0Init();
allinit();
一方、(1)
{
guangmindianzu();
IF(jidianqikai == 1)
{
P2 = 0xA0を、
P0 = 0x10を、
P2 = 0x00で、
liushui();
}
そうIFを( == 0 jidianqikai)
{
TR0 = 0;
P2 = 0xA0を、
P0 = 0x00で、
P2 = 0×00;
()をfeiyong;
}
表示();
anjian();
}
}
ボイドding0()割り込み1。
{
TL0 = 0xCD; // ??????
TH0は=は0xD4;
Shijian ++;
IF(Shijian == 1000)
{
= 0 Shijian;
。chushuiliang + = 1;
}
IF(chushuiliang> 999)
{
jidianqikai = 0;
}
}