出租车计价器设计与制作
[09-11 23:01:40] 来源:http://www.88dzw.com 单片机学习 阅读:8780次
文章摘要: } } } return k;}//---数码管动态扫描-void led_show(){unsigned char i,k; //-显示单价 k=cost_val[state_val]; i=k%10; //暂存个位 P0=led_seg_code[i]; P2=0xbf; delay(10); i=k%100/10; P0=led_seg_code[i]; P2=0x7f; delay(10); //-显示距离-- k=cnt_distance; i=k%10; //暂存个位 P0=l
出租车计价器设计与制作,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com}
}
}
return k;
}
//-------数码管动态扫描-------------
void led_show()
{unsigned char i,k;
//-----显示单价----
k=cost_val[state_val];
i=k%10; //暂存个位
P0=led_seg_code[i];
P2=0xbf;
delay(10);
i=k%100/10;
P0=led_seg_code[i];
P2=0x7f;
delay(10);
//-----显示距离------
k=cnt_distance;
i=k%10; //暂存个位
P0=led_seg_code[i];
P2=0xf7;
delay(10);
i=k%100/10;
P0=led_seg_code[i];
P2=0xef;
delay(10);
//-----显示总价格-----------
k=cnt_cost;
i=k%10; //暂存个位
P0=led_seg_code[i];
P2=0xfe;
delay(10);
i=k%100/10;
P0=led_seg_code[i];
P2=0xfd;
delay(10);
}
//-------计时----------------
void timer1() interrupt 3 //T1中断
{ T1_cnt++;
if(T1_cnt>3999) //如果计数>3999, 计时1s
{ T1_cnt=0;
if(cnt_30<30) //没有超过30秒,继续计时
{cnt_30++;}
else //超过30秒,途中等待计价
{cnt_30=0;
cnt_cost=cnt_cost+cost_val[2];}
}
}
//---------主程序----------------
main()
{//初始化各变量
T1_cnt=0;
state_val=0;
key_val_old=255;
init_variant();
//初始化51的寄存器
TMOD=0x20; //用T1计时 8位自动装载定时模式,不用T0
TH1=0x19; //250微秒溢出一次; 250=(256-x)*12/11.0592 -> x= 230.4
TL1=0x19;
EA=1; //开中断
ET1=1;
TR1=0; //定时器T0
TCON=0x01; //Int0中断取边沿触发模式
while(1)
{ key_val=scan_key(); // 255;//
if (key_val!=key_val_old)
{ key_val_old=key_val;
if (key_val!=255)
{ switch (key_val)
{ case 0: //启动键
TR1=1; //启动计时,TR1=1为启动了的标志
break;
case 1: //清除键
init_variant(); //清除变量
TR1=0; //关闭定时器
break;
case 2: //白天/黑夜的切换
if(state_val==0)
Tag:单片机学习,单片机开发,单片机原理,单片机教程,单片机学习
《出租车计价器设计与制作》相关文章
- › 基于μPD78F0034单片机的出租车计费器的设计与实现
- › 出租车计价器设计与制作
- › 出租车计价器VHDL程序与仿真
- › 出租车计价器VHDL程序
- 在百度中搜索相关文章:出租车计价器设计与制作
- 在谷歌中搜索相关文章:出租车计价器设计与制作
- 在soso中搜索相关文章:出租车计价器设计与制作
- 在搜狗中搜索相关文章:出租车计价器设计与制作
分类导航
最新更新