微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 各位看下下面这段程序,想使用计数器1来实现

各位看下下面这段程序,想使用计数器1来实现

时间:10-02 整理:3721RD 点击:

整个程序大概需要实现的内容是:
一个预设值,一个计数值,都显示在1602液晶上,当计数值=预设值时,led做一个操作
预设值可以用按键来修改,计数值使用计数器1实现,按键触发,程序虽然写了,但是实现不了,请
各位看看是什么原因?

#include<reg52.h>
#include<intrins.h>
#include“lcd1602.h”#include"keyscan.h"
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^5;
sbit key2=P1^6;
sbit key3=P1^7;
sbit led=P1^1;
uint flag,flag1;
uint t1;
void delay(uint t)
{
        uchar i;
        for(t;t--;t>0)
        {
                for(i=105;i--;i>0);
        }
}
void init()
{
        TMOD=0x50;                 //计数器1工作在16位计数模式
        TH1=0xff;
        TL1=0xff;
//        TR1=1 ;
//        ET1=1;
        EX1=1;
        IT1=1;
        EA=1;        
}
void led1()
{
        led=0;
        delay(200);
        led=1;
}
void main()
{
        init();
        flag=126;         //目标值
        flag1=0;         //当前值
        while(1)
        {
                keyscan();
                display_lcd(0x09,flag,flag1);
        }
}
               
}
void counter1() interrupt 3
{
        TH1=0xff;
        TL1=0xff;
        flag1++;
        if(flag1==flag)
        {
                flag1=0;                led1();
        }
        
        
}


图片是proteus仿真,预设值126正常,但是实际值按按键没有反应,这个什么原因?

这个是proteus仿真


你这个外部中断好像用的不对!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top