单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4|回复: 0
收起左侧

简易车辆里程表单片机程序

[复制链接]
w903593579 发表于 2019-11-10 15:13 | 显示全部楼层 |阅读模式
#define distance_led P1//用P1口控制LED来显示距离
uint distance_km;    //记录车辆走过的距离

unsigned char code table1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1-5的字形码
unsigned char code table2[]={0x76,0x79,0x38,0x38,0x3f};//HELLO的字形码
unsigned char code table3[]={0xfe,0xfd,0xfb,0xf7,0xef};//位选码

void timer0isr(void) interrupt 1 using 1
{
    distance_km++;
    if(distance_km > 9999)
    {
        distance_km = 9999;
    }
}

void main(void)
{
    unsigned char DivData[4]={1000,100,10,1};
    uchar i,a;
    TMOD = 0x06;  //设定T/C0工作在计数器,工作方式2
    distance_led = 0xff;         // LED灯初始状态处于熄灭状态
    distance_km = 0;
    TH0 = 0xFB;
    TL0 = 0xFB;     //装载计数初值
    EA = 1;         //开总中断
    ET0 = 1;     //开T/C0中断
    TR0 = 1;     //启动T/C0

    while(1)
    {
        for(i=0;i<4;i++)
        {
            P2=0xff;//清屏信号,必须使用
            P0=table1[(distance_km/DivData[ i])%10];
            P2=table3[ i];//对位选信号查表
            for(a=248;a>0;a--);//字形显示延时,可调节
        }
    }
}
51hei图片20191031213528.png

车辆里程表.zip

111.27 KB, 下载次数: 0, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表