1、计算机硬件习题解答1.单片机硬件设计需要考虑哪些方面的问题?答:需要考虑两方面内容,一个是系统结构选择,另一个是可靠性设计,其中可靠性设计还要考虑到采用抗干扰措施、提高元器件可靠性和采用的容错技术。2.为保证单片机系统的容错性能,系统中加入WatchDog,请简述WatchDog的工作原理。答:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器会溢出从而引起看门狗中断,造成系统复位。3.单片机主程序与中断服务程序之间的关系如何?答:单片机中断响应可以分为以下几个步骤:1、停止主程序运行。当前指令执行完后立即终止现行程序的运行。2、保
2、护断点。把程序计数器PC 的当前值压入堆栈,保存终止的地址(即断点地址),以便从中断服务程序返回时能继续执行该程序,3、寻找中断入口。根据5 个不同的中断源所产生的中断,查找5个不同的入口地址。4、执行中断处理程序。5、中断返回。执行完中断处理程序后,就从中断处返回到主程序,继续往下执行。4.回答什么是小系统、紧凑型系统和大系统。答:紧凑型系统是指由于仅扩展了少量的外部存储器和外部接口,仅需P0口作为分时复用的地址和数据总线即可;那些需要为了扩展更大存储器以及外部接口的而额外增加了P2口作为地址高8位地址总线的扩展方式,我们称之为大系统的扩展方式。而介于他们之间的我们称之为小系统。5.单片机程
3、序设计的特点是什么?答:可以参考单片机汇编语言的特点和C51的编程特点进行解答。6.程序设计时分解模块的原则是什么答:分解模块的原则是简单性、独立性和完整性,即:模块具有单一的入口和出口;模块不宜过大,应让模块具有单一功能;模块和外接联系仅限于入口参数和出口参数,内部结构和外界无关。这样各个模块分别进行设计和调试就比较容易实现。7.指出下列各项是否为C51的常量?若是指出其类型E-4 A423 .32E31 003 0.1答:E-4非法;A423非法;.32E31实型常量;003整型常量;0.1实型常量。8.使用C51语言编制四个LED组成的流水灯的程序。答:请参考8个流水灯的程序自行设计:#
4、include #include voiddelayms(unsignedcharms)/延时子程序 unsignedchari;while(ms-)for(i=0;i120;i+);main()unsignedcharLED;LED=0xfe;P0=LED;while(1)delayms(250);LED=_crol_(LED,1);/循环右移1位,点亮下一个LED P0=LED;9.请分别定义下列数组外部RAM中255个元素的无符号字符数组temp;内部RAM中16个元素的无符号数组d_buf;temp初始化为0,d_buf初始化为0;内部RAM中定义指针变量ptr,初始值指向temp0。
5、答:外部RAM中255个元素的无符号字符数组temp;unsigned char xdata temp255内部RAM中16个元素的无符号数组d_buf;unsigned char idata d_buf16temp初始化为0,d_buf初始化为0;temp255 = 0;d_buf16 = 0;内部RAM中定义指针变量ptr,初始值指向temp0。unsigned char xdata idata * ptr = 0;10.简单概述KeilC与Proteus连接调试的设计方法是什么,思考文件Tools.ini的作用是什么?答:1、假若KeilC与Proteus均已正确安装在C:Program
6、 Files的目录里,把C:Program FilesLabcenter ElectronicsProteus 6 ProfessionalMODELSVDM51.dll复制到C:Program FileskeilCC51BIN目录中。2、用记事本打开C:Program FileskeilCC51TOOLS.INI文件,在C51栏目下加入:TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver)其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。(步骤1和2只需在初次使用设置。)3、进入KeilC Vision2开发集成环境,创建一个新项
7、目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51)。并为该项目加入KeilC源程序。11.Keil C与Proteus连接调试的步骤是什么?答:同第十题答案。12.使用单片机的P1口,自行编制8位LED灯跑马灯的程序,并实现Keil C和Proteus软件的联调。答:联调过程如10、11题。程序如下:#include #include voiddelayms(unsignedcharms)/延时子程序 unsignedchari;while(ms-)for(i=0;i120;i+);main()unsignedcharLED;LED=0xfe;P0
8、=LED;while(1)delayms(250);LED=_crol_(LED,1);/循环右移1位,点亮下一个LED P1=LED;13.使用Proteus查找数码管和LCD显示模块,并使用数码管做动态显示的程序及硬件电路。答:14.试设计一个十字路的交通灯模拟控制器,其功能为具有如下功能:A、B道的直行、大转弯、方行切换准备等8种状态功能,以及剩余事件显示、10秒内黄绿灯闪动、蜂鸣器提示灯功能。答:图1 交通灯控制器模拟原理图(2)软件设计思想 表1给出了路口交通灯的状态和维持时间。 路口状态和维持时间组成一个常数表,设置一个路口状态数工作单元(路 口状态序号07) ,再根据状态数查表,
9、得到路口的交通灯控制字写入P2口、PO 口,查到时间写入维持时间减I计数器和显示缓冲器。采用这种查表方法的优 点是对于不同路口,只要修改状态数最大值和表中元素即可。 las内黄绿灯闪动采用控制字和当前状态异或(求反)的方法,Is、las、蜂 鸣器鸣叫等由T2中断程序操作; 显示器的定时扫描由TO中断程序处理; 紧急状态处理放在INTO中断程序,为了恢复路口现场,当前交通灯控制 字设一个副本单元TEMPP2、TEMP PO。表1 交通灯状态(3)软件框图 图2 给出了交通灯控制器程序框图。(4)程序(示例,其余略) FBIT BIT 0 ;定时扫描显示器的位标志, ;指出显示1/0位 FLASH
10、 BIT 1 ;黄绿灯需闪动的标志,1有效 FSS BIT 2 ;秒标志 FLAG EQU ZOH ;含有上述标志位的标志单元 SCNT EQU 30H ; T2中断次数减l计 ;数单元 TIME EQU 31H ;当前状态剩余时间单元 STAN EQU 3ZH ;路口状态数单元 DBUF EQU 33H ;显示缓冲单元 TEMPPZ EQU 34H ;当前交通灯状态副本单元 TEMPPO EQU 35H T2CON EQU OC8H ;T2的SFR定义 RCAP2H EQU OCBH RCAP2L EQU OCAH TL2 EQU OCCH TH2 EQU OCDH TF2 EQU OCFH
11、 ORG 3 LMP PINTO ORG OBH (a)主程序框图 (b)T0中断程序框图(c) T0中断框图 (d) 外部中断框图图2 软件流程图15.嵌入式远程I/O设计的业务需求和基本流程。答:随着信息科学、微电子技术及计算机网络技术的飞速发展,特别是针对测控特点而设计的嵌入式微控制器(MicroController Unit,MCU)、嵌入式微处理器(MicroProcessor Unit,MPU)、嵌入式DSP处理器(Digital Signal Processor,DSP)和嵌入式片上系统(System On Chip,SOC)的出现,把计算机测控系统的设计带到了一个崭新的领域。从
12、而对测量工业生产过程参数的仪表设备的功能要求也提高到一个新的层面。以前温度、压力、流量等工业热工信号测量仪表一般安装在仪表柜里或控制室的监控台仪表盘上,信号从工业现场通过电缆线长距离接到控制室里测量仪表上,由于工业现场铺设的电缆线可能有强电、弱电混合交差,弱电测量信号线上很容易感应干扰信号,给信号测量带来影响。并由于工业现场可能测量的数据点很多,这样要用掉很多信号电缆线,增加了生产成本。还有铺设的电缆线长,使用年限长时破损检修查线也很麻烦。工业生产企业为了节约生产成本,减少设备的备品备件数量,要求信号测量设备生产厂家,最好把设备设计成就地式的,设备安装在被监测对象设备旁,数据通过网络远程送到集
13、控室。并且要求信号测量设备的互换性要强,减少备品备件数量。16.画出嵌入式远程I/O的系统结构框图。答:该嵌入式远程I/O数据采集器采用8位嵌入式MCS51硬件平台,硬件主要由电源转换电路、MCU微处理器系统、复位电路、键盘、模拟量信号测量模块、I2C接口数据存储器电路、LCD模块和RS485通信接口模块等组成。采用独立模块,利于系统维护、升级。测量数据显示采用128*64 LCD模块,系统自带设置按键,便于现场调试修改参数。测量数据通过RS485总线传输至上位DAS、DCS等系统。系统通信网络采用双网冗余结构,以提高数据通信的抗干扰能力和可靠性。图15-11为完整远程I/O的系统结构框图。单
14、片机控制单元LCD液晶显示模块数据存储模块复位电路键盘管理模块A/D测量模块RS485/以太网模块1RS485/以太网模块2现场信号图15-11 嵌入式远程I/O的系统结构框图17.回答热电阻测量的三种接线方式及其相应的工作原理。答:三线制测量原理使已知电流通过未知热电阻并测量电压,但是电压测量的位置是一个重要的因素,三线接法:一条线与热电阻的一端连接,另外两条线与热电阻的另一端连接。 三线制接线图图15-14三线制接线图 (双恒流源) 要求: 但由于现场铺设的电缆多芯电缆,线路电阻基本相同,可以忽略。18.请根据AD7715产品使用手册,回答void AD_Read(INT8U *ADBuf
15、Ptr)和void AD_Write(INT8U ADCmd)的基本设计流程。答:19.请根据FM12864产品使用手册,回答WriteChar()和WriteChiese()的基本设计流程。答:20.请使用Proteus画出嵌入式远程I/O设备的测量信号A/D电路,并根据流程图写出相应的Keil C程序,实现联调。答:程序清单: CLR P3.7MAIN:MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER LCALL TEMPRRO MOV P2,#06H LCALL PRO;- MOV 38H,#00H
16、MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER2 LCALL TEMPRRO MOV P2,#5BH LCALL PRO;- MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER3 LCALL TEMPRRO MOV P2,#4FH LCALL PRO;- MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER4 LCALL TEMPRRO MOV P2,#66H L
17、CALL PRO;- MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER5 LCALL TEMPRRO MOV P2,#6DH LCALL PRO;- MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER6 LCALL TEMPRRO MOV P2,#7DH LCALL PRO;- MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER7 LCA
18、LL TEMPRRO MOV P2,#07H LCALL PRO;- MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H LCALL GET_TEMPER8 LCALL TEMPRRO MOV P2,#7FH LCALL PRO LJMP MAIN ;=CHL1GET_TEMPER: SETB P1.0H ; 定时入口 BCD: LCALL INIT_1820 JB 00H,S22 LJMP BCD ; 若DS18B20不存在则返回 S22: LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配-0CC命令 LCALL WRI
19、TE_1820 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_1820 NOP LCALL DELAY1 CBA:LCALL INIT_1820 JB 00H,ABC LJMP CBA ABC:LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;READ_1820 RET ;=READ_1820: MOV R2,#8 RE1: CLR C SETB P1.0H NOP NOP CLR P1.0H NOP NO
20、P NOP SETB P1.0H MOV R3,#7 DJNZ R3,$ MOV C,P1.0H MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE1 RET ;=WRITE_1820: MOV R2,#8 CLR C WR1: CLR P1.0H MOV R3,#6 DJNZ R3,$ RRC A MOV P1.0H,C MOV R3,#23 DJNZ R3,$ SETB P1.0H NOP DJNZ R2,WR1 SETB P1.0H RET;=READ_18200: MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 MOV R1,#31H ; 低位存
21、入30H(TEMPER_L),高位存入31H(TEMPER_H) RE00: MOV R2,#8 RE01: CLR C SETB P1.0H NOP NOP CLR P1.0H NOP NOP NOP SETB P1.0H MOV R3,#7 DJNZ R3,$ MOV C,P1.0H MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET ;=INIT_1820: SETB P1.0H NOP CLR P1.0H MOV R0,#250TSR1: DJNZ R0,TSR1 ; 延时520us SETB
22、 P1.0H MOV R0,#25H ;96US-25H TSR2: DJNZ R0,TSR2 JNB P1.0H,TSR3;如D0为低则复位成功,DS18B20存在 LJMP TSR4 ; 延时 TSR3: SETB 00H ; 置标志位,表示DS1820存在 LJMP TSR5 TSR4: CLR 00H ; 清标志位,表示DS1820不存在 LJMP TSR7 TSR5: MOV R0,#06BH ;200US TSR6: DJNZ R0,TSR6 ; 延时 TSR7: SETB P1.0H ;拉高总线RET;= GET_TEMPER2: SETB P1.1H ; 定时入口 BCD2:
23、LCALL INIT_18202 JB 00H,S222 LJMP BCD2 ; 若DS18B20不存在则返回 S222: LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配-0CC命令 LCALL WRITE_18202 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_18202 NOP LCALL DELAY1 CBA2:LCALL INIT_18202 JB 00H,ABC2 LJMP CBA2 ABC2:LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_18202 MOV A,#0BEH ; 发出读温度命
24、令 LCALL WRITE_18202 LCALL READ_182002 ;READ_1820 RET ;=READ_18202: MOV R2,#8 RE12: CLR C SETB P1.1H NOP NOP CLR P1.1H NOP NOP NOP SETB P1.1H MOV R3,#7 DJNZ R3,$ MOV C,P1.1H MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE12 RET ;=WRITE_18202: MOV R2,#8 CLR C WR12: CLR P1.1H MOV R3,#6 DJNZ R3,$ RRC A MOV P1.1H,
25、C MOV R3,#23 DJNZ R3,$ SETB P1.1H NOP DJNZ R2,WR12 SETB P1.1H RET;=READ_182002: MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 MOV R1,#31H ; 低位存入30H(TEMPER_L),高位存入31H(TEMPER_H) RE002: MOV R2,#8 RE012: CLR C SETB P1.1H NOP NOP CLR P1.1H NOP NOP NOP SETB P1.1H MOV R3,#7 DJNZ R3,$ MOV C,P1.1H MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE012 MOV R1,A DEC R1 DJNZ R4,RE002 RET ;=INIT_18202: SETB P1.1H NOP CLR P1.1H MOV R0,#250TSR12: DJNZ R0,TSR12 ; 延时520us SETB P1.1H MOV R0,#25H ;96US-25H TSR22: DJNZ R0,TSR22 JNB P1.1H,TSR32;如D0为
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1