出租车计费仿真原理图+单片机源程序

发布者:泉地水无痕最新更新时间:2019-11-20 来源: 51hei关键字:出租车计费  仿真  单片机 手机看文章 扫描二维码
随时随地手机看文章

出租车计费仿真原理图如下

单片机源程序如下:

#include

#include


unsigned code num[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};

unsigned char data x_pos, y_pos;

sbit rs=P2^0;

sbit  rw=P2^1;

sbit  e=P2^2;


sbit Control=P3^5;

bit  swit_flg=0;


unsigned char time,minte,second;

unsigned char result;


void delay_ms(unsigned char ms)

{   unsigned int i,j;

    for(i=ms;i>0;i--)

        {

          for(j=200;j>0;j--);

          for(j=102;j>0;j--);

          }

}


void busy(void)

{

    unsigned char i;

        P0=0xff;

        rs=0;

        rw=1;

        e=1;

        for(i=0;i<20;i++)

           if((P0&0x80)==0) break;

        e=0;

}

void  LcdWD(unsigned char d)

{

    busy();

        rs=1;

        rw=0;

        P0=d;

        e=1;

        _nop_();        

        e=0;

}

void LcdWC(unsigned char c)

{

    busy();

        rs=0;

        rw=0;

        P0=c;

    e=1;

        _nop_();

        e=0;

}

void LcdInit(void)

{

    LcdWC(0x38);     //显示模式设置

        delay_ms(3);         //延时3ms

    LcdWC(0x38);

        delay_ms(3);

        LcdWC(0x38);

        delay_ms(3);

        LcdWC(0x38);

        delay_ms(3);


        LcdWC(0x08);   //显示关闭

        LcdWC(0x01);   //清屏        

        delay_ms(3);


        LcdWC(0x06);   //显示光标移动设置

        LcdWC(0x0c);   //开显示及   光标设置        

}


void charlcdpos(unsigned char x,unsigned char y)

{

    x_pos=x;

        y_pos=y;

        x_pos&=0x0f;

        y_pos&=0x01;


        if(y_pos==0)  LcdWC(x_pos|0x80);           //  写第一行命令

        else    LcdWC(x_pos|0xc0);                           //  写第二行命令

}


void putchar(unsigned char x,unsigned char y,unsigned char c)

{

    charlcdpos(x,y);

        LcdWD(c);

}

/*

void charcursornext(void)

{

    x_pos++;

        if(x_pos>15)

        {

           x_pos=0;

           y_pos++;

           y_pos&=0x1;

        }

}

  */ 

void  displayInit(void)

{  unsigned char tmp;



                    tmp=time/10;putchar(4,0,num[tmp]);

                        tmp=time%10;putchar(5,0,num[tmp]);        putchar(6,0,0x3a);


                        tmp=minte/10;putchar(7,0,num[tmp]);

                        tmp=minte%10;putchar(8,0,num[tmp]);        putchar(9,0,0x3a);


                        tmp=second/10;putchar(10,0,num[tmp]);

                        tmp=second%10;putchar(11,0,num[tmp]);


                        tmp=result/10; putchar(7,1,num[tmp]);

                        tmp=result%10;putchar(8,1,num[tmp]);

        

}

void IRS_EX0() interrupt 0 using 1

{

        if(swit_flg==0)

        {        time=0;

                minte=0;

                second=0;

                result=0;

                swit_flg=1;

                ET0=1;

                ET1=1;

                TR0=1;

            TR1=1;

        }

        else if(swit_flg==1)

        {        result=(minte*60+second)*2;

            swit_flg=0;

                ET0=0;

                ET1=0;


        }

}

void  IRS_T0() interrupt 1 using 2

{

        Control=1;

        TH0=0XD8;

        TL0=0XF0;

        Control=0;

}

void  ISR_T1() interrupt 3 using 2

{

        second++;

                if(second>=60)

                {        second=0;

                        minte++;

                }

                if(minte>=60)

                {        minte=0;

                        time++;

                }

                if(time>=24) time=0;

}

void init_TC()

{

        TMOD=0X61;

        TH0=0Xd8;  //

        TL0=0Xf0;

        TL1=0XbC;//TL1=0X9C;

        TH1=0XbC;

        //IE=0X8A;

        Control=0;

//   TR0=1;

//        TR1=1;

}

void init_EX0()

{

        IT0=1;

        EX0=1;

        EA=1;

}



void main()

{  unsigned char  tmp;


        LcdInit();

        displayInit();           

        delay_ms(100);


        init_TC();

        init_EX0();


        while(1)

        {

……………………



关键字:出租车计费  仿真  单片机 引用地址:出租车计费仿真原理图+单片机源程序

上一篇:单片机八层电梯控制系统 仿真图+源程序+电路原理图
下一篇:单片机舵机控制程序教程及proteus仿真原理图

推荐阅读最新更新时间:2024-11-05 13:08

STC单片机免断电下载程序的另一种更简单的方法
看到网上有一些STC单片机免断电下载程序的例子。但是都是要用串口中断来完成。以下是一个程序片断 拿来说明 在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序 TMOD|=0x20; SCON=0x50; TH1=0xfd; //12T时钟9600bps TL1=0xfd; TR1=1; ES=1; EA=1; AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps void uart(void) interrupt 4 { uchar cdd; if(RI) { RI=0; cdd=SBUF; if(cdd==0xaa) { ISP_
[单片机]
单片机的ROM与RAM
ROM:(Read Only Memory)程序存储器 在单片机中用来存储程序数据及常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。 RAM:(Random Access Memory)随机访问存储器 用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。 程序经过编译、汇编、链接后,生成hex文件。用专用的烧录软件,通过烧录器将hex文件烧录到R
[单片机]
三种型号单片机点亮一只发光二极管程序
/***************STC89C52RC*************/ #include reg52.h sbit LED=P1^0; void main() { LED=0; while(1); } /*******ATMEGA16A****************/ #include iom16v.h #include macros.h void main() { DDRA=0X01; PORTA&=BIT(PORTA7); while(1); } /*******PIC16F877**********************/ #include pic.h #define uint unsi
[单片机]
基于GM管和单片机实现环境γ剂量率测量仪的设计
此仪器为测量环境中γ放射性剂量率浓度的测量仪表,分成探头和主机两大部分:其中探头由高低量程GM计数管、计数单元和通讯单元组成;主机由通讯、处理单元、键盘、和显示部分组成。 1 探头原理 1.1 盖革-弥勒计数管原理 GM管原理见图1。盖革-弥勒计数管(GM管)也称气体放电计数器。一个密封玻璃管,中间是阳极用钨丝材料制作,玻璃管内壁涂一层导电物质,或是一个金属圆管作阴极,内部抽空充惰性气体(氖、氦)、卤族气体。特点是工作电压低。 当射线进入计数管后气体被电离,负离子由阳极吸引移向阳极时,离子又与其他气体分子碰撞后产生多个次级电子,快到阳极时次极电子急剧倍增产生雪崩现象。雪崩引起阳极整条线上雪崩,发生放电,放电后空间电子又被
[测试测量]
基于GM管和<font color='red'>单片机</font>实现环境γ剂量率测量仪的设计
基于加速度传感器MMA7260QT的自动摇篮的设计
  引言   照顾小宝宝是非常劳累的事情,因为他们醒来和睡觉都比较频繁,加之喂食换衣服等活动,会占用大人大量的时间和精力。摇篮的诞生在很大程度上减轻了大人的负担,但仍有很多不尽如人意的地方。利用动作(加速度)传感器和功能丰富的单片机,则可以设计出一种相对智能化的摇篮。   背景   现在市面上的电动摇篮仅有简单的定时功能,因此不能针对婴儿的活动发生动作,若摇篮一直摇动,对婴儿的安抚作用就会降低。采用声音触发的自动摇篮,缺点是婴儿先是活动,得不到安抚则会哭闹,摇篮才会启动进行安抚;另外如果因为别的原因哭闹,摇篮则不能起到安抚作用。所以根据婴儿的活动来启动摇篮是比较妥当的控制方式。飞思卡尔的加速度传感器性能优秀,成本较低,适合这
[安防电子]
基于加速度传感器MMA7260QT的自动摇篮的设计
单片机C语言程序设计:TIMER0与TIMER1控制条形LED
/* 名称: TIMER0 与 TIMER1 控制条形 LED 说明:定时器 T0 定时控制上一组条形 LED ,滚动速度较快 定时器 T1 定时控制下一组条形 LED ,滚动速度较慢 */ #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar tc0=0,tc1=0; // 主程序 void main() { P0=0xfe; P2=0xfe; TMOD=0x11; // 定时器
[电源管理]
<font color='red'>单片机</font>C语言程序设计:TIMER0与TIMER1控制条形LED
在远程控制中PIC系列单片机有什么应用?
本文介绍了一种用单片机控制的采用电话遥控的简易远程教学系统。它借助于现有的丰富的电话网络资源,具有结构简单,造价低廉,易于操作等特点,可以实现对录像机的各种远距离控制操作。非常适合于贫困地区的电化教育的普及与发展。 1 系统的总体结构 该电话遥控教学系统的总体结构如图1所示。 该系统由电话机、小型程控机、远程控制器和数台录像机、电视机组成,该系统既可以通过小型程控机构成一个局域的小系统,也可以利用电信网构成一个跨省市的远距离遥控系统。在该系统中,远程控制器的设计与制造是该系统的核心与关键。 2 远程控制器的结构及工作原理 该控制器的CPU采用美国Microchip公司生产的PIC16C54一次性用户可编程(OPT)单片
[单片机]
在远程控制中PIC系列<font color='red'>单片机</font>有什么应用?
GD32 MCU是如何进入中断函数的
用过GD32 MCU的小伙伴们都知道,程序是顺序执行的,但当有中断来的时候程序会跳转到中断函数,执行完中断函数后程序又继续回到原来的位置继续执行,那么你们知道MCU是如何找到中断函数入口的吗? 今天我们就以GD32F303系列的EXTI0中断来描述下MCU是如何进入中断的。 首先来看一个简单的代码(以Keil为开发环境): 这段程序初始化了两个LED灯,并将一个按键设置为中断模式,这里用的是PA0,所以中断号也为0,即EXTI0。 再来看一下中断函数: 中断函数也很简单,当有中断发生的时候,去翻转一个LED灯状态。 好,我们通过map文件看下这个中断函数的地址在哪里(不会的小伙伴可以看看前面的视频——《如果查看
[单片机]
GD32 <font color='red'>MCU</font>是如何进入中断函数的
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved