单片机及微机原理课后习题答案 下载本文

INT_TL0_HANDLE:

MOV CPL RETI MOV CPL RETI

TL0, #9CH ;TL0产生200us方波 P1.0

;

;TH0产生100us方波

INT_TH0_HANDLE:

TH0, #0CFH P1.1

;

ORG 0100H MAIN_START: READ_T1: END

MOV CLR SUBB JNC CPL AJMP

C

;产生80us方波 ;

;计数小于初值+7,则让输出翻转。由于读取TL1的计数值 ;范围,只要发生了初值重转,则计数已经溢出。 ;大于则继续读数。直到计数溢出。

A, TL1 ;读T1的计数值 A, #0DFH

;

MOV SETB SETB MOV MOV MOV MOV MOV SETB SETB SETB

TMOD, ET0 ET1

#23H ;T0方式3,T1方式2 ;开T0中断

;开T1中断,注:TH0使用。

; ; ;

TL0, #9CH ;赋初值 TH0, #0CFH TH1, #0D8H TL1, #0D8H EA TR0 TR1

P1, #00H ;输出清零

;开全局中断 ;TL0开始计数

;TH0开始计数,T1计数从方式确定就开始了

;并不是每个计数值都能读到,所以判断时需要给一个大的

READ_T1 P1.2 READ_T1

说明:此程序可以直接运行,但是实际测试结果,只能近似输出题目要求波形。定时/

计数器0是由于软件初值重转的问题,计时器1则是由于每次读数时,由于中断的执行,导致错过读数,所以输出波形的频率是不稳定的。

第7章习题与思考题参考答案

第 25 页 共 47 页

7-1简述MCS-51单片机串行口的四种工作方式的接收和发送数据的过程。 答:(略)

7-2 串行口有几种工作方式?各工作方式的波特率如何确定? 答:

它有四种工作方式:方式0、1、2、3。帧格式有10位、11位。方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,由定时器的溢出率决定。

7-3 若晶体的振荡频率为11.0592MHz,串行口工作于方式1,波特率为4800bit/s,计算用T1作为波特率发生器的方式控制字和计数初值。

解:方式1和方式3的波特率由定时器的溢出率控制,是可变的,表示为:

波特率=(2SMOD /32)×定时器T1的溢出率

定时器T1的溢出率= T1计数率/产生溢出所需的时间

=(fOSC/12)/(2N?TC)

其中:N为定时器T1的位数,TC为定时器T1的预置初值。

2

7-4 简述IC总线的数据传输方式。 答: (略)

2

7-5 编写程序将AT89C51单片机片内40H~47H单元中的八个8位数据通过IC总线接口传送到存储器AT24C01的50H~57H单元中。 答:

ICW: ICWLP1: ICWLP2: ICWLP3: LCALL START MOV A,#0A0H LCALL WOBYT LCALL TACK JB 30H,ICWLP1 MOV A,#50H LCALL WOBYT LCALL TACK JB 30H,ICWLP1 MOV R5,#8 MOV R0,#40H MOV A,@ R0 LCALL WOBYT LCALL TACK JB 30H,ICWLP1 INC R0 DJNZ R5,WLP2 LCALL STOP LCALL DELAY RET ;发送起始信号 ;#10100000B器件地址码, ;发送器件地址 ;检查应答位 ;无应答位,重发 ;50H为待写存储单元首地址 ;发送待写存储单元地址 ;检查应答位 ;无应答位,重发 ;待发送数据块的长度 ;40H为第一个数据的首地址 ;读一个字节数据 ;发送 ;检查应答位 ;无应答位,重发 ;指向下一个要发送的数据 ;要发送数据未发完,再发送 ;全部数据发完,停止 ;延时,等待AT24C01内部写操作 ;返回

7-6简述SPI总线的数据传输方式。 答:(略)

第 26 页 共 47 页

7-7编写程序将AT89C51单片机片内30H、31H单元中的16位数据通过SPI总线接口传送到数字/模拟转换器TLC5615。. 答:

DIN SCLK CS5615 DataH DataL TLC5615: LPH: LPL: BIT P1.1 BIT P1.2 BIT P1.3 EQU 30H EQU 31H ;定义I/O口 CLR SCLK ;准备操作TLC5615 CLR CS5615 ;选中TLC5615 MOV R7,#08H MOV A, DataH ;装入高8位数据 LCALL DELAY ;延时 RLC A ;最高位移向TLC5615 MOV DIN,C SETB SCLK ;产生上升沿,移入1位数据 LCALL DELAY CLR SCLK DJNZ R7,LPH MOV R7,#08H MOV A,DataL ;装入低8位数据 LCALL DELAY ;延时 RLC A ;最高位移向TLC5615 MOV DIN, C SETB SCLK ; 产生上升沿,移入1位数据 LCALL DELAY CLR SCLK DJNZ R7,LPL SETB CS5615 ;结束TLC5615的操作,同时将转换数据代码存入10位DA寄存器,启动新一轮的DA转换 DELAY: RET …(略) RET 7-8简要说明CAN总线、USB总线、1-Wire总线的特点。

答:

CAN的特点:

(1) 较低的成本与极高的总线利用率;

第 27 页 共 47 页

(2) 数据传输距离可长达10km,传输速率可高达1Mbps;

(3) 可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发; (4) 节点在错误严重的情况下具有自动退出总线的功能;

(5) 报文不包含源地址或目标地址,仅用标志符来指示功能信息和优先级信息; (6) 多主机依据优先权进行总线访问,无破坏性的基于竞争的仲裁; (7) 借助接收滤波的多地址帧传送。 USB:

具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps, USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点。

1-Wire:

它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。

7-9画出CAN总线控制器SIA1000与单片机的连接电路原理图。 答:

7-10写出PDIUSBD12固件各模块程序的分工。 答:

PDIUSBD12固件各模块程序的分工如下:

硬件提取层:对单片机的I/O口、数据总线等硬件接口进行操作。

PDIUSBD12命令接口:对PDIUSBD12器件进行操作的模块子程序集。

中断服务程序:当PDIUSBD12向单片机发出中断请求时,读取PDIUSBD12的中断传输来的数据,并设定事件标志“EPPFLAGS”和Setup包数据缓冲区“CONROL_XFER”传输给主循环程序。

标准请求处理程序:对USB的标准设备请求进行处理。 厂商请求处理程序:对用户添加的厂商请求进行处理。

主循环程序:发送USB请求、处理USB总线事件和用户功能处理等。

7-11单总线有哪些ROM命令?

第 28 页 共 47 页