找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC单片机定时器2的使用问题 头文件STC15.H不能编译定时器2的寄存器

[复制链接]
跳转到指定楼层
楼主
遇到一个很尴尬的事情;
用STC15W204S的定时器2,头文件用STC15.H不能编译定时器2的寄存器,如果用REG52.H又没有P5的IO口。
这个单片机有定时器0和定时器2,程序里两个都用上了,P5的IO也用上了,为什么STC官方的头文件没有定时器2的定义?各位大神,这种怎么解决?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:213173 发表于 2023-8-3 12:00 | 只看该作者
Jang 发表于 2023-8-3 07:57
我就是用的这个stc15.h的头文件,但是里面没有定时器2的定义

不是头文件中没有定时器2的相关寄存器定义,而是楼主用错相关寄存器名称,当然找不到。这个不能想当然自定义,除非高手能做到。



回复

使用道具 举报

来自 3#
ID:383654 发表于 2023-8-3 17:21 | 只看该作者
wulin 发表于 2023-8-3 12:00
不是头文件中没有定时器2的相关寄存器定义,而是楼主用错相关寄存器名称,当然找不到。这个不能想当然自 ...

感谢!正如大师所言。只需要控制两个寄存器就可以用了。附上程序,方便后人。
  1. #include<stc15.h>                                  
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uint numt1;
  6. uchar flag;
  7. void init()                                                           /*************设置计时器2重载初值*****************/
  8. {       
  9.    T2L =(65536-50000)/256;
  10.    T2H =(65536-50000)/256;
  11.    AUXR|= 0X10;           //计时器2启动运行
  12.    IE2|=0X04;             //启用定时器2中断
  13.    EA=1;                 //打开全局中断开关
  14. }
  15. void main()
  16. {
  17.    init();
  18.    numt1=0;
  19.    flag=0;
  20. while(1);
  21. }
  22. void T2_time()interrupt 12
  23. {
  24.    numt1++;
  25.    if(numt1>100)
  26.    {
  27.    flag=1;
  28.    AUXR&=0X00;            //计时器2停止运行
  29.    numt1=0;
  30.    }       
  31. }
复制代码



评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:213173 发表于 2023-8-2 20:39 | 只看该作者

回复

使用道具 举报

5#
ID:383654 发表于 2023-8-3 07:57 | 只看该作者

我就是用的这个stc15.h的头文件,但是里面没有定时器2的定义
回复

使用道具 举报

6#
ID:1089588 发表于 2023-8-3 09:49 | 只看该作者
#include <STC15F2K60S2.H>
回复

使用道具 举报

7#
ID:229375 发表于 2023-8-3 10:21 | 只看该作者
把缺的寄存器,按照头文件定义的寄存器的方式,把寄存器的地址补上去
回复

使用道具 举报

8#
ID:123289 发表于 2023-8-3 11:32 | 只看该作者
如果能明白【.h】文件的意义,则用不用它都无所畏。
当KELL提示不认识的字符串时,自己可以给它定义一下。
你的【.h】文件失灵,多为文件引用的不准确。
回复

使用道具 举报

9#
ID:1034262 发表于 2023-8-3 18:05 | 只看该作者
STC官方的头文件一定会有定义,否则那么多官方的例子怎么编译?
寄存器名字不同而已。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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