1 / 6
文档名称:

2012山东大学单片机试题.docx

格式:docx   大小:16KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2012山东大学单片机试题.docx

上传人:dajiede 2022/6/6 文件大小:16 KB

下载得到文件列表

2012山东大学单片机试题.docx

相关文档

文档介绍

文档介绍:: .
C语言程序。(15分)
、试将下面的8051单片机的汇编语言程序转换为实现同样功能的ORG0变量赋值}
}
voidextern0_ISR(void)interrupt0//外部中断函数
(if(P10==1)FLASH1=1;if(P12==0)FLASH3=1;if(P14==1)FLASH5=1;
}
voidmain(void)
(TMOD=0x01;TL0=0xB0;TH0=0x3C;i=10;〃计数变量赋初值TR0=1;//启动T0计数IT0=1;//外部中断0为边沿触发方式EX0=1;//允许外部中断0ET0=1;//允许T0中断EA=1;〃开放总的中断P1=0XEE;while(1);
}
3. (20分,电路5分;主程序10分:其中初始化5分,开关判断5分;定时器中断5分)
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitled=P1A0;
sbitsw=P〔A〔;
bitflag1,flag2;
ucharcount,cnt;
voidmain()
(sw=1;//置1作为输入口TMOD=0x01;TL0=0x00;TH0=0x4C;//,定时50msTR0=1;EA=1;ET0=1;flag1=0;//方式一标志位flag2=0;//方式二标志位led=1;while(1)(if(sw==0)//开关按下,方式一(if(flag1)(led=1;//}else(led=0;//}}else//开关未按下,方式—-(if(flag2)(led=1;//
}else
(led=0;//}}}
}
voidtimer0_isr()interrupt1
(TL0=0x00;TH0=0x4C;count++;if(count==2)(flag1=1;}if(count==10)(count=0;flag1=0;}cnt++;if(cnt==4)(flag2=1;}if(cnt==20)(cnt=0;flag2=0;}
}
4. (20分,主机10分:主程序5分,中断服务程序5分;从机10分:主程序5分,中断服务程序5分)
主机
#include
#defineucharunsignedchar
#defineuintunsignedint
uchardat[10]={0,1,2,3,4,5,6,7,8,9};//自定义10个要发送的数据
uchari=0;
uchartemp;
ucharrx;
bitflag_rx,flag_tx;//接收完成、发送完成标志
sbitgreen=P1A0;//指示灯
sbitred=P1A1;
voidmain(){ucharn;SCON=0x50;//方式一,使能接收TMOD=0x20;//定时器1工作在方式二TH1=0xfd;//波特率9600,自动重装载TL1=0xfd;TR1=1;EA=1;ES=1;〃使能串口中断temp=0x00;flag_rx