找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1186|回复: 5
收起左侧

单片机程序设置按键定时为什么灯一直不亮,帮忙看看哪里出了问题

[复制链接]
ID:667351 发表于 2019-12-23 15:26 | 显示全部楼层 |阅读模式


#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int

uint  i,count;

sbit s1=P1^0;

void main()         
{
        TMOD=0x01;
        TH1=(65536-60000)/256;  //高8位
        TL1=(65536-60000)%256;        //低8位
        P1=0x00;
        EA=1;     //打开中断总开关,1表示打开,0表示关闭
        ET0=1;           //打开定时/计数器中断0
        TR0=1;                 //启动定时器
         while(1);

        {
        if(s1==0)
        count++;
        if(count==20)
        P1=0x00;
        }
}
void interrupt_0()interrupt 1
{
    TH1=(65536-60000)/256;  //高8位
        TL1=(65536-60000)%256;        //低8位         
        count--;
        if(i<=0)
        {
           i=20;
           P1=~P1;
        }        
}
请问.png


回复

使用道具 举报

ID:584814 发表于 2019-12-23 16:48 | 显示全部楼层
if(i<=0):  i 的初始值是多少 ?如何变化 ?
回复

使用道具 举报

ID:7485 发表于 2019-12-23 16:48 | 显示全部楼层
你说的是哪个灯一直亮?你那图上就一个灯,接在P0口,你对P0口有操作吗?
回复

使用道具 举报

ID:470332 发表于 2019-12-23 17:24 | 显示全部楼层
你程序里操作的是P1口
回复

使用道具 举报

ID:195446 发表于 2019-12-23 17:55 | 显示全部楼层
主函数里P1=0,改成P1=1就可以了。楼主程序因为P1=0,所以进到第一个if语句就再也出不来了,哈哈。
回复

使用道具 举报

ID:524818 发表于 2019-12-24 08:46 | 显示全部楼层
程序和实际接线图不符
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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