东南大学微机实验综合课程设计

合集下载

东南大学微机实验综合课程设计

东南大学微机实验综合课程设计

东南大学自动化学院微机实验及课程设计报告《参数可调波形发生器》姓名:学号:专业:实验室:组别:同组人员:设计时间:评定成绩:审阅教师:目录一.设计目的和要求--------------------------------------3 二.原理设计--------------------------------------------4 三.方案论证与实现--------------------------------------6 四.设计思路及流程图--------------------------------------------------------7 五.编程实现--------------------------------------------------------------------10六.方案测试与结果分析----------------------------------18 六.改进与提高------------------------------------------19 七.分析与总结------------------------------------------19一、设计要求1)基本要求编制1 个参数在线可调的波形发生程序,由D/A 输出,构成参数在线可调的波形发生器,并用示波器观察波形。

函数波形可选f(t)=asin(bt),其中a、b参数在线可调(也可自己选择,但要求至少2 个参数可调且调节很明显)。

参数调节采用如下两种方式之一:(1)两个可调电位器输出通过A/D 转换后作为可调参数;(2)参数通过实验装置上的键盘实时修改(调整);(3)精确时间,开关选择标准信号输出(例如a=2V, b=100πRAD/s,即50Hz 正弦波)。

2)设计提示(1)当用电位器调节参数时,输出零不能对应相应的参数值就为零;(2)当通过键盘修改参数时,先键入参数名如“a”,显示当前参数值,修改后再键入参数名,则修改参数完成,随后输出波形发生变化。

东南大学 微机接口与实验 课程设计 乒乓球比赛 实验报告

东南大学 微机接口与实验 课程设计 乒乓球比赛 实验报告

东南大学《乒乓球比赛》微机课程设计实验报告姓名:学号:专业:吴健雄学院实验室:实验时间:2013年00月00日报告时间:2013年00月00日评定成绩:审阅教师:目录一、实验目的与内容 (2)二、总方案设计及原理 (3)(一)比赛规则 (3)(二)面板设计 (3)(三)方案流程图 (3)三、方案实现与测试 (5)(一)各模块硬件设计 (5)(二)整体硬件连线图 (6)(三)系统框图 (7)(四)主程序设计 (7)(1)主程序流程图 (7)(2)主要程序片段 (9)(五)子程序设计 (11)(1)延时子程序 (11)(2)屏幕显示子程序 (12)(3)数码管扫描比分子程序 (13)(4)移动速度选择子程序 (16)(5)规定等待时间选择子程序 (17)四、程序设计中遇到的问题及解决方法 (18)五、分析与总结 (18)附录 (19)一. 实验目的与内容1)基本要求用8个LED 发光管(红黄绿)的来回滚动显示来模拟打乒乓球时乒乓球在两边球台上的来回运动。

比赛双方用按钮/开关(双方各用1个按钮/开关)来模拟发球与接球,即发球方按动其控制的按钮/开关,球从发球方一侧向另一方运动(LED发光管从发球方到对方逐个点亮,滚动显示),当球运动至接球方时,接球方立即按动其控制的按钮/开关,“击球”使球“弹回”发球方一侧,如此周而复始,直至在规定的击球时间内有一方未能完成击球动作,从而对方得一分,然后继续比赛。

比赛规则可参照一般的乒乓球比赛规则。

要求:(1) 球以每0.5秒滚过1个LED的速度移动;(2) 回球需在球到达后的0.5秒内进行(按下按钮),否则按失球计;(3) 球未到达提前按下按钮按失球处理,不起回球作用;(4) 在PC机上显示比赛过程,同时用2个八段数码管显示比分(按10进制计数,初始值 0:0,可自行设计显示及规则,可简化为0-9,也可为0-99);(5) 要求精确计时。

2)设计提示球到达接球方后,立即读接球方的按钮状态,若未按则有效(若已按下则按失球计),并开始0.5秒的计时,在这个0.5秒内不断读接球方按钮状态,直到按下代表“击球”动作。

东南大学微机第六次实验报告1

东南大学微机第六次实验报告1

东南大学《微机实验及课程设计》实验报告实验六8255 并行输入输出姓名:学号:专业:实验室:计算机硬件技术实验时间:年05月22日报告时间:年05月29日评定成绩:审阅教师:一.实验目的与内容(一)实验目的1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8段数码管的动态刷新显示控制;(二)实验内容及要求1、8段数码管静态显示:编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。

(必做)2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。

(如56或7f)(必做)3、静态显示:用逻辑电平开关预置某个数字(0~9)的二进制码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来。

4、动态显示:在两个数码管上滚动循环显示不同的0~f字符。

(即开始时两个数码管显示01,12,23,34 ······ 9a······f0,一直循环直至退出)注:3,4中选做一题,必做一题二. 实验基本原理(一)实验接线图PA0~PA6分别接数码管的a~gPC0~PC7分别逻辑电平开关的K0~K7位选端S1接+5V位选端S0接地数码管dp端接地必做1,3 接线图PA0~PA6分别接数码管的a~g位选端S0 、S1接8255C口的PC0、PC1端必做2 接线图(二)程序流程图开 始设置8255C口输入A口输出从C口输入数据将此数据自A口输出有键按下吗?NY结 束图 8255 简单输入输出程序流程图图 8255 动态显示5 6 程序流程图三方案实现与测试(或调试)必做实验1:data segmentioport equ 0ec00h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhled db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,'Input a num(0--9h):',0dh,0ah,'$'data endscode segmenta ssume cs:code,ds:datastart: mov ax,datam ov ds,axm ov dx,io8255b ;使8255的A口为输出方式m ov ax,80ho ut dx,alsss: mov dx,offset mesg1 ;显示提示信息m ov ah,09hi nt 21hm ov ah,01 ;从键盘接收字符i nt 21hc mp al,'0' ;是否小于0j l exit ;若是则退出c mp al,'9' ;是否大于9j g exit ;若是则退出s ub al,30h ;将所得字符的ASCII码减30Hm ov bx,offset led ;bx为数码表的起始地址x lat ;求出相应的段码m ov dx,io8255a ;从8255的A口输出o ut dx,alj mp sss ;转SSS exit: mov ah,4ch ;返回DOS i nt 21hcode endsend start必做实验2:data segmentioport equ 0ec00h-0280hio8255a equ ioport+28ahio8255b equ ioport+28bhio8255c equ ioport+288hled db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh buffer1 db 5,6bz dwdata endsstacks segment stackdb 100 dup()stacks endscode segmentassume cs:code,ds:data,ss:stacksstart: mov ax,stacksmov ss,axmov ax,datamov ds,axmov dx,io8255bmov al,80hout dx,almov di,offset buffer1;23loop2: mov bh,02hlll: mov byte ptr bz,bhpush didec diadd di,bzmov bl,[di] pop dimov al,0mov dx,io8255aout dx,almov bh,0mov si,offset led add si,bxmov al,byte ptr [si] mov dx,io8255cout dx,almov al,byte ptr bz mov dx,io8255aout dx,almov cx,3000delay: loop delaymov bh,byte ptr bz shr bh,1jnz lllmov dx,0ffhmov ah,06hint 21hje loop2mov dx,io8255amov al,0out dx,almov ah,4chint 21hcode endsend start选做实验1:data segmentioport equ 0ec00h-0280h ;tpc卡中设备的io地址io8255a equ ioport+288h ;8255A口地址io8255b equ ioport+28bh ;8255控制寄存器端口地址io8255c equ ioport+28ah ;8255C口地址led db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,79h data endsstacks segment stackdb 100 dup ()stacks endscode segmentassume cs:code,ds:data,ss:stacksmain proc farstart: mov ax,stacksm ov ss,axmov ax,datam ov ds,axm ov dx,io8255b ;设8255为C口输入,A口输出m ov al,8bho ut dx,alinout: mov dx,io8255c ;从C 口输入一数据i n al,dxc mp al,30h ;是否小于0j l error ;若是则显示Ec mp al,39h ;是否大于9j g error ;若是则显示Esub al,30hjmp showerror: mov al,79hmov dx,io8255aout dx,al;显示Eshow: mov bx,offset led ;bx为数码表的起始地址x lat ;求出相应的段码mov dx,io8255a ;从A 口输出刚才自C口所输入的数据o ut dx,alm ov dl,0ffh ;判断是否有按键m ov ah,06hi nt 21hj z inout ;若无,则继续自C 口输入,A口输出m ov ah,4ch ;否则返回DOSi nt 21hmain endpcode endsend start选做实验2:data segmentioport equ 0ec00h-0280hio8255a equ ioport+288hio8255b equ ioport+289hio8255c equ ioport+28ahio8255d equ ioport+28bhled db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h ,7ch,39h,5eh,79h,71h ;段码buffer1 db 0,1 ;存放要显示的十位和个位bz dw ;位码count dwcount1 dwdata endsmystack segment para stackdb 100 dup()mystack endscode segmenta ssume cs:code,ds:data,ss:mystackstart:mov ax,datam ov ds,axmov dx,io8255b ;将8255设为A 口输出m ov al,80ho ut dx,albegin3: mov count1,0fhbegin2: mov count,3000mov ax,countbegin1: mov count,ax mov cx,02hmov ah,02hlea si,buffer1mov bx,offset led begin: mov al,[si] xlatmov dx,io8255aout dx,almov al,ahmov dx,io8255cout dx,alcall delaymov al,0out dx,alinc sishr ah,1loop beginmov ax,countdec axjnz begin1mov si,0inc buffer1[si] inc siinc buffer1[si]dec count1jnz begin2mov si,offset buffer1 mov byte ptr[si],0mov byte ptr[si+1],1 mov dx,0ffhmov ah,06hint 21hje begin3jne exitdelay procpush cxmov cx,0ffffhdelay1: loop delay1 pop cxretdelay endpexit: mov ah,4chint 21hcode endsend start四.分析与总结1、8255作为一个并行输入输出接口电路可实现动态和静态的输入输出,在静态实验中,我们通过键盘输入数据,实际上就是用计算机读取键盘的输入值通过8255输出给外设的过程,动态实验中计算机直接读取内存中的数通过8255送到数码管上显示出来2、8255的A口、B口、C口和控制口的端口地址分别为288H~28BH。

东南大学信息学院微机实验报告九

东南大学信息学院微机实验报告九

东南大学信息学院微机实验报告九实验九一、实验目的1.熟悉系统功能调用INT 21H的有关功能2.编写时钟程序二、实验任务1.执行时钟程序时,屏幕上显示提示符“:”,由键盘输入当前时、分、秒值,即XX:XX:XX,随即显示时间并不停地计时。

2.当有键盘按下时,立即停止计时,返回DOS。

三、源程序DATA SEGMENTBUFFER DB 11DB ?DB 10 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAOUTCLK: MOV AX,DATAMOV DS,AXMOV DL,':'MOV AH,2INC BXMOV AL,[BX] ; 分针 AND AL,0FHMOV [BX],ALINC BXMOV AL,[BX]AND AL,0FHMOV [BX],ALINC BXINC BXMOV AL,[BX] ;秒针AND AL,0FHMOV [BX],ALINC BXMOV AL,[BX]AND AL,0FHMOV [BX],ALMOV BX,OFFSET BUFFER+2CALL TOBCD ; 时针,两位非压缩BCD转换成两位压缩BCDMOV CH, ALADD BX,3CALL TOBCDMOV DH, AL ; 分针,两位非压缩BCD转换成两位压缩BCDMOV DH,ALADD BX,3CALL TOBCD ; 秒针,两位非压缩BCD转换成两位压缩BCDMOV DL,ALCMP CH, 24HJAE ERRORCMP DH, 60HJA ERRORCMP DL, 60HJA ERRORERROR1: MOV AH,4CHINT 21HAGAIN: CALL DELAYMOV AL,DL ; 秒针加1ADD AL,1DAAMOV DL,ALCMP AL,60HJA ERRORJNE DISPYMOV DL,0MOV AL,DHADD AL,1 ; 分针DAAMOV DH,ALCMP AL,60HJA ERRORJNE DISPYMOV DH,0MOV AL,CHADD AL,1DAA ; 时针MOV CH,ALCMP AL,24HJAE ERRORJNE DISPY MOV CH,0ERROR: MOV DL, 0MOV DH, 0MOV CH, 0DISPY: MOV BX,OFFSET BUFFERMOV AL,0DHMOV [BX],ALINC BXMOV AL,0MOV [BX],ALINC BXMOV AL,CHCALL TRANINC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,DHCALL TRANINC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,DLCALL TRANINC BXMOV AL,'$'MOV [BX],ALPUSH BXPUSH CXPUSH DXMOV DX,OFFSET BUFFER MOV AH,9INT 21HMOV AH,06HMOV DL,0FFHINT 21HPOP DXPOP CXPOP BXJNE GOJMP AGAINGO: MOV AH,4CHINT 21HTOBCD PROC ; 两位非压缩BCD 转换成压缩MOV AL,[BX]MOV CL,4SHL AL,CLOR AL,[BX+1]RETTOBCD ENDPTRAN PROC ; BCD转ASCII MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV [BX],ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV [BX],ALRETTRAN ENDPDELAY PROCPUSH CXPUSH AXMOV AX,0FFFFHFIR: MOV CX,02FFFHGOON: DEC CXJNE GOONDEC AXJNE FIRPOP AXPOP CXRETDELAY ENDPCODE ENDSEND OUTCLK四、思考题时钟程序中存在误差吗?若有误差,其来源在何处?如何进行误差矫正?答:存在,来源自实验循环的次数,来自“MOVAX,0FFFFH FIR: MOV CX,02FFFH”,如要进行矫正,只需调整AX与CX使之乘积与计算机运行速度相匹配即可。

东南大学微机实验报告3、4定时中断流水灯

东南大学微机实验报告3、4定时中断流水灯

东南大学《微机实验及课程设计》实验报告实验三定时-中断实验:模拟流水灯姓名:学号:专业:自动化类实验室:金智楼416实验时间:2020年4月29日报告时间:2020年5月1日评定成绩:审阅教师:实验三定时-中断实验:模拟流水灯一. 实验目的与内容1.实验目的:1)掌握 PC 机中断处理系统的基本原理;2)学会编写中断服务程序。

3)掌握计数器/定时器 8253/8254 的基本工作原理和编程应用方法;4)了解掌握 8253(8254)的计数器/定时器典型应用方法。

2.实验内容:1. 查阅实验指导书 P60,了解微机主板上的 8259 IRQ0 是留给时钟的中断,类型号是 08H;2. 在提供的例程 int.asm 基础上编写利用 IRQ0 的定时中断程序(即修改对应的中断服务程序),每次中断在屏幕上输出一行字;3. 查阅课本 P273 例程,了解主机板上 8253 端口号和通道 0 对应的时钟,修改 8253 初始化程序,使得通道 0 输出时钟为55ms;4. 修改之前的程序,使其功能为:每 18 次中断(对应约1s)在屏幕上输出一行字;5. 根据提供的画图程序,模拟单色流水灯,按每秒一个灯向着单方向流动;6. 双向流水灯、键控(方向/加减速)流水灯。

二. 基本实验原理中断:PC 机用户可使用的硬件中断只有可屏蔽中断,由 8259 中断控制器管理。

中断控制器用于接收外部中断请求信号,经过优先级判别等处理后向 CPU 发出可屏蔽中断请求。

IBMPC、PC/XT 机内有一片 8259 中断控制器对外可以提供 8 个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线 IRQ0~IRQ7 在主机的 62 线 ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。

东南大学最后一次微机实验报告

东南大学最后一次微机实验报告

东南大学电子科学与工程学院实验报告课程名称:微机原理与接口技术实验名称:交通灯控制实验姓名:学号:实验室:516室实验组别:同组人员:实验时间:2016 年5 月23 日评定成绩:审阅教师:实验报告要求实验准备1.实验目的和要求(或主要性能指标)2.实验原理及实现方案3.实验方案设计与参数选择4.需测量参数及数据测量方法5.理论计算数据或软件模拟数据6.实验数据记录格式7.实验使用仪器设备(包括仪器设备名称、型号、规格、编号、使用状况)8.实验过程或实验步骤实验过程1.实验步骤和实验数据记录2.实验最终方案和方案参数3.实验中出现的问题及解决方法实验总结1.实验数据处理2.实验误差分析3.实验结果讨论4.实验心得注:页面不够可以加页一、实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

二、实验内容如图2-29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通灯变化规律亮灭。

十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮(3)南北路口的红灯、东西路口的绿灯同时亮(4)南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次。

2东南大学电子科学与工程学院实验报告用纸东南大学电子科学与工程学院实验报告用纸3三、硬件连接图四、编程参考流程图五、基础部分代码;***********************************;;* 十字路口红绿灯模拟演示程序*;;* 端口各灯的设置: *;;* 1红1黄1绿0 0 2红2黄2绿*;;***********************************;data segmentioport equ 0ec00h-0280hio8255a equ ioport+28ahio8255b equ ioport+28bhportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据db 0ffh ;结束标志data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255are_on: mov bx,0on: mov al,portc1[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bx4东南大学电子科学与工程学院实验报告用纸mov cx,2000 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,0FFFFH ;有,长延时de1: mov di,0FFFFHde0: dec dijnz de0loop de1push dxmov ah,06hmov dl,0ffhint 21hpop dxjz on ;没有,转到onexit: mov ah,4ch ;返回int 21hcode endsend start代码分析:主要分析灯的延迟时间这部分。

东南大学微机实验报告10页10页

东南大学微机实验报告10页10页

东南大学微机实验报告10页10页
1. 简介:介绍实验目的、实验背景、研究问题和实验方法等。

2. 材料和方法:介绍实验材料和方法,例如使用的硬件、软件和技术等。

3. 结果:给出实验结果,例如测试数据和图表等。

4. 讨论:对结果进行讨论,对实验中遇到的问题进行解释和分析,并提出结论和建议。

5. 结论:总结实验过程、重要结果和研究结论,以及对未来工作的展望。

以下是一份典型的东南大学微机实验报告的框架,可以参考使用。

实验题目:xxx
实验时间:xxxx.xx.xx
实验地点:东南大学计算机实验室
学生姓名:xxx
实验报告结构
1. 简介
1.1 实验目的
1.3 研究问题
2. 材料和方法
2.1 硬件
2.3 技术
3. 结果
3.1 测试数据
4. 讨论
4.2 问题解释
4.3 建议
5. 结论
5.3 未来展望
参考文献: 1. xxxx。

东南大学信息学院微机实验报告十

东南大学信息学院微机实验报告十

实验十一、实验目的1.了解Intel 8086CPU的中断处理功能以及IBM-PC的中断结构。

2.了解8259中断控制器的使用。

3.掌握键盘中断的编程,观察中断的执行情况。

二、实验任务要求每按下一个键就向CPU发出中断请求信号,该信号由8259的IRQ1引入,中断类型号为09,CPU响应中断后转入执行KEYINT中断服务程序,并且在CRT上显示某字或某个图形,按下10次后返回DOS。

三、源程序STACK SEGMENT STACKDW 200H DUP(?)STACK ENDSDATA SEGMENTKEY DB ?BUF DB "OK!"DATA ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK, DS:DATADELAY PROCPUSH CXPUSH DXMOV DX,0A64DHCON2: MOV CX,0FFFFHCON: DEC CXJNE CONDEC DXJNE CON2POP DXPOP CXRETDELAY ENDPDISP1 PROC FARPUSH AXPUSH BXPUSH CXPUSH DXMOV AH, 15 ;读当前显示状态INT 10HMOV AH, 0 ;设置显示方式INT 10HMOV CX, 1 ;要显示字符个数MOV DX, 0 ;行号为0,列号为0REPT: MOV AH, 2 ;设置光标位INT 10HMOV AL, 0FH ;读出太阳图形MOV AH, 10 ;写字符INT 10HCALL DELAYSUB AL, ALMOV AH, 10 ;清除原图形INT 10HINC DHADD DL, 2CMP KEY, 10JAE GO1CMP DH, 25JNE REPTGO1: POP DXPOP CXPOP BXPOP AXRETDISP1 ENDPDISP2 PROC FARPUSH CXPUSH BXPUSH AXMOV CX, 3NEXTC: LODSB ;AL<-[SI]MOV AH, 0EH ;写字符,并移动光标MOV BX, 01INT 10HCALL DELAYLOOP NEXTCCMP KEY, 10JAE GO2POP AXPOP BXPOP CXRETDISP2 ENDPKEYINT PROC FARPUSH AXPUSH SISTIIN AL, 60HIN AL, 61HOR AL, 80HOUT 61H, ALAND AL, 7FHOUT 61H,ALTEST AH, 80HJNE GOSTIINC KEYMOV SI, OFFSET BUFCALL DISP2GO: MOV AL, 20HOUT 20H, ALPOP SIPOP AXIRETKEYINT ENDP START: MOV AX, STACK MOV SS, AXMOV AX, DATAMOV DS, AXMOV ES, AXMOV AX, ES:[24H]PUSH AXMOV AX, ES:[26H]PUSH AXCLIMOV AX, OFFSET KEYINTMOV ES:[24H],AXMOV AX, SEG KEYINTMOV ES:[26H], AXSTIMOV KEY, 0AGAIN: CALL DISP1CMP KEY, 10JB AGAINCLIGO2: POP AXMOV ES:[26H],AXPOP AXMOV ES:[24H],AXSTIMOV AH, 4CHINT 21HCODE ENDSEND START四、实验中遇到的问题在实验编写过程中,遇到按住键,会一直显示OK,出现10次OK后也不会跳出程序。

东南大学微机实验4_1

东南大学微机实验4_1

微机实验及课程设计
7 东南大学
7
选作实验
3.双色点阵发光二 极管显示控制 借 助 简 单 I/O 输 出 锁 存功能, 存功能 , 实现双色 点阵显示控制。 8*8点阵显示控制。 同时了解双色点阵 LED显示器的基本原 LED显示器的基本原 理 , 掌握PC 机控制 掌握 PC机控制 PC 双色点阵LED LED显示程 双色点阵LED显示程 序的设计方法。 序的设计方法。
自端口2A0H输入ASCII码
保存输入ASCII码至DL 是ESC吗? Y N 从端口2A8H 输出其ASC码 N 有键按下吗? Y 结 束 结 束 显示ASCII码对应的字符
微机实验及课程设计
6 东南大学
6
选作实验
用基本实验( 中输出锁存电路, 成流水灯( 1. 用基本实验(1)中输出锁存电路, L0-L7成流水灯(可用 点阵列选替换),流水间隔时间由软件产生; ),流水间隔时间由软件产生 8*8点阵列选替换),流水间隔时间由软件产生; 流水方向 由键盘在线控制, 随时可切换; 由键盘在线控制 , 随时可切换 ; 流水间隔时间也可键盘控 也可利用8段数码管构成递减或递增计数显示。 制; 也可利用8段数码管构成递减或递增计数显示。 用基本实验( 中输入电路,监测逻辑电平开关 逻辑电平开关K0-K7变 2. 用基本实验(2)中输入电路,监测逻辑电平开关 变 一旦发生变化, 在显示器上显示二进制数状态, 化, 一旦发生变化 在显示器上显示二进制数状态 当开关 状态=55H时在控制台发出 声快速鸣叫 时在控制台发出5声快速鸣叫 状态 时在控制台发出 声快速鸣叫(BEL), 开关状态 =0AAH时发出 声缓慢鸣叫 时发出3声缓慢鸣叫 控制码BEL 时发出 声缓慢鸣叫(BEL)。 (ASCII 控制码 BEL 为 。 (ASCII控制码 BEL为 07H, 控制台输出,主机内部喇叭发出警告声) 07H, 控制台输出,主机内部喇叭发出警告声),实验中 注意输入处理消除颤抖方法。 注意输入处理消除颤抖方法。 观察IN/OUT 指令对应的总线周期波形( 双踪显示, IN/OUT指令对应的总线周期波形 3. 观察 IN/OUT 指令对应的总线周期波形 ( 双踪显示 , 以片选 IORD/IOWR为参考 观察A 为参考, ,D7 ),记录波形 记录波形. 或IORD/IOWR为参考,观察A9-A0,D7-D0等),记录波形.

微机综合课程设计实习报告

微机综合课程设计实习报告

一、实习背景随着我国科技的快速发展,计算机技术已成为现代科技的核心。

为了提高学生的实际操作能力和综合运用计算机技术的能力,我们学校开展了微机综合课程设计实习。

本次实习旨在通过实际操作,让学生掌握微机原理、接口技术、操作系统等知识,提高学生的实践能力。

二、实习目的1. 熟悉微机原理,了解计算机硬件组成及工作原理。

2. 掌握微机接口技术,熟悉常用接口芯片的使用方法。

3. 掌握操作系统基本知识,了解操作系统的功能和原理。

4. 培养学生独立思考和解决问题的能力。

5. 提高学生的团队协作能力和沟通能力。

三、实习内容1. 硬件组成及工作原理实习过程中,我们首先学习了计算机硬件组成及工作原理。

通过对CPU、内存、硬盘、显卡等硬件设备的了解,掌握了计算机硬件的基本知识。

2. 微机接口技术实习中,我们学习了微机接口技术,包括并行接口、串行接口、USB接口等。

通过实际操作,掌握了常用接口芯片(如8255、8251、74HC245等)的使用方法。

3. 操作系统我们学习了操作系统的基本知识,包括进程管理、内存管理、文件系统等。

通过实际操作,掌握了操作系统的基本功能。

4. 课程设计在实习过程中,我们进行了微机综合课程设计。

设计内容包括:(1)设计一个基于单片机的电子钟,要求具有定时、闹钟、时间显示等功能。

(2)设计一个基于PC机的交通灯控制系统,要求实现红绿灯的自动切换。

(3)设计一个基于PC机的简易电子琴,要求能演奏简单的旋律。

四、实习过程1. 实习初期,我们通过查阅资料、课堂学习,掌握了微机原理、接口技术和操作系统等基本知识。

2. 在实习过程中,我们按照课程设计要求,分组进行设计。

每组同学负责设计一个项目,并共同完成。

3. 在设计过程中,我们遇到了许多问题,如电路设计、程序编写等。

通过查阅资料、请教老师和同学,我们逐一解决了这些问题。

4. 实习中期,我们进行了项目调试。

在调试过程中,我们不断优化程序,提高系统的稳定性。

东南大学微机原理实验8

东南大学微机原理实验8

微机实验报告——实验八数模与模数转换实验时间:2010.6.3 实验人:戴逸翔22008120,张莎莎22008105指导老师:严如强【简介】1、实验目的:1)了解数/模转换器的基本原理,掌握DAC0832 芯片的使用方法;2)了解模/数转换器的基本原理,掌握ADC0809 芯片的使用方法。

2、实验内容:1)基本实验内容和要求(1)DAC 实验电路原理如图3.9-1,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。

进入DEBUG 调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。

(2)分别编程产生锯齿波、正弦波电压波形(从Ub 输出,用示波器观察)。

(3) ADC 实验电路原理图如图3.9-2,通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。

启动IN0 开始转换: O 0C818 0;读取转换结果: I 0C818。

(4) 编程采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。

(5) 将JP3 的1、2 短接,使IN1 处于双极性工作方式,并给IN1 输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。

3、选作与探索1)在高性能系统中,往往需要精确定时启动采样,同时利用ADC 转换结束信号(EOC)申请中断处理,试设计采样系统电路,并编程实现上述基本模数转换功能;2)同样DAC 波形发生时也要求精确定时,请将8253 定时中断引入,编程并实现之;3)参考装置资料和图3.9-7 线路,编程实现数字录音器。

连接电路,将声传感器接J2,把代表语音的电信号送给ADC0809 通道2(IN2);D/A 转换器的输出端通过K8 跳线接喇叭。

东南大学微机实验一

东南大学微机实验一

《微机实验及课程设计》实验报告实验一指令与汇编语言基础姓 名: 邢璟楠 学 号: 22013413 院 系: 仪器科学与工程学院 专 业: 测控技术与仪器 实验时间: 2015年04月23日 报告时间: 2015年04月28日评定成绩: 审阅教师:一、实验目的1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点2、掌握汇编语言程序指令编辑、宏汇编、连接和运行的基本概念3、熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境4、学会利用DEBUG或TD检查认识指令功能的正确方法二、实验内容1、必做内容(1)、要求计算两个多字节十六进制数之差:3B74AC60F8-20D59E36C1=?式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。

试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。

(2)、以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的大小,找出其中最小的带符号数,存入MIN和MIN+1单元。

2、选做内容两个字符串的长度均为10,首地址分别为STRING1和STRING2,比较两个字符串是否完全相同,如果相同,将BL寄存器置为00H;如果不完全相同,将BL寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器中。

三、实验原理1、实验基本步骤(1)用任意一种文本编辑器(EDIT、NOTEPAD、UltraEDIT等)建立编辑汇编源程序,并将其保存为文件名.asm文件,将其放入带汇编工具的文件夹中(d:\tasm)。

注:文件名不要起的过长,在连接时可能会出现can’t find file的问题。

(2)开始菜单,点运行条目,打入cmd命令进入DOS调试环境。

(3)进入该文件夹(cd d:\tasm) ,键入如下命令开始编辑程序 :d:\zxj>edit 文件名.asm(4)将程序保存后返回DOS进行汇编,键入如下命令:d:\zxj>tasm 文件名.asm如果汇编通过,进行下一步,如果出现error,返回3步骤,根据错误的行数进行修改,然后重新汇编,直到不产生error为止。

《微机实验及课程设计》课程设计报告出租车自动计价器

《微机实验及课程设计》课程设计报告出租车自动计价器

东南大学自动化学院《微机实验及课程设计》课程设计报告综合测试题六:出租车自动计价器姓名:刘策学号: 08014116专业:自动化实验室:金智楼五楼组别:同组人员:设计时间: 2016年06月 1日—— 2016年6 月16 日评定成绩:审阅教师:目录一.课程设计目的与要求..…………………………………………………………………..二.方案论证与原理设计....………....………………………………………………………三.实验流程与测试结果…........……………………………………………………………四.实验总结……………………...………………………………………………………….五.附录........................................................................... .........................................................一. 课程设计目的与要求1、课程设计目的(1)总结、应用前面八个实验中积累的微机实验经验;(2)熟悉8253、8255等芯片的使用方法;(3)结合课堂中所学的汇编语言基础知识,进行系统的编程,培养动手操作能力(4)锻炼了查找错误,修正错误的能力2、课程设计要求设计一个出租车自动计价器,计费包括起步价、行车里程计费、等待时间计费三部分,用三只数码管显示总金额,最大值为99.9 元,起步价8.0 元,3 公里之内按起步价计费,超过3 公里,往返双程可设每1 公里1.2 元,单程每公里1.8 元,等待时间每分钟0.2 元。

用两位数码管显示总里程数,最大值99km,用两位数码管显示等待时间(分钟),最大值99 分钟。

用直流电机模拟出租车行驶,里程数与脉冲个数成正比,每1km 脉冲数100 个(可设定),低于每小时5 公里时作为等待状态。

(1)基本要求i假设有计数比较器测定停车与行车状态,转换成开关信号。

东南大学微机原理第六次实验报告

东南大学微机原理第六次实验报告

《微机实验及课程设计》实验报告实验一8253 计数器/定时器姓名:学号:专业:仪器科学与工程学院实验室:计算机硬件技术实验时间: 2014年05月29日报告时间: 2014年06月4日评定成绩:审阅教师:一. 实验目的1)掌握计数器/定时器8253 的基本工作原理和编程应用方法;2)了解掌握8253 的计数器/定时器典型应用方法二. 实验内容必做:5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。

(参考程序p63)5-2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。

(参考程序p64)5-3在实验2的基础上,利用输出的1Hz的方波接入计数器2,设置计数器2初值为4,根据键盘输入的数字(0~5)来设置计数器2的工作方式,并将GATE2信号进行相应的连接(接+5V或接单脉冲)用逻辑笔观察OUT2电平的变化。

要求可以响应键盘的连续变化,直到按ESC键退出。

5-4在实验2的基础上,将8253计数器1的工作方式改为方式0,输出OUT1接入8255的PA0,PC0连接任意一个发光二级管,8255A的CS接288H。

编程使得发光二极管亮5秒,灭2秒,一直循环直到按任意键退出。

(提示:PA0查询OUT1输出电平,PC0输出开关量控制二极管发光)二. 实验原理与接线5-1 参考图 3.6-1 虚线连接电路,将计数器 0 设置为方式 0,计数器初值为 N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 变高电平)●8253的CS接280H●8253的GATE0接+5V●8253的CLK0接单脉冲1或2●8253的OUT0接逻辑笔(高电平LED12亮,低电平LED13亮)5-2 按图 3.6-2连接电路,将计数器 0、计数器 1 分别设置为方式 3,计数初值设为 1000,用逻辑笔观察OUT1 输出电平的变化(频率 1Hz)●8253的CS接280H●8253的GATE0和GATE1接+5V●8253的CLK0接1MHz●8253的OUT0接CLK1●8253的OUT1接逻辑笔编辑提示:1、8253定时器0地址 280h8253定时器1地址 281h8253定时器2地址 282h8253控制口地址 283h2、实验参考程序中的口地址和代号是随意的,看程序的时候要注三. 实验源程序(主要部分)和流程图5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。

东南大学第一次微机实验报告

东南大学第一次微机实验报告

《微机实验及课程设计》实验报告实验一汇编语言与程序调试基础姓名:谢雨蒙学号: ******** 专业:仪器科学与工程学院实验室:计算机硬件技术实验时间: 2013年04月17日报告时间: 2013年04月24日评定成绩:审阅教师:一、实验目的1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点2、掌握汇编语言程序指令编辑、宏汇编、连接和运行的基本概念3、熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境4、学会利用DEBUG或TD检查认识指令功能的正确方法二、实验内容1、必做内容(1)要求计算两个多字节十六进制数之差:3B74AC60F8-20D59E36C1=?式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。

试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。

(2)以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的大小,找出其中最小的带符号数,存入MIN和MIN+1单元。

2、选做内容(1)两个字符串的长度均为10,首地址分别为STRING1和STRING2,比较两个字符串是否完全相同,如果相同,将BL寄存器置为00H;如果不完全相同,将BL寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器中。

三、实验原理1、实验基本步骤(1)用任意一种文本编辑器(EDIT、NOTEPAD、UltraEDIT等)建立编辑汇编源程序,并将其保存为文件名.asm文件,将其放入带汇编工具的文件夹中(d:\tasm)。

注:文件名不要起的过长,在连接时可能会出现can’t find file的问题。

(2)开始菜单,点运行条目,打入cmd命令进入DOS调试环境。

(3)进入该文件夹(cd d:\tasm) ,键入如下命令开始编辑程序:d:\zxj>edit 文件名.asm(4)将程序保存后返回DOS进行汇编,键入如下命令:d:\zxj>tasm 文件名.asm如果汇编通过,进行下一步,如果出现error,返回3步骤,根据错误的行数进行修改,然后重新汇编,直到不产生error为止。

东南大学信息学院大四上综合课程设计报告(微波组)

东南大学信息学院大四上综合课程设计报告(微波组)

综合课程设计实验报告课程名称:微波方向综合课程设计实验名称:微波元件设计、仿真与测试院(系):信息科学与工程学院专业班级:040101姓名:XXXX学号:******指导教师:20XX年XX月XX日一、实验目的1. 了解定向耦合电路的原理和设计方法;2. 学习使用Microwave office 软件进行微波电路的设计、优化、仿真;3. 掌握定向耦合器的制作及调试方法。

二、实验原理定向耦合器是一个四端口网络(如图1所示),其中端口1是输入端,端口2是直通端,端口3是耦合端,端口4是隔离端。

分支线定向耦合器(3dB )是一种常用的微带定向耦合器,如图 2.2所示,图中连接四个端口的微带线阻抗为0Z ;串联分支的微带线阻抗为0/2S Z Z =,长度为/4g λ;并联分支的微带线阻抗为0P Z Z =,长度为/4g λ。

图1 分支线定向耦合器由奇偶模分析可知,当信号从1端口输入时,分支线定向耦合器的2端口为直通端、3端口为耦合端、4端口为隔离端,2、3端口之间输出信号的幅度相同、相位相差900。

三、实验内容和设计指标实验内容:1. 了解微带分支线定向耦合器的工作原理;2. 根据指标要求,使用Microwave office 软件设计一个微带分支线定向耦合器,并对其参数进行优化、仿真。

设计指标:在介电常数为4.5,厚度为1mm 的FR4基片上(T 取0.036mm ,Loss tangent 取0.02),设计一个中心频率为f 、相对带宽为10%,用于50欧姆系统阻抗的3dB 微带分支线定向耦合器。

要求:工作频带内各端口的反射系数小于-20dB ,输入端与隔离端的隔离度大于25dB ,直通端与耦合端的传输损耗小于3.5dB 。

定向耦合器的参考结构如图3.1所示,在设计时要保证四个端口之间的距离大于10mm ,以便于测试。

左右端口的距离应为40或50mm 。

微带分支线定向耦合器的结构 在进行设计时,主要是以定向耦合器的S 参数作为优化目标进行优化仿真。

东南大学微机实验4

东南大学微机实验4

东南大学《微机实验及课程设计》实验报告简单输入输出姓名:学号:专业:自动化实验室:实验时间:2014 年05月06日报告时间:2014年05月12日评定成绩:审阅教师:一. 实验目的与内容(1)实验目的1)进一步掌握TPC实验装置的基本原理和组成结构2)掌握利用I/O指令单步调试检查硬件接口功能,学会用示波器检测I/O指令执行时总线情况3)掌握简单并行输入输出接口的工作原理和使用方法,进一步熟悉掌握输入输出单元的功能和使用(2)实验内容4)连接简单并行输出接口电路,编程从键盘输入一个字符或数字,将其ASCII码通过这个输出接口电路输出,根据8个放光二极管发光情况验证正确性5)连接简单并行输入接口电路,用逻辑电平开关K0~K7预置一字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来6)二. 基本实验原理(1)简单并行输入输出接口电路连线图输出接口电路输入接口电路(2)简单并行输入输出电路原理数据D0~D7先预存入273中,当输出端口2A8H和写信号同时低电平时,发生时钟触发,此时将数据运送到输出端Q1~Q8。

开关电平预先将所输入信号存入244中,同样当端口2A0H和读信号同时低电平时,使244使能端工作,数据通过244的输出端存入到D0~D7三. 方案实现与测试(1)按照图搭接好电路,编程从键盘输入字符或数字,将其ASCII码通过输出接口输出,根据点阵某一列的发光情况验证正确性。

1)实验电路中并行输出接口的地址为2A8H,输出数据需要三条指令:MOV AL,8MOV DX,EC28OUT DX,ALDEBUG中运行如下图所示,则点阵的某一列灯点亮表示的二进制值为00001000,即为8。

2)编写程序如下:ioport equ 0ec00h-0280h ;tpc卡中设备的io地址ls273 equ ioport+2a8h ;译码输出端地址Y5片选ls273stacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ss:stacksmain proc farstart: mov ax, stacksmov ss, axmov ah,2 ;回车符mov dl,0dhint 21hmov ah,1 ;等待键盘输入int 21hcmp al,27 ;判断是否为ESC键je exit ;若是则退出mov dx,ls273 ;若不是,从2A8H输出其ASCII码out dx,aljmp start ;转startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start若输入字符为a,则点阵的某一列灯点亮表示的二进制值为01100001,即为61,是a所对应的ASCII码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学自动化学院微机实验及课程设计报告《参数可调波形发生器》姓名:学号:专业:实验室:组别:同组人员:设计时间:评定成绩:审阅教师:目录一.设计目的和要求--------------------------------------3 二.原理设计--------------------------------------------4 三.方案论证与实现--------------------------------------6 四.设计思路及流程图--------------------------------------------------------7 五.编程实现--------------------------------------------------------------------10六.方案测试与结果分析----------------------------------18 六.改进与提高------------------------------------------19 七.分析与总结------------------------------------------19一、设计要求1)基本要求编制1 个参数在线可调的波形发生程序,由D/A 输出,构成参数在线可调的波形发生器,并用示波器观察波形。

函数波形可选f(t)=asin(bt),其中a、b参数在线可调(也可自己选择,但要求至少2 个参数可调且调节很明显)。

参数调节采用如下两种方式之一:(1)两个可调电位器输出通过A/D 转换后作为可调参数;(2)参数通过实验装置上的键盘实时修改(调整);(3)精确时间,开关选择标准信号输出(例如a=2V, b=100πRAD/s,即50Hz 正弦波)。

2)设计提示(1)当用电位器调节参数时,输出零不能对应相应的参数值就为零;(2)当通过键盘修改参数时,先键入参数名如“a”,显示当前参数值,修改后再键入参数名,则修改参数完成,随后输出波形发生变化。

3)进一步设计要求(1)分别采用两种参数调节方式在线调节参数;(2)产生周期性三次可调函数f(t)=at3+bt2+ct+d。

二、原理设计方案1 参数通过实验装置上的键盘实时修改运行程序后,程序首先显示一段字符串,提示输入相应的数字会得到不同的波形输出。

从键盘上敲入1后,程序会跳转到参数可调的正弦波发生器代码区域。

之后,显示输入可调参数a(0~255)、b(0~255)的信息。

输入a后,波形的幅度会发生相应的变化;输入b后,波形的频率会发生相应的变化。

从键盘上敲入0后,退出程序。

通过检测开关的状态,判断输出标准正弦波还是a,b值所对应的波形。

程序中的主要部分功能原理如下:(1)程序中的a、b参数的输入采用百位、十位、个位数字逐个读入的方法。

输入百位数字以后,由于a、b的取值范围在000~255之间、故要判断输入的数字是否小于’0’,大于’2’,若小于’0’或大于’2’,则重新输入。

输入的数若在'0'~'2'之间,将输入的数减去30h,有ASCII码值变为相应的数字,再将此数乘以100后存入c。

输入十位数字后,判断输入的数字是否小于’0’,大于’9’,若小于’0’或大于’9’,则重新输入。

输入的数若在'0'~'9'之间,将输入的数减去30h,有ASCII码值变为相应的数字,再将此数乘以10后存入d。

输入个位数字后,判断输入的数字是否小于’0’,大于’9’,若小于’0’或大于’9’,则重新输入。

输入的数若在'0'~'9'之间,将输入的数减去30h,有ASCII码值变为相应的数字,并将之存入e 。

之后对c 、d 和e 求和,从而得到a 的值。

同样的可以得到b 的值。

(2) 正弦波幅度的改变实验中所用的8位D/A 转换器DAC0832的输入数据与输出电压的关系为:52562-⨯=N U U REFo (REF U 表示参考电压,N 表示输入数据)。

产生正弦波是根据正弦函数建立一个正弦数字量表,取值范围为一个周期,此正弦数据表的输出幅度为5V 。

读取一个正弦数据表中的数据后,将此数据乘以a 后再除以255,这样就相当于将输出正弦波的幅度变为原来的a/255倍。

(3) 正弦波频率的改变正弦波频率的改变是通过改变读取正弦数据表中的两个相邻数据的时间间隔实现的。

输入的数据b 加上10表示应调用的延时子程序的次数,设延时子程序的延时时间为t ,那么读取正弦数据表中的两个相邻数据的时间间隔为b*t 。

方案2 两个可调电位器输出通过A /D 转换后作为可调参数 先读正弦波数据的首地址和一周期取值数,然后按偏移值取出正弦波数据。

启动ADC0809模/数转换器,读入IN0的值(IN0的值可以通过调节滑动变阻器1来实现),将取出的正弦波数据乘以此数据除以255,再将得到的数据赋值给DAC0832,调用延时子程序,之后将数据表偏移量加一,一周期剩余取值数减一。

判断一周期内取值是否结束,若没有结束则继续按偏移值取出正弦波数据,若结束则返回到读正弦波数据的首地址和一周期取值数。

三、方案论证与实现针对设计思路,我们用到的硬件资源有:、0832、8255、1个LED 灯和1个逻辑电平开关、0809和2个电位器。

各个硬件的主要作用和工作方式如下:1)0832根据键盘输入或者电位器调节得到的参数a、b,改变正弦波形数据表的数据,将得到的新数据输出给DAC0832,,用示波器观察双极性输出端Ub输出正弦波形。

2)8255、1个LED灯与1个逻辑电平开关8255的C口接逻辑电平开关,作为输入,用来选择是否要输出标准正弦波形;A口接LED灯,作为输出,用来显示此时输出波形是否为标准正弦波形。

3)0809和2个电位器通过实验台的两个电位器输出0~5V电压分别送入ADC0809的通道0和1(IN0、IN1),通过A/D转换,得到参数a和b。

;CS_AD-----2A0H,CS_DA-----298H;V1-----IN0,V2-----IN1,Ub-----示波器;C0-----K1(开关),A0-----LED灯ioport equ 0EC00H-0280h ;TPC的io地址adcs equ ioport+2A0h ;CS_AD,ADC0809片选地址adcs1 equ ioport+2A1hdacs equ ioport+298h ;CS_DA,DAC0809片选地址io8255a equ ioport+288h ;8255A口地址io8255b equ ioport+28bh ;8255控制寄存器端口地址io8255c equ ioport+28ah ;08255C口地四、设计思路及流程图原理设计清晰了我的设计思路,我将整个整个程序分为了五个部分,分别为主程序设计、参数调整子程序(键盘输入及电位器调节),调幅及调频子程序设计、正弦波输出子程序、延时子程序。

1. 主程序设计:主要功能有1) 控制整个程序的流程及程序跳转;2) 通过检测开关的状态,判断输出标准正弦波还是当前a ,b 值所对应的波形;3) 判断参数调节的方式是键盘输入还是电位器调节。

____CSPA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC2PC3PC4PC5PC6PC7K0()逻辑电平开关LED8255288H~28FH)电位器)电位器2.参数调整程序设计:略。

(原理设计中已详细解释)3.调幅及调频子程序设计:略。

注:需要输出标准正弦波时,将相应的a,b值修改,并保存之前的a,b值。

4.正弦波输出子程序设计:正弦波输出子程序的主要功能有:1)读取正弦波数据表的数据并利用数模转换显示;2)每显示一次数据后需要调用延时子程序;3)数据表偏移地址加1,读取下一数据,重复以上步骤。

5.延时子程序设计:延时子程序的主要功能有:1)通过b值的改变得到相应的第一层延时参数;2)延时子程序内嵌套第二层延时程序;延时部分主要流程:延时程序涉及到嵌套延时,loop指令根据CX的值是否为0确定是否接着执行此指令,因而需要用到两次CX,且相互之间不能影响,因而先将外层CX堆栈(b值不同则外层延时的CX 不同),给内层CX赋值(1FFH,此值不能改变),执行lOOP指令,直到CX=0;然后将外层CX弹出减1后堆栈;接着执行内层延时,重复上述步骤,直到外层CX=0。

四、编程实现1、主程序设计message1 db 0dh,0ah,0dh,0ahdb ' PRESS 1 FOR SINWAVE MODIFIY WITH THE PC KEYBOARD.',0dh,0ah db ' PRESS 2 FOR SINWAVE MODIFIY WITH THEVARIABLE RESISTANCE.',0DH,0AHdb ' PRESS 0 FOR QUIT TO DOS.',0DH,0AH,'$'db 0dh,0ahmessage2 db 0dh,0ah,0dh,0ahdb 'Sinwave [f=a sin(b t)] is modified by the PC keyboard .',0DH,0AH db '-Directly press A or B to view the parameter .',0DH,0AHdb '-Input num(0-17)+A or(0-9) B to modify the parameter .',0DH,0AH db 'Input 0 quit to the begin',0dh,0ah,'$'db 0dh,0ahmessage3 db 0dh,0ah,0dh,0ahdb 'Sin wave [f=a sin(b t)] modified by thevariable resistance .',0DH,0AHdb 'Press anykey on the PC keyboard to return tothe begin.',0dh,0ah,'$'db 0dh,0ahmessage4 db 0dh,0ahdb 'please input num!',0dh,0ah,'$'db 0dh,0aha db 1h ;可调参数ab db 1h ;可调参数bc db '1' ;c为百位数字f乘以100d db '1' ;d为十位数字g乘以10e db '1' ;e为个位数字h乘以1f db '0' ;参数a的百位fg db '0' ;参数a的十位gh db '1' ;参数a的各位hi db '1' ;i为百位数字l乘以100j db '1' ;j为十位数字m乘以10k db '1' ;k为个位数字n乘以1l db '0' ;参数b的百位lm db '0' ;参数b的十位mn db '1' ;参数b的各位ndata endsbegin: mov ax,data ;开机显示message1mov ds,axmov ax,stacksmov ss,axlea dx,message1mov ah,09hint 21hjudge1: mov dx,0ffhmov ah,07hint 21hcmp al,'1' ;按下'1',则键盘输入jz startcmp al,'2' ;按下'2',则电位器调节jz sinvr1cmp al,'0'jnz begin ;不是'0',重新选择jmp qit ;按下'0',则退出DOSsinvr1: jmp sinvrstart: lea dx,message2mov ah,09hint 21h2、参数调整程序设计(1)键盘输入l1: call sinout ;每次调用sinout,必须要有键盘输入,才会接着往下执行mov dl,0ahmov ah,02hint 21hmov ah,08hint 21hcmp al,'a'jnz ccc ;若不是a,跳转比较是否为bjmp ddd ;是a,则跳转到a处理代码ccc: jmp l2 ;若不是a,跳转比较是否为bddd: mov dl,al ;输入是a,a处理代码mov ah,02hint 21hmov dl,0ahmov ah,02hint 21h ;输出回车mov al,f ;输出a的百位fmov dl,almov ah,02hint 21hmov al,g ;输出a的十位gmov dl,almov ah,02hint 21hmov al,h ;输出a的个位hmov dl,almov ah,02hint 21hggg: lea dx,message4 ;输出“请输入修改后a的参数值”.mov ah,09hint 21hmov ah,08h ;输入int 21hcmp al,'0'jb gggcmp al,'2'ja gggmov f,al ;显示输入的百位fmov dl,almov ah,02hint 21hsub al,30hmov bl,64hmul blmov c,al ;c为百位数字f乘以100mov ah,08hint 21hcmp al,'0'jb gggcmp al,'9'ja gggmov g,al ;显示输入的十位gmov dl,almov ah,02hint 21hsub al,30hmov bl,0ahmul blmov d,al ;d为十位数字g乘以10mov ah,08hint 21hcmp al,'0'jb gggcmp al,'9'ja gggmov h,al ;显示输入的个位hmov dl,almov ah,02hint 21hsub al,30hmov bl,01hmul blmov e,al ;e为个位数字h乘以1mov al,eadd al,d ;求和add al,ccmp al,0ffh ;若输入数字大于255则重新输入ja gggmov a,al ;将最终输入得到的值赋给参数ajmp l1 ;得到a的数值后重新跳到输入界面,l2: cmp al,'b'jnz eee ;若不是a,b跳转比较是否为0jmp fffeee: jmp l3 ;若不是a,b跳转比较是否为0fff: ... ;与输入a时主要思想一致,不再给出具体代码hhh: ...l3: cmp al,'0' ;输入为零返回jnz l4 ;若不是a,b,0,跳转到start重新等待键盘输入jmp begin ;输入为0,返回上一级,即程序主界面的功能选择l4: jmp start ;若不是a,b,0,跳转到start重新等待键盘输入(2)电位器调节参数sinvr: lea dx,message3 ;使用电位器设置正弦波参数mov ah,09hint 21hlea dx,mess2int 21h ;去掉返回功能sin1:call sinoutlea dx,messab ;装入地址mov ah,09h ;显示字符串int 21hmov al,00hmov dx,adcsout dx,alin al,dx ;从A/D读入修改的幅度CMP AL,'0'JE ABAA1: mov a,al ;幅度存到amov al,00h ;moomyu修改mov dx,adcs1out dx,alin al,dx ;从A/D读入修改的频率CMP AL,'0'JE ABBB1: mov b,al ;频率存到bcall sinout ;修改幅度和频率后重新调用sinoutmov ah,08hint 21hjz sin1jmp bglea dx,message2 ;装入地址mov ah,09h ;显示字符串int 21hmov ah,08hint 21hcmp al,'q'jnz sin1jmp bgABA:inc aljmp A1ABB:inc aljmp B14、正弦波输出设计;正弦波数据表SIN DB 128D,135D,141D,148D,155D,161D,167D,174D,180D,186D DB 192D,198D,203D,209D,214D,219D,223D,227D,231D,235DDB 239D,242D,245D,248D,250D,252D,253D,254D,255DDB 255D,254D,253D,252D,250D,248D,245D,242D,239DDB 235D,231D,227D,223D,219D,214D,209D,203D,198D,192DDB 186D,180D,174D,167D,161D,155D,148D,141D,135D,128DDB 121D,115D,108D,101D, 95D, 89D, 82D, 76D, 70DDB 64D, 58D, 53D, 47D, 42D, 37D, 33D, 29D, 25D, 21DDB 17D, 14D, 11D, 08D, 06D, 04D, 03D, 02D, 01D, 00DDB 00D, 01D, 02D, 03D, 04D, 06D, 08D, 11D, 14D, 17DDB 21D, 25D, 29D, 33D, 37D, 42D, 47D, 53D, 58D, 64DDB 70D, 76D, 82D, 89D, 95D,101D,108D,115D,121Dsinout proc near ;输出正弦波push axpush bxpush cxpush dxpush simov ax,1hsub cx,cxmov cl,bcmp cl,0je S_OUT0mov SI,0hjudge2: mov dx,io8255b ;设8255为C口输入,A口输出mov al,8bhout dx,almov dx,io8255c ;从C口输入一数据in al,dxmov dx,io8255aout dx,aland al,00000001hmov ah,0 ;判断开关状态mov c,alcmp c,1jnz S_OUT2jmp stadardS_OUT2: mov dl,0ffh ;幅度mov ah,06hint 21hjnz S_ENDmov al,SIN[SI] ;从正弦波数据表中取数据mov bl,acmp bl,0je S_OUT0mov ah,00hmov ah,00hmul bl ;乘以amov bl,255Ddiv bl ;除以255push cxneg cladd cl,10 ;b+10作为调用子程序的次数S_OUT1: call sin_delay1 ;频率loop S_OUT1pop cxmov dx,dacsout dx,al ;输出数据到dac0832inc sicmp si,116 ;共116个数据jne S_OUT2mov si,0hjmp S_OUT2S_END:pop SIpop dxpop cxpop bxpop axretS_OUT0:sub ax,axmov dx,dacsout dx,al ;S_OUT0输出的是空信号,输出都为零jmp S_ENDsinout ENDPstadard: mov a,08h ;输出标准正弦波mov b,01hcall sinoutjmp judge25、延时子程序设计sin_delay1 proc nearpush cxmov cx,0f00hloop $pop cxretsin_delay1 endp五、方案测试与结果分析将程序运行,可以达到预期的效果。

相关文档
最新文档