|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <reg51.h>
#include <absacc.h>
#define LCDINST XBYTE[0x7fff] //HD44780的命令寄存器地址
#define LCDDATA XBYTE[0xffff] //HD44780的数据寄存器地址
sbit P1_0=P1^0;
sbit L1232=P3^0;
sbit P1_3=P1^3;
unsigned int i,j,k;
timer0() interrupt 1 using 1
{
L1232=!L1232;//喂狗指令
P1_0=!P1_0;
TH0=-50000/256;
TL0=-50000%256;
}
timer1() interrupt 3 using 3
{
L1232=!L1232;
P1_3=!P1_3;
}
main()
{
L1232=!L1232;
P1_3=0;
P1_0=1;
TMOD=0x61;
TH0=-50000/256;
TL0=-50000%256;
TH1=-5;
TL1=-5;
IP=0x08;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
for(;;){
/*L1232=!L1232;
P2=0x0f;
for(i=0;i<40000;i++)
{
j=i;
}
L1232=!L1232;
P2=0xf0;
for(i=0;i<40000;i++)
{
j=i;
}*/
LCDINST=0x30;
for(i=0;i<10000;i++)
LCDINST=0x30;
for(i=0;i<10000;i++)
LCDINST=0x30;
for(i=0;i<10000;i++)
LCDINST=0x30;
for(i=0;i<1000;i++)
LCDINST=0x38;
for(i=0;i<1000;i++)
LCDINST=0x01;
for(i=0;i<100;i++)
LCDINST=0x06;
for(i=0;i<100;i++)
LCDINST=0x0c;
for(i=0;i<100;i++)
while(LCDINST & 0x80)
LCDINST=0x01;
while(LCDINST & 0x80)
LCDDATA='B';
for(;;)
{
;
}
}
}
//如何跟踪程序执行timer0()100MS后,进入timer1()计数5次后,又执行下面的程序后,然后再一次重复执行?
//本人这个程序执行时,在液晶上不能看到“B”这个字符?可能是寄存器地址不对。HD44780液晶显示器
//的命令寄存器地址,数据寄存器地址是如何确定的?我将它的RS接在P2.7上,E接在P3.6上,R/W接在P3.5上
//D0-D7接在P0-P7上
//应该在什么到时候或地方加入喂狗指令?
|
|