找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1308|回复: 2
打印 上一主题 下一主题
收起左侧

脉冲这个怎么调试.是在哪里啊

[复制链接]
跳转到指定楼层
楼主
ID:939264 发表于 2021-6-17 14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include        <reg51.h>
#define uchar unsigned char
#define  uint unsigned int
sbit        RESET                =        P3^7;
int                Price                =        70,        Mileage                =        0;
uchar        count                =        0;
uchar code tab_d[10]                =        {0x3F,        0X06,        0X5B,        0X4F,        0X66,        0X6D,        0X7D,        0X07,        0X7F,        0X6F};
uchar code tab_wei[8]                ={0x7f,        0xbf,        0xdf,        0xef,        0xf7,        0xfb,        0xfd,        0xfe};

//????ms
void        delay(uint t)
{
        uchar                i                =        0;
        while(t--)
                for        (i;        i<120;        i++);
}

//???????
/*
  ????:
   d : ???????
         x : ????????(0x80 ?? 0??
   w :?????
*/
void        disp(uchar d,        uchar x,        uchar w)
{
        P2                =        0XFF;
        P2                =        tab_wei[w];
        P0                =        0;
        P0                =        tab_d[d]        | x;
        delay        (100);
}

//????
void        refresh()
{
        disp(Mileage%10,        0,        0);//??
        disp(Mileage/10%10,        0x80,        1);       
        if        (Mileage >= 100)               
                        disp(Mileage/100%10,        0,        2);               
        if        (Mileage >= 1000)               
                        disp(Mileage/1000%10,        0,        3);       
        disp(Price%10,        0,        4);
        disp(Price/10%10,        0x80,        5);       
        if        (Price        >= 100)
                disp(Price/100%10,        0,        6);
        if        (Price        >=        1000)
                disp(Price/1000%10,        0,        7);
}
void timer1        ()        interrupt 1
{
        count++;
        Mileage +=        1;
        if(        count        ==        5)
        {
                count        =        0;
                if        (Mileage        >        30)
                                Price +=10;
                }
}

//?????
void init()
{
        P0                        =        0;
        P2                        =        0XFF;
        TMOD                =        0X0E;   //???????
        IT0                        =        1;                  //????       
        TH0                        =        255;                //1?????
        TL0                        =        255;
        TR0                        =        1;
        IE                        =        0X82;
}

void        judgeReset()
{
        if(RESET        ==        0)
        {
                Price                =        70;
                Mileage        =        0;
        }
}
void        main()
{
                init        ();                //?????
                while        (1)
                {
                        judgeReset        ();
                        refresh                        ();
                        }                       
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:328014 发表于 2021-6-17 14:57 | 只看该作者
你是不是要调整定时器的时间,你改这里即可 void timer1        ()        interrupt 1
回复

使用道具 举报

板凳
ID:939264 发表于 2021-6-17 15:05 | 只看该作者
51hei团团 发表于 2021-6-17 14:57
你是不是要调整定时器的时间,你改这里即可 void timer1        ()        interrupt 1

就是脉冲一次为一公里怎么改
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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