[信息与通信]MCS-51单片机的系统扩展及应用_第1页
[信息与通信]MCS-51单片机的系统扩展及应用_第2页
[信息与通信]MCS-51单片机的系统扩展及应用_第3页
[信息与通信]MCS-51单片机的系统扩展及应用_第4页
[信息与通信]MCS-51单片机的系统扩展及应用_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、p2.7: : : p2.0p0.7: : : p0.0ale/ea psencea14 : :a8a7 o7 : : : : : : a0 o0oed7 q7 d0 q0cpcp 27256 32k rommcs-51/ce = p2.7(a15)返回前一次完整的地址信号 a15-a8(pc)a7-a0opa7-a0常数存储器数据输出控制 /psen地址总线(高八位)p2口地址数据总线(低8位)p0 口s1s2s6s5s4s3373地址锁存信号 ale a15-a8 (dptr+a)movc a,a+dptra b转电路图返回前一次(参考讲义70页)转电路图转时序图a15p2口口mcs -

2、51 p0口口ale/ea psen/ce2a14a8a7a0/oe2o0o7/ce1a14a8a7a0/oe1o0o774ls373p2.7p2.6p2.5p2.4p2.0p0口口alepsen/ce0a12a8a7 8k8a0/oe1o0o774ls373c y7ba 0 y /ce1a12a8a78k8a0/oe1o0o7/ce7a12a8a78k8a0/oe1o0o7mcs5174ls138返回s1s2s6s5s4s3s1s2s6s5s4s3alepsena15-a8(pc)a15-a8(dph)a7-a0指令a7-a0数据rdp2口p0口选中外部ramp2.5 p2.4: : p2.

3、0p0.7: : : p0.0alerdwrcea12 : :a8a7 o7 : : : : : : a0 o0oe wed7 q7 d0 q0cpcp 6264 8k rammcs-51/ce = p2.5(a12)返回继续 p4.0 p4.1p2.0 p4.2 p2.1 p4.3p2.2 p2.3 p5.0 p5.1 p5.2 p5.3 p6.0 p6.1 p6.2 p6.3prog p7.0/ce p7.1 p7.2 p7.3接单片机p2口口:用于cpu与8243之间传送命令、 数据。其中:命令码中含口地址(两位)、 操作码(两位)。数据为四位。prog:控制端。p4p7:4x4位具有锁

4、存功能的双向i/o 端口。 p4.0 p4.1p2.0 p4.2 p2.1 p4.3p2.2 p2.3 p5.0 p5.1 p5.2 p5.3 p6.0 p6.1 p6.2 p6.3prog p7.0/ce p7.1 p7.2 p7.3操作码、口地址数据(4位)progp2口口 1,由高变低时,将p2口的命令(口地址、操作码)信息所存到8243 。2,由低变高时:a,写操作时:8243将p2口上的数据写入对应的端口;b,读操作时:当操作码一译出,选中的端口的输入缓冲器与p2口接通,等待cpu读走。当prog变高后,结束读操作。12p2.6 p2.7 留作输入。p2.0p2.1p2.2p2.3p

5、2.4p2.5p2.6p2.7mcs-51 p4.0 p4.1p2.0 p4.2 p2.1 p4.3p2.2 p2.3 p5.0prog p5.1/ce p5.2 p5.3 p6.0 p6.1 p6.2 p6.3 p7.0 p7.1 p7.2 p7.3 8243in8243:mov a,#11010010b ;控制字mov p2,a;输出控制字clr p2.4 ;8243接收操作码mov a,p2 ;读取p6口数据setb p2.4 ;prog=1结束读setb p2.5 ;关闭8243ret【注意】:1,控制字11010010的含义;2,根据8243的时序,在使 prog 变高前 单片机必须

6、读入p6口中的数据。p2.6 p2.7 留作输入p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7 p4.0 p4.1p2.0 p4.2 p2.1 p4.3p2.2 p2.3 p5.0prog p5.1/ce p5.2 p5.3 p6.0 p6.1 p6.2 p6.3 p7.0 p7.1 p7.2 p7.3out:mov a,#11010111b ;控制字 mov p2,a ;输出控制字 clr p2.4 ;8243接收操作码 mov a,r2 ;读取r2数据 orl a,#11110000b ;高4位置1低4位不变 orl p2,#00001111b ;低4位置1高4位不变 a

7、nl p2,a ;a送p2高4位不变 setb p2.4 ;prog=1数据写入p7口 setb p2.5 ;关闭8243 ret【注意】:第1条orl是保证不影响p2口高4位;第2条orl指令时保证下面anl指令能够正确的将低4位数据写入p2口。返回继续返回本节目录i/o寄存器a口口256字节ram双向数据缓冲器地址锁存器定时计数器(14位)读/写控制器地址译码i/o寄存器b口口i/o寄存器c口口状态命令寄存器ad7-ad0/ceio/male/rd/wrrestt / int / out返回本节目录上一次状态字存在于8155的状态寄存器中,其地址与命令口地址一样都是000b,可以用 mov

8、x a, ri 指令来读取8155的状态。状态字寄存器与命令寄存器是靠输入、输出来自动区分的。返回本节目录 p0int0 papd0-7/rd pc1 pc2 pc0d7- 0 c口为alt3模式pc0:a口中断a intr标志输出,送单片机;pc1:a口缓冲器满abf标志输出,送外设。pc2:a口选通输入astb,astbabfmcs-51 8155 外设a intr p0int0 papd0-7 pc1 pc2 pc0d7- 0 astbabfmcs-51 8155 外设c口为alt3模式,控制字:00011001bpc0:a口中断a intr标志输出,送单片机;pc1:a口缓冲器满abf

9、标志输出,送外设。pc2:a口选通输入astb,a intr8155 t/int/out由8155作1/5分频器mcs-51控制字控制字计数器高8位(101b)计数器低8位(100b)1个计数周期t t/inm2m1=00时 t/outm2m1=01时 t/outm2m1=10时 t/outm2m1=11时 t/out思考题:哪种工作方式可以使8155完成1/n分频器的功能? 这种分频器与普通数字电路中的“计数器分频”有何不同 ?(返回)返回本节目录p2.7p2.0p0.7p0.6p0.5p0.4p0.3p0.2p0.1p0.0ale/rd/wr/ceio/m paad7ad6ad5 pbad

10、4ad3ad2 ad1 pcad0 ale t/out/rd/wr t/inmcs-51 8155最小系统对8155内部各寄存器的地址分配控制字s1s2s6s5s4s3s1s2s6s5s4s3alepsena15-a8(pc)a15-a8(dph)a7-a0指令(dpl)数据rdp2口p0口选中外部ram第一个阶段:取 movx 指令第二阶段:执行movx(从外部读取数据)继续a口c口高四位b口c口低四位a组控制器b组控制器数缓 冲据器读制写逻控辑pa7-0pb7-0pc7-4pc3-0d7-d0/rd/wra0a1rese/cs返回前一次返回本节目录转8255框图标志位 a组方式选择 a口、

11、c口高4 b组方式 b口、c口低4 返回前次标志位=0 d6-d4位不用 c口位选择位 置复位控制位标志位=0 d6-d4位不用 c口位选择位 置复位控制位c口各位输入口用时输出口用时输入口用时输出口用时返回前一次pc7 pc6 pc5 pc4 pc3 pc2 pc1 pc0pc7 pc6 pc5 pc4 pc3 pc2 pc1 pc0c口各位: d7 d6 d5 d4 d3 d2 d1 d0返回上一次a组模式2(输入、输出) b组模式1 输出(或输入)标志位 a组方式选择 a口、c口高4 b组方式 b口、c口低4 转控制字标志位 a组方式选择 a口、c口高4 b组方式 b口、c口低4 转82

12、55逻辑图p08031 /int0d7-d0 papc4pc5pc3d7-d0输入设备intea/stbaibfaintra12转符号说明p08031 /int0d7-d0 pbpc1pc2pc0d7-d0输入设备inteb/obfb/ackbintrb132p08031 /int0d7-d0 pad7-d0输入设备pc7inte1/obfa/ackaintrapc6pc4pc5pc3ibfa/stba+inte2返回本节目录模式2 状态字/rd/wrp0.7p0.6p0.5p0.4p0.3p0.2p0.1p0.0ale89c51 d7 q7d6 q6d5 q5d4 q4d3 q3d2 q2d

13、1 q1d0 q074ls373g /e/rd/wrreset/cs pc口口 8255aa1a0 pb口口d7d6d5d4d3d2 pa口口d1d0设8255a工作在方式0,且a口输入,b、c口输出。/cs=ff7xha口:ff7chb口:ff7dh,c口:ff7eh,控制口:ff7fh标志位 a组方式选择 a口、c口高4 b组方式 b口、c口低4 返回本节目录mcs-51 rxdtxd移位寄存器移位寄存器同步移位脉冲由mcs-51的串口与两个8位移位寄存器(74ls164)构成的16位并行输出口数据线mcs-51p3.0p3.1p1.0 h g f e d c b aqh 74ls165

14、sin s/ l clk h g f e d c b aqh 74ls165 sin s/ l clk rxdtxd16位并行i/o端口 74ls165: ah:8位并行数据输入端;并入串出移位寄存器 sin: 串行数据输入端; qh: 串行数据输出端; s/ l: =0时锁存并行数据,=1时允许串行移位。mcs-51p3.0p3.1p1.0 h g f e d c b aqh 74ls165 sin s/ l clk rxdtxdmcs-51p3.0p3.1p1.0 qa qha,b 74ls164 /clr clk qa qha,b 74ls164 /clr clk rxdtxd 共阳极l

15、ed数码管 . g f e d c b a 共阳极led数码管 . g f e d c b a+5vabcdefgdp+vccabcdefgdp返回继续返回本节目录定时/计数器1定时/计数器01,模式控制寄存器tmod ( sfr 89h)2,返回本节目录t0、t1的启动tr和溢出标志tf 外部中断标志ie和触发极性选择ittl1th1震荡器1/12(8位)(8位)tf1中断控制t1 引脚tr1gateint1c/t=0c/t=1返回本节目录1fh9chthi=fchtli=1chtmax=8192*1 =8.192mstmax=65536* 1=65.536mstmax=256*1 =0.2

16、56ms=65536-50000=15536=3cb0h 既thi=3ch;tli=b0h返回本节目录20ms10ms10mstmod 0000 0001返回本节目录软件重装初值r0=0?nycpl p1.02 s1s1sp1.020 r0r0-1r0retibrt0中断服务程序返回本节目录计数器震荡器1/12tf0中断计数控制t0 引脚tr0gateint0c/t=0c/t=1 mcs-51 inte0 mcs-51int0 启动t0 t0开始计数 计数停止 (tr0=1) (/int0=1) (/int0=0)外部脉冲返回本节目录 mcs-51int0 启动t0 t0开始计数 计数停止 (

17、tr0=1) (/int0=1) (/int0=0)外部脉冲3.5.1:串型口的工作模式和继续3.5.1:串型口的工作模式和 模式选择 多机通讯位 允许接收位 发送、接收第9位 发送、接收标志返回本节目录返回本节目录51内部总线sbuf零检测器移位时钟start shift 发送控制器txclock ti sendd s qclstart ri receiverx 接收控制器 shiftclock 1 1 1 1 1 1 1 0输入移位寄存器sbuf51内部总线读sbuf写sbuf(s6)fosc/12串行口中断p3.0rxdp3.1txd装载sbufren/ri返回前一次p3.0rxd1/1

18、61/2t1溢出10smod1/2focs/210smod模式2串行口的波特率 b模式1、3时串行口的波特率 b1/16focs/12模式0串行口的波特率 b串行口四种模式时,因移位脉冲来源不同而使串行口的波特率 b不同(如图所示)b=focs/12b=focs/32或=fosc/64 b=1/32t1溢出率或=1/16t1溢出率发送、接收控制器发送、接收控制器发送、接收控制器tl1(8位)th1(8位)震荡器1/12tf1中断控制t1 引脚tr1gateint1c/t=1c/t=0返回8位+1计数器8位初值寄存器返回本节目录返回本节目录t1初始化启动t1串行口初始化输入数据到a发送一帧数据m

19、ov sbuf,ati=1?软件清ti设定定时器t1的工作模式 00000010b设定串行口模式寄存器scon为01000000bynt1初始化启动t1串行口初始化输出数据到p1数据送amov a,sbufri=1?软件清ti定时器tmod(89h)的工作模式 00000010b串行口模式寄存器scon(98h)为01010000byn0000h0023h0100h0200ht1初始化并启动t1串行口初始化开串行口中断等待ri中断输出数据到p1接收一帧数据mov a,sbuf软件清tireti主程序框图中断服务程序框图设定中断允许寄存器ie(a8h)为10010000b返回本节目录数据送累加器

20、apsw.p=1 ?set scon.tb8clr scon.tb8mov sbuf,ati=1 ?clr scon.tiyesnonoyes发送端程序ri=1 ?mov a,sbufpsw.p rb8=1?出错处理clr scon.riyesno接收端程序使用“查询法”编制的发送、接收程序ny数据送内存返回本节目录主机从机 n从机 4从机 3从机 2从机 1串行数据线(2条)0:合法命令 0:发送未就绪 0:接收未就绪1:非法命令 1:发送就绪 1:接收就绪从机返回的状态字t1为定时,模式2b=1200,启动t1设串口为模式3ren=1,sm2=0tb8=1设定程序数据:r0r5调用mcom

21、mu停机mcommu发送从机地址从机应答?地址相符?发送命令字tb8=0从机应答?命令正确?命令分类接收数据块发送数据块从机接收就绪?从机发送就绪?ret命令从机复位nnyynnyynnyy接收发送从机返回的状态字0:合法命令 0:发送未就绪 0:接收未就绪1:非法命令 1:发送就绪 1:接收就绪t1为定时,模式2b=1200,启动t1设串口为模式3ren=1,sm2=0tb8=1设定程序参数:r0r3开串行口中断停机保护现场接收地址符合本机? 回送本机地址接收下一字符是命令吗? 命令分类 本机发送准备就绪? 本机接收准备就绪? 发trdy=1状态字发rrdy=1状态字发送数据接收数据发送完?

22、 接收完? 保护现场返回nnyy发送命令接收命令非法命令送trdy=0送rrdy=0nnny主程序中断服务程序返回本节目录继续mcs-51d/a转换器控制执行机构被控实体a/d转换器多路开关传感器1传感器2传感器n控制执行机构温度、压力、流量等信号模拟信号模拟信号数字信号返回d/a 转换器d7 :d0tv数字量 输入模拟量 输出rvr4222rrrrr2r2r2r2rvr3210i3i2i1i0rvr4122rvr4322rvr4022ioutrvrbbbb401232)20212223(rrrrr2r2r2r2rvri3i2i1i0b3 b2 b1 b0 四位dac寄存器 rfirfiout

23、1voutrvrbrvrbrvrbrvrb4041424322022122222300112233ibibibibiout电流 / 电压变换返回vout =-ioutrfiout28位输入寄存器8位dac寄存器8位t型电阻网络di7di6di5di4di3di2di1di0ile/cs/wr1/wr2/xferm1m3vrefiout2iout1rfbgndrf=1允许输入=0锁存数据阻断新数据=1允许输入 进行转换=0锁存数据阻断新数据返回前一次i rfv out电流 / 电压变换dac0832iout1iout2v ref返回转内部框图/wrp0口ale/wr1/wr2/xfer rfb/

24、cs iout1ile iout2di7di0锁存器译码器+5vv outfeh转内部框图2562vrfebvrfebn/wr1/wr2/xfer rfb/cs iout1ile iout2di7di0v outvoutt2562vrfebvrfebn/wr1/wr2/xfer rfb/cs iout1ile iout2di7di0v outvoutt2562vrfebvrfebn/wr1/wr2/xfer rfb/cs iout1ile iout2di7di0v outvoutt/wrp0口ale/wr1/wr2/cs rfb/xfer iout1ile iout2di7di0锁存器译码器+

25、5vv xfdhfehffh/wr1/wr2/cs rfb/xfer iout1ile iout2di7di0+5vv y数据寄存器:/wr1,/csdac寄存器:/wr2,/xfer转内部框图返回本节目录a/d 转换器d7 :d0数字量 输出模拟量 输入vx基准电压vr继续控制电路n位d/a转换网络n位寄存器sar模拟电压输入vxa/d转换数据输出启动 时钟 状态+-比较器vxvs返回八路模拟开关地址锁存in0 26in1 27in2 28in3 1in4 2in5 3in6 4in7 5adda 25addb 24addc 23ale 22+-比较器vxvs控制电路逐次比较寄存器sar数状

26、开关256 电阻网络三态输出寄存器vcc gnd vr(+) vr() 11 13 12 15 eoc 7d7 21d6 20d5 19d4 18d3 17d2 16d1 15d0 14start 6 clock 101011002.5v1.5v0.5v0.0v1/2vrefvstvstd1d0返回/rd/wrp0口 mcs-51 ale/int1oestartaleadc0809 addcaddbaddcd7d0clockeoc地址锁存器地址译码器+p0.2p0.1p0.0分频器f0h返回继续返回七段译码器 七段译码器 七段译码器 七段译码器 七段译码器vcc bcd码 0000 0001

27、0010 0011 0100返回七段译码器bcd码动态扫描时序图返回00h 01h 02h 03h 04h万位 仟位 佰位 十位 个位位扫描万位仟位佰位十位个位bcd码返回上一页返回mcs-51 p0p1驱动电路采用软件进行七段译码可以省去译码器,但要使用7-8条口线输出字形码mcs-51 p0.7p0.6p0.5p0.4p0.3p0.2p0.1七段译码器3-8译码器使用“bcd/七段译码器”和“位扫描译码器”可以有效的节省单片机的口线 8155/8255 ad0.7 pa.7ad0.0 pa.0/cs pb.5pb.0驱动电路to 51的p0口可以使用8155/8255并行口扩展芯片组成的动态扫描电路 8279 outb0outb3outa0outa3 / cs sl0sl1sl2sl3db0 : db7 驱动电路3-8译码器由可编程键盘/显示芯片8279 构成的8位led数码管动态显示电路框图所有的“动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论