找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

通过单片机定时器中断产生方波的问题

查看数: 5225 | 评论数: 2 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-4-14 14:38

正文摘要:

这是通过定时器T1定时,查询TF1电平高低来产生周期为2ms的方波,在keil中仿真没有错误,但是在proteus仿真中,通过示波器可以看出并没有产生方波,谁知道这是怎么回事吗? #include<reg51.h> sbit P1_0=P1^0;/ ...

回复

ID:301728 发表于 2018-4-15 14:58
多谢!改好了!
ID:213173 发表于 2018-4-14 20:36
1.定时器设置错误
2.P1_0大小写混用
#include<reg51.h>
sbit P1_0=P1^0;//通过P1.0口产生方波,定义一个特殊位
void main()
{
        TMOD= 0x10;                //设置定时器T1的方式1
        TH1 = 0xfc;                //设置定时初值
        TL1 = 0x18;                //设置定时初值
        TF1 = 0;                //清除TF1标志
        TR1 = 1;                //定时器1开始计时
//        TMOD=0x50;//选用T1的方式1
//        TH1=0xfc;//高位设定初值
//        TL1=0x17;//低位设定初值
//        TR1=1;//启动定时器T1
//        p1_0=1;//P1.0口为高电平
        P1_0=1;//P1.0口为高电平
        while(1)
        {
                if(TF1)//如果计满,TF1就是1
                {
                        TH1=0xfc;//重新装入
                        TL1=0x18;//重新装入
                        P1_0=~P1_0;//P1.0口电位定时取反
                        TF1=0;//将中断标志位清零
                }
        }
}

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

Powered by 单片机教程网

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