单片机C语言项目式教程课后题解大学期末复习资料
MCS-51单片机技术项目驱动教程C语言第二版牛军课后参考答案
MCS-51单片机技术项目驱动教程C语言第二版习题答案第1章思考与练习1. 什么是单片机?最早的单片机是什么时间推出的?答:单片机是单片微型计算机的简称,它将中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、中断系统、定时器/计数器、串行口和I/O接口等主要计算机部件集成在一块大规模集成电路芯片上,具有了微型计算机的组成结构和功能。
最早的单片机是在20世纪70年代初推出的。
2. 简述单片机的特点。
答:单片机具有种类众多、性价比高、集成度和可靠性高、存储器ROM和RAM严格区分、采用面向控制的指令系统、I/O引脚通常是多功能的、外部扩展能力强等特点。
3. 什么是MCS-51单片机?最早是哪家公司推出的?答:MCS-51单片机是所有兼容Intel 8051指令系统单片机的统称,最早由Intel 公司推出。
4. 说出4种以上常用的单片机类型。
答:(1)MCS-51单片机;(2)AVR单片机;(3)PIC单片机;(4)MSP430单片机;(5)Motorola单片机。
5. 什么是总线?单片机中的总线有哪几种?答:总线是指从任意一个源点到任意一个终点的一组传输数字信息的公共通道。
单片机中总线包括地址总线、数据总线和控制总线三种。
6. 简述单片机中位和字节的概念。
答:一个二进制数叫1位,相邻的8位二进制数构成一个字节。
7.存储地址的作用是什么?答:存储地址用来定义每个存储单元,以供CPU寻址、操作。
第2章思考与练习1. AT89C51单片机的内部ROM 和RAM分别是多大空间?最多可扩展多少空间?答:分别是4KB和128B,ROM最多可扩展60KB,RAM最多可扩展64KB。
2. AT89C51单片机有哪几个中断源?答:有3个内部中断源和2个外部中断源。
3. 画出MCS-51单片机的复位电路原理图,包括上电复位和手动复位功能,并根据参数计算上电复位时高电平的持续时间。
答:复位电路原理图如下图所示。
单片机课后重要习题答案
单片机课后重要习题答案单片机课后重要习题答案在学习单片机的过程中,课后习题是巩固知识、提高编程能力的重要环节。
下面是一些常见的单片机课后习题及其答案,供大家参考。
一、基础题1. 请用C语言编写一个程序,实现将一个整数的二进制表示输出到LED灯上。
答案:```c#include <reg52.h>void main(){int num = 10; // 待转换的整数int i;while (1){for (i = 0; i < 8; i++){P1 = num & (1 << i) ? 0xFF : 0x00; // 判断第i位是否为1,是则点亮LED灯delay(); // 延时函数}}```2. 请编写一个程序,实现将一个8位二进制数的奇偶校验位计算出来,并输出到P1口。
答案:```c#include <reg52.h>void main(){unsigned char num = 0b10011010; // 待计算的8位二进制数int count = 0;int i;for (i = 0; i < 8; i++){if (num & (1 << i)){count++;}}P1 = count % 2 ? 0xFF : 0x00; // 奇数个1则输出高电平,偶数个1则输出低电平}二、进阶题1. 请编写一个程序,实现一个简单的计算器功能,能够进行加、减、乘、除四则运算,并将结果输出到数码管上。
答案:```c#include <reg52.h>void main(){unsigned char num1 = 10; // 第一个操作数unsigned char num2 = 5; // 第二个操作数unsigned char operator = '+'; // 运算符,可修改为其他运算符unsigned char result;switch (operator){case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:result = 0;break;}// 将结果输出到数码管上P1 = result;}```2. 请编写一个程序,实现一个简单的密码验证功能,用户输入密码后,若密码正确,则点亮一个LED灯,否则不点亮。
单片机c语言期末考试题目及答案详解
单片机c语言期末考试题目及答案详解一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 单片机中,以下哪个寄存器通常用于存储程序计数器的值?A. PCB. SPC. ACCD. B答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 单片机编程时,以下哪个函数用于延时?A. delay()B. sleep()C. wait()D. halt()答案:A5. 在C语言中,以下哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C6. 单片机中,以下哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOVX @DPTR, AB. MOV A, @DPTRC. MOVX A, @DPTRD. MOV @DPTR, A答案:A7. 在C语言中,以下哪个关键字用于声明一个全局变量?A. staticB. externC. constD. volatile答案:B8. 单片机中,以下哪个指令用于无条件跳转?A. SJMPB. AJMPC. LJMPD. DJMP答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C10. 单片机中,以下哪个指令用于将累加器A的内容与寄存器B的内容进行异或操作?A. XOR A, BB. XOR A, #dataC. XOR A, @R0D. XOR A, direct答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个数组的关键字是________。
答案:array2. 单片机中,用于读取外部数据存储器的指令是________。
答案:MOVX A, @DPTR3. 在C语言中,用于声明一个字符型变量的关键字是________。
单片机C语言项目式教程期末复习试卷10套
一、选择题(每题2分,共20分)1、所谓CPU是指()A、运算器和控制器B、运算器和存储器C、输入输出设备D、控制器和存储器2、访问片外数据存储器的寻址方式是()A、立即寻址B、寄存器寻址C、寄存器间接寻址D、直接寻址3、堆栈数据的进出原则是()A、先进先出B、先进后出C、后进后出D、进入不出4、开机复位后,CPU使用的是寄存器第一组,地址范围是()A、00H-10HB、00H-07HC、10H-1FHD、08H-0FH5、定时器/计数器工作于模式1时,其计数器为几位?()A、8位B、16位C、14位D、13位6、若某存储器芯片地址线为12根,那么它的存储容量为()A、1KBB、2KBC、4KBD、8KB7、控制串形接口工作方式的寄存器是()A、TCONB、PCONC、SCOND、TMOD8、当8031外扩程序存储器32KB时,需使用EPROM2764()A、2片B、3片C、4片D、5片9、已知:R0=28H (28H)=46MOV A,#32HMOV A,45HMOV A,@R0 执行结果A的内容为()A、46HB、28HC、45HD、32H10、下面程序运行后结果为()MOV 2FH,#30HMOV 30H,#40HMOV R0,#30HMOV A,#20HSETB CADDC A,@R0DEC R0MOV @R0,AA、(2FH)=30H (30H)=40HB、(2FH)=61H (30H)=40HC、(2FH)=60H (30H)=60HD、(2FH)=30H (30H)=60H二、填空题(每空1分,共25分)1、8051有()条指令。
2、晶振的频率为6MHz时,一个机器周期为()μS。
3、单片机是把中央处理器,()()()以及I/O接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机。
4、传输速率是用每秒传送数据位的()来表示,把它定义为(),单位为()。
5、所谓最小应用系统是指能维持单片机运行的()配置系统。
《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2
第四章中断类例4-1 P104假设外部中断0和外部中断1均为下降沿触发,当外部中断0发生时,P0端口的电平反向,当外部中断1发生时,P1端口的电平反向。
#include<reg51.h>void IS0(void) interrupt 0{ P0=~P0;} //P0端口反向void IS1(void) interrupt 2{ P1=~P1;} //P1端口反向void main( ){ P0=0x00; P1=0xFF;IT0=1; IT1=1;EX0=1; EX1=1; EA=1;while(1);}【例4-9】外部中断示例在本实例中,首先通过P1.7口点亮发光二极管D1,然后外部输入一脉冲串,则发光二极管D1亮、暗交替。
#include<reg51.h>sbit P1_7=P1^7;void interrupt0( ) interrupt 0 using 2 //外部中断0{ P1_7=!P1_7;}void main( ){ EA=1; //开中断IT0=1; //外部中断0脉冲触发EX0=1; //外部中断0P1_7=0;do{ }while(1);}如果有3个脉冲,则灯亮、暗交替一次,可如下面编程:#include<reg51.h>Sbit P17=P1^7;unsigned char i=3;void main( ){ EA=1; IT0=1; EX0=1;P17=0;do{ }while(1); }void interrupt0( ) interrupt 0{ i=i-1;if(i==0){ P17=!P17; i=3;}}【例4-10】如图4-18所示,8只LED阴极接至单片机P0口,两开关S0、S1分别接至单片机引脚P3.2()和P3.3()。
编写程序控制LED状态。
按下S0后,点亮8只LED;按下S1后,变为闪烁状态。
#include<reg51.h>sbit P32=P3^2;void delay(unsigned int d) //定义延时子函数{ while(--d>0);}void main( ){ P0=0xFF; //熄灭LEDIT0=1; IT1=1; //外中断0、1脉冲触发方式EA=1; EX0=1; EX1=1; //开中断for( ; ; ) //延时等待中断发生{;}}void INT0_ISR( ) interrupt 0//外中断0中断服务函数{ P0=0x00;}void INT1_ISR( ) interrupt 2//外中断1中断服务函数{ while(P32!=0) //如果有外部中断0,则退出{ delay(5000);P0=0x00;delay(5000);P0=0xFF;}}定时类【例4-16】设单片机的fosc=12MHz,要求在P1.0上产生周期为2ms的方波。
单片机的C语言程序设计与运用第2版期末复习题及答案2
第四章中断类P104 例4-1发0均为下降沿触发,当外部中断和外部中断假设外部中断01端口的电P11发生时,生时,P0端口的电平反向,当外部中断平反向。
#include<reg51.h>void IS0(void) interrupt 0{ P0=~P0;} //P0端口反向void IS1(void) interrupt 2P1=~P1;} //P1{ 端口反向void main( )P1=0xFF; {P0=0x00;IT0=1; IT1=1;EX0=1; EX1=1; EA=1;while(1);}】外部中断示例4-9【例然后外部输入一脉冲串,D1,首先通过在本实例中,P1.7口点亮发光二极管则发光二极管D1亮、暗交替。
#include<reg51.h>P1_7=P1^7;sbit0 //外部中断void interrupt0( ) interrupt 0 using 2P1_7=!P1_7;} {main( )void//{开中断EA=1;脉冲触发//外部中断0 IT0=1;EX0=1; //外部中断0P1_7=0;do{ }while(1);}3个脉冲,则灯亮、暗交替一次,可如下面编程:如果有#include<reg51.h> P17=P1^7; Sbitchar i=3; unsignedmain( ) voidEX0=1; IT0=1; EA=1; {P17=0;} do{ }while(1);void interrupt0( ) interrupt 0i=i-1; {if(i==0)P17=!P17; i=3;{}}S1口,两开关S0、LED【例4-10】如图4-18所示,8只阴极接至单片机P0S0LED 状态。
按下P3.2分别接至单片机引脚()和P3.3()。
编写程序控制S1后,变为闪烁状态。
后,点亮8只LED;按下#include<reg51.h>P32=P3^2;sbit定义延时子函数// void delay(unsigned int d)while(--d>0); {}main( ) voidLED//熄灭P0=0xFF; {IT1=1; IT0=1; 脉冲触发方式1、0外中断//EA=1; EX0=1; EX1=1; //开中断for( ; ; ) //延时等待中断发生{;}}INT0_ISR( ) interrupt 0//外中断0中断服务函数voidP0=0x00;{}1void INT1_ISR( ) interrupt 2//外中断中断服务函数while(P32!=0)//如果有外部中断0,则退出{{delay(5000);P0=0x00;delay(5000);P0=0xFF;}}定时类【例4-16】设单片机的fosc=12MHz,要求在P1.0上产生周期为2ms的方波。
c语言期末考试题及答案及解析
c语言期末考试题及答案及解析1. 请写出C语言中声明一个整型变量的语句。
答案:int a;解析:在C语言中,使用关键字`int`来声明一个整型变量,`a`是变量的名称。
2. 如何在C语言中使用循环结构打印出1到10的数字?答案:```c#include <stdio.h>int main() {for(int i = 1; i <= 10; i++) {printf("%d ", i);}return 0;}```解析:这里使用了`for`循环结构,初始化变量`i`为1,循环条件是`i`小于等于10,每次循环结束后`i`自增1,循环体中使用`printf`函数打印当前的`i`值。
3. 请解释C语言中的指针是什么?答案:指针是一种变量,它存储了另一个变量的内存地址。
解析:指针在C语言中用于直接访问内存地址,它允许程序直接操作内存,这在某些情况下可以提高程序的效率。
4. 写出一个C语言函数,该函数接受一个字符串作为参数,并返回该字符串的长度。
答案:```cint stringLength(char *str) {int length = 0;while(*str) {length++;str++;}return length;}```解析:这个函数通过遍历字符串,直到遇到字符串结束符`\0`,每遍历一个字符,长度计数器`length`就增加1,最后返回字符串的长度。
5. 在C语言中,如何交换两个变量的值?答案:```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```解析:通过使用指针参数,我们可以在函数内部交换两个变量的值。
首先将第一个变量的值存储在临时变量`temp`中,然后将第二个变量的值赋给第一个变量,最后将`temp`中的值赋给第二个变量。
6. 请解释C语言中的结构体是什么?答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的数据结构。
单片机C语言项目式教程综合题含答案
六、综合题1.现有8031单片机、74LS373锁存器、1片2764EPROM和2片6116RAM,请使用他们组成一个单片机系统,要求:(1)画出硬件电路连线图,并标注主要引脚;(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。
解:(1)电路图如下所示:(2)2764的地址为C000H-DFFFH;第一个6116的地址为A000H-A7FFH;第二个6116的地址为6000H-67FFH;事实上,由于采用的是线选法,导致了地址不连续,地址空间利用不充分。
建议在实际工作中要具体情况具体分析。
在两种地址分配中选一种较好的来应用。
2.使用89C51芯片外扩一片E2PROM2864,要求2864兼作程序存储器和数据存储器,且首地址为8000H。
要求:(1)确定2864芯片的末地址;(2)画出2864片选端的地址译码电路;(3)画出该应用系统的硬件连接图。
解:(1)2864为8KB的存储器,如果首地址为8000H,则其末地址为9FFFH,理由参考第12题;(2)电路图如下所示:(3)电路图如下所示:3.画出MCS-51系列单片机利用串行口进行1台主机与4台从机多机串行通讯连线图,其中1台从机通讯地址号为02H,请叙述主机向02H从机发送一个字节数据的过程。
从机从机从机从机答:主机发送数据过程如下:将从机00~03H的REN置1,SM2=1,并使它们工作在串行口工作方式2或3。
由主机向4个从机发出一帧地址址信息02H,第9位为1。
从机接到信息后均发生中断,执行中断服务程序,将02H与自身地址做比较。
若相同,则清SM2=0,若不同则SM2不变仍为1。
主机发送一帧数据信息,第9位为0,从机接到信息后,只有SM2=0的从机发生中断,将数据信息收取,其余SM2=1的从机不放出中断,信息丢失,从而实现主机向02H从机发送一个字节数据的功能。
4.请回答:(1).下图中外部扩展的程序存储器和数据存储器容量各是多少?(2).两片存储器芯片的地址范围分别是多少?(地址线未用到的位填1)(3).请编写程序,要求:(A)将内部RAM 30H~3FH中的内容送入1# 6264的前16个单元中;(B)将2# 6264的前4个单元的内容送入40H~43中;解:(1).外扩程序存储器的容量是8K,外扩数据存储器的容量是16K(2).2764范围:C000H~DFFFH1#范围: A000H~BFFFH2#范围: 6000H~7FFFH(3).请编写程序(A)MOV R1 ,#10HMOV DPTR,@0A000HMOV R0,#30HLOOP: MOV A,@RoMOVX @DPTR,AINC DPTRINC R0DINE R1,LOOPRET(B) MOV R1,#04HMOV DPTR,#6000HMOV R0 ,#40HLOOP: MOVX A ,@DPTRMOV @R0 ,AINC DPTRINC R0DTNZ R1 ,LOOPRET5.简述一种多外部中断源系统的设计方法。
c语言期末考试题库大题及详解答案
c语言期末考试题库大题及详解答案1. 题目:编写一个C语言程序,实现一个简单的学生成绩管理系统,要求能够添加学生信息、查询学生信息、修改学生信息和删除学生信息。
答案:```c#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {int id;char name[50];float score;} Student;Student students[100];int studentCount = 0;void addStudent(int id, char* name, float score) {if (studentCount < 100) {students[studentCount].id = id;strcpy(students[studentCount].name, name);students[studentCount].score = score;studentCount++;} else {printf("学生信息已满。
\n");}}void queryStudent(int id) {for (int i = 0; i < studentCount; i++) {if (students[i].id == id) {printf("学生ID:%d, 姓名:%s, 成绩:%.2f\n", students[i].id, students[i].name, students[i].score);return;}}printf("未找到该学生信息。
\n");}void modifyStudent(int id, char* name, float score) {for (int i = 0; i < studentCount; i++) {if (students[i].id == id) {strcpy(students[i].name, name);students[i].score = score;printf("学生信息已更新。
单片机的C语言程序设计与运用期末复习题及答案
一、填空1.KeiL C51软件中,工程文件的扩展名是____UV2______,编译连接后生成可烧写的文件扩展名是_____HEX_______。
2.C51支持的指针有一般指针和存储器指针。
3.C51中,没有专门的循环语句,我们可以用函数______crol_______完成一个字节的循环左移,用____irol_____完成二个字节的循环左移。
4.函数是C语言的基本单位。
5.C语言中输入和输出操作是由库函数scanf 和 printf等函数来完成。
6.若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j 的值为__ 900______。
7.数组是一组有固定数目和相同类型成分分量的有序集合。
8.变量的指针就是变量的地址;指针变量的值是指针。
9.在C语言中,把多个不同类型的变量结合在一起形成的一个组合型变量,称为结构变量,简称结构。
10.C51的数据类型有基本类型、构造类型、指针类型、空类型。
11.C51的基本数据类型有位型、字符型、整形、长整形、浮点型、双精度浮点型。
12.C51的构造数据类型有数组类型、结构类型、共用体型、梅举型。
13.C51的存储类型有 data 、 bdata 、 idata 、pdata 、 xdata 、 code 。
14.C51的存储模式有 SMALL 、 COMPACT 和 LARGE 。
15.C51程序与其他语言程序一样,程序结构也分为顺序结构、选择结构(或分支结构)、循环结构三种。
16.数组的一个很重要的用途就是查表。
17.二、单项选择题:1.89S51的内部程序存储器与数据存储器容量各为多少?(C)(A)64KB、 128B ( B)4KB、64KB(C)4KB、128B (D)8KB、256B2.在8x51芯片里,哪个引脚用于控制使用内部程序存储器还是外部程序存储器?(B)(A)XTAL1(B)/EA(C)/PSEN (D)ALE3.下列哪个不是KeilC的预处理命令?(C)(A)#include (B)#define (C)#exit (D)#if 4.下列哪个不是KeilC的数据类型?(B)(A)void (B)string (C)char (D)float 5.在8x51的输入/输出端口里,哪个输入/输出端口执行在输出功能时没有内部上拉电阻(A)(A)P0 (B)P1 (C)P2 (D)P36.在KeilC的程序里,若要指定P0口的bit3,如何编写?(C)(A)P0.3 (B)Port0.3 (C)P0^3 (D)Port^3 7.在8x51里,若要扩展外部存储器时,数据总线连接哪个输入/输出端口?(A)(A)P0 (B)P1 (C)P2 (D)P38.点亮一般的LED所耗的电流约为多少?(D)(A)1~5uA(B)10~20uA (C)1~5mA(D)10~20mA9.在8x51的程序里,若要将个输入/输出端口设置成输入功能,应如何处理?(A)(A)先输出高电平到该输入/输出端口(B)先输出低电平到该输入/输出端口(C)先读取该输入/输出端口的状态(D)先保存该输入/输出端口的状态10.根据实验统计,当操作开关时,其不稳定关态大约持续多久?(B)(A)1~5ms(B)10~20ms (C)100~150ms (D)150~250us 11.在KeilC里,判读开关状态时,使用if_else if语句与使用switch语句有何差异?(B)(A)if-else if 语句较快(B)if-else if语句有优先级(C)switch语句可判读较多开关状态(D)switch语句有优先级12.对于低电平动作(低电平触发)的开关而言,下列哪个不是在输入口上连接一个上拉电阻VCC的目的?(A)(A)提供足够的驱动电流(B)防止确定状态(C)保持输入高电平(D)防止噪声干扰13.中断功能具有什么好处?(C)(A)让程序更复杂(B)让程序执行速度更快(C)让程序更有效率(D)以上皆非14.8x51的IP缓存器的功能为何?(A)(A)设置中断优先级(B)启用中断功能(C)设置中断触发信号(D)定义CPU的网址15.在KeilC里,中断子程序与函数有何不同?(A)(A)中断子程序不必声明(B)函数不必声明(C)中断子程序必须有形式参数(D)中断子程序一定会有返回值16.若要同时启用INT0及INT1中断功能,则应如何设置?(B)(A)TCON=0x81 (B)IE=0x85 (C)IP=0x83 (D)IE=0x0317.若要提高INT1的优先级,则应如何设置?(C)(A)IP=0x01 (B)IE=0x01 (C)IP=0x04(D)IE=0x0418.在8x51的Timer里,若使用Mode 0,其最大计数值为多少个机器周期?(B)(A)65636 (B)8192 (C)1024 (D)25619.12 MHz的8x51系统里,哪一种方式一次可定时5ms?(A)(A)Mode0及Mode1 (B)Mode1及Mode2 (C )Mode2及Mode3 (D) Mode3及Mode120.8x51的定时器,在下列哪种方式下具有自动加载功能?(C)(A)Mode0 (B) Mode1 (C)Mode2 (D)Mode321.若将Timer0设置为外部启动,则可由哪个引脚启动?(A)(A)P3.2(B)P3.3 (C)P3.4 (D)P3.522.下列哪个IC具有将串行数据转换成并行数据的功能?(B)(A)74138 (B)74164 (C)74165 (D)7416823.在同一时刻,只能接收或发送信号者称为什么?(A)(A)半双工(B)全双工(C)半单工(D)单工24‘在8x51的串行口里,在哪一种方式下,可利用Timer1产生波特率?(C)(A)Mode0 (B)Mode1 (C)Mode2(D)Mode325.在8x51里,若通过串行端口传出数据,则只要将数据放入哪个寄存器,CPU就会自动将它会传出?(B)(A)SMOD(B)SBUF (C)PCON (D)RBUF26.在8x51里,若CPU完成串行端口数据的接收将会如何?(D)(A)将TI标志变为0 (B)将RI标志为0 (C)将TI标志变为了 1 (D)将RI标志变为127.若要设置8x51串行端口方式,可在哪个寄存器中设置?(B)(A)SMOD (B)SCON (C)PCON (D)TCON28.在共阳极8*8LED点阵里,其阳极如何连接?(C)(A)各行阳极连接到行引脚(B)各列阳极连接到列引脚(C)各行阳极连接到列引脚(D)各列阳极连接到行引脚29.在共阳极8*8点阵里,其阴极如何连接?(A)(A)各行阴极连接到行引脚(B)各列阴极连接到列引脚(C)各行阴极连接到列引脚(D)各列阴极连接到行引脚30.通常8*8LED点阵的驱动方式是什么?(B)(A)直接驱动(B)扫描驱动(C)双向驱动(D)以上皆非31.若要对LCM下指令,则应如保设置?(A)(A)RS=0,R/~W=0(B)RS=1,R/~W=0 (C)RS=1,R/~W=1(D)RS=0,R/~W=132.若要在LCM中显示些字符,则需把所要显示的字符放入何处?(B)(A)CG RAM (B)DDRAM (C)IRAM (D)GDRAM33.若要将数据写入LCM,则应如何设置?(B)(A)RS=0,R/~W=0 (B)RS=1,R/~W=0 (C)RS=1,R/~W=1 (D)RS=0,R/~w=1341.利用下列( D)关键字可以改变工作寄存器组A、interruptB、sfrC、whileD、using35.C51中一般指针变量占用( C )字节存储。
(C语言版)绝密版C51单片机复习题及答案
(C语言版)绝密版C51单片机复习题及答案一填空题1、计算机中最常用的字符信息编码是(ASCII码)。
2、MCS-51系列单片机为(8)位单片机。
3、若不使用MCS-51片内存储器引脚(/EA)必须接(地)。
4、8031内部有(128)个RAM;8051内部有(4K ROM)和(128个RAM)。
5、堆栈的地址由(SP)内容确定,其操作规律是“(先)进(后)出”。
6、在单片机扩展时,(P0)口和(P2)口为地址线,(P0)口又分时作为数据线。
7、在MCS-51单片机中,如采用6MHZ晶振,一个机器周期为(2us)。
8、当80C51的RST引脚上保持(2)个机器周期以上的低电平时,80C51即发生复位。
9、当P1口做输入口输入数据时,必须先向该端口的锁存器写入(1),否则输入数据可能出错。
10、若某存储芯片地址线为12根,那么它的存储容量为(4K B)。
11、程序状态寄存器PSW的作用是用来保存程序运行过程中的各种状态信息。
其中CY为(进位)标志,用于无符号数加(减)运算,当进行(位)操作时作为位累加器。
OV为(溢出)标志,用于有符号数的加(减)运算。
12、消除键盘抖动常用两种方法,一是采用(硬件去抖电路),用基本RS触发器构成;二是采用(软件去抖程序),既测试有键输入时需延时(约大于10毫秒)后再测试是否有键输入,此方法可判断是否有键抖动。
13、若MCS-51单片机采用12MHz的晶振频率,它的机器周期为(1us),ALE引脚输出正脉冲频率为(2MHZ)。
14、8051有两个16位可编程定时/计数器,T0和T1。
它们的功能可由两个控制寄存器(TCON)、(TMOD)的内容决定,且定时的时间或计数的次数与(TH)、(TL)两个寄存器的初值有关。
15、串行口的控制寄存器SCON中,REN的作用是(允许串行接收位)。
16、单片机内外中断源按优先级别分为高级中断和低级中断,级别的高低是由(中断优先级寄存器,)寄存器的置位状态决定的。
c语言单片机考试题及答案详解
c语言单片机考试题及答案详解一、选择题1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在单片机编程中,以下哪个寄存器用于存储程序计数器的值?A. PCB. SPC. ACCD. B答案:A3. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable-nameC. variable$nameD. variable_name答案:D4. 在单片机中,若要将一个8位二进制数扩展为16位,应使用哪种指令?A. MOVB. CLRC. SWAPD. EXT答案:D5. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A二、填空题1. 在C语言中,用于定义一个无符号字符型变量的关键字是________。
答案:unsigned char2. 单片机的I/O口可以被配置为________模式,用于接收外部信号。
答案:输入3. 在C语言中,若要声明一个指向整型的指针变量,应使用________。
答案:int*4. 单片机编程中,使用________指令可以将累加器A的内容传送到外部数据存储器。
答案:MOVX5. C语言中,________运算符用于计算两个数的差,并更新累加器A的值。
答案:-三、简答题1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储相同类型的多个元素,而指针是一种变量,它存储了另一个变量的内存地址。
数组名可以被用来访问数组的第一个元素的地址,但数组本身不能被赋值;指针变量可以被赋值,指向不同的内存地址。
2. 描述单片机中断服务程序的执行流程。
答案:当单片机检测到一个中断请求时,它会保存当前程序的状态(如程序计数器和寄存器的值),然后跳转到中断向量指定的地址执行中断服务程序。
大学生C语言课后习题全部答案详解
\
main()
{
int y,m,d,yt,mt,dt,age;
printf("请按格式2010-12-10输入你的生日");
scanf("%d-%d-%d",&y,&m,&d);
printf("请按格式2010-12-10输入今天的日期");
scanf("%d-%d-%d",&yt,&mt,&dt);printf(源自| 0——退出|\n");
printf("|------------------------|\n");
printf("请输入选项\n");
ch=getch();
putch(ch);
}
#include<stdio.h>
#include<conio.h>
main()
{
//定义
int a=0,b=0,he=0,cha=0,ji=0;
{printf("%4d",i);
n++;
}
}
printf("\n");
printf("%d",n);
}#include<stdio.h>
#include<math.h>
main()
{
int n=0,s=1,i=0;
printf("input:");
scanf("%d",&n);
for(i=1;i<=n;i++)
单片机C语言项目式教程期末试卷2套及答案
-1无锡职业技术学院 2011~2012学年第二学期《单片机C 语言项目式教程》期末试卷(A 卷) (开卷考试)系 电子信息技术系 班级 学号 姓名一、填空题(每题1分,共20分)1、除了单片机和电源外,单片机最小系统包括____时钟________和_____复位_______ 。
2、MCS-51系列单片机的应用程序一般存放在____ROM________中。
3、C51单片机采用定时器实现定时功能,可采用___方式1______和____方式2______两种方式。
4、一个完整的单片机应用系统由_____软件_______和____硬件________两大部分组成。
5、C51的中断源有5个,分别是___外部中断0______、_外部中断1________、___定时器0______、___定时器1_______和串行中断。
6、DAC0832是______8_____位数模转换器,与单片机的接口可分为_____单缓冲________、______双缓冲_________两种方式。
7、欲使P1口的低4位输出1,高4位输出0,C51写为____P1=0X0F________。
8、机械式按键在按下和释放时,通常伴有一定时间的____抖动_______事件;单片机经常通过_____软件消抖_______方式来消除此事件对键盘的10、8051内部有______4______个并行口,____P0________口直接作输出口时,必须外接上拉电阻。
二、选择题(每小题2分,共26分)1. 80C51单片机的( D )口的引脚,还具有外中断、串行通信等第二功能。
A 、P0 B 、P1 C 、P2 D 、P32.单片机应用程序一般存放在( B ) 。
A 、 RAMB 、ROMC 、寄存器D 、CPU 3.若单片机的振荡频率为12MHz ,设定时器工作在方式1需要定时1ms ,则定时器初值应为( C )。
A 、500 B 、1000 C 、64536 D 、605364.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( A )。
单片机的C语言程序设计与运用第2版期末复习题及答案2
第四章中断类例 4-1 P104假设外部中断0和外部中断1均为下降沿触发,当外部中断0发 生时,P0端口的电平反向,当外部中断1发生时,P1端口的电 平反向#in clude<reg51.h> void IS0(void) { P0=~P0;} void IS1(void) {P1=~P1;}void mai n() {P0=0x00; IT0=1;EX0=1; EX 仁 1; EA=1; while(1);}【例4-9】外部中断示例丨"11 ■WTRO47DRDO2B- 2?"注24B2此ULP3 7ZRD P1.7F3.6AfUR 卩1.6F35/n P1.5 F3.47T0 PI.4 PS.3/INTP1.3 P3 2/INTD P1.2F3.1JTKD卩1.1F3.0/RXD P1.DP2.7/A1S F2.S/A<14P2.fi/A13 EA F5 47A15 ALE F2.3/A11 P$ENP2 2/A10 P2.1/.W9F2.DMFD.7/AD7 RSTFO.6/AD6 FO5/AD5 PDAViJMFD.3/AKKT 疋FC2/AD2PO I/AD1FOfl/AECJTTAL1 <R1in terrupt〃P0端口反向 in terrupt2〃P1端口反向P1=0xFF; IT 1=1; 12- \了 GND36"36" ■ 2■1■01S19ML ■30 ■29在本实例中,首先通过P1.7 口点亮发光二极管D1 ,然后外部输入一脉冲串, 则发光二极管D1亮、暗交替U1 AT89C51GND#in clude<reg51.h> sbit P1_7=P1A 7;void in terrupt0( ) in terrupt 0 using 2 {P1_7=!P1_7;}void mai n() {EA=1;//开中断IT0=1; //外部中断0脉冲触发 EX0=1; //外部中断0P1_7=0; do{ }while(1);}如果有3个脉冲,则灯亮、暗交替一次,可如下面编程:#in clude<reg51.h> Sbit P17=P1A7; un sig ned char i=3; void mai n() {EA=1; IT0=1; EX0=1;P17=0;21 22 23 2T 25 26 27 28 1D 1J 7T 13 W 1T 16 117P5 VM P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.D/RXD P3.1/TXD P3.27IN1D P3.3/FNTT P3.4/TDP3,5J T1P3.6 歴P3.7/RDPSENALEEAPkO P1.1 P1.2Pt3P1.4 P1.5 PI.9 P1.7vcc■弟■3D ■31 D J ・R1 47D R■?■8//外部中断0■ 1do{ }while(1); }void in terrupt0( ) in terrupt 0 { i=i-1;if(i==0){ P17=!P17; i=3;}}【例4-10】如图4-18所示,8只LED阴极接至单片机P0 口,两开关SO、分别接至单片机引脚P3.2 ()和P3.3 ()。
大学C语言期末考试练习题(带详解答案)
大学C语言期末考试练习题(带详解答案)------------------------------------------作者------------------------------------------日期一、单项选择题.( ✌ )是构成 语言程序的基本单位。
✌、函数 、过程 、子程序 、子例程. 语言程序从 开始执行。
✌✆ 程序中第一条可执行语句∙∙∙ ✆ 程序中第一个函数∙∙∙✆ 程序中的❍♋♓⏹函数∙∙∙∙∙∙∙∙∙ ✆ 包含文件中的第一个函数、以下说法中正确的是( )。
✌、 语言程序总是从第一个定义的函数开始执行、在 语言程序中,要调用的函数必须在❍♋♓⏹☎ ✆函数中定义、 语言程序总是从❍♋♓⏹☎ ✆函数开始执行、 语言程序中的❍♋♓⏹☎ ✆函数必须放在程序的开始部分下列关于 语言的说法错误的是( ) 。
✌✆ 程序的工作过程是编辑、编译、连接、运行✆ 语言不区分大小写。
✆ 程序的三种基本结构是顺序、选择、循环✆ 程序从❍♋♓⏹函数开始执行下列正确的标识符是( )。
✌♋ ♋☯♓ ♋♉♓ ♓⏹♦ ♦❞题为相同类型题考点:标识符的命名规则( )只能由字母、数字、下划线构成( )数字不能作为标识符的开头( )关键字不能作为标识符选项✌中的❽❾ ,选项 中❽☯❾与❽❾不满足( );选项 中的♓⏹♦为关键字,不满足( ).下列 语言用户标识符中合法的是( )。
✌✆♋⌧ ✆⌧ ✆♍♋♦♏ ✆♏ ☜✆◆⏹♓☐⏹选项✌中的标识符以数字开头不满足( );选项 ,☜均为为关键字,不满足( );选项 中的❽❾不满足( );.下列四组选项中,正确的 语言标识符是( )。
✌) ⌧ ) ♋♌ )♋ ) ( )、下列四组字符串中都可以用作 语言程序中的标识符的是( ✌ )。
✌、☐❒♓⏹♦ ♉♎ ♎♌ ♋♍ 、✋♋❍ ☐⏹♏♉♒♋●♐ ♦♦♋❒♦♓♦ ☐♋♓、♦♦❒♉ ☐☐ ☐☐♦ ♦♒♓●♏ 、⌧❑ ⍓♌☐☐ ●♓⏹♏✁ ☟♓♦♋♑♏选项 中的❽❾,❾❾ ,选项 中❽❾,❾✁❾,❾❾,❾❾不满足( );选项 中的♦♒♓●♏为关键字,不满足( )语言中的简单数据类型包括( )。
单片机应用技术项目教程(C语言版)习题答案
单片机应用技术项目教程(C语言版)习题答案项目一1-1 填空题(1)8031,8751(2)存储器,定时器/计数器,输入/输出接口电路(3)上电自动复位,手动复位(4)12,1μs,1,4(5)1(6)4,1,2,51-2选择题(1)A(2)C(3)D(4)C(5)A1-3(1)Keil C51软件的主要功能Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
μVision2 集成开发环境可以完成工程建立和管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。
(2)PROTEUS软件的主要功能Proteus不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,也是目前较先进的单片机和嵌入式系统的设计与仿真平台。
在计算机上,能完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。
1-4 简叙单片机的发展及发展趋势。
单片机的发展主要有以下几个方面:(1)增加字长,提高数据精度和处理的速度;(2)改进制作工艺,提高单片机的整体性能;(3)由复杂指令集CISC转向简单指令集RISC的技术;(4)多功能模块集成技术,使一块“嵌入式”芯片具有多种功能;(5)微处理器与DSP技术相结合;(6)融入高级语言的编译程序;(7)低电压、宽电压、低功耗。
目前,国际市场上8位、16位单片机系列已有很多,32位的单片机也已经进入了实用阶段。
随着单片机技术的不断发展,新型单片机还将不断涌现,单片机技术正以惊人的速度向前发展。
1-5 简叙单片机的主要应用领域。
单片机的主要应用领域:工业控制、智能仪表、外设控制、家用电器、机器人、军事装项目二LED循环点亮控制 2置等。
1-6 简叙单片机的主要特点。
(1)体积小、重量轻,价格低、功能强,电源单一、功耗低,可靠性高、抗干扰能力强。
(2)使用方便灵活、通用性强。
单片机C语言项目式教程课后题解大学期末复习资料
思考与讨论题1-1什么是单片机?它与一般微型计算机在结构上何区别?答:单片微型计算机简称为单片机(Single Chip Computer),又称为微控制器(MCU即Micro-Controller Unit)。
它是在一块芯片上集成了中央处理器(CPU)、存储器(RAM、ROM)、定时器/计数器、中断控制、各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等为一体的器件。
微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。
单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。
1-2 单片机的发展大致可分为几个阶段?各阶段的单片机功能特点是什么?答:1976年9月Intel公司推出MCS-48单片机,8位机1978年下半年Motorola公司推出M6800系列单片机,增加了串口功能1982年Mostek公司和Intel公司先后又推出了性能更高的16位机思考与讨论题2-1 串行在线仿真系统中单片机与PC机的通信线怎样连接?答:设计好单片机产品硬件,作一根通信线,一般是买一根标准串口通信线,一端(A端)9芯插头与PC机相连,另一端(B 端)的插头不用,直接将三根线分别与单片机的串口和地相连(A端的2脚与单片机的P3.0连;A端的3脚与单片机的P3.1连;A端的5脚与单片机的地连;A端的7脚与A端的8脚短接;A端的4脚与A端的6脚短接)。
2-2 在线仿真与软件仿真的主要区别在哪里?答:软件仿真:这种方法主要是使用计算机软件来模拟运行,实际的单片机运行因此仿真与硬件无关的系统具有一定的优点。
用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。
软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计..硬件仿真:使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思考与讨论题1-1什么是单片机?它与一般微型计算机在结构上何区别?答:单片微型计算机简称为单片机(Single Chip Computer),又称为微控制器(MCU即Micro-Controller Unit)。
它是在一块芯片上集成了中央处理器(CPU)、存储器(RAM、ROM)、定时器/计数器、中断控制、各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等为一体的器件。
微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。
单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。
1-2 单片机的发展大致可分为几个阶段?各阶段的单片机功能特点是什么?答:1976年9月Intel公司推出MCS-48单片机,8位机1978年下半年Motorola公司推出M6800系列单片机,增加了串口功能1982年Mostek公司和Intel公司先后又推出了性能更高的16位机思考与讨论题2-1 串行在线仿真系统中单片机与PC机的通信线怎样连接?答:设计好单片机产品硬件,作一根通信线,一般是买一根标准串口通信线,一端(A端)9芯插头与PC机相连,另一端(B 端)的插头不用,直接将三根线分别与单片机的串口和地相连(A端的2脚与单片机的P3.0连;A端的3脚与单片机的P3.1连;A端的5脚与单片机的地连;A端的7脚与A端的8脚短接;A端的4脚与A端的6脚短接)。
2-2 在线仿真与软件仿真的主要区别在哪里?答:软件仿真:这种方法主要是使用计算机软件来模拟运行,实际的单片机运行因此仿真与硬件无关的系统具有一定的优点。
用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。
软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计..硬件仿真:使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。
使用了附加硬件后用户就可以对程序的运行进行控制,例如单步,全速,查看资源断点等。
硬件仿真是开发过程中所必须的。
习题与思考题3-1单片机中有哪些抗干扰技术答:软件抗干扰和硬件抗扰。
3-2 LED控制仿真时要注意哪些问题?答:①要注意延时时间长短,太短人眼感觉不出亮暗变化,太长会增大电流。
②要加驱动电路。
③用P0口接指示灯时,一定要加上拉电阻,阻值为5.1K-10K之间思考与讨论4-1 MCS-51系列单片机内部有哪些主要的逻辑部件?答:一个8位CPU。
一个片内振荡器及时钟电路。
4K字节ROM程序存储器。
128字节RAM数据存储器。
两个16位定时器/计数器。
可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路。
32条可编程的I/O线(4个8位并行I/O端口)。
一个可编程全双工串行口。
具有5个中断源、两个优先级嵌套中断结构。
4-2 MCS-51设有4个8位I/O端口(32条I/O线),实际应用中8位数据信息由哪一个端口传送?16位地址线怎样形成?P3口有何功能?答:低8位地址线经P0口输出,高8位地址线经P2口输出。
P3口为多功能口4-3 MCS-51的存储器结构与一般的微型计算机有何不同?程序存储器和数据存储器各有何功用?答:程序存储器是用于存放是系统工作的应用程序及一些不需改变的数据常数的,程序写入程序存储器后,单片机系统只能读取程序指令使系统运行,而不能再进行改写,且系统掉电后,程序不会丢失。
因此,程序存储器是ROM(Read Only Memory),即只读存储器。
数据存储器是用于存放程序运行的中间处理数据的,可随程序运行而随时写入或读出数据存储器的内容,当系统掉电时,数据全部会丢失。
因此,数据存储器是RAM(Random Accese Memory),即可随机读写的存储器。
4-4 MCS-51内部RAM区功能结构如何分配?4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?答:内部RAM分为工作寄存器区、位寻址区、数据区。
通过对PSW中的D4、D3位内容的修改,就能任选一个工作寄存器区。
位地址范围为00H~7FH。
4-5 特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么?答:地址数值能被8整除的特殊功能寄存器可以位寻址。
4-6 简述程序状态字PSW中各位的含义。
答:BO---F0H ACC---E0H PSW---D0HIP---B8H P3---BOH IE----A8HP2---A0H SCON---98H P1---90HTCON----88H P0----80HPSW:CY进位AC辅助进位标志位F0用户使用的状态标志位RS1/RS04组工作寄存器区选择控制位1和位0OV溢出标志位PSW.1保留位P奇偶标志位思考与讨论5-1 C语言为什么要规定对所有用到的变量要“先定义,后使用”。
这样做有什么好处?答:方便使用时直接调用。
5-2 字符常量与字符串常量有什么区别?答:字符常量只有一个字符,字符串常量:字符串常量是用双引号括起来的,在C语言中系统会在每个字符串的最后自动加入一个'\0'作为字符串的结束标志。
5-3 C中的while和do while的不同点是什么?答:While先判断后执行,do while先执行再判断,比前一种多执行一次。
5-4 用三种循环方式分别编写程序,显示整数1~100的平方。
解:#include<reg51.h>#include<stdio.h>main(){int i,sum=0;for(i=1;i<=100;i++){sum=i*i;printf("%d\n",sum);}}#include<reg51.h>#include<stdio.h> main(){int i=0,sum=0;do{i++;sum=i*i;printf("%d\n",sum);}while(i<=100);}#include<reg51.h>#include<stdio.h> main(){int i=0,sum=0; while(i<=100){i++;sum=i*i;printf("%d\n",sum);}}思考与练习6-1 用while语句编写三重循环程序。
解:#include<reg51.h>main(){int i=1,j=26,sum=100;while(i<100){while(j>2){while(sum<0){sum=sum+1;}j++;}i=i+2;}}6-2 用do~while语句编写三重循环程序。
解:#include<reg51.h>main(){int i=1,j=26,sum=100; do{i++;do{j++;do{sum--;}while(sum>0);}while(j<25);}while(i<19);}6-3 编写控制P2、P3两个口线控制的16个指示灯分别左移、右移、中间向两端移、两端向中间移的程序。
解:#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar code LP2[48]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar code LP3[48]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void main(){uchar i;uint j;P2=0xff;P3=0xff;do{for(i=0;i<=47;i++){P2=LP0[i];P3=LP1[i];for(j=0;j<2500;j++);}}while(1);}6-4 编写控制P0、P1、P2三个口线控制的24个指示灯分别左移、右移、中间向两端移、两端向中间移的程序。
解:该题简单,参看例题,程序略思考与讨论7-1 定时器/计数器各种方式有何区别答:M1 M0 方式说明0 0 0 13位定时器/计数器0 1 1 16位定时器/计数器1 02 自动装入时间常数的8位定时器/计数器对T0分为两个8位独立计数器;对T1置1 1 3方式3时停止工作(无中断重装8位计数器) 7-2编写定时器/计数器程序有何规律。
答:(1) 根据题目要求先给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。
(2) 根据实际需要给定时器/计数器选送定时器初值或计数器初值,以确实需要定时的时间和需要记数的初值。
(3) 根据需要给中断允许寄存器IE选送中断控制字和给中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。
(4) 给定时器控制寄存器TCON送命令字,以启动或禁止定时器/计数器的运行。
思考与讨论题8-1 简述中断、中断源、中断源的优先级及中断嵌套的含义。
答:外部中断0最高,其次定时器/计数器0,再次外部中断1,然后定时器/计数器1,最后串行口中断。
当CPU正在处理一个优先级低的中断请求时,如果发生另一个优先级比它高的中断请求,CPU能暂停正在处理的中断源的处理程序,转去处理优先级高的中断。
请求,待处理完以后,再回到原来正在处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理称为中断嵌套。
8-2 MCS-51单片机能提供几个中断源?几个中断优先级?各个中断的源的优先级怎样确定?在同一优先级中各个中断源的优先级怎样确定?答:5个中断源,分为低优先级和高优先级,统一有寄存器IP控制,优先级高的先执行完,再去处理低优先级的。