微机原理课程设计之函数发生器(2)

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

《微机原理》
课程设计报告
题目:函数发生器的设计(二) 专业班级:电子信息科学与技术0810 班
设计学生:邓
完成时间: 2010年 12 月 15 日
湖南文理学院物理与电子科学学院
源程序:code segment
hc db ?
assume cs:code
org 1000h
start:call dispkey ;键扫
mov al,byte ptr ds:[0752h]
cmp al,20h
jnz y1
jmp y2
y1:mov hc,al;hc缓存键值
mov bh,al
y2:mov bh,hc
mov al,bh
mov ah,32h
mul ah
mov bh,al
mov bl,0h
begin:mov cx,55h;掩盖波形直线部分
up:inc bl;上升部分 mov dx,20h
mov al,bl
out dx,al
cmp bl,bh
jc up
down:mov dx,20h;下降部分
mov al,bl
out dx,al
dec bl
cmp bl,0h
jnz down
loop up
jmp start
dispkey:call disp;键盘扫描程序call key
mov ah,al
mov bl,ds:[0748h]
mov bh,ds:[0749h]
mov al,01h
mov dx,0ff21h
out dx,al
cmp ah,bh mov bh,ah mov ah,bl
jz disk4
mov bl,88h mov ah,88h disk4:
dec ah
cmp ah,82h jz disk6 cmp ah,0eh jz disk6 cmp ah,00h jz disk5 mov ah,20h dec bl
jmp disk7 disk5:
mov ah,0fh disk6:
mov bl,ah mov ah,bh disk7:
mov byte ptr ds:[0748h],bl mov byte ptr ds:[0749h],bh mov byte ptr ds:[0752h],bh mov al,ah
ret
disp: push cx
mov dx,077fh
mov ah,20h
disp0:
mov cx,00ffh
mov bx,dx
mov bl,ds:[bx]
mov bh,0h
push dx
mov dx,0ff22h
mov al,BYTE PTR cs:[bx+OFFSET data1]
out dx,al
mov dx,0ff21h
mov al,ah
out dx,al
disp1: loop disp1
pop dx
dec dx
shr ah,01h
jnz disp0
pop cx
ret
data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,8 2h,0f8h
db
80h,90h,88h,83h,0c6h,0a1h,86h ,8eh
db
0ffh,0ch,89h,0deh,0c7h,8ch,0f 3h,0bfh
db 90h,0a3h,0a1h,86h,8fh
key: mov al,0ffh
mov dx,0ff22h
out dx,al
mov bl,00h
mov ah,0feh mov cx,08h key1: mov al,ah mov dx,0ff21h out dx,al
shl al,01h
mov ah,al
nop
nop
nop
nop
nop
nop
mov dx,0ff23h in al,dx
not al
nop
nop
and al,0fh
jnz key2
inc bl
loop key1
jmp nkey
key2: test al,01h je key3
mov al,00h
jmp key6
key3: test al,02h je key4
mov al,08h
jmp key6
key4: test al,04h je key5
mov al,10h
jmp key6
key5: test al,08h je nkey
mov al,18h key6: add al,bl cmp al,10h jnc fkey
mov bl,al
mov bh,0h
mov al,BYTE PTR cs:[bx+OFFSET data2]
ret
nkey: mov al,20h
fkey: ret
data2: db 07h,04h,08h,05h,09h,06h,0ah,0 bh
DB
01h,00h,02h,0fh,03h,0eh,0ch,0 dh
CODE ENDS
END START
设计总结:回顾起此次课程设计,我学到很多很多的东西,不仅巩固了以前所学过的知识,加深了对《微机原理》的理解,而且学到了很多在书本上所没有学到过的内容。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。

而且在做课程设计的过程中,不仅是考验自己所学的《微机原理》知识,更是要锻炼自己的分析问题的能力和解决实际问题的能力,而在在此次课程设计过程中得到了充分的体现。

例如在改变频率的设计过程中,由于数据的出栈、入栈的混乱,导致程序没有波形输出,还好在师兄的指点下,才发现了问题,主要是由于在程序的跳转过程中,PUSH 和 POP 指令并没有成对的使用,导致入栈、出栈混乱。

最后修改时,只能不用 PUSH 和 POP 指令,改用寄存器来暂存数据,特别是在调用延迟的程序段时,由于 AX 的混乱使用,导致延迟改变,波形无法正常输出。

最后才修改好,能正常的输出波形,并且能完成频率三级调节。

虽然在设计的过程遇到了各种各样的问题,但同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。

相关文档
最新文档