单片机出租车计价器程序及原理图[优质内容].doc

上传人:rrsccc 文档编号:9706583 上传时间:2021-03-18 格式:DOC 页数:11 大小:296KB
返回 下载 相关 举报
单片机出租车计价器程序及原理图[优质内容].doc_第1页
第1页 / 共11页
单片机出租车计价器程序及原理图[优质内容].doc_第2页
第2页 / 共11页
单片机出租车计价器程序及原理图[优质内容].doc_第3页
第3页 / 共11页
单片机出租车计价器程序及原理图[优质内容].doc_第4页
第4页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机出租车计价器程序及原理图[优质内容].doc》由会员分享,可在线阅读,更多相关《单片机出租车计价器程序及原理图[优质内容].doc(11页珍藏版)》请在三一文库上搜索。

1、#include #include #define uint unsigned int#define uchar unsigned char#defineDISPON0x3f/显示开#defineDISPOFF0x3e/显示关#defineFIRSTROW0xc0/显示起始行设置1 1 L5 L4 L3 L2 L1 L0,在0到63行间选择#defineSETY0xb8/Y方向,8页64行,1 0 1 1 1 P2 P1 P0,0到8页选择#defineSETX0x40 /X方向,半屏64列,0 1 C5 C4 C3 C2 C1 C0 ,0到63列选择/*P2+P0口16位编址,有效位是P2.

2、3P2.0,无关位用“1”表示P2.0-RS,P2.1-RW,P2.2-CS2,P2.3-CS1右屏命令和数据读写编址 CS2 CS1 RW RS*/ #defineLLCD_CMD_WRXBYTE0xf4ff/0 1 0 0#defineLLCD_DAT_WRXBYTE0xf5ff/0 1 0 1#defineLLCD_CMD_RDXBYTE0xf6ff/0 1 1 0#defineLLCD_DAT_RDXBYTE0xf7ff/0 1 1 1/*左屏命令和数据读写编址*/#defineRLCD_CMD_WRXBYTE0xf8ff/1 0 0 0#defineRLCD_DAT_WRXBYTE0

3、xf9ff/1 0 0 1#defineRLCD_CMD_RDXBYTE0xfaff/1 0 1 0#defineRLCD_DAT_RDXBYTE0xfbff/1 0 1 1/*数据坐标记录*左-路程:整数部分 x=9,y=1,小数部分 x=31,y=1左-路程费用:整数部分 x=9,y=3,小数部分 x=31,y=3总费用:整数部分-左:x=45,y=5路程单价:x=34,y=7右-时间:整数部分 x=20,y=1右-时间费用:整数部分 x=10,y=3,小数部分 x=32,y=3总费用:小数部分-右:x=2,y=5时间单价:x=44,y=7*/#defineL_Mile_X_Z9#defi

4、neL_Mile_X_D30#defineL_Mile_Y1 #defineL_Cost_X_Z9#defineL_Cost_X_D30#defineL_Cost_Y3#defineL_Total_X45#defineL_Total_Y5#defineL_Unit_X34#defineL_Unit_Y7#defineR_Time_X20#defineR_Time_Y1#defineR_Cost_X_Z10#defineR_Cost_X_D31#defineR_Cost_Y3#defineR_Total_X2#defineR_Total_Y5#defineR_Unit_X44#defineR_U

5、nit_Y7sbitLED=P27 ;sbitSTART=P10;sbitSTOP=P11;sbitCLEAR=P12;sbitMUINT_UP=P14;sbitMUINT_D=P15;sbitTUINT_UP=P16;sbitTUINT_D=P17;ucharMile_Unit=4,Time_Unit=2;longtime_cost,time_cost_Z,time_cost_D,time_con_s,time_con_m;longmile_cost,mile_cost_Z,mile_cost_D,mile_con_m,mile_con_km;longspeed_con,speed_con_

6、m,speed,speed_flag,cost_flag;longtotal_z=5,total_d;code char shu106=0x3E,0x41,0x41,0x41,0x3E,0x00, /00x00,0x42,0x7F,0x40,0x00,0x00, /10x42,0x61,0x51,0x49,0x46,0x00, /20x22,0x41,0x49,0x49,0x36,0x00, /30x38,0x24,0x22,0x7F,0x20,0x00, /40x27,0x45,0x45,0x45,0x39,0x00, /50x3E,0x45,0x45,0x45,0x38,0x00, /60

7、x01,0x01,0x79,0x05,0x03,0x00, /70x36,0x49,0x49,0x49,0x36,0x00, /80x0E,0x51,0x51,0x51,0x3E,0x00, /9;/*初始化界面*/code uchar logo=0xFF,0x07,0x03,0xE1,0x11,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0

8、x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x11,0xE1,0x03,0x07,0xFF,0xFF,0x07,0x03,0xE1,0x11,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0

9、x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x11,0xE1,0x03,0x07,0xFF,0xFE,0x00,0x00,0xFF,0x00,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

10、xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x10,0x28,0x44,0x82,0x00,0xF8,0x08,0xF8,0x08,0xF8,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

11、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x04,0xF8,0x04,0xFE,0x00,0xF4,0x00,0xF8,0x08,0xF8,0x08,0xF8,0x00,0xFF,0x00,0x00,0xFE,0xFE,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0

12、x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x80,0x40,0x00,0x00,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

13、x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x80,0x40,0x00,0x00,0x00,0xFF,0x00,0x00,0xFE,0xFE,0x00,0x00,0xFF,0x00,0xFC,0x78,0x30,0x00,0x00,0x00,0

14、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x13,0x7E,0x13,0x12,0x12,0x00,0x00,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFC,0x78,0

15、x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x13,0x7E,0x13,0x12,0x12,0x00,0x00,0x00,0xFF,0x00,0x00,0xFE,0xFE,0x00,0x00,0

16、x01,0x02,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0xC5,0x24,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x12,0x11,0x10,0x10,0

17、x1F,0x1F,0x10,0x10,0x11,0x12,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x14,0x15,0x25,0xC5,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0

18、x02,0x01,0x00,0x00,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

19、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x4A,0x4C,0xF8,0x4C,0x4A,0x49,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

20、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0

21、x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0xFC,0xFC,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x04,0x04,0x04,0x04,0x02,0x01,0x00,0x00,0x00,0

22、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xE0,0xC0,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x9E,0xA0,0x20,0x9E,0x80,0xBC,0x82,0x82,0xBC,0x80,0x3D,0x80,0x84,0x9E,0xA4,0xA4,0x80,0xB6,0x36,0x80,0x80,0x00,0x00,0x00,0x00,0

23、x00,0x00,0x30,0x30,0x00,0x3E,0x41,0x41,0x41,0x3E,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0xC0,0xE0,0xFF,0xFF,0xE0,0xC0,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x9E,0xA0,0x20,0x9E,0x80,0xBC,0x82,0x82,0xBC,0x80,0x3D,0x80,0x84,0x9E,0xA4,0xA4,0x80,0xB6,0x36,0x80,0x80,0

24、x3E,0x41,0x41,0x41,0x3E,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0xC0,0xE0,0xFE,; /*写命令*/void lcd_cmd_wr(uchar cmdcode,uchar right)if(right)RLCD_CMD_WR=cmdcode;elseLLCD_CMD_WR=cmdcode;/*写数据*/void lcd_data_wr(uchar dispdata,uchar right)i

25、f(right)RLCD_DAT_WR=dispdata;elseLLCD_DAT_WR=dispdata;/*数据清屏*/void lcd_clr(void)uchar i,j;for(i=0;i8;i+)lcd_cmd_wr(SETY+i,0);lcd_cmd_wr(SETX,0);lcd_cmd_wr(SETY+i,1);lcd_cmd_wr(SETX,1);for(j=0;j64;j+)lcd_data_wr(0,0);lcd_data_wr(0,1);/*写一个数字*/void lcd_shu_wr(uchar w,uchar x,uchar y,uchar shu_1)uchar

26、i;lcd_cmd_wr(SETY+y,w);lcd_cmd_wr(SETX+x,w);for(i=0;i6;i+)lcd_data_wr(shushu_1i,w);/*写一个三个数字*/ void lcd_sanshu_wr(uchar w,uchar x,uchar y,uint str) uint bai,shi,ge;bai=str/100;shi=(str%100)/10;ge=str%10;lcd_shu_wr(w,x,y,bai);lcd_shu_wr(w,x+6,y,shi);lcd_shu_wr(w,x+12,y,ge); /*写一贞128X64点的图片显示*/void lc

27、d_bmp_wr(uchar *bmp)uchar i,j;for(i=0;i8;i+)lcd_cmd_wr(SETY+i,0);lcd_cmd_wr(SETX,0);lcd_cmd_wr(SETY+i,1);lcd_cmd_wr(SETX,1);for(j=0;j0;y-)for(x=113;x0;x-);/*LCD初始化*/void lcd_init(void)lcd_cmd_wr(DISPON,0);lcd_cmd_wr(FIRSTROW,0);lcd_cmd_wr(SETY,0);lcd_cmd_wr(SETX,0);lcd_cmd_wr(DISPON,1);lcd_cmd_wr(FI

28、RSTROW,1);lcd_cmd_wr(SETY,1);lcd_cmd_wr(SETX,1);lcd_clr();DelayNms(500);lcd_bmp_wr(logo);/welcome_init();/*初始化中断,定时器等*/void interrput_init()IT0=1;/外部中断0触发方式:边沿触发EX0=1;/开外部中断0ET0=1;/开定时器中断0ET1=1;/开定时器中断1/EA=1;/开部中断TMOD=0x11;/00010001TH0=(65535-50000)/256;TL0=(65535-50000)%256;TR0=1;TH1=(65535-50000)/

29、256;TL1=(65535-50000)%256;TR1=0;/*显示数据*/void display()lcd_sanshu_wr(0,L_Mile_X_Z,L_Mile_Y,mile_con_km); /写行驶路程lcd_sanshu_wr(0,L_Mile_X_D,L_Mile_Y,mile_con_m); lcd_sanshu_wr(0,L_Cost_X_Z,L_Cost_Y,mile_cost_Z); /写路程费用lcd_sanshu_wr(0,L_Cost_X_D,L_Cost_Y,mile_cost_D);lcd_sanshu_wr(0,L_Total_X,L_Total_Y,

30、total_z);/写总费用整数部分lcd_shu_wr(0,L_Unit_X,L_Unit_Y,Mile_Unit);/写路程单价lcd_sanshu_wr(1,R_Time_X,R_Time_Y,time_con_m); /写行驶时间lcd_sanshu_wr(1,R_Cost_X_Z,R_Cost_Y,time_cost_Z); /写时间费用lcd_shu_wr(1,R_Cost_X_D,R_Cost_Y,time_cost_D);lcd_sanshu_wr(1,R_Total_X,R_Total_Y,total_d);/写总费用小数部分lcd_shu_wr(1,R_Unit_X,R_U

31、nit_Y,Time_Unit);/写时间单价/*键盘输入*/void keyboard()P1=0xff;if(P1!=0xff)DelayNms(1);if(P1!=0xff)if(!START)EA=1;if(!STOP)EA=0;if(!CLEAR)mile_con_km=0;mile_con_m=0;mile_cost_Z=0;mile_cost_D=0;total_z=5;time_con_m=0;time_cost_Z=0;time_cost_D=0;total_d=0;display();if(!MUINT_UP)Mile_Unit+;while(!MUINT_UP);lcd_

32、shu_wr(0,L_Unit_X,L_Unit_Y,Mile_Unit);/写路程单价if(!MUINT_D)Mile_Unit-;while(!MUINT_D);lcd_shu_wr(0,L_Unit_X,L_Unit_Y,Mile_Unit);/写路程单价if(!TUINT_UP)Time_Unit+;while(!TUINT_UP);lcd_shu_wr(1,R_Unit_X,R_Unit_Y,Time_Unit);/写时间单价if(!TUINT_D)Time_Unit-;while(!TUINT_D);lcd_shu_wr(1,R_Unit_X,R_Unit_Y,Time_Unit)

33、;/写时间单价/*测速*/void testspeed()if(speed=18)speed_flag=1;TR1=0;elsespeed_flag=0;TR1=1;/*主函数*/void main()lcd_init();interrput_init();display();while(1) keyboard();testspeed();/*外部中断0服务程序测所走过的路程,并且测车速*/void Int0() interrupt 0LED=!LED;speed_con_m+;if(speed_flag)mile_con_m+;if(mile_con_m=1000)mile_con_m=0;

34、mile_con_km+;if(mile_con_km=1)cost_flag=1;/*定时器0中断服务程序 测速计时器*/void timer0() interrupt 1TH0=(65535-50000)/256;/50msTL0=(65535-50000)%256;speed_con+;if(speed_con%5=0) /0.25s测速一次speed=speed_con_m*2;speed_con_m=0;if(speed_con=20) /1s刷新显示一次speed_con=0;if(cost_flag)mile_cost_D=(mile_con_m*Mile_Unit)%1000;

35、 /计算路费用mile_cost_Z=(mile_con_km-1)*Mile_Unit;mile_cost_Z=mile_cost_Z+(mile_con_m*Mile_Unit)/1000;total_z=mile_cost_Z+time_cost_Z; /计算总费用total_z+=5;total_d=mile_cost_D+time_cost_D*100;total_z=total_z+total_d/1000;total_d=total_d%1000; display();/*定时器1中断服务程序按时间计费计时器*/void timer1() interrupt 3TH1=(65535-50000)/256; /50ms计时TL1=(65535-50000)%256;time_con_s+;if(time_con_s=1200) /一分钟time_con_s=0;time_con_m+;time_cost=time_con_m*Time_Unit;/计算时间费用time_cost_Z=time_cost/10;time_cost_D=time_cost%10;11图表b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1