辽宁科技大学单片机考试题库.docx

上传人:b****1 文档编号:14534731 上传时间:2023-06-24 格式:DOCX 页数:16 大小:16.62KB
下载 相关 举报
辽宁科技大学单片机考试题库.docx_第1页
第1页 / 共16页
辽宁科技大学单片机考试题库.docx_第2页
第2页 / 共16页
辽宁科技大学单片机考试题库.docx_第3页
第3页 / 共16页
辽宁科技大学单片机考试题库.docx_第4页
第4页 / 共16页
辽宁科技大学单片机考试题库.docx_第5页
第5页 / 共16页
辽宁科技大学单片机考试题库.docx_第6页
第6页 / 共16页
辽宁科技大学单片机考试题库.docx_第7页
第7页 / 共16页
辽宁科技大学单片机考试题库.docx_第8页
第8页 / 共16页
辽宁科技大学单片机考试题库.docx_第9页
第9页 / 共16页
辽宁科技大学单片机考试题库.docx_第10页
第10页 / 共16页
辽宁科技大学单片机考试题库.docx_第11页
第11页 / 共16页
辽宁科技大学单片机考试题库.docx_第12页
第12页 / 共16页
辽宁科技大学单片机考试题库.docx_第13页
第13页 / 共16页
辽宁科技大学单片机考试题库.docx_第14页
第14页 / 共16页
辽宁科技大学单片机考试题库.docx_第15页
第15页 / 共16页
辽宁科技大学单片机考试题库.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

辽宁科技大学单片机考试题库.docx

《辽宁科技大学单片机考试题库.docx》由会员分享,可在线阅读,更多相关《辽宁科技大学单片机考试题库.docx(16页珍藏版)》请在冰点文库上搜索。

辽宁科技大学单片机考试题库.docx

辽宁科技大学单片机考试题库

辽宁科技大学单片机考试题库

1第一题

#include

sbitP1_0=P1^0;

sbitP1_1=P1^1;

sbitP1_2=P1^2;

sbitP1_3=P1^3;

sbitP1_7=P1^7;

unsignedcharID;

voiddelayms(unsignedchari){

unsignedcharj;

for(i;i>0;i--)

for(j=1000;j>0;j--);}

voidmain(void)

{while

(1)

{if(P1_7==0)

{delayms(100);

if(P1_7==0)

{

ID++;

if(ID==4)

{

ID=0;

}

while(P1_7==0);

}

}

switch(ID)

{case0:

P1_0=~P1_0;

P1_1=1;P1_2=1;P1_3=1;

delayms(100);

break;

case1:

P1_1=~P1_1;

P1_0=1;P1_2=1;P1_3=1;

delayms(100);

break;

case2:

P1_2=~P1_2;

P1_0=1;P1_1=1;P1_3=1;

delayms(100);

break;

case3:

P1_3=~P1_3;

P1_0=1;P1_1=1;P1_2=1;

delayms(100);

break;

}

}

}

2.串行通信

#include

#include#defineucharunsignedcharucharcodeTable[18]={1,3,7,0x0f,0x1F,0x3F,0x7F,0xff,0xFE,

0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0,0xFF,00};

voidDelay(unsignedinttime);

voidmain()

{

unsignedinti,a;

TMOD=0x20;

TL1=0xF4;

TH1=0xF4;

TR1=1;

PCON=0x00;

SCON=0x50;

while

(1)

{

for(i=0;i<18;i++)

{

SBUF=Table[i];

while(TI!

=1);/*发送数据完成标志*/

TI=0;/*清除发送标志*/

while(RI!

=1);/*接收到数据标志*/

RI=0;/*清除接收标志*/

a=SBUF;/*接收数据*/

P1=a;

Delay(200);/*彩灯状态保持一段时间*/

}

}

}

voidDelay(unsignedintx){

uchari;

while(x--)

{

for(i=0;i<125;i++)

{;}

}

}

3.五人表决器

#includesbitRST=P1^7;sbitK1=P1^0;sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;sbitK5=P1^4;sbitled=P1^6;unsignedcharcount;voiddelay(unsignedk)

{

unsignedinti,j;

for(i=0;i

for(j=0;j<62;j++);}

main()

{

while

(1)

{

if(K1==0)

{

delay(40);

if(K1==0)

{while(K1==0);

count++;P1=0xFF;}

}

elseif(K2==0)

{

delay(40);

if(K2==0)

{while(K2==0);

count++;P1=0xFF;}

}

elseif(K3==0)

{

delay(40);

if(K3==0)

{while(K3==0);

count++;P1=0xFF;}

}

elseif(K4==0)

{

delay(40);

if(K4==0)

{while(K4==0);

count++;P1=0xFF;}

}

elseif(K5==0)

{

delay(40);

if(K5==0)

{while(K5==0);

count++;P1=0xFF;}

}

if(count>=3)

{led=~led;

delay(200);}

if(RST==0)

{delay(40);

if(RST==0)

{count=0;

P1=0xFF;}}

}

}

4.A/D转换法一

#include#include#defineCS273XBYTE[0xCFA0]

#defineIN7XBYTE[0xCFAF]voidDelay(intU);voidDisplay();

unsignedcharcodetable[17]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,

0x71,0x00};

unsignedBUF[2]={0,0};unsignedchark,sn;voidmain()

{unsignedchari;

IE=0x81;IT0=1;

while

(1)

{IN7=i;

sn=1;

while(sn);

Display();

}

}

voidINT_0(void)interrupt0

{k=IN7;sn=0;}

voidDisplay()

{unsignedchari,j;

BUF[0]=k/16;

BUF[1]=k%16;

while(j--)

{CS273=table[BUF[0]];

P1=0xFE;

Delay

(2);

CS273=table[BUF[1]];

P1=0xFD;

Delay

(2);

}

}

voidDelay(intU)

{

unsignedchari;

while(U--)

{

for(i=0;i<62;i++)

{;}

}

}

A/D法二

/*

************************************************

*文件名:

sy8.c

*版本:

V1.0_C

*功能:

AD0809通道0采集数据,并有四个数码管显示*注意:

实验时,拔掉LED_JUMP跳帽

*创建:

吴文波

************************************************

*/

#include

#include

#defineAD0809_0XBYTE[0xCFA0]#defineCS273XBYTE[0xCFA8]/*分别控制4位数码管的位码*/

sbitP10=P1^0;

sbitP11=P1^1;

sbitP12=P1^2;

sbitP13=P1^3;

/*共阴极数码管显示数据:

0-9A-F黑屏*/

table[17]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,

0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};

unsignedchardispbuf[4];

unsignedcharsn;

unsignedintidataBUF[8];

/*

************************************************

*函数名:

INIT0_FUNC

*功能:

外部中断0服务函数,实现AD0809通道0数据采集*输入:

*返回:

AD0809通道0数据

************************************************

*/

voidINIT0_FUNC(void)interrupt0{

BUF[0]=AD0809_0;

sn=0;

}

/*

************************************************

*函数名:

Delay

*功能:

Delay实现延时约1ms*temp(晶振6M)

*for循环执行一次需:

(12*(1/6M))*8s*输入:

延时时间temp

*返回:

************************************************

*/

voidDelay(unsignedchartemp){

unsignedintj;

while(temp--)

{

for(j=0;j<62;j++){;}

}

}

/*

************************************************

*函数名:

Display

*功能:

进行AD0809通道0数据的显示

*输入:

k--AD0809通道0、BUF[k]--AD0809通道0数据

*返回:

************************************************

*/

voidDisplay(unsignedchark){

unsignedintt,j=10;

while(j--)

{

t=(double)BUF[k]/255*500;//?

?

?

dispbuf[0]=t%10;

dispbuf[1]=t/10%10;

dispbuf[2]=t/100%10;

dispbuf[3]=t/1000;

P10=0;/*第1位数码管位选通*/

P11=1;

P12=1;

P13=1;

CS273=table[dispbuf[0]];/*第1位数码管段码*/

Delay

(2);

P10=1;

P11=0;/*第2位数码管位选通*/

P12=1;

P13=1;

CS273=table[dispbuf[1]];/*第2位数码管段码*/

Delay

(2);

P10=1;

P11=1;

P12=0;/*第3位数码管位选通*/

P13=1;

CS273=table[dispbuf[2]]|0x80;/*第3位数码管段码*/

Delay

(2);

P10=1;

P11=1;

P12=1;

P13=0;/*第4位数码管位选通*/

CS273=table[dispbuf[3]];/*第4位数码管段码*/

Delay

(2);

}

}

/*

************************************************

*函数名:

INIT0Init

*功能:

外部中断0初始化

*输入:

*返回:

************************************************

*/

voidINIT0Init()

{

IT0=1;

EX0=1;

EA=1;

}

/*

************************************************

*函数名:

main主函数

*功能:

实现AD0809采集通道0数据并由4位数码管显示其值

*说明:

************************************************

*/

voidmain(void)

{

INIT0Init();/*外部中断0初始化*/

while

(1)

{

AD0809_0=0;/*启动通道0采集*/

sn=1;

while(sn);

Display(0);/*AD0809通道0数据显示*/

}

}

5.抢答器(加数码管和LED灯)

#include#include#definecs273XBYTE[0xCFA0]

sbitRST=P1^7;

sbitK1=P1^0;

sbitK2=P1^1;

sbitK3=P1^2;

sbitP1_6=P1^6;

sbitled1=P1^3;

sbitled2=P1^4;

sbitled3=P1^5;

unsignedcharcodetable[4]={0x06,0x5b,0x4f,0x3f};

voiddelay(unsignedk){

unsignedinti,j;

for(i=0;i

for(j=0;j<62;j++);}

main()

{

while

(1)

{

start:

P1_6=0;

if(K1==0)

{

delay(30);

if(K1==0)

{cs273=table[0];led1=0;led2=1;led3=1;while

(1)if(RST==0){led1=1;led2=1;led3=1;cs273=table[3

];gotostart;}}

}

elseif(K2==0)

{

delay(30);

if(K2==0)

{cs273=table[1];led1=1;led2=0;led3=1;while

(1)if(RST==0){led1=1;led2=1;led3=1;cs273=table[3

];gotostart;}}

}

elseif(K3==0)

{

delay(30);

if(K3==0)

{cs273=table[2];led1=1;led2=1;led3=0;while

(1)if(RST==0){led1=1;led2=1;led3=1;cs273=table[3

];gotostart;}}

}

}

}

6.跑马表

#include

#include

#defineCS273XBYTE[0xcfa0]sbitSP1=P1^7;

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

unsignedcharcount,keycnt,second;

voiddelay(unsignedchari){unsignedj;

for(i;i>0;i--)

for(j=62;j>0;j--);

}

voidTimer0_INTI()

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

TR0=0;

ET0=1;

EA=1;

}

voidTimer0()interrupt1using0

{

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

count++;

if(count==100)

second++;

if(second==60)

second=0;

}

voidmain(void)

{

Timer0_INTI();

while

(1)

{

CS273=table[second/10];P1=0xFB;delay

(1);

CS273=table[second%10];P1=0xFD;delay

(1);

if(SP1==0)

{

delay(5);

if(SP1==0)

{while(SP1==0);

keycnt++;

switch(keycnt)

{case1:

TR0=1;

break;

case2:

TR0=0;

break;

case3:

keycnt=0;

second=0;

break;

}

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2