while(1); }
void test() interrupt 1
{
}
9.完成以下程序的编写
功能说明:采用中断定时器/计数器T1编程,实现从P1.0口输出周期为40ms的高低电平,使发光二极管不断闪烁。 #include
sbit k1=P1^0;
void chushihua(void ) { TMOD=0x10; EA=1; ET0=1; TR0=1;
TH0=(65536-40000)/256; TL0=(65536-40000)%6; }
void main (void) { chushihua();
第31页(共41页)
}
void t0(void) interrupt {
i=~i;
}
10.完成以下程序的编写
功能说明: 在AT89C51单片机的P2口外接1个共阴极8段数码显示器,采用定时/计数器T0,定时方式,实现0~5数字依次显示,不停循环,显示间隔时间为0.5秒。 #include
unsigned char a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
unsigned char x=0,y=0; void main (void) {
}
void zd() interrupt
第32页(共41页)
{
}
第四题答案 题1:
1、将主程序中斜体部分的程序语句修改为函数,将答案写在程序右边的空白处。功能:5秒闪烁灯。
#include
for(i=50;i>0;i--) for(j=200;j>0;j--) for(k=250;k>0;k--);
}
main() { while(P1_0==0) { P2_0=~P2_0; yanshi();
} }
第33页(共41页)
2、将主程序中斜体部分的程序语句修改为函数,将答案写在程序右边的空白处。功能:开关闭合后灯依次向左移点亮。
#include
zuoyi() {
for(a=1;a<=3;a++) { P2=b; delay05s(); b=b<<1; }
} main() { P2=0x00; while(P1_0=
=0) { b=0x01; zuoyi(); } }
3、将主程序中斜体部分的程序语句修改为函数,将答案写在程序右边的空白处。功能:数码管显示数字0645。
#include
第34页(共41页)
unsigned char duanma[10] = {0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char weima[4]=
{0x0e,0x0d,0x0b,0x07};
unsigned char xianshi[4]={0,0,0,0}; char jishu1=0; delay10ms() { unsigned char j,k; for(j=20;j>0;j--) for(k=250;k>0;k--); } xs() {
xianshi[0]=duanma[0]; xianshi[1]=duanma[6]; xianshi[2]=duanma[4]; xianshi[3]=duanma[5];
} main() { while(1) { xs();
P2=weima[jishu1]; P1=xianshi[jishu1]; jishu1++; if(jishu1=
=4) {jishu1=0;} delay10ms(); } }
4、将主程序中斜体部分的程序语句修改为函数,将答案写在程序右边的空白处。功能:从上到下流水灯。
#include
第35页(共41页)