• 大小: 0.14M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: 其他  

资源简介

sgu6qx.rar

资源截图

代码片段和文件信息

#include
#include
#define uchar unsigned char
uchar sumcostwaitmm1tempdistance;
uchar price[3]={10205};//白天,晚上和等待时间的价位 单位:角/KM
uchar table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
sbit sck=P3^6;
sbit sda=P3^7;

void delay()
{ ;; }

void delay1(uchar x)
{
uchar ab;
for(a=x;a>0;a--)
 for(b=100;b>0;b--);
}



void start()//24c02开始信号
{
sda=1;
delay();
sck=1;
delay();
sda=0;
delay();
}

void stop()   //停止
{
sda=0;
delay();
sck=1;
delay();
sda=1;
delay();
}

void ask()  //应答
{
uchar i;//等待一定时间
sck=1;
delay();
while((sda==1)&&(i<250))i++;
sck=0;
delay();
}

void write_byte(uchar date)//按字节写入数据
{
uchar itemp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
sck=0;
    delay();
sda=CY;//CY 进位标志位
delay();
sck=1;
delay();
}
sck=0;
delay();
sda=1;//释放总线
delay();
}

uchar read_byte()//读数据
{
uchar ik;
sck=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
sck=1;
delay();
k=(k<<1)|sda;//读取数据
sck=0;
delay();
}
return k;
}

void write_add(uchar addressuchar date)//在指定地址写入数据
{
start();
write_byte(0xa0);
ask();
write_byte(address);
ask();
write_byte(date);
ask();
stop();
}

uchar read_add(uchar address)//读指定地址的数据
{
uchar date;
start();
write_byte(0xa0);
ask();
write_byte(address);
ask();
start();
write_byte(0xa1);
ask();
date=read_byte();
stop();
return date;
}

void init()
{
sda=1;
delay();
sck=1;
delay();
sum=0;
// PX0=1;
TMOD=0x01;//T0设为定时模式,工作方式1
ET0=1;//允许计数器T0中断
// EX0=1;//允许外部中断0中断
IT0=1;//外部中断0为边沿触发方式
EA=1;//开总中断
TR0=0;//关闭定时器0
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cost=20;
distance=0;
}
uchar scan()//键盘扫描
{
uchar ki;
k=0;
i=P1;
if(i!=0xff)
{
delay1(5);
if(i!=0xff)
{
switch(i)
{
case 0xfe:k=1;break;
case 0xfd:k=2;break;
case 0xfb:k=3;break;
case 0xf7:k=4;break;
}
}
}
return k;
}

void disp(uchar cost1 )//显示单元
{
uchar ij;
i=cost1/10;
j=cost1%10;
P0=0xbf;
P2=table[i];
delay1(5);
P2=0x80;
delay1(5);
P0=0x7f;
P2=table[j];
delay1(5);

i=distance/10;
j=distance%10;
P0=0xdf;
P2=table[i];
delay1(5);
P0=0xef;
P2=table[j];
delay1(5);

i=price[m]/10;
j=price[m]%10;
P0=0xf7;
P2=table[i];
delay1(5);
P2=0x80;
delay1(5);
P0=0xfb;
P2=table[j];
delay1(5);
}

void main()
{
init();m=0;
while(1)
{
if(scan()!=0)
{
switch(scan())
{
case 1:TR0=1;break;
case 2:init();break;//复位
case 3:
if(m==0)
m=1;
else 
m=0;
break;//白天和黑夜单价的切换
case 4:TR0=0;break;//显示出总车费
}
}
if(IE0==1&&TR0==1)//没接收个脉冲,中断一次
{
IE0=0;
wait=0;//车一行走,等待时间清零
sum++;
if(sum>20)//计数一百次,每次十米,恰1KM
{
sum=0;
distance++;
cost=cost+price[m];
}
}
write_add(23cost);//将价格保存

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6057  2010-05-19 15:23  出租汽车里程计价表.OBJ

     文件       1048  2010-05-28 21:19  出租汽车里程计价表.Opt

     文件       1340  2010-05-28 21:19  出租汽车里程计价表.PWI

    .......      1050  2010-05-21 23:22  出租汽车里程计价表_Opt.Bak

    .......         0  2010-05-17 17:17  出租汽车里程计价表_Uv2.Bak

     文件     309428  2010-05-28 21:14  仿真图.jpg

     文件         72  2010-05-28 21:18  欢迎指正.txt

     文件        426  2010-05-17 17:15  24c02.LST

     文件     109265  2010-05-18 21:55  Last Loaded 出租汽车里程计价表.DBK

     文件       4064  2010-05-19 15:23  出租汽车里程计价表

    .......      3963  2010-05-19 15:19  出租汽车里程计价表.bak

     文件     117263  2010-05-19 15:35  出租汽车里程计价表.DSN

     文件          0  2010-05-28 21:14  出租汽车里程计价表.plg

     文件       1688  2010-05-17 17:48  出租汽车里程计价表.Uv2

     文件       3491  2010-05-19 15:23  出租汽车里程计价表.c

     文件       2248  2010-05-19 15:23  出租汽车里程计价表.hex

     文件         53  2010-05-19 15:23  出租汽车里程计价表.lnp

     文件       8241  2010-05-19 15:23  出租汽车里程计价表.LST

     文件      18686  2010-05-19 15:23  出租汽车里程计价表.M51

----------- ---------  ---------- -----  ----

               588383                    19


评论

共有 条评论