找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC15W408AS单片机定时器T2如何设置,中断号是什么?

[复制链接]
跳转到指定楼层
楼主
请问STC15W408AS定时器T2如何设置,中断号是什么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2018-11-12 06:26 | 只看该作者
STC15W408AS定时器T2设置 看下面是 C程序,中断号是12


  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC15W408AS  系列 定时器2的16位自动重装载模式举例---------------*/
  4. /* --- Mobile: (86)13922805190 -------------- -------------------------*/
  5. /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
  6. /* --- Tel: 86-0513-55012928,55012929,55012966-------------------------*/
  7. /* --- Web: www.STCMCU.com --------------------------------------------*/
  8. /* --- Web: www.GXWMCU.com --------------------------------------------*/
  9. /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序        */
  10. /* 如果要在文章中应用此代码,请在文章中注明使用了STC的资料及程序        */
  11. /*---------------------------------------------------------------------*/

  12. //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
  13. //若无特别说明,工作频率一般为11.0592MHz


  14. #include "reg51.h"

  15. typedef unsigned char BYTE;
  16. typedef unsigned int WORD;

  17. //-----------------------------------------------

  18. #define FOSC 11059200L

  19. #define T1MS (65536-FOSC/1000)      //1T模式
  20. //#define T1MS (65536-FOSC/12/1000) //12T模式

  21. sfr P0M1 = 0x93;
  22. sfr P0M0 = 0x94;
  23. sfr P1M1 = 0x91;
  24. sfr P1M0 = 0x92;
  25. sfr P2M1 = 0x95;
  26. sfr P2M0 = 0x96;
  27. sfr P3M1 = 0xb1;
  28. sfr P3M0 = 0xb2;
  29. sfr P4M1 = 0xb3;
  30. sfr P4M0 = 0xb4;
  31. sfr P5M1 = 0xC9;
  32. sfr P5M0 = 0xCA;
  33. sfr P6M1 = 0xCB;
  34. sfr P6M0 = 0xCC;
  35. sfr P7M1 = 0xE1;
  36. sfr P7M0 = 0xE2;

  37. sfr IE2       = 0xaf;               //中断使能寄存器2
  38. sfr AUXR      = 0x8e;               //辅助寄存器
  39. sfr T2H       = 0xD6;               //定时器2高8位
  40. sfr T2L       = 0xD7;               //定时器2低8位

  41. sbit P10 = P1^0;

  42. //-----------------------------------------------
  43. //中断服务程序
  44. void t2int() interrupt 12           //中断入口
  45. {
  46.     P10 = !P10;                     //将测试口取反
  47.       
  48. //  IE2 &= ~0x04;                   //若需要手动清除中断标志,可先关闭中断,此时系统会自动清除内部的中断标志
  49. //  IE2 |= 0x04;                    //然后再开中断即可
  50. }

  51. //-----------------------------------------------

  52. /* main program */
  53. void main()
  54. {
  55.     P0M0 = 0x00;
  56.     P0M1 = 0x00;
  57.     P1M0 = 0x00;
  58.     P1M1 = 0x00;
  59.     P2M0 = 0x00;
  60.     P2M1 = 0x00;
  61.     P3M0 = 0x00;
  62.     P3M1 = 0x00;
  63.     P4M0 = 0x00;
  64.     P4M1 = 0x00;
  65.     P5M0 = 0x00;
  66.     P5M1 = 0x00;
  67.     P6M0 = 0x00;
  68.     P6M1 = 0x00;
  69.     P7M0 = 0x00;
  70.     P7M1 = 0x00;

  71.     AUXR |= 0x04;                   //定时器2为1T模式
  72. //  AUXR &= ~0x04;                  //定时器2为12T模式
  73.     T2L = T1MS;                     //初始化计时值
  74.     T2H = T1MS >> 8;
  75.     AUXR |= 0x10;                   //定时器2开始计时
  76.    
  77.     IE2 |= 0x04;                    //开定时器2中断
  78.     EA = 1;

  79.     while (1);
  80. }


复制代码
回复

使用道具 举报

板凳
ID:213173 发表于 2018-11-12 07:56 | 只看该作者
/*-------------------------------------
  定时器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
{
       .......任务

        AUXR &= 0xef;                //定时器2关闭

}
回复

使用道具 举报

地板
ID:298663 发表于 2018-11-12 08:21 | 只看该作者
interrupt 12
回复

使用道具 举报

5#
ID:164602 发表于 2018-11-12 08:45 | 只看该作者
中断号是12


其它的,要看手册:


有手册的下载网站,自己下载来看。

另外,也可以用STC-ISP的定时计算器得到设置。如:


回复

使用道具 举报

6#
ID:416575 发表于 2018-11-12 21:15 | 只看该作者
非常感谢各位大师指教,多谢。
回复

使用道具 举报

7#
ID:416575 发表于 2018-11-12 21:19 | 只看该作者

多谢,大师指教。
回复

使用道具 举报

8#
ID:416575 发表于 2018-11-12 21:20 | 只看该作者
angmall 发表于 2018-11-12 06:26
STC15W408AS定时器T2设置 看下面是 C程序,中断号是12

多谢,大师指教。
回复

使用道具 举报

9#
ID:416575 发表于 2018-11-12 21:20 | 只看该作者
wulin 发表于 2018-11-12 07:56
/*-------------------------------------
  定时器2初始化,时钟12T、16位重载模式
------------------- ...

多谢,大师指教。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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