命题教师 命题时间 系 别 班 级 学 号 姓 名
装
订
线
《单片机技术》试卷一(闭卷)(120分钟)
题 号 一 二 三 四 五 六 七 总分 分 数 评卷人 一、填空题(每题2分,共30分)
1、AT89S51单片机支持_____________功能、支持程序存储器_____________方式。 2、51单片机采用两种半导体工艺:一种是____________,另一种是____________。 3、在单片机芯片型号中带字母”C”的指的是采用_________ 工艺,具有_________特点。
4、单片机最小系统由________、___________、__________、___________组成。 5、能够存放程序或数据的器件称为__________,它和_________、_________等部件集成在一块芯片上的。
6、程序状态字PSW用于存放CPU执行程序时的某些__________信息。
7、51单片机使用单一的+5V电源,第_______引脚是Vcc电源接入引脚,第20引脚
是Vss接地引脚。 二、选择题(每题2分,共30分) 1、51单片机有________端口。
A、1个 B、2个 C、3个 D、4个 2、单片机中用来存放程序代码的存储器称为_______。
A、程序存储器 B、数据存储器 C、寄存器 D、特殊功能寄存器 3、AT89S51单片机的片内ROM容量为_______。
A、16KB B、8KB C、4KB D、1KB 4、51单片机的第9脚是_____。
A、电源引脚 B、复位引脚 C、地址锁存允许引脚 D、片外ROM读 5、51单片机的第12和13脚是______。
A、定时/计数脉冲输入端 B、电源端 C、串行通信端 D、外部中断输入端
1
6、51单片机第18、19脚是_______。
A、复位电路入端 B、时钟电路输入端 C、串行通信端 D、外部中断输入端 7、51单片机有_______特殊功能寄存器。
A、20个 B、18个 C、21个 D、4个
8、51单片机的特殊功能寄存器分布在单片机内部寄存器的位置是______。
A、低32字节 B、低128字节 C、高128字节 D、位寻址区 9、51单片机的______作为通用I/O口时,必须接上拉电阻。
A、P0口 B、P1口 C、P2口 D、P3口 10、从P0口读引脚时,必须先执行指令_______。
A、P0=0x00; B、P0=0xff; C、P0=0x08; D、P0=0x80; 11、51单片机有_____输入/输出端口。
A、 1个 B、2个 C、3个 D、4个
12、51单片机每次上电或复位后,各I/O口的状态为_______。
A、全1 B、全0 C、随机 D、悬空
13、二进制数10110100转换成十六进制数是_______。
A、0xB4 B、0x264 C、0xC4 D、0x4C 14、堆栈中数据进出规则是_______。
A、先进先出 B、先进后出 C、后进后出 D、按地址小到大的顺序进出 15、堆栈指针SP是一个_____特殊功能寄存器。
A、13位 B、16位 C、32位 D、8位 三、判断题(每题2分,共20分)
1、51单片机采用12MHz晶振时,定时/计数器对外部脉冲计数时最大计数频率为5kHz。( )
2、51单片机系统复位后,各I/O口的状态为低电平。( ) 3、51单片机的特殊功能寄存器分布在程序寄存器ROM中。( )
4、执行TR0=1指令后,当定时/计数器溢出时就可以执行中断子程序。( ) 5、51单片机有21个特殊功能寄存器。( )
6、51单片机一个机器周期等于12个晶振周期。( ) 7、AT89S52单片机有8KB程序存储器。( )
8、continue语句的作用是结束当前循环,进入下次循环。( ) 9、break语句的作用是结束 当前循环,进入下次循环。( ) 10、for(;;)语句可以实现死循环。( )
四、程序阅读与填空题(每空2分,共14分)
1、12MHz晶振单片机P1.0输出50Hz方波。请阅读程序并在相应空格上填上正确的语句。 #include
void delayms(unsigned int x) {
unsigned char i;
while(x--) for(i=0;i<123;i++); }
void main( ) {
while(1) {
______________; delayms(10); } }
2、利用定时/计数器T0实现P1.0输出频率为1kHz的方波。系统时钟采用12MHz晶振,请阅读并完成程序。 #include
________________; //设定工作方式 _______________; //开放中断 ________________; //允许T0中断
TH0=(65536-500)/256;//设定计数器初值 TL0=(65536-500)%6; //设定计数器初值 ____________; //启动定时器 while(1); }
void T0_ISR( ) intterrupt 1 {
P10=~P10;
________________________;//恢复计数器初值 ________________________; //恢复计数器初值 }
2
五、编程题(6分)
利用软件延时实现P2.0输出100Hz方波。系统采用12MHz时钟。