本帖最后由 sanmaodeai 于 2014-10-16 21:55 编辑
整个程序大概需要实现的内容是:
一个预设值,一个计数值,都显示在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仿真
一周热门 更多>