出租车计价器(5)

2019-08-29 20:12

南昌航空大学《单片机与接口技术》课程设计

//显示的辅助程序,分离一个数的各个数字

void fenli(uint temp) //数据的分离处理 { if(temp>9999) temp=0; qianwei=temp/1000; baiwei=temp/100; shiwei=temp/10; gewei=temp; }

//延时约1ms,数码管显示时使用 void diplay_delay() {

uchar i;

for(i=0;i<240;i++); }

//显示程序; void led_show() { //-----显示路程或者等待时间---- if(key1_flag) fenli(distance); else { fenli(wait); } wela=1; P0=0xfe; wela=0; dula=1; P0=led_seg_code[qianwei]; delay(1); dula=0; wela=1; P0=0xfd; wela=0; dula=1; P0=led_seg_code[baiwei]; //如果是路程,点亮小数点儿 delay(1); dula=0; wela=1;

21

南昌航空大学《单片机与接口技术》课程设计

P0=0xfb; wela=0; dula=1;

if(key1_flag)P0=led_seg_code[shiwei]; else P0=led_seg_code[shiwei]|0x80; delay(1); dula=0; wela=1; P0=0xf7; wela=0; dula=1;

P0=led_seg_code[gewei]; delay(1); dula=0;

//-----显示价格---- fenli(cost); wela=1; P0=0xef; wela=0; dula=1;

P0=led_seg_code[qianwei]; delay(1); dula=0; wela=1; P0=0xdf; wela=0; dula=1;

P0=led_seg_code[baiwei]; delay(1); dula=0; wela=1; P0=0xbf; wela=0; dula=1;

P0=led_seg_code[shiwei]|0x80; delay(1); dula=0; wela=1; P0=0x7f; wela=0; dula=1;

P0=led_seg_code[gewei]; delay(1);

22

南昌航空大学《单片机与接口技术》课程设计

dula=0; }

//键盘的扫描 void keyscan()

{ if(key1==0) // 按键消抖并判断按下去的次数为基数还是偶数 { delay(5); if(key1==0) key1_flag=!key1_flag; } if(key0==0) // 清零 { delay(5); if(key0==0) initial_data(); } /* if(key3==0) // 暂停 { delay(5); if(key3==0) { //key3_flag=!key3_flag; zanting(); } }*/ zanting(); if(key2==0) // 单程还是往返 { delay(5);

if(key2==0) key2_flag=!key2_flag; } if(key4==0) { delay(5); if(key4==0) key4_flag=!key4_flag; } if(key5==0) { delay(5); if(key5==0)

23

南昌航空大学《单片机与接口技术》课程设计

key5_flag=!key5_flag; } //指示等扫描 led1=!key2_flag; // 指示,单程还是往返,灯低电平点亮; 往返亮; led2=key3_flag; // 指示,暂停时亮; led3=flag; // 指示是否等待; led4=key1_flag; //切换指示,显示路程还是等待时间; diplay_delay(); }

//定时器初始化 void initial_time() { TMOD=0x15; TH0=(65535-50)/256; TL0=(65535-50)%6; TH1=(65535-10000)/256; TL1=(65535-10000)%6; IE=0x8a; IT0=1; //外部边沿触发方式 TR0=1; IT1=1; TR1=1; }

// 中断记录脉冲数

//********* 定时器 ********

void time0() interrupt 1 //定时0 计数 { TH0=(65535-50)/256; //50次 TL0=(65535-50)%6; tt++; }

void time1() interrupt 3 { TH1=(65535-20000)/256; TL1=(65535-20000)%6; a++; a++; b++; if(b>=1) {

24

南昌航空大学《单片机与接口技术》课程设计

b=0; clk=~clk; } if(a>=100) { a=0; second++; if(second>=60) { second=0; minute++; } } }

//主程序 void main(void) {

initial_data(); initial_time(); while(1) {

keyscan(); jisuan(); led_show(); } }

//初始化数据 //初始化定时器 //扫描显示 25


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

下一篇:黄冈市房屋中介公司名录2018版207家 - 图文

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

马上注册会员

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