-
但是,我的代码里面有个WHILE循环;现在是功能少;功能多了,还能用while吗?是否有更好的方式来解决同时多件事件的方案
-
以上仅为测试:
1. 定时器定时控制P1.7口翻转输出;
2. P0口通过外部中断上升沿出发中断控制P0全为1或0;
-
#include
#include
sbit P1_7=P1^7 ;
void main()
{
unsigned a=0;
TMOD=0x01;
TH0=0xE0;
TL0=0x18;
IT0=0;
IT1=0;
EA=1;
EX0=1;
EX1=1;
TR0=1;
while(1)
{
if(TF0)
{
TF0=0;
TH0=0xE0;
TL0=0x18;
a++;
if(a==50)
{
P1_7=~P1_7;
a=0;
}
}
}
}
void buttom_0() interrupt 0
{
_nop_();
_nop_();
_nop_();
_nop_();
if(P3^2==0) P0=0xff;
}
void buttom_1() interrupt 2
{
_nop_();
_nop_();
_nop_();
_nop_();
if(P3^3==0) P0=0x00;
}
-
hujj 发表于 2019-2-2 19:10
好像楼主需要定时将指定端口翻转,建议用8位自动填充的定时模式,可以通过单片机助手软件来配置定时器。另 ...
谢谢,今天又优化了一下
暂时可以了,再继续努力,谢谢大家
-
#include
#include
sbit P1_7=P1^7 ;
void main()
{
unsigned a;
TMOD=0x00;
TH0=0xE0;
TL0=0x18;
a=10;
TR0=1;
if(TF0==1)
{
if(a==0) P1_7=~P1_7;
a--;
TF0=0;
}
}
以上为我的代码;定时器0计数A=10次,P1.7口取反一次;这样循环
-
图看附件
-
您好,现在没有单片机信号。在一个PROTUES的软件上模拟仿真,用的是51内核
-
年后很多事情,想这个年关好好的突破一下;不然2019没法渡过
-
感谢大家关照;谢谢大家;
昨晚看了一晚,明白了定时器计数器是封装在里面的,是死的。只需要我们按照规定方式去用就行。然后,现在问题又来了,12M的时钟,最高跑256US,频率也就3.9KHZ,我要做个DA,控制电源,需要非常平稳的递增递减
-
你好,最近在看这个,有点晕乎;求指点