2664|11

18

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于stc89c52中断问题。写了个程序,大家看是哪的问题 [复制链接]

题目:利用定时器ti产生定时时钟,由P1口控制8个发光二极管,使八个指示灯依次一个一个闪动,闪动频率为10次每秒(8个灯依次亮一遍为一个周期),循环。我写的程序是这样的,大家看下是什么问题(频率可能不对):
#include
#include
#define uchar unsigned char
#define uint unsigned int;
uint tt;
uint temp;
void main()
{
        temp=0xfe;
        TMOD=0x10;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET1=1;
        TR1=1;
       
       
       

        while(1)
        {
                P1=0xff;

               
        }
}
void flash() interrupt 3
{
       
        P1=temp;
        if(tt%10==0)
        {
               
                temp=_irol_(temp,2);
                tt=0;
        }
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        tt++;
       
}
谢谢了。我做出的结果跟题目要求不一样。
此帖出自51单片机论坛

最新回复

        TMOD=0x10;         TH0=(65536-50000)/256;         TL0=(65536-50000)%256;         EA=1;         ET1=1;         TR1=1; T0?  T1?  详情 回复 发表于 2014-4-15 11:04
点赞 关注
 

回复
举报

603

帖子

1

TA的资源

纯净的硅(中级)

沙发
 
本帖最后由 sjtitr 于 2014-4-11 18:56 编辑

乍一看你的程序,小灯可能根本就不会闪。要么全灭,要么全亮。额,好像是全灭。

没仔细看,也许说的不对。
此帖出自51单片机论坛

点评

灯也会移位,只不过移位之后前面的所有灯都不会灭  详情 回复 发表于 2014-4-11 20:00
 
 
 

回复

4008

帖子

0

TA的资源

版主

板凳
 
        while(1)
         {
                 P1=0xff;

                 
         }
这段会战满P1状态.
此帖出自51单片机论坛

点评

在沾满的时候不是有中断吗?就去执行中断了吧?中断的时候就移位亮灯了吧?  详情 回复 发表于 2014-4-11 20:00
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

4
 
P1=0xff;后加延时,再看temp的值得变化是否正确
此帖出自51单片机论坛

点评

while的时候不是会有定时器中断吗?中断的时候就进行移位了,还需要延时?  详情 回复 发表于 2014-4-11 19:58
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

5
 
ienglgge 发表于 2014-4-11 19:39
P1=0xff;后加延时,再看temp的值得变化是否正确

while的时候不是会有定时器中断吗?中断的时候就进行移位了,还需要延时?
此帖出自51单片机论坛

点评

你不停的写 P1=0xff; 进入中断移位后,退出中断。P1又被你改回去了。  详情 回复 发表于 2014-4-11 20:19
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

6
 
huo_hu 发表于 2014-4-11 19:33
while(1)
         {
                 P1=0xff;

在沾满的时候不是有中断吗?就去执行中断了吧?中断的时候就移位亮灯了吧?
此帖出自51单片机论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

7
 
sjtitr 发表于 2014-4-11 18:55
乍一看你的程序,小灯可能根本就不会闪。要么全灭,要么全亮。额,好像是全灭。

没仔细看,也许说的不对 ...

灯也会移位,只不过移位之后前面的所有灯都不会灭
此帖出自51单片机论坛
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

8
 
早死早超生 发表于 2014-4-11 19:58
while的时候不是会有定时器中断吗?中断的时候就进行移位了,还需要延时?

你不停的写 P1=0xff;
进入中断移位后,退出中断。P1又被你改回去了。
此帖出自51单片机论坛

点评

我要做的是闪的。是我太粗心了,那个定时器写错了,还是谢谢你  详情 回复 发表于 2014-4-11 20:55
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
你给TH0 TL0赋值是定时器0  但是你打开的是TR1定时器1   把前面改为TH1 TL1 试试看  
此帖出自51单片机论坛

点评

是这样的谢谢啊,我是刚刚学习,好多地方不够完善,以后还得多多学习,积累经验,谢谢你啊  详情 回复 发表于 2014-4-11 20:54
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

10
 
ccc00 发表于 2014-4-11 20:20
你给TH0 TL0赋值是定时器0  但是你打开的是TR1定时器1   把前面改为TH1 TL1 试试看

是这样的谢谢啊,我是刚刚学习,好多地方不够完善,以后还得多多学习,积累经验,谢谢你啊
此帖出自51单片机论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

11
 
ienglgge 发表于 2014-4-11 20:19
你不停的写 P1=0xff;
进入中断移位后,退出中断。P1又被你改回去了。

我要做的是闪的。是我太粗心了,那个定时器写错了,还是谢谢你
此帖出自51单片机论坛
 
 
 

回复

173

帖子

0

TA的资源

纯净的硅(初级)

12
 
        TMOD=0x10;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET1=1;
        TR1=1;

T0?  T1?
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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