欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)出租車(chē)計(jì)價(jià)器程序
[打印本頁(yè)]
作者:
gd123456
時(shí)間:
2023-11-13 12:38
標(biāo)題:
單片機(jī)出租車(chē)計(jì)價(jià)器程序
在本次設(shè)計(jì)中電路鍵盤(pán)用到了P1口,其中P1.0口到P1.3口作為鍵盤(pán)的輸入,顯示電路用到了P0口和P2口,P2口為液晶的數(shù)據(jù)口,P3.7口作為AD的輸入端。
單片機(jī)源程序如下:
#include <reg51.h>
#include <LCD1602.h>
#include "XPT2046.h"
#define uchar unsigned char
#define uint unsigned int
unsigned char Command,Speed;
sbit key_start =P3^1; //開(kāi)始/結(jié)束計(jì)價(jià)
sbit key_wait =P3^0; //等待
sbit key_set =P1^2; //設(shè)置
sbit key_dn =P3^2; //控制白天晚上
sbit key_fuwei =P3^3; //復(fù)位
/************************——變量定義***********************/
uint start_price=70; //起步價(jià)88
uint white_price=18; //白天的單價(jià) 超過(guò)3公里每公里6元66
uint black_price=20; //夜晚的單價(jià) 超過(guò)3公里每公里8元88
uint Wait_price=100; //等待價(jià)錢(qián)100
bit dnc=0; //白天晚上的轉(zhuǎn)換標(biāo)志
bit qiting; //起 停標(biāo)志位
uint price1,price2; //總價(jià)錢(qián)、等待價(jià)錢(qián)
uint mil; //里程數(shù)
uint mil2;
uchar shi,fen,miao;
uchar moshi,moshi2,ms,set_f; //模式mos=0初始界面,=1改價(jià)頁(yè)面,=2等待頁(yè)面
//set_f設(shè)置標(biāo)志=1設(shè)置初始,=2設(shè)置等待價(jià),=3設(shè)置晚上單價(jià),=4設(shè)置白天單價(jià)
void delay(uchar ms) //延時(shí)函數(shù)
{
uchar j;
while(ms--)
{
for(j=0;j<130;j++);
}
}
void key() //按鍵函數(shù)
{
if(key_dn==0)
{
delay(5); //延時(shí)去抖
if(key_dn==0)
{
while(!key_dn);
dnc=~dnc;
}
}
if(key_start==0)
{
delay(5);
if(key_start==0)
{
while(!key_start); //檢測(cè)按鍵是否松開(kāi)
qiting=~qiting; //起 停 轉(zhuǎn)換
if(qiting==0)
{
moshi=0;
}
TR0=qiting; //定時(shí)器0打開(kāi)/關(guān)閉
set_f=0;
}
}
if(key_fuwei==0) //復(fù)位
{
delay(5);
if(key_fuwei==0)
{
while(!key_fuwei);
miao=0;fen=0;shi=0;
price1=0;price2=0; mil=0;moshi=0;
}
}
if(key_wait==0)
{
delay(5);
if(key_wait==0)
{
while(!key_wait);
miao=0;fen=0;shi=0;
moshi=2;
}
}
if(qiting==0) //結(jié)束計(jì)價(jià)后才能設(shè)置
{
if(key_set==0)
{
delay(5);
if(key_set==0)
{
while(!key_set);
set_f++;
moshi=1;
if(set_f==5){moshi=0;set_f=0;}
}
}
}
}
void xianshi()
{
if(moshi!=moshi2)
{
lcd_wcmd(0x01); //清顯示屏
moshi2=moshi;
}
if(moshi==0)
{
lcd_wcmd(0x80);
lcd_data('N');
lcd_data('J');
lcd_data(':');
lcd_data(ASCII[black_price%1000/100]);
lcd_data(ASCII[black_price%100/10]);
lcd_data('.');
lcd_data(ASCII[black_price%10]);
// lcd_wcmd(0x80);
// lcd_data('D');
// lcd_data('J');
// lcd_data(':');
// lcd_data(ASCII[white_price%1000/100]);
// lcd_data(ASCII[white_price%100/10]);
// lcd_data('.');
// lcd_data(ASCII[white_price%10]);
// lcd_data('Y');
mil=XPT2046_ReadAD(XPT2046_XP);
lcd_data('G');
lcd_data(':');
lcd_data(ASCII[mil%1000/100]);
lcd_data(ASCII[mil%100/10]);
lcd_data('.');
lcd_data(ASCII[mil%10]);
lcd_data('K');
lcd_data('M');
lcd_wcmd(0x80+0x40);
lcd_data('D');
lcd_data('J');
lcd_data(':');
lcd_data(ASCII[white_price%1000/100]);
lcd_data(ASCII[white_price%100/10]);
lcd_data('.');
lcd_data(ASCII[white_price%10]);
lcd_data('Y');
lcd_data('Y');
lcd_data('Q');
lcd_data(':');
lcd_data(ASCII[price1%1000/100]);
lcd_data(ASCII[price1%100/10]);
lcd_data('.');
lcd_data(ASCII[price1%10]);
lcd_data('O');
lcd_data('Y');
}
if(moshi==1) //改價(jià)頁(yè)面
{
lcd_wcmd(0x80);
lcd_data('S');
lcd_data('J');
lcd_data(ASCII[start_price%1000/100]);
lcd_data(ASCII[start_price%100/10]);
lcd_data('.');
lcd_data(ASCII[start_price%10]);
lcd_data('Y');
lcd_data(' ');
lcd_data('P');
lcd_data('T');
lcd_data(ASCII[Wait_price%1000/100]);
lcd_data(ASCII[Wait_price%100/10]);
lcd_data('.');
lcd_data(ASCII[Wait_price%10]);
lcd_data('Y');
lcd_wcmd(0x80+0x40);
lcd_data('N');
lcd_data('J');
lcd_data(ASCII[black_price%1000/100]);
lcd_data(ASCII[black_price%100/10]);
lcd_data('.');
lcd_data(ASCII[black_price%10]);
lcd_data('Y');
lcd_data(' ');
lcd_data('D');
lcd_data('J');
lcd_data(ASCII[white_price%1000/100]);
lcd_data(ASCII[white_price%100/10]);
lcd_data('.');
lcd_data(ASCII[white_price%10]);
lcd_data('Y');
}
if(moshi==2) //等待頁(yè)面
{
lcd_wcmd(0x80);
lcd_data('W');
lcd_data('a');
lcd_data('i');
lcd_data('t');
lcd_data(':');
lcd_data(' ');
lcd_data(' ');
lcd_data(ASCII[shi%100/10]);
lcd_data(ASCII[shi%10]);
lcd_data(':');
lcd_data(ASCII[fen%100/10]);
lcd_data(ASCII[fen%10]);
lcd_data(':');
lcd_data(ASCII[miao%100/10]);
lcd_data(ASCII[miao%10]);
lcd_wcmd(0x80+0x40);
lcd_data('D');
lcd_data('D');
lcd_data('M');
lcd_data(':');
// lcd_data(ASCII[(white_price/2)%100/10]);
lcd_data(ASCII[price2%1000/100]);
lcd_data(ASCII[price2%100/10]);
lcd_data('.');
lcd_data(ASCII[price2%10]);
//lcd_data(ASCII[(white_price/2)%10]);
lcd_data(' ');
lcd_data('Y');
}
}
void jiaqianjisuan() //計(jì)算價(jià)錢(qián)
{
if(dnc==0) //白天價(jià)錢(qián)
{
if(mil>25)
{
price1=(white_price*(((mil-25)/10)+1));
price1=price1+start_price+price2;
}
else
price1=start_price+price2;
}
else //晚上價(jià)錢(qián)
{
if(mil>25)
{
price1=(black_price*(((mil-25)/10)+1));
price1=price1+start_price+price2;
}
else
price1=start_price+price2;
}
}
void T0_init() //定時(shí)器0初始化
{
EA=1; //開(kāi)總中斷
ET0=1; //定時(shí)器T0中斷允許
TMOD=0x01; //使用定時(shí)器T0的模式1
TH0=(65536-50000)/256; //定時(shí)器T0的高8位賦初值
TL0=(65536-50000)%256; //定時(shí)器T0的低8位賦初值
TR0=0; //關(guān)閉定時(shí)器0
EX0=1; //外部中斷0允許位
IT0=1; //下降沿觸發(fā)外部中斷
}
void main()
{
lcd_init(); //LCD1602初始化
T0_init(); //定時(shí)器0初始化
while(1) //死循環(huán)
{
jiaqianjisuan();
key(); //按鍵檢測(cè)處理
xianshi();
}
}
void timer0() interrupt 1 //定時(shí)器0中斷函數(shù)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256; //定50ms
ms++;
if(ms>=20)
{
ms=0;
miao++;
if(moshi==0)
{
if(miao>=3)
{
moshi=2;
miao=0;
}
}
if(moshi==2)
{
if(miao>=60)
{
miao=0;
fen++;
if(fen>=60)
{
fen=0;
shi++;
}
if(moshi==2){if(fen>=1)price2=fen*50; }
}
}
}
}
void inn0() interrupt 0 //外部中斷0中斷子函數(shù)
{
if(qiting==1)
{
mil2++;
if(moshi==2) moshi=0;
if(moshi==0) miao=0;
if(mil2==10)
{
mil2=0;
mil++;
}
}
}
復(fù)制代碼
原理圖: 無(wú)
仿真: 無(wú)
代碼:
程序.7z
(728.2 KB, 下載次數(shù): 4)
2023-11-15 23:11 上傳
點(diǎn)擊文件名下載附件
1
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1