资源简介
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+串口通讯
- 下一篇:元胞自动机实现交通流模拟
相关资源
- Tcl教程.pdf
- FileComp.rar
- Unity4.3Sourcecode
- elong75416_10583833.zip
- Solidworks2015_SP5.0.torrent
- ATmega2560_Library.SchLib
- SVPWM.zip
- 1306176648Sockets进行文件传输.zip
- PDFFactoryProversion4.05.Keygen.zip
- 文件校验工具MD5SHA1SHA210.2TOKYOHOT含源码
- CPrimer第5版_带书签_高清完整版.pdf.r
- 扫雷.rar
- CallTifftoy.rar
- mwkiim.doc
- 地址链接.txt
- Thief.rar
- TurboCodeDemo.rar
- MusicEncode.rar
- fft7.v
- cuda_8.0.61_win10.exe.txt
- diramisumy_2329847.rar
- uxibzj.rar
- M1卡初始化工具.rar
- 基于51单片机的智能窗帘系统全套资料
- 高级数据结构课设1.7z
- 网杀v7.2.exe
- 千锋教育微信小程序全套开发视频教
- 微信小程序小游戏教程视频代码.zip
- string.rar
- 北京理工大学模拟电子技术实验二-
评论
共有 条评论