第1题必做,由任课教师在2-30题中,任选3题。 1、请说明你们组设计项目的硬件工作过程和软件工作过程。 2、51系列单片机复位入口是多少?为什么?复位入口有何意义?
答:CPU的Reset引脚是硬件复位的,复位键是手工加一个复位脉冲到Reset脚,
执行硬件复位,不需要软件管。复位后按照CPU硬件规定的地址开始执行程序,如51是从程序地址0x0000开始执行。
3、如何设计复位电路,确定其用的元器件参数。
答:课本15页两幅图
4、单片机有哪些特殊入口?这些特殊入口有何意义?举例说明。
外部中断0:入口:0003H
定时器0: 入口:000BH 外中断1: 入口:0013H 定时器1: 入口:001BH 串口中断:入口:0023H
5、EA为何引脚,该引脚有什么用?通常如何处理该引脚。
EA:总的中断允许控制位(总开关) EA=0:禁止全部中断 EA=1:允许中中断
6、为什么要引入机器周期概念,晶振与机器周期的关系。
答:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期
7、如何设计单片机的时钟电路
答:课本13页
8、单片机片内有二个定时/计数器,为什么叫定时/计数器?如何初始化定时/
计数器。
答:记数器是当你开始从0开始记数时一直不停的开始记数!除非你让他停下来要不他会不停的记下去!而定时器则是不一样的!是需要你自己先设定一个时间然后开始倒记时!当你的所定时间倒记完以后,他就自动停止下来了
9、如何把某条指令放在指定的存储器单元,举例说明。 10、汇编原程序最后一行写什么?为什么?
While(1) {
keyscan(); time_pro(); display(); }
程序在这里不停地对数码管动态扫描同时等待中断的发生
11、请说明单片机的中断过程,举例说明。
如主函数 main() {
循环{ 语句1 语句2 语句3 } }
中断函数
interupt 1 in1() {
清中断标示位 执行中语句 }
如果执行到语句2,那么单片机PC寄存器内容,也就是当前正在执行的语句的地址,就会压到堆栈,PC取中断函数的地址,去执行中断函数,执行完了之后,再出堆栈,把原来正在执行的语句地址复制到PC,所以又能准确的回到语句2了。
中断的过程概括为 压栈(保存现场)-执行中断-出栈(还原现场)
12、汇编程序有什么用?编程器是什么?
汇编语言一般用在硬件层!能直接操作硬件!还有就是有关程序的要求常用要高速的地方。编程器又叫烧录器,编程器为可编程的集成电路写入数据的工具,编程器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。 编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。 [span]主要用于编程器刷新主板BIOS芯片,显卡BIOS芯片,网卡启动芯片,EEPROM串行芯片等。
编程器在功能上可分通用编程器和专用编程器.专用型编程器适用芯片种类较少,适合以某一种或者某一类专用芯片编程的需要,例如仅仅需要对PIC系列编程。全功能通用型一般能够涵盖几乎(不是全部)所有当前需要编程的芯片,由于设计麻烦,成本较高,了销量,最终售价极高,适合需要对很多种芯片进行编程的情况。
13、人们常说,计算机有思考判断能力,人们是如何实现其思考判断的?
人们通过编写让计算机可识别的程序,通过程序控制计算机里面各种器件的运行,执行
指定的操作,例如计算,储存,提取等操作。
14、请说明堆栈的用途,如何建立堆栈,应建在什么区域。举例说明。
堆栈的用途和使用方法 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值能用指令加以改变,所以只要在程序开始阶段更改了SP的值,就能把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。不一样作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是能象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了
15、编写中断服务子程序要注意哪些问题。
1.要注意中断程序的优先级。 2.中断子程序尽量短。不要把耗费资源的计算放在中断子程序中,除非是对时间要求非常敏感应用,如电机的FOC算法,才能在中断程序里面之行。 3. 各个中断程序中的处理不要相互冲突,中断是否能嵌套也要小心
16、中断服务子程序的最后一行,要写什么指令。
中断指令的最后一条指令是返回指令RET。
17、在执行程序时,来了中断请求,在转入中断服务程序前,CPU
操作?
保护现场-开放中断-输入输出处理-关闭中断-恢复现场-中断返回
要执行什么
18、为什么要用工作寄存器来编程?单片机有几组工作寄存器组,其地址范围
是多少?
运用工作寄存器来编程时,运算的结果可以放在寄存器中而不必每次都放到存储器里。这样可以提高机器的工作速度。
工作寄存器有4组,每组都是8个工作寄存器R0~R7,通过PSW中的RS1、RS0两位来选择使用哪一组,如果不选,默认是选择第0组。
RS1RS0组合为00时,选中第0组工作寄存器,R0~R7地址为00H~07H; RS1RS0组合为01时,选中第1组工作寄存器,R0~R7地址为08H~0FH; RS1RS0组合为10时,选中第2组工作寄存器,R0~R7地址为10H~17H; RS1RS0组合为11时,选中第3组工作寄存器,R0~R7地址为18H~1FH。
19、SFR?特殊工作寄存器区的地址范围?在该区域内,每个单元都定义?没有
定义的单元能用作RAM?
SFR的地址范围是 80-FFH。并不是每个单元都有定义,没有定义的单元不能用作RAM
20、在单片机片内有ROM,也有RAM。它们是统一编址?还是其它编址。
80C51单片机采用的是哈佛结构,就是说把RAM和ROM分开,RAM和ROM分别具有自己的总线,这样可以使程序运行的速度更快和更安全。所以80C51单片机中储存器是分开编址的
21、PC是什么?其内容含义?其内容是如何变化的?
PC ,personal computer,指个人电脑。个人计算机一词源自于1981年IBM的第一部桌上型计算机型号PC,在此之前有Apple II的个人用计算机。能运行、完成特定功能的个人计算机。
22、如你所设计的单片机系统要于PC机通信,设计硬件电路时,要注意什么? 23、当单片机系统要用串行通信时,如何设置定时器1。
//工作频率12M,所以定时器脉冲频率为1M=1000000
#define F 12 //时钟频率,单位MHz #define BaudRate 600
#define oTH1 (256-(((F*1000000)/384) / BaudRate))
24、能否设计多个不同类型的中断,对应一个中断服务程序。
可以。
25请说明下列指令的不同之处:SJMP、AJMP和LJMP。
LJMP称为长转移指令AJMP叫作绝对转移指令SJMP 称作短转移指令
SJMP 的范围是8位地址,也就是256BIT的空间内,占用存储空间2个字节,执行周期24个时钟周期
AJMP 的范围是11位地址,也就是2K的空间内,占用存储空间2个字节,执行周期24个时钟周期。
LJMP 的范围是16位地址,也就是K的空间内,占用存储空间3个字节,执行周期24个时钟周期。
26、当你所设计的单片机系统用于定时时,设计硬件电路时,要注意什么? 27、编程:把片内RAM30H单元内容与30H进行比较,若前者大,使A等于1,
反之A等于0。
28、编程,将寄存器R4中的二进制数,转化成十进制数(BCD码),转化后的
三位BCD码,百位、十位和个位分别存在R5、R6和R7中。
29、请说明在执行中断返回指令RETI时,CPU要执行哪些操作。
30、试编程:将片内RAM 60H~69H单元中的十个数相加,和的低8位和高8位
分别存入7EH和7FH单元。