微机课设计 优质 参赛Word文档下载推荐.docx
《微机课设计 优质 参赛Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机课设计 优质 参赛Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
8253、8255及8259与8086系统的连接如图所示,8255的A口接按键,B口接数码管,图为微机原理书上习题8.11的图要求实现以下功能:
1.按键为000FH时显示低四位数字,大于0FH以后交替显示“H”和高四位数字;
2.显示高四位数字和“H”时,使其每隔1秒切换显示内容;
(以上两题为1、2班必选)3.按键为000FH时显示低四位数字,并且循环显示0N(N=1F,为当前数字),每隔1秒切换一个数字;
4.按键数字大于0FH时,显示“H”,并使其亮1秒,灭1秒;
(以上两题为3、4班必选)5.按键为000FH时显示低四位数字,大于0FH以后显示“H”;
6.显示“H”时,使其亮1.5秒,灭0.5秒。
(以上两题为5、6班必选)综合型题目(任选2题):
1.通过实验台上PS2接口连接键盘,要求:
1)输入字符(0F),转换成十进制后用数码管(1、2)显示(0015);
2)用实验台上的数码管(3、4)显示输入的次数,计数范围099。
2.将实验台上的直流可调信号(范围05V)输出端与A/D转换器的IN0连接,要求:
1)将该直流信号进行A/D转换(ADC0809,端口地址298H29FH)输入到计算机中,采样频率0.5Hz;
2)通过实验台上的D/A转换器(DAC0832,端口地址290H297H)输出一个与之对应的模拟电压量(范围05V)。
3.通过实验箱的麦克、喇叭与定时器实现数字录音机的功能,要求:
1)用ADC0809以10kHz的频率采集IN2输入的语音数据并存入内存,共采集50000个数据(录音);
2)然后使用8253控制喇叭发声(放音)。
4.利用8253、8255和中断系统实现以下功能:
1)使数码管实现秒表功能,显示数字00.0010.00,每隔0.01秒数字变化一次;
2)读入8个开关的状态值,将这两位数字以16进制(范围00HFFH)在8x8LED点阵模块上显示。
5.利用液晶模块显示以下文字,并实现横向和纵向的滚动:
天津大学自动化学院6.用8253和8255记录实验台上脉冲按键的脉冲宽度,要求:
1)将脉冲宽度在实验台的液晶屏上显示(带小数点和单位);
2)在液晶屏上显示按键次数(显示方式“按键次数:
*”)。
7.通过实验箱上的可调电压旋钮控制步进电机转速,要求:
1)根据可调电压的输出值,对应电机转速由0100r/min,转速与电压复制成线性关系,可调电压的采样频率为0.5Hz;
2)将电机转速在数码管或液晶屏上显示输出。
8.通过实验台上PS2接口连接键盘,要求:
1)输入字符,并在实验箱的8x8LED点阵显示该字符;
2)用两种颜色各显示一次,并以周期0.5秒闪烁。
9.将实验台上的直流可调信号(范围05V)输出端与A/D转换器的IN0连接,要求:
1)将该直流信号进行A/D转换(ADC0809,端口地址298H29FH)输入到计算机中,采样频率1Hz;
2)在PC机屏幕或实验台液晶屏上显示该信号的电压值(小数点后两位)。
10.通过PC机的键盘输入一串字符(以“$”作为结束符),并在实验台的液晶屏上显示显示输出,要求:
1)可显示基本的ASCII码(字母、数字、标点等);
2)在液晶屏上动态显示输入内容(包含空格、换行、回车等格式)。
11.利用定时器8253和外扩展的键盘显示模块,实现时钟显示及时间设置功能:
1)时钟显示内容为“分:
秒”,即“MM.SS”;
2)P键用来启动时钟设置,通过键盘上的数字修改时间,参数在修改过程中处于闪烁状态,闪烁频率2Hz。
12.在实验台的液晶屏上以如下方式显示时钟:
1)动态显示“分:
秒”;
2)显示界面如下:
18:
3513.将实验台上的直流可调信号(范围05V)输出端与A/D转换器的IN0连接,要求:
2)在外扩展的LCD模块上显示该信号的电压值(精确到小数点后2位)。
14.通过PC机键盘控制步进电机转角,要求:
1)从键盘输入数字0360,对应电机转角由0360,转角与数字大小成线性关系,输入数字的采样频率为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测试程序:
DATASEGMENTDATAENDSSTACKSEGMENTSTADW100DUP(?
)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATASTART:
MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOPMOVDX,0283HMOVAL,36HOUTDX,ALMOVDX,0280HMOVAX,03E8HOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,0283HMOVAL,76HOUTDX,ALMOVDX,0281HMOVAX,03E8HOUTDX,ALMOVAL,AHOUTDX,ALMOVAH,4CHINT21HCODEENDSENDSTART8255测试程序:
datasegmentdataendscodesegmentstart:
assumeds:
data,cs:
codemovdx,029bhmoval,90houtdx,alagain:
movdx,0298hinal,dxmovdx,0299houtdx,aljmpagaincodeendsendstart-必做程序(对应日志中必做题的3,4);
数据段定义DATASEGMENTTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;
数码管段码MESDBPRESSANYKEYEXITTODOS,0DH,0AH,$;
提示信息CS_REGDW?
;
中断程序段基址IP_REGDW?
中断程序段偏移量DATEENDS;
堆栈段定义STACKSEGMENTSTADW100DUP(?
)TOPEQULENGTHSTASTACKENDS;
程序初始化CODESEGMENTASSUMECS:
MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOP;
显示提示信息MOVDX,OFFSETMESMOVAH,09HINT21H;
初始化8255MOVDX,0288H;
控制端MOVAL,90H;
控制字OUTDX,AL;
写入;
初始化8253MOVDX,0283H;
控制端MOVAL,36H;
写入MOVDX,0280H;
CLK1MOVAX,03E8H;
1000倍OUTDX,AL;
写入MOVAL,AHOUTDX,AL;
再写入MOVDX,0283H;
控制端MOVAL,76H;
写入MOVDX,0281H;
CLK2MOVAX,03E8H;
再写入;
存储中断向量CLI;
关中断MOVAX,350BHINT21HMOVAX,ESMOVCS_REG,AXMOVIP_REG,BXPUSHDS;
设置新中断向量MOVAX,SEGINTPMOVDS,AXMOVDX,OFFSETINTPMOVAX,250BHINT21HPOPDSINAL,21HANDAL,0F7HOUT21H,AL