目录

一、实验目的和要求... 2

二、实验原理与背景... 3

三、实验具体的内容... 3

四、实验的代码说明... 4

五、实验结果的分析... 6

附录资料


一、实验目的和要求

学会8251芯片和微机接口原理和方法。

掌握8251串口芯片的基本工作原理、工作方式和编程原理。

二、实验原理与背景

TPC-USB平台上有一块8251A串行接口芯片,除了片选引脚,其他信号都已接好。

三、实验具体的内容

从键盘输入一个字符,将其ASCII码加 1 后串行发送出去,再从串行口接收回来在屏幕上显示,实现自发自收。收发均采用查询方式。

步骤如下:

1)按图3.1连接好电路,(8251插在通用插座上)。其中8253计数器用于产生8251的发送和接收时钟,TxD和RxD连在一起。图示电路8251的控制口地址为2B9H,数据口地址为2B8H。2、8253计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。

图3.1  TPC-USB平台串行实验连接

2)根据流程图3.2,编程并运行,观察实验结果。

图3.2  TPC-USB平台串行实验流程

四、实验的代码说明

 data segment
mes1 db 'you can play a key on the keybord!',0dh,0ah,24h
mes2 dd mes1
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,283h ;设置8253计数器0工作方式3
mov al,16h
out dx,al mov dx,280h
mov al, ;给8253计数器0送初值
out dx,al mov dx,2b9H ;初始化8251
xor al,al
mov cx, ;向8251控制端口送3个0 预处理
delay: call out1 ;连续发送3个0
loop delay
mov al,40h ;向8251控制端口送40H,使其复位
call out1
mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16
call out1
mov al,27h ;向8251送控制字允许其发送和接收
call out1
lds dx,mes2 ;显示提示信息
mov ah,
int 21h
waiti: mov dx,2b9H in al,dx
test al, ;发送是否准备好
jz waiti
mov ah, ;是,从键盘上读一字符
int 21h
cmp al, ;若为ESC,结束
jz exit mov dx,2B8H
inc al
mov dl,al
mov ah,02h
int 21h
out dx,al ;发送
mov cx,40h
s51: loop s51 ;延时
next: mov dx,2B9H
in al,dx
test al, ;检查接收是否准备好
jz next ;没有,等待
mov dx,2B8h
in al,dx ;准备好,接收
mov dl,al
mov ah, ;将接收到的字符显示在屏幕上
int 21h
jmp waiti
exit: mov ah,4ch ;退出
int 21h
out1 proc near ;向外发送一字节的子程序
out dx,al
push cx
mov cx,40h
gg: loop gg ;延时
pop cx
ret
out1 endp
code ends
end start

五、实验结果的分析

从键盘输入一个字符,将其ASCII码加 1 后串行发送出去,再从串行口接收回来在屏幕上显示,实现了自发自收。

附录资料

本文链接:http://www.cnblogs.com/zjutlitao/p/4181380.html

更多精彩:http://www.cnblogs.com/zjutlitao/p/4125085.html

文档下载:http://pan.baidu.com/s/1eQcS7Nc

最新文章

  1. ODP方式,大批量数据写入ORACLE数据库
  2. webshell
  3. img标签中alt和title属性的正确使用
  4. C++中的异常处理(二)
  5. 彻底弄懂css中单位px和em,rem的区别 转的自己看
  6. mongodb的读写分离
  7. uboot启动流程
  8. 路由器之VPN应用与配置指南
  9. E.164 Format
  10. Qt入门(13)——Qt的调用退出
  11. HTML5 例子学习 HT 图形组件
  12. 【转】sun.misc.BASE64Encoder找不到jar包的解决方法
  13. 做的简单的一个静态web服务器,遇到个bug, 提示osError,这点一不小心就错了,特地记下来,加深记忆,socket须先绑定,再listen,如果是先listen再绑定,系统会自动分配一个端口,而程序绑定不了
  14. 在js中怎样获得checkbox里选中的多个值?
  15. 吴裕雄 python 机器学习——岭回归
  16. day02作业
  17. 目标检测(四)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  18. Python-CSS 基础
  19. 《CLR via C#》读书笔记 之 线程基础
  20. Jmeter(十八)_Ubuntu部署jmeter与ant

热门文章

  1. WdatePicker 设置日期第一个比第二个的日期小
  2. mysql问题小结
  3. Rule of Modularity
  4. 介绍开源的.net通信框架NetworkComms框架 源码分析(十三)ThreadSafeStream
  5. VS2010英文版修改删除、注释快捷键
  6. Exception异常规范
  7. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
  8. android BroadcastReceiver
  9. jqyery dataTable 基本用法
  10. 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"