微机原理课程设计怎么做?

题目:字符串动画显示设计内容要求:1、菜单内容包括:①输入字符串;②字符串动画显示;③退出。2、输入字符串选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字... 题目: 字符串动画显示
设计内容要求:
1、菜单
内容包括:①输入字符串;②字符串动画显示;③退出。
2、输入字符串
选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。
3、字符串动画显示
所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。
4、在主菜单中选择退出项,则结束程序返回DOS。
内容要求:以下几项必不可少:
1、完成软件的关键技术(如:使用了什么DOS功能)
2、程序设计流程图,如有必要可有多个,可包括主程序流程图,关键部分程序流
由于时间很紧,希望各位大侠给予解救!我在电脑上验证成功后,另追加50分!!!
展开
 我来答
上贼船莫怕死
推荐于2016-04-07 · 知道合伙人教育行家
上贼船莫怕死
知道合伙人教育行家
采纳数:4981 获赞数:80404
毕业于福建省厦门双十中学

向TA提问 私信TA
展开全部
一、设计的目的:
掌握微机原理的基本应用方法。通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。

二、系统的主要功能、作用及主要性能指标
按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。可利用8255、8253、8259等接口电路。

总体设计
1、基本工作原理 设有一个十字路口,1、3为南,北方向,
2、4为东,西方向。 初始化之后, 1、3路口的绿灯亮, 2、4路口的红灯亮, 1、路口方向通车。 延迟一段时间(30秒)后, 1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。闪烁3次(延时3秒)后, 1、3路口的红灯亮, 同时2、4路口的绿灯亮, 2、4路口方向开始通车。 延迟一段时间(30秒)后, 2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁3次(延时3秒)后,再切换到1、3路口方向。 之后,重复上述过程

2 、硬件总体设计
(1)硬件电路设计
各芯片主要管脚的功能如下: 8255A PC0:和8253的OUT0端相与后得到黄灯信号,其中1表示 2 亮,0表示暗 PC1:表示绿灯信号,其中1表示亮,0表示暗 PC2:表示红灯信号,其中1表示亮,0表示暗 PC3:和8253GATE1端相连,为时器1的门控型号 PC4: 和8253GATE2端相连,为时器2的门控型号 PA0~PA7,PB0~PB7:可接两个8段LED显示器,用于显示当前等亮时间 8253: 定时器0:输入信号设为10KHZ,工作在方式3,输出为1HZ方波,OUT0和PC0相与得到黄灯信号。 定时器1:输入信号为OUT0,工作站方式2,计数初值为30,实现延迟30S后产生中断。控制字为:01010100 定时器2:输入信号为OUT0,工作站方式2,计数初值为3,实现延迟3S后产生中断。控制字为:10010100 8259: 采用边沿触发,没有级联,需要设ICW1,ICW2,ICW4,不用ICW3。

三、设计要求

1、预习要求:
1)预习《STAR ES598PCI实验仪微机原理实验指导书》附录三:
2) 预习《STAR ES598PCI实验仪 微机原理实验指导书》附录二之2.7 B2区;2.9 B4
区;2.15 C5区;2.36 G5区;2.37 G6区。
3)预习《STAR ES598PCI实验仪微机原理实验指导书》之“实验九8255控制交通实验”和“实验十8253方波实验”。
4)预习本任务书,根据设计任务,预先画出电路原理图、程序流程图,编写出实验程序。

2、设计报告要求:
1)画出接口部分电路原理图,并阐述系统工作原理。
2)绘制程序流程图和源程序清单。
3)调试过程和结果。
4)要求用WORD撰写课程设计报告,上交打印版和电子稿。
汤旺河边
2010-01-05 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2675
采纳率:0%
帮助的人:2938万
展开全部
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
push ax
lea dx,Str_Addr
mov ah,9
int 21h
pop ax
EndM
; -------------------------------------
; 功能:输出回车换行
Output_CTLF proc Near
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
Output_CTLF endp
; -------------------------------------
; 功能:延时指定的时钟嘀嗒数
; 入口:
; Didas=时钟嘀嗒数(1秒钟约嘀嗒18.2次,10秒钟嘀嗒182次。若延时不是秒的10数次倍,误差稍微大点)
Delay Proc Near
push dx
push cx
push ax
xor ax,ax
int 1ah
mov cs:@@Times,dx
mov cs:@@Times[2],cx
Read_Time: xor ax,ax
int 1ah
sub dx,cs:@@Times
sbb cx,cs:@@Times[2]
cmp dx,Didas
jb Read_Time
pop ax
pop cx
pop dx
ret
@@Times dw 0,0
Delay EndP
; -------------------------------------
; 功能:键盘输入字符串
Input_String Proc Near
Output Prompt_Str ;提示输入字符串
lea dx,Buffer
@@Input_Str: mov ah,0ah
int 21h
mov cl,Buffer[1] ;取字符串长度
cmp cl,2
jb @@Input_Str ;要求输入的字符串最少2个字符,否则,重新输入字符串
xor ch,ch
mov Str_Lenth,cx ;字符串字符数
ret
Input_String EndP
; -------------------------------------
; 功能:字符显示方式下,画一个矩形框
Rectangler Proc Near
mov di,160*17+10*2
mov al,201 ;左上角字符
mov ah,9 ;LightBlue
stosw
mov al,205 ;横线符
mov cx,58
rep stosw
mov al,187 ;右上角字符
stosw
mov di,160*18+10*2
mov al,186 ;竖线符
stosw
mov Screen_Buffer,di ;矩形框左边界显示缓冲区地址
mov cx,58
mov al,20h ;空格符
rep stosw
mov Screen_Buffer[2],di ;矩形框右边界显示缓冲区地址
mov al,186 ;竖线符
stosw
mov di,160*19+10*2
mov al,200 ;左下角字符
stosw
mov al,205 ;横线符
mov cx,58
rep stosw
mov al,188 ;右下角字符
stosw
ret
Rectangler EndP
; -------------------------------------
Disp_Str Proc Near
push di
@@Disp_Str: lodsb
stosw
loop @@Disp_Str
pop di
ret
Disp_Str EndP
; -------------------------------------
; 所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从
; 右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。
Dynamic_Disp Proc Near
call Rectangler ;画矩形框
mov bx,Str_Lenth ;字符串长度
mov Buffer[bx][2],20h
@@Moving_0: mov di,Screen_Buffer[2]
dec di
dec di
mov cx,Str_Lenth ;字符串长度
mov bx,cx
inc bx
@@Moving_1: lea si,Buffer[2]
mov ah,14 ;字符显示属性:黄色字符
push cx
mov dx,cx
mov cx,bx
sub cx,dx
call Disp_Str ;写字符串到显示缓冲区
dec di
dec di
pop cx
call Delay ;延时
mov ah,1
int 16h
jz $+3
ret
loop @@Moving_1
mov cx,Str_Lenth ;字符串长度
inc cx
mov bx,cx
@@Moving_2: lea si,Buffer[2]
mov ah,14 ;字符显示属性:黄色字符
mov cx,bx
call Disp_Str ;写字符串到显示缓冲区
call Delay ;延时
mov ah,1
int 16h
jz $+3
ret
dec di
dec di
cmp di,Screen_Buffer
jae @@Moving_2
inc di
inc di
lea si,Buffer[3]
mov cx,Str_Lenth ;字符串长度
@@Moving_3: push cx
push si
mov ah,14 ;字符显示属性:黄色字符
call Disp_Str ;写字符串到显示缓冲区
pop si
inc si
pop cx
call Delay ;延时
mov ah,1
int 16h
jz $+3
ret
loop @@Moving_3
jmp @@Moving_0
ret
Dynamic_Disp EndP
; -------------------------------------
Didas equ 1 ;延时1个嘀嗒时间
Prompt_Menu db 4 dup(10)
db 35 dup(20h),'Main Menu',13,10
db 30 dup(20h),201,17 dup(205),187,13,10
db 30 dup(20h),186,' Input a String ',186,13,10
db 30 dup(20h),186,' Dynamic Display ',186,13,10
db 30 dup(20h),186,' Return to DOS ',186,13,10
db 30 dup(20h),200,17 dup(205),188,13,10
db 32 dup(20h),'Choice(I,D,R):$'
Cursor_Tmp dw ?
Str_Lenth dw ? ;字符串字符数
Screen_Buffer dw 2 dup(?) ;显示缓冲区左右边界地址
Prompt_Str db 13,10,10,'Please input a string:$'
Press_Key db 7,13,12 dup(10),'The complated. Press any key to exit...$'
Start: push cs
pop ds ;使数据段与代码段同段
push cs
pop es ;使附加段与代码段同段
mov ax,3 ;设置25*80字符显示方式
int 10h
Output Prompt_Menu ;显示主菜单
xor bx,bx
mov ah,3
int 10h
mov Cursor_Tmp,dx
mov ax,0b800h
mov es,ax ;设置字符显示方式缓冲区段地址
mov di,160*4+35*2+1
mov al,13 ;LightMagenta
mov cx,10
cld
Attribute: stosb
inc di
loop Attribute
mov di,160*6+32*2+1
stosb
add di,159
stosb
add di,159
stosb
mov di,160*10+39*2+1
stosb
add di,3
stosb
add di,3
stosb
Choice_Func: mov dx,Cursor_Tmp
xor bx,bx
mov ah,2
int 10h
mov ah,1
int 21h
and al,0dfh
cmp al,'R'
jz Exit_Proc
cmp al,'I'
jnz $+7
call Input_String
jmp Choice_Func
cmp al,'D'
jnz Choice_Func
call Dynamic_Disp
jmp Choice_Func
; -------------------------------------
Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Buffer db 25 ;输入字符串缓冲区
Code ENDS
END Start ;编译到此结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-01-04 · TA获得超过4309个赞
知道大有可为答主
回答量:2496
采纳率:44%
帮助的人:1358万
展开全部
给你大概写写吧,毕竟学习的事情还是要自己搞定的。
完成软件的关键技术“1,使用了dos的0AH号功能(字符串输入)、2号功能(字符显示)等,如果想显示彩色字符,也可以在此基础上加以调整,包括调用BIOS中断;2,利用子程序反复调用,减少代码量,增加程序可读性;3,矩形框采用ASCII字符绘制,提高程序效率,当然同样可以再次基础上加以调整,调用BIOS中断在绘图模式下绘制”。
程序设计流程图仅表示大概意思
清屏幕→屏幕初始化→绘制矩形框→动画显示提示语等→初始菜单待输入字符串或者退出命令→绘制矩形框→以多个字符动画显示字符串→等待输入→根据输入返回到初始菜单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
657511111
2010-01-02
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
很麻烦,手头没有protel,画不了图,简单跟你说下思路,上了课也应该多少明白点的……

使用74161异步4位计数器做个8位的计数器,然后输入时钟CLK,DA0832使用直通模式,接在8位计数器上,随着计数输出电压会逐渐升高,如果是锯齿波就计数多少然后清零就可以了,有了锯齿波,正弦波和方波均可以用运放使用模拟的方法实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
karwens
2015-05-17 · 知道合伙人教育行家
karwens
知道合伙人教育行家
采纳数:1499 获赞数:33102
2000年大学毕业至今,一直在中学一线教学,擅长中学英语

向TA提问 私信TA
展开全部
题目: 字符串动画显示
设计内容要求:
1、菜单
内容包括:①输入字符串;②字符串动画显示;③退出。
2、输入字符串
选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。
3、字符串动画显示
所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。
4、在主菜单中选择退出项,则结束程序返回DOS。
内容要求:以下几项必不可少:
1、完成软件的关键技术(如:使用了什么DOS功能)
2、程序设计流程图,如有必要可有多个,可包括主程序流程图,关键部分程序流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式