[其它应用] 控制LED亮灭

[复制链接]
1876|19
 楼主| zhuhuis 发表于 2022-11-11 19:48 | 显示全部楼层 |阅读模式
写了个程序,原本想法是用定时的方式去控制LED亮灭,但现在发现,无法实现,哪位大虾帮忙看下哪边有问题
 楼主| zhuhuis 发表于 2022-11-11 19:52 | 显示全部楼层

void timer2() interrupt xx,这个xx是怎么定义的。。
#include<SH79F166A.h>
#define uint unsigned int
#define uchar unsigned char uchar num;
sbit LED0=P0^2;
void main()
{
T2MOD=0;  
TL2=(65536-45872)%256;  
TH2=(65536-45872)/256;
TF2=0;  
EA=1;//开总中断   
ET2=1;//开定时器2中断  
TR2=1;//启动定时器2  
while(1);   
}  
void timer2() interrupt 5
{
  TL2 = (65536-45872)%256;  //定时1ms重新附初值低位   
  TH2 = (65536-45872)/256; //定时1ms重新附初值高位  
  num++;
if(num==20)  
{   
  num=0;   
  LED0=~LED0;  
}
}
renyaq 发表于 2022-11-11 19:54 | 显示全部楼层
没看出啥来
 楼主| zhuhuis 发表于 2022-11-11 19:56 | 显示全部楼层
问下79F166A这颗芯片的中断级别是怎么定义的,有外部中断0,1,2,3.内部定时期从2开始
happy_10 发表于 2022-11-11 19:59 | 显示全部楼层
没用过中颖单片机,也许是定时器2中断入口地址不对(interrupt xx),看下datasheet。
stly 发表于 2022-11-11 20:03 | 显示全部楼层
T2MOD=0   代表什么,16位计数器还是其它?
supernan 发表于 2022-11-11 20:05 | 显示全部楼层
中断标志?
wyjie 发表于 2022-11-11 20:08 | 显示全部楼层
我用过1611,端口是需要定义的,166a不太清楚是不是这个问题
supernan 发表于 2022-11-11 20:09 | 显示全部楼层
定时中断翻转IO就可以了啊
xxrs 发表于 2022-11-11 20:12 | 显示全部楼层
我觉得if不要放到中断里,这样不好
dengdc 发表于 2022-11-11 20:14 | 显示全部楼层
我感觉程序没什么问题,就是你那个宏定义的替代有点怪怪的
wyjie 发表于 2022-11-11 20:16 | 显示全部楼层
这个很简单吧
chenjunt 发表于 2022-11-11 20:18 | 显示全部楼层
定时器中断模式下,翻转IO来控制LED的亮灭,怎么会不能实现,检查一下你的程序吧。
lvlv99 发表于 2022-11-19 09:10 | 显示全部楼层
TF2=0;中断标志没有清掉
tpgf 发表于 2022-12-7 13:55 | 显示全部楼层
zhuhuis 发表于 2022-11-11 19:56
问下79F166A这颗芯片的中断级别是怎么定义的,有外部中断0,1,2,3.内部定时期从2开始
...

建议楼主再检查一下中断向量的定义是否有问题
磨砂 发表于 2022-12-7 14:19 | 显示全部楼层
对led小灯的亮灭有时间及比例的相关要求吗
晓伍 发表于 2022-12-7 14:40 | 显示全部楼层
楼主应该缺少对时钟以及io口的初始化
八层楼 发表于 2022-12-7 15:06 | 显示全部楼层
zhuhuis 发表于 2022-11-11 19:52
void timer2() interrupt xx,这个xx是怎么定义的。。
#include
#define uint unsigned int

楼主的中断处理函数远远谈不上间接  里边需要处理的比较多
观海 发表于 2022-12-7 15:23 | 显示全部楼层
楼主你的代码里边连io口都么有初始化 怎么操作啊
guanjiaer 发表于 2022-12-7 15:50 | 显示全部楼层
系统时钟没有初始化  相关引脚没有初始化   这都是问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部