乙机程序: RDOK BIT 0 ;以符号名RDOK定义标志位0(20H.0),乙机中该标志表示数据是否接收正常
ORG 0 ;安排主程序及中断入口
LJMP MAIN ORG 23H LJMP BIPGS MAIN: CLR TCLK CLR RCLK; 将T1作为波特率发生器
ANL PCON,#7FH; SMOD=0
MOV TMOD,#20H; T1模式2内部定时,产生波特率 MOV TL1,#0FDH; 装入初值253 MOV TH1,#0FDH; SETB TR1; 启动T1定时
MOV SP, #60H; 堆栈指针初始化 SETB ES; 允许串行中断 SETB EA; 开中断系统
MOV DPTR,#2400H; 指定接收数据存储器首地址 MOV 30H, #0; 指定接收数据个数256时初值应写为0,软件计数器用30H,而不使用工作寄存器 CLR RDOK; 初始化时清除接收正确完成标志
MOV SCON, #0D0H; 串口定义为方式3,并启动接收
WAIT: SJMP WAIT; 等待进入中断 ;串行口中断复位子程序
BIPGS: PUSH ACC; ACC内容保护 PUSH PSW; PSW(包含CY位,P位)内容保护 CLR RI; 清除接收完成标志 NEXT: MOV A, SBUF; 取出接收数据 JB P, ODD; P=1,转ODD JB RB8, OK; P=0,RB8=1,则校验OK SJMP ERR
ODD: JNB RB8, OK; P=1,RB8=0,则校验OK SJMP ERR OK: MOVX @DPTR, A; 校验正确,取出待发送数据 INC DPTR; 发送数据存储地址加1 DJNZ 30H,QUIT; 数据未全部发完,则退出中断,等待当前数据发送完成 SETB RDOK; 数据全部完成,则置位RDOK后返回 SJMP QUIT
ERR: CLR REN; 数据校验错误,关闭接收允许标志,清零RDOK
CLR RDOK
QUIT: POP PSW POP ACC; 恢复现场 RETI
第八章习题答案
8-1.如将例8-1图(P155,图8-4)中存储器芯片27128上CE引脚接8031单片机的P2.7,请分析其地址空间? 答:该27128有两个地址空间,分别是0~3FFFH和4000~7FFFH。
8-2.如将例8-4图(P161,图8-8)中三块存储器芯片上CE引脚接译码器Y1, Y2, Y3, 请分析其地址空间? 答:I:2000H~3FFFH II:4000H~5FFFH III:6000H~7FFFH
8-3.用8KB×8的EPROM和SRAM芯片扩展16KB容量的程序存储器和数据存储器,问各需要几块;如要求程序存储器地址范围为8000~BFFFH, 数据存储器地址范围为C000H~FFFFH, 画出连线图。 答:需要两块8KB的EPROM和两块8KB的SRAM芯片。
因为扩展的存储器地址范围为连续分布的,故只能用码选法扩展。 下图说明:1、2为8KB EPROM(程序存储器),1的地址为8000~9FFFH, 2的地址为A000~BFFFH, 3、4为8KB SRAM(数据存储器),3的地址为C000~DFFFH, 4的地址为E000~FFFFH
由于外部程序存储器的起始地址为8000H,故必须使用内部程序存储器,所以单片机EA端需接高电平。
另74LS138的接法也可以很灵活,可将P2.7接G1,C端接地,则可将Y0,Y1,Y2,Y3分别接1,2,3,4芯片。 74LS138 +5V G1 Y7 G2A Y6 G2B Y5 ~5FFFH III:6000H~7FFFH II:4000H 答:I:2000H~3FFFH Y4 C Y3 P2.7 B Y2 P2.6 A Y1 P2.5 Y0 P2.4~P2.0 A12~A0 A12~A0 A12~A0 A11~A0 A12~A0 O7~O0 CE OE CE OE CE OE CE OE 74LS373 G E ALE 1 2 WE 3 WE 4 D7~D0 GND D7~D0 D7~D0 D7~D0 D7~D0 P0.7~P0.0 PSEN WR EA RD +5V
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库51单片微型机原理和接口教程 习题答案(完整版)(7)在线全文阅读。
相关推荐: