微机原理课程设计的资料 可下载可修改优质文档.docx
《微机原理课程设计的资料 可下载可修改优质文档.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计的资料 可下载可修改优质文档.docx(25页珍藏版)》请在冰豆网上搜索。
微机原理课程设计的资料可下载可修改优质文档
微机原理课程设计的资料
实验形式与考核:
实验分为基础型实验(必做,30%)、综合型实验(必做,60%)与创新型实验(选做,10%)。
两人一组
进度安排:
共8周,第一周讲课;第二周每组自行设计;以后老师会将本次参加实习的所有学生分为三部分(我们是按12班,34班和56班),每部分进行1~2周的实验,要求是只要在没有课的时候都需去实验室实验,要按照上下课的时间进出实验室并签到;第八周为实验报告的撰写,但最后交报告的时间会向后拖延2~3周。
实验报告要求:
要求包括基本设计思路,硬件连接,软件框图和程序代码,基础与综合题除代码可打印之外必须手写,创新题需单独写成报告。
以下是我们这次的基础题和综合题,每年的题目都几乎相同,改动的地方很少。
其中,综合型题目选题要求是12班从1-5题中选,34班从6-10题中选,56班从11-15题中选。
在实验前便把每组选好的题目报给老师。
基础型题目:
8253、8255及8259与8086系统的连接如图所示,8255的A口接按键,B口接数码管,图为微机原理书上习题8.11的图
要求实现以下功能:
1.按键为00~0FH时显示低四位数字,大于0FH以后交替显示“H”和高四位数字;
2.显示高四位数字和“H”时,使其每隔1秒切换显示内容;
(以上两题为1、2班必选)
3.按键为00~0FH时显示低四位数字,并且循环显示0~N(N=1~F,为当前数字),每隔1秒切换一个数字;
4.按键数字大于0FH时,显示“H”,并使其亮1秒,灭1秒;
(以上两题为3、4班必选)
5.按键为00~0FH时显示低四位数字,大于0FH以后显示“H”;
6.显示“H”时,使其亮1.5秒,灭0.5秒。
(以上两题为5、6班必选)
综合型题目(任选2题):
1.通过实验台上PS2接口连接键盘,要求:
1)输入字符(0~F),转换成十进制后用数码管(1、2)显示(00~15);
2)用实验台上的数码管(3、4)显示输入的次数,计数范围0~99。
2.将实验台上的直流可调信号(范围0~5V)输出端与A/D转换器的IN0连接,
要求:
1)将该直流信号进行A/D转换(ADC0809,端口地址298H~29FH)输入到计算机中,采样频率0.5Hz;
2)通过实验台上的D/A转换器(DAC0832,端口地址290H~297H)输出一个与之对应的模拟电压量(范围0~5V)。
3.通过实验箱的麦克、喇叭与定时器实现数字录音机的功能,要求:
1)用ADC0809以10kHz的频率采集IN2输入的语音数据并存入内存,共采集50000个数据(录音);
2)然后使用8253控制喇叭发声(放音)。
4.利用8253、8255和中断系统实现以下功能:
1)使数码管实现秒表功能,显示数字00.00~10.00,每隔0.01秒数字变化一次;
2)读入8个开关的状态值,将这两位数字以16进制(范围00H~FFH)在8x8LED点阵模块上显示。
5.利用液晶模块显示以下文字,并实现横向和纵向的滚动:
天津大学自动化学院
6.用8253和8255记录实验台上脉冲按键的脉冲宽度,要求:
1)将脉冲宽度在实验台的液晶屏上显示(带小数点和单位);
2)在液晶屏上显示按键次数(显示方式—“按键次数:
***”)。
7.通过实验箱上的可调电压旋钮控制步进电机转速,要求:
1)根据可调电压的输出值,对应电机转速由0~100r/min,转速与电压复制成线性关系,可调电压的采样频率为0.5Hz;
2)将电机转速在数码管或液晶屏上显示输出。
8.通过实验台上PS2接口连接键盘,要求:
1)输入字符,并在实验箱的8x8LED点阵显示该字符;
2)用两种颜色各显示一次,并以周期0.5秒闪烁。
9.将实验台上的直流可调信号(范围0~5V)输出端与A/D转换器的IN0连接,要求:
1)将该直流信号进行A/D转换(ADC0809,端口地址298H~29FH)输入到计算机中,采样频率1Hz;
2)在PC机屏幕或实验台液晶屏上显示该信号的电压值(小数点后两位)。
10.通过PC机的键盘输入一串字符(以“$”作为结束符),并在实验台的液晶屏上显示显示输出,要求:
1)可显示基本的ASCII码(字母、数字、标点等);
2)在液晶屏上动态显示输入内容(包含空格、换行、回车等格式)。
11.利用定时器8253和外扩展的键盘—显示模块,实现时钟显示及时间设置功能:
1)时钟显示内容为“分:
秒”,即“MM.SS”;
2)P键用来启动时钟设置,通过键盘上的数字修改时间,参数在修改过程中处于闪烁状态,闪烁频率2Hz。
12.在实验台的液晶屏上以如下方式显示时钟:
1)动态显示“分:
秒”;
2)显示界面如下:
18:
35
13.将实验台上的直流可调信号(范围0~5V)输出端与A/D转换器的IN0连接,要求:
1)将该直流信号进行A/D转换(ADC0809,端口地址298H~29FH)输入到计算机中,采样频率1Hz;
2)在外扩展的LCD模块上显示该信号的电压值(精确到小数点后2位)。
14.通过PC机键盘控制步进电机转角,要求:
1)从键盘输入数字0~360,对应电机转角由0~360°,转角与数字大小成线性关系,输入数字的采样频率为5Hz;
2)将转角在液晶屏上显示。
15.通过实验台上PS2接口连接鼠标,要求:
1)在实验箱的液晶屏上显示小箭头,并根据鼠标的移动改变箭头的位置
2)刷新频率10Hz,并且使箭头限定在屏幕范围以内。
-----------------------华丽丽的分割线【明明不华丽】------------------------
以上都是官方资料,下面说一下我自己感受的实验技巧
如果你是一个勤奋求学的少年,那么你大可在看完本篇日志后便开始着手设计与编程。
如果你跟我一样是个重度拖延症患者,那你大可不必担心,在到你们进实验室之前都可高枕无忧,在实验过程中解决即可。
现在说一下详细的实验过程:
到实验室的第一次,老师会分配给你一个实验台,在整个实验过程中你们组就用这块实验台,除非有特殊情况,否则不能随意更换【微机实验老师的脾气你们都懂(和善的眼神)】。
在实验台边坐定之后,就可以打开电脑和开发板了,老师尤其强调的是不能带电接线,如果被看到的话你又死定了(和善的眼神)
首先要说的是基础题不需要使用8259,直接把8253产生的脉冲接到8086上的INTR端即可。
有一个小工作是最好在去实验室前就做好的,就是检查一下需要用到的资源是否能正常工作,比如在基础实验中,最好写两个简单的小程序检查一下8253与8255是否工作正常【不正常的可能性非常大】,如果不正常的话就要协调老师解决了,不免又要跟老师费一番口舌(和善的眼神)
当各个芯片检查无误,能够正常工作后,就可以调试程序了。
拿出自己写的或者从别人那里拷来的程序,一点点调试运行成功,出现正确的现象之后,就可以招呼老师过来检查了。
老师会问你几个问题,或者让你加个功能,按她的要求做即可,所以,即使是从别人那里拷来的程序,也起码要做到看懂的水平……老师尤其爱问的是在入中断或出中断附近设置断点,单步运行,指出数码管显示的数字和8086内部的数据是如何传输的之类的问题。
基础型实验建议有所准备的同学在3小时内做完。
然后是综合型,选两个看(you)起(xian)来(cheng)简(cheng)单(xu)的题目,需要用到的液晶屏、双色led灯等资源的资料可以在上学期微机原理课的实验指导书中找到。
然后也是先检查资源是否能正常工作,然后调试程序即可。
需要提示的两点是,最好不要所有人一下同时做出同一个实验,否则太明显……如果自己写的程序实在无法正确运行且找不出毛病,还是乖乖拿来别人试好的程序先通过检查再说,否则夜长梦多【?
】,会把做其他实验的时间用完。
还是提醒一下千万不要冲撞老师……
创新型实验,XX即可,也可以自己想,建议别做电子琴,因为一XX全是电子琴,也会有好多人做电子琴,老师都吐槽了……
然后大概就没什么可说的了,课设这种东西嘛,想真正学到东西的同学可以好好做,真的能学到很多。
如果只是想水过去也不是什么难事。
以上。
以下(23333)是我当时的一些程序,希望能对大家有所帮助
8253测试程序:
DATASEGMENT
DATAENDS
STACKSEGMENT
STADW100DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
MOVDX,0283H
MOVAL,36H
OUTDX,AL
MOVDX,0280H
MOVAX,03E8H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,0283H
MOVAL,76H
OUTDX,AL
MOVDX,0281H
MOVAX,03E8H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
8255测试程序:
datasegment
dataends
codesegment
start:
assumeds:
data,cs:
code
movdx,029bh
moval,90h
outdx,al
again:
movdx,0298h
inal,dx
movdx,0299h
outdx,al
jmpagain
codeends
endstart
--------------------------------------------------------------------
必做程序(对应日志中必做题的3,4)
;数据段定义
DATASEGMENT
TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;数码管段码
MESDB'PRESSANYKEYEXITTODOS',0DH,0AH,'$';提示信息
CS_REGDW?
;中断程序段基址
IP_REGDW?
;中断程序段偏移量
DATEENDS
;堆栈段定义
STACKSEGMENT
STADW100DUP(?
)
TOPEQULENGTHSTA
STACKENDS
;程序初始化
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
;显示提示信息
MOVDX,OFFSETMES
MOVAH,09H
INT21H
;初始化8255
MOVDX,0288H;