资源简介
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
- 上一篇:opencv+串口通讯
- 下一篇:元胞自动机实现交通流模拟
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论