51单片机的出租车计价器C51程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机的出租车计价器C51程序
已通过模拟测试
#include;
unsigned char
cir_num,pwm_mach,temp,distance,wait_time,price,di stance;
unsigned int a,t;
sbit pwm_mach=P1^0;
sbit key_clean=P3^0;//定义按键位置
sbit key_stop=P3^1;
sbit key_cheak=P3^2;
sbit key_oneway=P3^3;
sbit key_doubleway=P3^4;
unsigned char code
led_buf[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x0 7,0x7F,0x6F};
unsigned char code seg[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮
/************初始化定时器0******************/ void init_timer0()
{
TMOD=0x01;
TH0=0x3C;
TL0=0xAF;//定时50MS
EA=1;
ET0=1;
TR0=1;
}
/************初始化定时器1******************/ void init_timer1()
{
TMOD=0x10;
TH0=0x00;
TL0=0x00;
EA=1;
ET1=1;
TR1=1;
}
/************初始化定时器2******************/ void init_timer2()
{
RCAP2H = (65536-50000)/256;// 50ms 自动重载 RCAP2L = (65536-50000)%256;
ET2=1;
EA=1;
TR2=1;
}
/************定时器0中断******************/ void Timer0_isr(void) interrupt 1 using 1 {
TH0=0x3C;
TL0=0xAF;
if(a==20)//定时1s
{a=0;
if( cir_num