久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5435|回復: 11
打印 上一主題 下一主題
收起左側

STC15W408AS 89C52單片機定時器2的中斷問題

[復制鏈接]
跳轉到指定樓層
樓主
按照配置寫定時器2中斷程序,但是就是不行???是哪里出問題了嗎?????#include "reg52.h"
#include "intrins.h"

sfr AUXR  = 0x8e;
sfr T2H   = 0xd6;
sfr T2L   = 0xd7;
sfr IE2    = 0xaf;

sbit led1 = P1^7;
sbit led2 = P1^6;
sbit led3 = P1^5;
sbit led4 = P1^4;



void Timer2Init(void)                //70毫秒@11.0592MHz
{
        EA = 1;
        IE2 = 0x04;
        AUXR &= 0xfb;                //定時器時鐘12T模式
        T2L = 0x48;                //設置定時初值
        T2H = 0xff;                //設置定時初值
        AUXR |= 0x10;                //定時器2開始計時
        
}



void main(){
        while(1){
                Timer2Init();
                led2 = ~led2;
                while(1);
        }
}


void Timer2Inter() interrupt 12{        //定時器2中斷
        led4 = ~led4;
        Delay500ms();
}






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:65956 發表于 2020-1-5 09:00 | 只看該作者
void Timer2Inter() interrupt 12{        //定時器2中斷         led4 = ~led4;         Delay500ms(); }這里面加了Delay500ms()這個當然有問題了,中斷里作事時間越短越好,改用置標志位方式,然后要作的事情放在主函數里去作
回復

使用道具 舉報

板凳
ID:213173 發表于 2020-1-5 11:01 | 只看該作者
給你改一下,你試試。
  1. #include "reg52.h"
  2. #include "intrins.h"

  3. sfr AUXR  = 0x8e;
  4. sfr T2H   = 0xd6;
  5. sfr T2L   = 0xd7;
  6. sfr IE2   = 0xaf;

  7. sbit led1 = P1^7;
  8. sbit led2 = P1^6;
  9. sbit led3 = P1^5;
  10. sbit led4 = P1^4;


  11. void Timer2Init()        //50毫秒@11.0592MHz
  12. {
  13.         AUXR &= 0xfb;        //定時器時鐘12T模式
  14.         T2L = 0x00;                //設置定時初值
  15.         T2H = 0x4C;                //設置定時初值
  16.         AUXR |= 0x10;        //定時器2開始計時
  17.         EA=1;                                //開總中斷
  18.         IE2 |=0x04;    //允許T2中斷
  19. }

  20. void main()
  21. {
  22.         Timer2Init();
  23.         led2 = ~led2;
  24.         while(1);
  25. }

  26. void Timer2Inter() interrupt 12//定時器2中斷
  27. {   
  28.         static unsigned char i=0;
  29.         i++;
  30.         if(i>=10)//500ms
  31.         {
  32.                 i=0;
  33.                 led4 = ~led4;
  34. //                Delay500ms();
  35.         }
  36. }
復制代碼
回復

使用道具 舉報

地板
ID:472235 發表于 2020-1-5 11:47 | 只看該作者
aking991 發表于 2020-1-5 09:00
void Timer2Inter() interrupt 12{        //定時器2中斷         led4 = ~led4;         Delay500ms(); } ...

這樣???還是不行,所有燈都沒亮

#include "reg52.h"

sfr IE2       = 0xaf;               //中斷使能寄存器2
sfr AUXR      = 0x8e;               //輔助寄存器
sfr T2H       = 0xD6;               //定時器2高8位
sfr T2L       = 0xD7;               //定時器2低8位

sbit led1 = P1^7;
sbit led2 = P1^6;
sbit led3 = P1^5;
sbit led4 = P1^4;

unsigned char flag = 0;

/*-------------------------------------
  定時器2初始化,時鐘12T、16位重載模式
--------------------------------------*/
void Timer2Init()                                        //200微秒@11.0592MHz
{
        AUXR &= 0xFB;                                        //定時器時鐘12T模式
        T2L = 0x48;                                                //設置定時初值
        T2H = 0xFF;                                                //設置定時初值
        AUXR |= 0x10;                                        //定時器2開始計時
        IE2 |=0x04;                                            //允許中斷
        EA=1;                                                        //開總中斷
}
/*------------------------------
   定時器2中斷服務程序  
-------------------------------*/
void timer2() interrupt 12
{
                flag = 1;
                led1 = ~led1;
}

void main(){

                Timer2Init();
                while(1){
                        if(flag == 1){
                                led2 = ~led2;
                        }
                        Delay500ms();
                }
       
}
回復

使用道具 舉報

5#
ID:472235 發表于 2020-1-5 11:47 | 只看該作者
wulin 發表于 2020-1-5 11:01
給你改一下,你試試。

還是不行。。。所有燈都沒亮
回復

使用道具 舉報

6#
ID:213173 發表于 2020-1-5 15:56 | 只看該作者
121212121212123 發表于 2020-1-5 11:47
還是不行。。。所有燈都沒亮

任何程序都是在硬件基礎上編寫的。你這學習板沒有接觸過,不知其硬件結構。圖中表明有兩片不同型號單片機,STC89C52RC/STC15W408AS,LED與其連接關系不搞清怎么判斷程序運行狀態?
回復

使用道具 舉報

7#
ID:398709 發表于 2020-1-5 20:49 | 只看該作者
有電路圖嗎
回復

使用道具 舉報

8#
ID:472235 發表于 2020-1-6 16:01 | 只看該作者
wulin 發表于 2020-1-5 15:56
任何程序都是在硬件基礎上編寫的。你這學習板沒有接觸過,不知其硬件結構。圖中表明有兩片不同型號單片機 ...

謝謝大佬,把問題搞清楚了,開發板上我一直都在寫入c52芯片里
回復

使用道具 舉報

9#
ID:472235 發表于 2020-1-6 16:01 | 只看該作者

問題解決了,開發板一直寫入到C52芯片,沒有寫入STC15W408AS
回復

使用道具 舉報

10#
ID:130230 發表于 2020-1-8 11:45 | 只看該作者
首先看看手冊這個型號有沒有定時器2。我之前用過一個stc的單片機居然沒有定時器1。。。但是又定時器2你說坑不坑
回復

使用道具 舉報

11#
ID:753989 發表于 2021-4-2 10:06 | 只看該作者
兄嘚兒,我們買的同一款學習板
回復

使用道具 舉報

12#
ID:746422 發表于 2021-4-4 20:00 | 只看該作者
程序不是這樣寫的,既然用了定時器了,還用什么Delay500ms()?這樣會占用cpu的資源。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产小视频在线观看 | 日韩精品视频在线播放 | 国产99久久精品 | 国产色婷婷精品综合在线手机播放 | 欧美美女一区二区 | 日本久久久久久久久 | 91成人精品 | 国产亚洲欧美日韩精品一区二区三区 | 欧美在线综合 | 国产日韩欧美一区二区 | 成人毛片视频在线播放 | 操一草| 欧美精品一区二区三区四区五区 | av久久 | 亚洲一区二区三区福利 | 毛片网在线观看 | 九九亚洲| 九九热精品视频 | 波多野结衣一二三区 | 亚洲午夜精品 | 99这里只有精品视频 | 日韩欧美国产一区二区三区 | 久久人人网 | 精品欧美一区二区三区久久久 | 人妖一区 | 久久精彩视频 | 日韩影院在线观看 | 日日干天天操 | av黄色在线 | 亚洲国产欧美国产综合一区 | 欧美精品久久 | 真人一级毛片 | 国产一区二区精华 | 国产一二三区免费视频 | 久久久一区二区三区 | 国产精品久久 | 国产婷婷精品av在线 | 欧美日韩一区二区视频在线观看 | 狠狠躁18三区二区一区 | www.av在线 | 浮生影院免费观看中文版 |