查看: 92|回复: 12
收起左侧

不用中断,怎么编程

[复制链接]

504

主题

3747

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-16 23:15 | 显示全部楼层 |返回版面|阅读模式
高电平1s、低电平2s和高电平、低电平都是输出1s有什么区别,哪里需要处理?高电平和低电平都是输出1s会。不用中断,怎么编程~~谢谢大神~~

506

主题

4238

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:16 | 显示全部楼层 |返回版面
查询,计数器,标志位。

504

主题

3747

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-16 23:18 | 显示全部楼层 |返回版面
大神,能具体点吗?有点不明白啊~~谢谢~~

498

主题

4270

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:26 | 显示全部楼层 |返回版面

比如设置定时器周期5ms。主程序中查询溢出标志位,到了计数器加1,加到200为1秒,标志位置1,输出高电平。
输出低电平于此类似。

504

主题

3747

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-16 23:27 | 显示全部楼层 |返回版面
这个我明白,那高电平输出1s,低电平输出2s,怎么设置?

482

主题

3841

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:29 | 显示全部楼层 |返回版面
设置定时器周期5ms。主程序中查询溢出标志位,到了计数器加1,加到400为2秒,输出低电平。

472

主题

3805

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:31 | 显示全部楼层 |返回版面

如果是软件产生,就是计时、改IO,几个动作串起来。

494

主题

3956

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:39 | 显示全部楼层 |返回版面

嗯,所以,你要会设置定时器,会计算定时长度,会查询计数值,会改IO口。
就是这样。

402

主题

4170

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:41 | 显示全部楼层 |返回版面
好好看书,就该明白中断方式和非中断方式有啥区别了··

522

主题

4077

帖子

1万

积分

资深工程师

发表于 2017-7-16 23:43 | 显示全部楼层 |返回版面

什么单片机晶振是多少 ? 延时子程序我还是会的  我可以帮你搞定

504

主题

3747

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-16 23:45 | 显示全部楼层 |返回版面
51单片机  12M晶振  我就是一个初学者。。。谢谢大神。。。这是我写的,用protues仿真,波形都乱了。。。
#include<reg51.h>

sbit put=P1^7;
int i;

void main()
{
        TMOD=0x11;  //T0工作在方式1下,16位定时功能
        TH1=0xfc;   //装计数器初值1ms  TH0和TL0        
        TL1=0x18;
    TF1=0;      //清除TF0标志位
        TR1=1;        
         while(1)
         {
                if(TF1==1)    //判断T0溢出标志位是否为1
                {
                  put=~put;   //溢出后端口取反
                  for(i=0;i++;i<2)
                {  
                  
                          TF1=0;      //清除TF0溢出标志位
                      TH1=0xfc;   //装计数器初值1ms
                  TL1=0x18;
                          
               
                 }
                  
                }
        }
}
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

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