普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2795|回复: 4

新手求助,定时器用不了

[复制链接]

1

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2021-3-19 11:17:38 | 显示全部楼层 |阅读模式
# include <reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;

u8 code LedChar[16] =
{
        0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07,
        0X7F, 0X6F, 0X77, 0X7C, 0X39, 0X5E, 0X79, 0X71
};

u8 LedBuff[8] =
{
        0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00
};

int main(void)
{
        u16 cnt = 0;
        u8 sec = 0;
        u8 i = 0;
       
        TMOD |= 0X01;
        TH0 = 0XD8;
        TL0 = 0XF0;
        TR0 = 1;
       
        while (1)
        {

                if(TF0 == 1)
                {
                        TF0 = 0;
                        TH0 = 0XD8;
                        TL0 = 0XF0;
                       
                        cnt++;
                       
                        if(cnt >= 100)
                        {
                                cnt = 0;
                                sec++;
                               
                                LedBuff[0] = LedChar[sec % 10];
                                LedBuff[1] = LedChar[sec/10 % 10];
                                LedBuff[2] = LedChar[sec/100 % 10];
                                LedBuff[3] = LedChar[sec/1000 % 10];
                                LedBuff[4] = LedChar[sec/10000 % 10];
                                LedBuff[5] = LedChar[sec/100000 % 10];
                                LedBuff[6] = LedChar[sec/1000000 % 10];
                                LedBuff[7] = LedChar[sec/10000000 % 10];
                        }
                       
                        switch (i)
                        {
                                case 0:
                                        LSA=0; LSB=0; LSC=0; i++; P0=LedBuff[0];
                                        break;
                                case 1:
                                        LSA=1; LSB=0; LSC=0; i++; P0=LedBuff[1];
                                        break;
                                case 2:
                                        LSA=0; LSB=1; LSC=0; i++; P0=LedBuff[2];
                                        break;
                                case 3:
                                        LSA=1; LSB=1; LSC=0; i++; P0=LedBuff[3];
                                        break;
                                case 4:
                                        LSA=0; LSB=0; LSC=1; i++; P0=LedBuff[4];
                                        break;
                                case 5:
                                        LSA=1; LSB=0; LSC=1; i++; P0=LedBuff[5];
                                        break;
                                case 6:
                                        LSA=0; LSB=1; LSC=1; i++; P0=LedBuff[6];
                                        break;
                                case 7:
                                        LSA=1; LSB=1; LSC=1; i=0; P0=LedBuff[7];
                                        break;
                        }       
                        P0 = 0X00;
                }
        }
}

把if(==)改成if(=),居然反而可以。。。。

回复

使用道具 举报

10

主题

44

帖子

278

积分

中级会员

Rank: 3Rank: 3

积分
278
发表于 2021-3-26 11:43:30 | 显示全部楼层
你只设置了定时器0  的中断   使用查询TF0 的状态的方式  总的中断都没有打开 你试试   打开总中断 EA= 1 看看 可以不
回复 支持 1 反对 0

使用道具 举报

0

主题

48

帖子

194

积分

注册会员

Rank: 2

积分
194
发表于 2021-3-26 09:20:28 | 显示全部楼层
这不废话吗, if(TF0=1) 是赋了值又判断,条件肯定是成立的
回复 支持 反对

使用道具 举报

1

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2021-3-28 13:09:49 | 显示全部楼层
hantu 发表于 2021-3-26 09:20
这不废话吗, if(TF0=1) 是赋了值又判断,条件肯定是成立的

这个我还是知道得,我是不懂为什么 == 会不成立
回复 支持 反对

使用道具 举报

3

主题

11

帖子

47

积分

新手上路

Rank: 1

积分
47
发表于 2021-3-29 01:31:07 | 显示全部楼层
测试了你的并没有发现错误,但是我没用进行仿真,可能是你的编译器出问题了。   不能把==改为=,这样虽然不报错,但是实现功能不对。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-25 12:09 , Processed in 0.092279 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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