|
100黑幣
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned charuchar code table[]="0123456789.vAmA" ;
uint i,j;
sbit ST=P2^0;
sbit EOC=P2^1;
sbit OE=P2^2;
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit x1=P2^4;
sbit x2=P2^5;
sbit x3=P2^6;
sbit E=P1^5;
sbit RS=P1^4;
sbit RW=P1^3; bit busy_flag = 0;
RS = 0;
RW = 1;
E = 1;
Delay(5);
busy_flag = (bit)(P3 & 0x80);
E = 0;
return busy_flag;
}
void wcmd(uchar del)
{
while(Busy());
RS = 0;
RW = 0;
E = 0;
Delay(5);
P3 = del;
Delay(5);
E = 1;
Delay(5);
E = 0;
}
void wdata(uchar del)
{
while(Busy());
RS = 1;
RW = 0;
E = 0; Delay(5);
wcmd(0x38);
Delay(5);
wcmd(0x38);
Delay(5);
wcmd(0x38);
wcmd(0x08);
wcmd(0x0c);
wcmd(0x04);
wcmd(0x01);
}
void L1602_char(uchar hang,uchar lie,char sign)
{
uchar a;
if(hang == 1) a = 0x80;
if(hang == 2) a = 0xc0;
a = a + lie - 1;
wcmd(a);
wdata(sign);
}
void main()
{
uint a1,a2,a3,a4;
uchar add;
while(1)
{
ST=0; {
Delay(10);
if(k2==0)
{
if(x1==0)
{
Delay(10);
if(x1==0)
{
a1=(add*20)/1000;
a2=(add*20)%1000/100;
a3=(add*20)%100/10;
a4=(add*20)%10;
L1602_char(2,7,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,8,table[a2]);
L1602_char(2,9,table[a3]);
}
}
}
if(x2==0)
{
a1=(add*10)/1000;
a2=(add*10)%1000/100;
a3=(add*10)%100/10;
a4=(add*10)%10;
L1602_char(2,8,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,7,table[a2]);
L1602_char(2,9,table[a3]);
}
} L1602_char(2,8,table[a2]);
L1602_char(2,9,table[a3]);
L1602_char(2,10,table[a4]);
}
if(x2==0)
{
a1=add/5/1000;
a2=add/5%1000/100;
a3=add/5%100/10;
a4=add/5%10;
L1602_char(2,7,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,8,table[a2]);
L1602_char(2,9,table[a3]);
}
if(x3==0)
{
a1=add/50/1000;
a2=add/50%1000/100;
a3=add/50%100/10;
a4=add/50%10;
L1602_char(2,7,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,8,table[a2]);
L1602_char(2,9,table[a3]);
L1602_char(2,10,table[a4]);
}
}
if(k1==0)
{
if(x1==0)
{
a1=add*2/5/1000;
a2=add*2/5%1000/100; a1=(add*4)/1000;
a2=(add*4)%1000/100;
a3=(add*4)%100/10;
a4=(add*4)%10;
L1602_char(2,7,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,8,table[a2]);
L1602_char(2,9,table[a3]);
}
if(x3==0)
{
a1=(add*80)/1000;
a2=(add*80)%1000/100;
a3=(add*80)%100/10;
a4=(add*80)%10;
L1602_char(2,9,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,7,table[a2]);
L1602_char(2,8,table[a3]);
L1602_char(2,10,table[a4]);
}
}
}
}
a3=(add*2/5)%100/10;
a4=(add*2/5)%10;
L1602_char(2,8,table[10]);
L1602_char(2,6,table[a1]);
L1602_char(2,7,table[a2]);
L1602_char(2,9,table[a3]);
}
if(x2==0)
{
if(k3==0)
{
if(x1==0)
{
a1=(add*2)/1000;
a2=(add*2)%1000/100;
a3=(add*2)%100/10;
a4=(add*2)%10;
L1602_char(2,7,table[10]);
L1602_char(2,6,table[a1]);
OE=0;
P0=0xff;
ST=1;
_nop_(); _nop_(); _nop_();
ST=0;
_nop_(); _nop_(); _nop_(); _nop_();
while(EOC==0);
OE=1;add=P0;
_nop_();
OE=0;
Delay(30);
L1602_init();
if(k2==0)
Delay(5);
P3 = del;
Delay(5);
E = 1;
Delay(5);
E = 0;
}
void L1602_init(void)
{
wcmd(0x38);
void delay()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
void Delay(uint i)
{
uint x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
bit Busy(void)
{
|
-
-
DMM.zip
2019-5-3 13:57 上傳
點擊文件名下載附件
34.7 KB, 下載次數: 12
|