




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机实验及课程设计实验报告 学号 08011东南大学微机实验及课程设计实验报告实验七8251串行通信实验八 数模与模数转换姓 名: 学 号: 08011 专 业: 自动化 实 验 室: 计算机硬件技术 实验时间: 2013年05月14日 报告时间: 2013年05月27日评定成绩: 审阅教师: 实验七8251串行通信一、实验目的与内容实验目的(1)了解串行通信的基本原理,认识串行收发过程; (2)掌握串行接口芯片8251的工作原理和编程方法。实验内容(1)按图1 连接好电路 (8251插在带锁通用插座D上),其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD直接相连。 (2)编写测试程序,初始化8251,实现连续发送固定字符,试用多种不同字符格式和字符。 (3)编程实现从键盘输入一个字符, 将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。 二、基本实验原理1. 实验原理:串行输入输出接口电路、串行收发过程原理;串行接口芯片8251的工作原理和编程方法;2. 关键电路原理图:3. 主要程序流程图:图2 8251通信查询程序流程图三. 方案实现与测试实验步骤:(1)连好电缆,TPC测试卡地址,运行点阵演示程序(正常后继续)(2)按图8253和8251连线,(假定io地址c800h),TD/Debug下单步o c803 16(初始化方式字),CLK按键或连续脉冲输入后i c800,检查计数变化。(3)o c839 0(三次,确保内部复位);o c839 40(内部复位);o c839 4E(格式字);o c839 27(允许其发送和接收);i c839 读状态,o c838 xx(发送任意数),I c838(接收数据),重复收发不同8位数过程,编程运行;重复发送字符AEH或E5H,用示波器观察发送端TxD等(格式,波特率),改变参数,观察。(4)编程:查询收发读键+1后发送;中断接收;中断收发(调中断程序先用按键模式)(TxRDY+)RxRDYIRQ。程序如下:data segmentioportequ 0b400h-0280h ;tpc卡中设备的io地址io8253aequ ioport+280h ;计数器0地址io8253bequ ioport+283h ; 8253控制寄存器地址io8251aequ ioport+2b8h ;8251数据口地址io8251bequ ioport+2b9h ;8251控制口地址 mes1 db you can play a key on the keybord!,0dh,0ah,24h mes2 dd mes1data endsstacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ds:data,ss:stacksmain proc farstart:mov ax,stacksmov ss,ax mov ax,data mov ds,ax mov dx,io8253b ;设置8253计数器0工作方式 mov al,16h out dx,al mov dx,io8253a mov al,52 ;给8253计数器0送初值 out dx,al mov dx,io8251b ;初始化8251 xor al,al mov cx,03 ;向8251控制端口送3个0 delay: call out1 loop delay mov al,40h ;向8251控制端口送40H,使其复位 call out1 mov al,4eh ;设置为1个停止位,8个数据位 call out1 ;波特率因子为16 mov al,27h ;向8251送控制字允许其发送和接收 call out1 lds dx,mes2 ;显示提示信息 mov ah,09 int 21hwaiti: mov dx,io8251b in al,dx test al,01 ;发送是否准备好 jz waiti mov ah,01 ;是,从键盘上读一字符 int 21h cmp al,27 ;若为ESC,结束 jz exit mov dx,io8251a inc al out dx,al ;发送 mov cx,0F00hs51: loop s51 ;延时next: mov dx,io8251b in al,dx test al,02 ;检查接收是否准备好 jz next ;没有,等待 mov dx,io8251a in al,dx ;准备好,接收 inc al;如果需要处理,如加1 mov dl,al mov ah,02 ;将接收到的字符显示在屏幕上 int 21h jmp waitiexit: mov ah,4ch ;退出 int 21hmain endpout1 proc near ;向外发送一字节的子程序 out dx,al push cx mov cx,0F00hgg: loop gg ;延时 pop cx retout1 endpcode endsend start实验现象:由于芯片的问题,实验运行的结果是输入一个字符后输出的是空格。用TD进行单步调试后发现AL在执行 in al,dx 语句后始终变为FF,且将test al,01(02)语句跳过不执行。在执行inc al语句后al变为00,所以不论输入什么字符输出总是空格。按键esc可以成功退出程序的运行。确保连线没错的情况下我们借了一块别人的芯片,程序运行正常,从键盘输入字符1,收到字符,并在屏幕上显示3。因为发送时将a的ASC码加1,接收时又将ASC码加1接收,所以显示的字符为3。这是程序的问题。通过在next片段中去掉语句inc al,这样就可以达到ASCII码加一得输出了,即可满足题目原来的意思。修改后重新运行的现象如下:不过在我们打算进一步修改程序的时候,貌似由于实验箱不稳定的原因,同样的程序刚才还正常的,却再次运行出错,只显示FF,出现空格,由于时间限制,我们的实验就这样结束了。四 提高与创新研究1.在实验中, 可以在源程序的基础上进行改动,即可以不通过键盘来输入字符,而通过对8251的初始化直接进行控制,从而实现连续发送字符,可以是固定字符,也可以是多个字符,在本实验中,我主要通过利用整个程序的循环框架,在程序中通过加来输出所有ASCII码,又由于本实验中的程序退出时通过按ESC来实现的,而ESC是有延时的,所以我改用通过按下任意键来实现退出,这样就不会导致频繁的死锁现象,具体改动如下所示:首先在程序的数据段加个数据临时变量,用来存放al中的数据,即temp db 0,然后把waiti改动为:waiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz waitimov ah,0bh int 21hcmp al,0ffh ;若为任意键,结束jz exitmov dx,io8251amov al,tempout dx,al ;发送Inc alMov temp,almov cx,0F00hs51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz next ;没有,等待mov dx,io8251ain al,dx ;准备好,接收 inc al ;如果需要处理,如加1mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waiti现象表述:将改动好的程序载入运行后,可以发现屏幕上会有从1开始的所有字符,如果不按任意键将会一直循环下去,直至按下任意键结束,并且将8251的19脚接入示波器,可以观察到两种波形,一个为一条直线,另一条为跳动的波形,即发送一个字符就会出现一段跳动的波形,并且不同的波形所对应的波形宽度不尽相同,这种差异是由字符的不同所导致的。2.分析一下,实验系统中握手信号如CTS、RTS等如何起作用的。RTS请求发送,是输出信号,低电平有效。用于通知Modem,8251要求发送。它由命令字的D5置“1”来使其有效。CTS允许传送,是输入信号,低电平有效。是Modem对8251的RTS信号的响应,当其有效时,8251方可发送数据。实验中RTS接地,始终有效。当8251准备好发送时,输出RTS信号,8253收到信号后,若允许发送,则回答一个低电平信号作为CTS输入,于是握手成功,传送可以开始。五分析与总结从实验中我们可以明白用8251做简单的输入输出接口时,首先要计算8253的初值,具体计算公式是:8253计数器初值=时钟频率/(波特率*波特率因子)就一般情况而言,波特率因子取16,在实验中,选择的时钟频率脉冲为1MHz,波特率选择为1200B/s,则计数器初值为52。而对于收发程序既可以用查询方式,也可以用中断方式,而且不管是接收数据还是发送数据,都要检查相应的线路状态是否空闲或者准备好。这样通过本实验的学习,认识到单步调试的重要性,增强了自己的错误检查能力和程序改进能力,以及对BIOS的命令调用进行了复习,达到了对实验的原理深刻认识的效果。通过实验,进一步了解了串行通信的原理以及通过串行方式发送和接收数据的过程。输出数据是以字符为单位首先送到数据发送保持寄存器中,再进入发送移位寄存器,这些过程都是并行方式传送的。在发送移位寄存器中,按照事先和接收端约定的字符传输格式,加上起始位,奇偶校验位和停止位,然后再以约定的波特率先低位后高位地发送出去。实验八数模与模数转换一、实验目的与内容1. 实验目的 1)了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法; 2)了解模/数转换器的基本原理,掌握ADC0809芯片的使用方法。2. 基本实验内容和要求 (1)DAC实验电路原理如图1,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。进入DEBUG调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端a及双极性输出端b的电压,验证数字与电压之间的线性关系。(2)分别编程产生锯齿波、正弦波电压波形(从Ub输出,用示波器观察)。(3)ADC实验电路原理图如图2, 通过实验台左下角电位器RW1输出05直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动/转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。启动IN0开始转换: O 0C818 0;读取转换结果: I 0C818。(4)编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。(5)将JP3的1、2短接,使IN1处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为),编程采集这个信号数据并在屏幕上显示波形。二、基本实验原理1. 实验原理:(1)D/A转换 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+V电源。 产生锯齿波只须将输出到DAC0832的数据由0循环递增,产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16个以上。(2)A/D转换 图2中ADC0809的IN0口地址为298H,IN1口地址为299H。 IN0单极性输入电压与转换后数字的关系为其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+V电源。 一次A/D转换的程序可以为: MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在AL中2. 关键电路原理图:3. 主要程序框图: 图3 锯齿波发生程序流程图 图4 正弦波发生程序流程图三. 方案实现与测试17实验步骤:(1)连好电缆,TPC测试卡地址,运行点阵演示程序(正常后继续)(2)按图连接DAC0832片选(290-298H译码)线,Ub接逻辑笔。(假定IO地址C800H),TD/Debug下单步o C810 00(00V输出,绿灯亮);o C810 FF(5V输出,红灯亮);o C810 80H(2.5V输出,黄灯亮); 输入FF红灯亮: 输入00绿灯亮:(3)分别编程产生锯齿波、正弦波电压波形(从Ub输出,用示波器观察)(4)按图接DAC0809片选(298-29FH译码)线等,启动IN0开始转换,o c818 0,读取转换结果i c818,IN0从0-5V变化,观察结果(IN1 C819H)采集IN0的信号,随着电位器的转动,转换结果从FF-00变化。(5)编程采集IN0输入的电压信号,在屏幕上显示出转换后的数据。(6)将JP3的1、2短接,使IN1处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为),编程采集这个信号数据并在屏幕上显示波形。DA转换关键程序段:程序1:锯齿波发生程序start: mov ax,stacksmov ss,axmov cl,0mov dx,io0832alll: mov al,clout dx,alinc cl ;cl 加1inc clinc clinc clinc clinc clinc clpush dxmov ah,06h ;判断是否有键按下mov dl,0ffhint 21hpop dxjz lll ;若无则转LLLmov ah,4ch ;返回DOSint 21h程序2:正弦波发生程序data segmentioport equ 0d400h-0280h ;tpc 卡中设备的io 地址io0832a equ ioport+290h ;DAC0832 的口地址为290Hsin db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdhdb 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96hdb 80h,66h,4eh,38h,25h,15h,09h,04hdb 00h,04h,09h,15h,25h,38h,4eh,66h ;正弦波数据data endsstacks segmentstart: mov ax,stacksmov ss,axmov ax,datamov ds,axll: mov si,offset sin ;置正弦波数据的偏移地址为SImov bh,32 ;一组输出32 个数据lll: mov al,si ;将数据输出到D/A 转换器mov dx,io0832aout dx,almov ah,06hmov dl,0ffhint 21hjne exitmov cx,1delay:loop delay ;延时inc si ;取下一个数据dec bhjnz lll ;若未取完32 个数据则转llljmp llexit: mov ah,4ch ;退出int 21hAD转换关键程序段:程序1:数据转换和数据显示start: mov ax,stacksmov ss,axmov dx,io0809a ;启动A/D 转换器out dx,almov cx,0ffh ;延时delay:loop delayin al,dx ;从A/D 转换器输入数据mov bl,al ;将AL 保存到BLmov cl,4shr al,cl ;将AL 右移四位call disp ;调显示子程序显示其高四位mov al,bland al,0fhcall disp ;调显示子程序显示其低四位mov ah,02mov dl,20h ;加回车符int 21hmov dl,20hint 21hpush dxmov ah,06h ;判断是否有键按下mov dl,0ffhint 21hpop dxje start ;若没有转STARTmov ah,4ch ;退出int 21hmain endpdisp proc near ;显示子程序mov dl,alcmp dl,9 ;比较DL 是否9jle ddd ;若不大于则为09,加30h 为其ASCII 码add dl,7 ;否则为AF,再加7ddd: add dl,30h ;显示mov ah,02int 21h程序2:A/D转换曲线绘制start: mov ax,stacksmov ss,axmov ax,0012h ;设屏幕显示方式为VGA 640X480 模示int 10hand cx,0 ;cx 为横坐标draw:mov dx,io0809b ;启动A/D 转换器通道1out dx,almov bx,500 ;延时delay:dec bxjnz delayin al,dx ;读入数据mov ah,0mov dx,368 ;dx 为纵坐标sub dx,axmov al,0ah ;设置颜色mov ah,0ch ;画点int 10hcmp cx,639 ;一行是否满jz start ;是则转startinc cx ;继续画点push dxmov ah,06h ;是否有键按下mov dl,0ffhint 21hpop dxje draw ;无,则继续画点mov ax,0003 ;有恢复屏幕为字符方式int 10hmov ah,4ch ;返回DOS 操作系统int 21h实验现象:连线如上图所示,在运行锯齿波程序的可执行程序后,将Ub的信号接入示波器可以观察到下述波形:在运行正弦波程序的可执行程序后,将Ub的信号接入示波器可以观察到下述波形:当载入ADC实验的可执行程序,即数据转化程序后随着改变IN0端的电位器,会在整个屏幕上出现从0FF转换的所有数据,由于0809的时钟信号是1MHZ,所以整个变化过程非常快。载入曲线绘制程序之后,可以看到在屏幕上会出现绿色的连续波形,从而验证了实验电路和原理的正确性。 闪动比较快,不易记录,因此没有拍下照片。四、提高与创新研究编程实现数字录音器。连接电路,将声传感器接J2,把代表语音的电信号送给ADC0809 通道2(IN2);D/A 转换器的输出端通过K8 跳线接喇叭。编程以每秒钟5000 次的速率采集IN2 输入的语音数据并存入内存,共采集60000 个数据(录12 秒),然后再以同样的速率将数据送DAC0832 使喇叭发声(放音)。(1)关键程序段如下:Begin: Mov dx, io0809a;ADC0809的地址 Out dx,al;启动一次A/D转换器 Call delay;调用延时子程序 In al,dx;从端口读入数据 Mov di,al;将数据放入缓冲区中 Inc di Loop begin ;循环装入60000个数据Play: Mov di,offset buf;取缓冲区的入口地址 Mov cx,60000Begin1: Mov dx,io0832a;DAC0832的入口地址 Mov al,di;将要转换的数据从内存中取出 Out dx,al;将数据打入寄存器 Call delay;调用延时子程序 Inc di Loop begin1 Mov dx,offset word3;显示循环放音提示 Mov ah,9 Int 21h Mov ah,1 Int 21h Delay proc near Push dx;保存dx的内容 Mov dx,io8253c;8253的控制字地址 Mov al,00010000b ;计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《小学教师招聘》通关试题库(有一套)附答案详解
- 2025年教师招聘之《小学教师招聘》题库检测试卷附完整答案详解【历年真题】
- 2025呼伦贝尔农垦那吉屯农牧场招聘笔试模拟及一套参考答案详解
- 报关员培训试题及答案
- 教师招聘之《幼儿教师招聘》复习试题及参考答案详解(研优卷)
- 2025年思培考试测试题及答案大全
- 2025年留学甄选测试题及答案解析
- 2025年兵团第十师北屯市引进和事业编工作人员考试笔试试题(含答案)
- 2025内蒙古交通投资(集团)有限责任公司所属天骄航空有限公司招聘25人笔试备考试题及答案解析
- 2025内蒙古巴彦淖尔应用技师学院(杭锦后旗职业教育中心)教师招聘22人笔试备考试题及答案解析
- 辽宁省名校联盟2025年高三9月份联合考试 物理试卷(含答案解析)
- 新产程解读及产程管理
- 2025高职单招职业适应性测试题库与答案
- 2025至2030中国摩托车保险行业调研及市场前景预测评估报告
- Unit 1 How can I get there?(教学设计)-2024-2025学年人教PEP版英语六年级上册
- 越南货代基本知识培训课件
- 社会学概论教学课件
- 2025-2026学年粤人版(2024)初中地理八年级上册教学计划及进度表
- 2025年上半年系统架构设计师《综合知识》考试真题及答案
- 牧护关镇街道小学2025-2026学年第一学期工作计划
- 失眠抑郁焦虑课件
评论
0/150
提交评论