电路原理图如下:
单片机源程序如下:
/*************************************************************
多功能出租车计价系统
补充说明:
***************************************************************/
#include
#include
#include
#include
#include
#include
/*****************灯、蜂鸣器、按键引脚定义*******************/
sbit led =P3^0; //红色LED灯
sbit led2 =P3^1; //绿色LED灯
sbit key_start =P1^0; //开始/结束计价
sbit key_Wait =P1^1; //电机开始/结束
sbit key_set =P1^2; //设置
sbit key_jia =P1^3; //加值
sbit key_jian =P1^4; //减值
/************************变量定义***********************/
uint start_price; //起步价
uint white_price; //白天单价
uint white_Wait; //白天等待超10分钟后每分钟价钱。
bit start; //开始计价标志,=0非计价模式,=1计价模式
double price1; //应收总价钱(带小数)
uint mil,Wait,price2; //里程数、等待时间、总价
uchar set_f; //设置选择标记,=0未设置,=1设置起步价,=2设置白天公里价,=3设置时,=4设置分,=5设置秒
bit strat_f; //初始界面显示标志,=0显示初始界面,=1可能计价、设置、总价显示
uchar num; //循环计数变量
bit moto_f=0; //电机控制标志,=0关闭电机,1打开电机
/********************************************************
函数名称:void baojia()
函数作用:乘坐结束进行报价
参数说明:
********************************************************/
void baojia()
{
uint temp;
SC_Speech(1); //先播放一次空的内容,防止语音混乱
//以下里程播报
SC_Speech(55); //播放【本次】
SC_Speech(56); //播放【行程】
if(mil>=1000) //里程【大于100KM】
{
SC_Speech(10+mil/1000); //播放 里程的百位
SC_Speech(21); //播放【百】
}
if(mil>=100) //里程【大于10KM】
{
if(mil%1000/100!=0) //如果 里程十位 不为0
{
if(mil<1000&&mil%1000/100==1);//只有十几的时候不用报【一】
else
SC_Speech(10+mil%1000/100);//播放 里程的十位
SC_Speech(20); //播放【十】
}
else //否则 里程十位 为0
{
if(mil%100/10!=0) //如果 里程个位 不为0
SC_Speech(10); //播放【零】
}
}
if(mil>=10) //里程【大于1KM】
{
if(mil%100/10!=0) //如果 里程个位 不为0
SC_Speech(10+mil%100/10); //播放 里程的个位
}
else
SC_Speech(10); //播放【零】
if(mil%10!=0) //如果 里程小数 不为0
{
SC_Speech(24); //播放【点】
SC_Speech(10+mil%10); //播放 里程的小数位
}
SC_Speech(4); //播放【千米】
//以下价格播报
temp=price2/10;
SC_Speech(58); //播放【共计】
if(temp>=1000) //总价【大于100元】
{
SC_Speech(10+temp/1000); //播放 总价的百位
SC_Speech(21); //播放【百】
}
if(temp>=100) //总价【大于10元】
{
if(temp%1000/100!=0) //如果 总价十位 不为0
{
if(temp<1000&&temp%1000/100==1);//只有十几的时候不用报【一】
else
SC_Speech(10+temp%1000/100);//播放 总价的十位
SC_Speech(20);
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』