单片机操作题库28例附答案.docx
- 文档编号:4203310
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:20
- 大小:16.71KB
单片机操作题库28例附答案.docx
《单片机操作题库28例附答案.docx》由会员分享,可在线阅读,更多相关《单片机操作题库28例附答案.docx(20页珍藏版)》请在冰豆网上搜索。
单片机操作题库28例附答案
单片机28例
1、利用位操作法点亮第三盏灯。
#include
voidmain()
{
P2=0xbb;
P0=0x99;
while
(1);
}
2、利用位操作法点亮第五盏灯。
#include
voidmain()
{
P2=0x00;
P0=0x80;
while
(1);
}
3、利用位操作法点亮第六盏灯。
#include
voidmain()
{
P2=0xed;
P0=0xb0;
while
(1);
}
4、利用位操作法点亮第八盏灯。
#include
voidmain()
{
P2=0xb2;
P0=0x86;
while
(1);
}
5、利用位操作法点亮第一、三、六、八盏灯。
#include
sbitled0=P1^0;
sbitled1=P1^1;
sbitled2=P1^2;
sbitled3=P1^3;
sbitled4=P1^4;
sbitled5=P1^5;
sbitled6=P1^6;
sbitled7=P1^7;
voidmain()
{
led0=0;
led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
}
6、利用位操作法点亮第四、五、六、七盏灯。
#include
sbitled3=P1^3;
sbitled4=P1^4;
sbitled5=P1^5;
sbitled6=P1^6;
voidmain()
{
led3=0;
led4=0;
led5=0;
led6=0;
}
7、利用位操作法点亮第一、三、五、八盏灯。
#include
#defineuintunsignedint
voiddelay1s()
{
uinti,j;
for(i=300;i>0;i--)
for(j=110;j>0;j--);
}
voidmain()
{
P2=0xfe;
while
(1)
{
P0=0xc0;
delay1s();
P0=0xf9;
delay1s();
P0=0xa4;
delay1s();
P0=0xb0;
delay1s();
P0=0x99;
delay1s();
P0=0x92;
delay1s();
P0=0x82;
delay1s();
P0=0xf8;
delay1s();
P0=0x80;
delay1s();
P0=0x90;
delay1s();
}
}
8、利用位操作法点亮八盏灯。
#include
voiddelayls()
{
unsignedinti,j;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
unsignedcharx;
unsignedcharcodetable[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
voidmain()
{
P2=0xbd;
while
(1)
{
for(x=0;x<16;x++)
{
P0=table[x];
delayls();
}
}
}
9、利用总线操作法点亮第三盏灯。
(输入十六进制)
#include
voidmain()
{
P1=0xfb;
}
10、利用总线操作法点亮第五盏灯。
(输入八进制)
#include
voidmain()
{
P1=0x0357;
}
11、利用总线操作法点亮第六盏灯。
(输入十进制)
#include
voiddelayls()
{
unsignedinti,j;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
unsignedcharx,y;
unsignedcharcodetable1[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsignedcharcodetable2[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
voidmain()
{
while
(1)
{
for(x=0;x<8;x++)
{
P2=table1[x];
for(y=0;y<16;y++)
{
P0=table2[y];
delayls();
}
}
}
}
12、利用总线操作法点亮第八盏灯。
(输入十六进制)
#include
voiddelayls()
{
unsignedinti,j;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
unsignedcharcodetable[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
voidmain()
{
while
(1)
{
P2=0xfe;
P0=table[1];
delayls();
P2=0xfd;
P0=table[2];
delayls();
P2=0xfb;
P0=table[3];
delayls();
P2=0xf7;
P0=table[4];
delayls();
P2=0xef;
P0=table[5];
delayls();
P2=0xdf;
P0=table[6];
delayls();
P2=0xbf;
P0=table[7];
delayls();
P2=0x7f;
P0=table[8];
delayls();
}
}
13、利用总线操作法点亮第一、三、六、八盏灯。
(输入八进制)
#include
voidmain()
{
P1=0132;
}
14、利用总线操作法点亮第四、五、六、七盏灯。
(输入十进制)
#include
voidmain()
{
P1=135;
}
15、利用总线操作法点亮第一、三、五、八盏灯。
(输入十六进制)
#include
voidmain()
{
P1=0x6a;
}
16、利用总线操作法点亮八盏灯。
(输入八进制)
#include
voidmain()
{
P1=0000;
}
17、利用for延时语句让第二盏灯每300ms闪烁一次。
#include
#defineuintunsignedint//宏定义
sbitled1=P1^1;//声明单片机P1口的第一位
uinti,j;
voidmain()//主函数
{
while
(1)//大循环
{
led1=0;//点亮第一个发光二极管
for(i=300;i>0;i--)//延时
for(j=110;j>0;j--);
led1=1;//关闭第一个发光二极管
for(i=300;i>0;i--)//延时
for(j=110;j>0;j--);
}
}
18、利用for延时语句让第五盏灯每500ms闪烁一次。
#include
voiddelayls()
{
unsignedinti,j;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
unsignedcharcodetable[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
unsignedcharx;
voidmain()
{
while
(1)
{
for(x=0;x<16;x++)
{
P2=~(1<<(x%8));
P0=table[x];
delayls();
}
}
}
19、利用for延时语句让第五盏和第八盏灯每700ms闪烁一次。
#include
#defineuintunsignedint
sbitled1=P1^4;
sbitled2=P1^7;
uinti,j;
voidmain()
{
while
(1)
{
led1=0;
for(i=700;i>0;i--)
for(j=110;j>0;j--);
led1=1;
for(i=300;i>0;i--)
for(j=110;j>0;j--);
led2=0;
for(i=700;i>0;i--)
for(j=110;j>0;j--);
led2=1;
for(i=700;i>0;i--)
for(j=110;j>0;j--);
}
}
20、利用for延时语句让第四盏和第七盏灯每300ms闪烁一次。
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidDisplayNumber(longInputNumber)
{
uinti,j;
for(j=0;j<=7;j++)
{
i=InputNumber%10;
P2=~(1< P0=~table[i]; delay (1); InputNumber=(InputNumber-i)/10; if(InputNumber==0)break; } } voidmain() { while (1) { DisplayNumber(25667989); } } 21、第三盏灯和第六盏灯先亮600ms,再灭600ms,一直闪烁(使用不带参数的子函数)。 #include #defineuintunsignedint sbitled1=P1^2; sbitled2=P1^5; voiddelay600ms() { uinti,j; for(i=600;i>0;i--) for(j=110;j>0;j--); } voidmain() { while (1) { led1=0; led2=0; delay600ms(); led1=1; led2=1; delay600ms(); } } 22、写一个完整的程序,让第五个小灯闪烁,亮400ms、灭800ms。 (使用带参数的子函数)。 #include #defineuintunsignedint sbitled=P1^4; voiddelayms(uintxms) { uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } voidmain() { while (1) { led=0; delayms(400); led=1; delayms(800); } } 23、依次让八盏灯亮,第一盏灯亮1s,灭;第二盏灯亮1s,灭;‥‥‥‥循环。 #include #include #defineuintunsignedint #defineucharunsignedchar voiddelayms(uint); ucharaa; voidmain() { aa=0xfe; while (1) { P1=aa; delayms(1000); aa=_crol_(aa,1); } } voiddelayms(uintxms) { uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } 24、依次让八盏灯亮,即第八盏灯亮500ms,灭;第七盏灯亮500ms,灭;‥‥‥‥循环。 #include #include #defineuintunsignedint #defineucharunsignedchar voiddelayms(uint); ucharaa; voidmain() { aa=0x7f; while (1) { P1=aa; delayms(500); aa=_cror_(aa,1); } } voiddelayms(uintxms) { uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } 25、第一、三、五、七盏灯循环亮。 每盏灯每次亮400ms。 #include #include #defineuintunsignedint #defineucharunsignedchar voiddelayms(uint); ucharaa; voidmain() { aa=0xfe; while (1) { P1=aa; delayms(400); aa=_crol_(aa,2); } } voiddelayms(uintxms) { uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } 26、第二、四、六、八盏灯循环亮。 每盏灯每次亮300ms。 #include #defineuintunsignedint #defineucharunsignedchar ucharcodetable[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; voiddelay(uintz) { uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } voidDisplayNumber(longInputNumber) { uinti,j; for(j=0;j<=7;j++) { i=InputNumber%10; P2=~(1< P0=~table[i]; delay (1); InputNumber=(InputNumber-i)/10; if(InputNumber==0)break; } } voidmain() { while (1) { DisplayNumber(4524215); } } 27、第七、五、三、一盏灯循环亮。 每盏灯每次亮600ms。 #include voiddelayls() { unsignedinti,j; for(i=500;i>0;i--) for(j=110;j>0;j--); } unsignedcharx,y; unsignedcharcodetable1[]={ 0x7f,0xdf,0xf7,0xfd}; unsignedcharcodetable2[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; voidmain() { while (1) { for(x=0;x<4;x++) { P2=table1[x]; for(y=0;y<16;y++) { P0=table2[y]; delayls(); } } } } 28、第一盏到第八盏灯依次亮,接着第八盏到第一盏灯依次亮,循环。 每盏灯每次亮800ms。 #include #include #defineuintunsignedint #defineucharunsignedchar voiddelayms(uint); ucharaa,i; voidmain() { aa=0xfe; while (1) { for(i=1;i<8;i++) { P1=aa; aa=_crol_(aa,1); delayms(800); } for(i=1;i<8;i++) { P1=aa; aa=_cror_(aa,1); delayms(800); } } } voiddelayms(uintxms) { uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 操作 题库 28 答案