关于stc89c52中断问题。写了个程序,大家看是哪的问题

2019-03-24 18:23发布

题目:利用定时器ti产生定时时钟,由P1口控制8个发光二极管,使八个指示灯依次一个一个闪动,闪动频率为10次每秒(8个灯依次亮一遍为一个周期),循环。我写的程序是这样的,大家看下是什么问题(频率可能不对):
#include<reg52.h>
#include <intrins.h>
#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++;
       
}
谢谢了。我做出的结果跟题目要求不一样。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
sjtitr
1楼-- · 2019-03-25 00:55
 精彩回答 2  元偷偷看……
Li_Lei
2楼-- · 2019-03-25 06:20
        while(1)
         {
                 P1=0xff;

                 
         }
这段会战满P1状态.
ienglgge
3楼-- · 2019-03-25 07:47
P1=0xff;后加延时,再看temp的值得变化是否正确
早死早超生
4楼-- · 2019-03-25 09:46
 精彩回答 2  元偷偷看……
早死早超生
5楼-- · 2019-03-25 14:50
huo_hu 发表于 2014-4-11 19:33
while(1)
         {
                 P1=0xff;

在沾满的时候不是有中断吗?就去执行中断了吧?中断的时候就移位亮灯了吧?
早死早超生
6楼-- · 2019-03-25 16:52
sjtitr 发表于 2014-4-11 18:55
乍一看你的程序,小灯可能根本就不会闪。要么全灭,要么全亮。额,好像是全灭。

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

灯也会移位,只不过移位之后前面的所有灯都不会灭

一周热门 更多>