出租车计价器课程设计(5)

2019-05-24 10:30

附录1 程序清单 #include

//调用单片机头文件

#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535

uchar miao,fen = 0,shi;

uchar flag_bai_hei; //白天的晚上的标志位 uchar value;

uint bai_3l_price = 60; //白天3千米内的单价 6元 uint bai_3w_price = 18; //白天3千米外的单价/千米

uint wan_3l_price = 70; //晚上3千米内的单价/千米 uint wan_3w_price = 22; //晚上3千米外的单价/千米

uint distance = 0; //行使的距离 uint zong_jia; //总的价 bit flag_300ms = 0; bit flag_1s ;

bit flag_time_en = 0;

#include \

/***********************1ms延时函数*****************************/ void delay_1ms(uint q) { }

#include \

20

1.8元

uint bai_wait_price = 5; //白天等待时的单价/分钟 0.5元

7元 2.2元

uint wan_wait_price = 10; //晚上等待时的单价/分钟 1元

uint i,j; for(i=0;i

for(j=0;j<120;j++);

void write_iic_data() { }

/****************自动初始化保存的数据*******************/ void zidong_chushifa_iic() { }

/****************读出来保存的数据**********************/ void read_iic_data() {

value = read_24c02(200); value = read_24c02(200); if(value != 0x91) { }

delay_1ms(300);

value = 0x91; write_iic_data();

write_24c02(200,value); //保存数据

//新的单片机初始单片机内问EEPOM

write_24c02(0,flag_bai_hei);

write_24c02(1,bai_3l_price % 256); //保存数据 write_24c02(2,bai_3l_price / 256); //保存数据

write_24c02(3,bai_3w_price % 256); //保存数据 write_24c02(4,bai_3w_price / 256); //保存数据 write_24c02(5,bai_wait_price % 256); //保存数据 write_24c02(6,bai_wait_price / 256); //保存数据 write_24c02(7,wan_3l_price % 256); //保存数据 write_24c02(8,wan_3l_price / 256); //保存数据

write_24c02(9,wan_3w_price % 256); //保存数据 write_24c02(10,wan_3w_price / 256); //保存数据 write_24c02(11,wan_wait_price % 256); //保存数据 write_24c02(12,wan_wait_price / 256); //保存数据

21

}

flag_bai_hei = read_24c02(0); bai_3l_price = read_24c02(2);

bai_3l_price = bai_3l_price * 256 + read_24c02(1); bai_3w_price = read_24c02(4);

bai_3w_price = bai_3w_price * 256 + read_24c02(3); bai_wait_price = read_24c02(6);

bai_wait_price = bai_wait_price * 256 + read_24c02(5); wan_3l_price = read_24c02(8);

wan_3l_price = wan_3l_price * 256 + read_24c02(7); wan_3w_price = read_24c02(10);

wan_3w_price = wan_3w_price * 256 + read_24c02(9); wan_wait_price = read_24c02(12);

wan_wait_price = wan_wait_price * 256 + read_24c02(11);

/****************独立按键处理函数************************/

#define key_io P2 uchar key_can;

void key() {

static uchar key_new = 0,key_old = 0,key_value = 0; key_io |= 0x3f; if(key_new == 0) {

if((key_io & 0x3f) == 0x3f) {

key_value ++; key_value = 0;

//按键松开松手检测

else

if(key_value >= 5)

//按键松开

22

}

}

}

key_value = 0;

key_new = 1; //按键松开后进入等待按键状态

else { }

key_can = 20;

if((key_new == 0) && (key_old == 1)) {

switch(key_io & 0x3f) { }

write_sfm2(2,0,key_can); //按键按下显示按键值

case 0x3e: key_can = 1; break; //得到按键值 case 0x3d: key_can = 2; break; //得到按键值 case 0x3b: key_can = 3; break; //得到按键值 case 0x37: key_can = 4; break; //得到按键值 case 0x1f: key_can = 5; break; //得到按键值 case 0x2f: key_can = 6; break; //得到按键值 if((key_io & 0x3f) != 0x3f) //按键按下 { }

key_value = 0;

key_new = 0; //按键松开后进入等待松开按键状态 key_value ++; key_value =0;

//按键按下消抖

else

if(key_value >= 5)

//

}

key_old = key_new;

#include \

23

/*********************对应菜单内的处理函数******************/ void menu_dis() {

if(menu_1 == 0) {

if(key_can == 6) { }

if(key_can == 5) { }

if(key_can == 2) { }

if(flag_300ms == 1) {

flag_300ms = 0;

if(distance <= 30)//3公里内的价格 {

if(flag_bai_hei == 0) {

if(fen <= 3)

zong_jia = bai_3l_price;

flag_time_en = ~flag_time_en; flag_time_en = 0; shi = 0; fen = 0; miao = 0; zong_jia = 0; distance = 0;

//清零 从新计价

distance ++;

write_sfm4(1,0,distance);

24


出租车计价器课程设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:语言文字会议记录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: