好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

并行接口实验报告.doc

9页
  • 卖家[上传人]:豆浆
  • 文档编号:4329110
  • 上传时间:2017-08-18
  • 文档格式:DOC
  • 文档大小:336KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课 程 实 验 报 告实验名称: 并行接口实验 专业班级: 学 号: 姓 名: 同组人员: 指导教师: 报告日期: 、2实验一1. 实验目的 .........................................................................................32. 实验内容 .........................................................................................33. 实验原理 .........................................................................................34. 程序代码 .........................................................................................65. 实验体会 .........................................................................................93实验一1.实验目的熟悉并行接口电路,掌握并行接口芯片 8255A 的应用及其编程技术。

      2.实验内容通过对 8255 芯片的编程,使得实验台上的步进电机按顺时针或逆时方向转动,同时数码管做 0-9 的加计数和减计数操作:1.使用 K0 控制步进电机顺逆时针转动和数码管加减计数;2.使用 K1 控制步进电机转速和数码管显示速度(分快和慢两种速度) 3.使用 K2 启动和停止步进电机转动和数码管计数显示;3.实验原理1.将 8255 的 A、B、C 端口都设置在 0 工作方式(基本输出/ 输入方式) , A 口输出信号控制步进电机转动和方向, B 口输出信号控制数码管显示, C 口输入信号控制步进电机和数码管的启动/停止,运动方向 /加或减计数,运动速度/计数速度 2.PA0-PA3 输出的一个 4 位二进制数值用于驱动步进电机;PB0-PB7 输出的一个 8 位二进制数值控制数码管的计数显示; PC4-PC7 输出作为数码管的位选信号;PC0-PC3 分别输入 3 个控制信号3.步进电机工作原理:4步进电机采用两项驱动方式,每次对电机的四组线圈中的两组施加脉冲信号,并进行顺序切换使步进电机旋转,调节脉冲信号施加的顺序和频率可改变电机的旋转方向和旋转速度4.数码管工作原理数码管一组共 4 只(位)组成,每只数码管由 a、b、c 、d、e、f、g 共 7 个段组成,加上小数点 dp 共 8 个段。

      数码管要正常显示需要用驱动信号来驱动数码管的各个段码,从而显示我们需要的数字数码管的每一个段都由 8255 输出端口的一位信号控制,如果我们将 b 和 c 段接上正电源,其他段接地或悬空,那么 b 和 c 段发光,此时数码管显示数字“1” ,其他字形显示以此类推5 实验中的连线1 用导线将 8255 芯片的 PA0-PA3 端口分别与步进电机的 BA、BB、BC 和 BD 连接2.用导线将 8255 芯片的 PB0-PB7 端口与数码管的 a、b、 c、d、e、f、g、dp 连接4.用导线将 8255 芯片的 PC0-PC1 端口与开关 K0-K1 连接5.4.用导线将 8255 芯片的 PC4-PC7 端口与数码管 S0-S3 连接5.用导线将 8255_CS 插孔与 288H^28FH 插孔连接56 程序流程框图方式命令字初始化 8255Buf2=33h通过 A 口输出给步进电机控制旋转通过 B 口输出给数码管控制显示C 口读开关,送入 buf3buf=02h控制转速/计数频率(快速) 控制转速/计数频率(慢 速)buf=01h加计数和逆时针转 减计数和顺时针转buf=04hYYYNNN64.程序代码;1.K0=0,逆时针转;K0=1 ,顺时针转;2.K1=0,慢转;K1=1 ,快转data segmentbuf1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;LED 显示buf2 byte 0 ;步进电机数据buf3 byte 0 ;保存开关数据buf4 byte 0 ;保存顺转数据buf5 byte 9 ;保存反转数据buf6 byte 0 ;开关机data endscode segment assume cs:code,ds:datastart:mov ax,datamov ds,axmov buf2,00110011b ;步进电机数据mov dx,28bh ;8255 控制口初始化mov al,81h ;1000,0001out dx,al;-----------------------------逆转控制----------------R0: mov dx,28ah ;读 C 口in al,dxmov buf3,al ;保存 C 口数据test al,04 ;jnz kai ;转反转test al,01 ;测试 K0=1?jnz L0 ;转反转mov al,buf4 ;走马灯开始一步顺转cmp al,97jnz S1call change9_0S1: inc al ;数据加 1mov buf4,almov bx,offset buf1xlatmov dx,289h ;B 口输出out dx,al ;数据完成加 1mov al,buf2 ;电机开始一步逆转ror al,1 ;数据左移mov buf2,almov dx,288h ;A 口输出out dx,al ;电机完成一步逆转mov al,buf3 ;回复 C 口数据test al,02jnz R1 ;转快转call delay_s ;否则慢转jmp R0R1: call delay_q ;快转jmp R0;------------------------------顺转控制-----------------L0: mov al,buf5 ;走马灯开始一步顺转cmp al,0jnz S2T2: test al,03 ;测试 K2=1?jnz T2call change0_9 S2: dec al ;数据减 1mov buf5,al ;mov bx,offset buf1xlatmov dx,289h ;B 口输出out dx,al ;走马灯结束一步顺转mov al,buf2 ;电机开始一步顺转8rol al,1 ;数据右移mov buf2,almov dx,288h ;A 口输出out dx,al ;电机结束一步顺转mov al,buf3 ;回复 C 口数据test al,02jnz L1 ;转快转call delay_s ;否则慢转jmp R0T3: test al,03 ;测试 K2=1?jnz T3L1: call delay_q ;快转jmp R0kai: mov dx,28ah ;读 C 口in al,dxmov buf3,al ;保存 C 口数据test al,04 ;jz L0 ;转反转jmp kaiexit: mov ah,4chint 21hdelay_s proc near ;长延时mov bx,20hlp1: mov cx,0ffffhlp2: loop lp2dec bxjnz lp1retdelay_s endpdelay_q proc near ;短延时mov bx,1lp11: mov cx,0ffffhlp22: loop lp22dec bxjnz lp11retdelay_q endp9change9_0 proc nearmov buf4,-1mov al,buf4retchange9_0 endpchange0_9 proc nearmov buf5,10mov al,buf5retchange0_9 endpcode endsend start5.实验体会这次实验是在步进电机实验的基础上扩展,实现对 8255 芯片的熟练运用,连线相对容易,逻辑也容易理解,关键在于代码的编写,经过研究了步进电机的代码,之后进行相关修改,因为汇编语言不经常使用很多地方都有忘记,比如,汇编编程的基本结构,查表运算等等,在仔细查阅了汇编课本后,终于完成了代码部分的编写,代码编译通过后,在实验台上运行发现步进电机不能实现正反转,后来发现时因为转速相关参数没有调整好的缘故。

      通过本次实验初步学习到了怎样通过像 8255 这样的接口芯片,实现对电路的控制,重新编写接口芯片,为以后设计芯片打下基础。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.