ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:55.04KB ,
资源ID:4427162      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4427162.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(微机课设.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微机课设.doc

1、作者 : 董秋成FFF 这就是2014年下半学期微机原理课程设计得资料,希望12级电气及13级自动化可以参考一下,早做准备。 实验形式与考核: 实验分为基础型实验(必做,30%)、综合型实验(必做,60%)与创新型实验(选做,10%)。 两人一组 进度安排:共8周,第一周讲课;第二周每组自行设计;以后老师会将本次参加实习得所有学生分为三部分(我们就是按12班,34班与56班),每部分进行1~2周得实验,要求就是只要在没有课得时候都需去实验室实验,要按照上下课得时间进出实验室并签到;第八周为实验报告得撰写,但最后交报告得时间会向后拖延2~3周。 实验报告要求:要求包括基本设计思路,硬

2、件连接,软件框图与程序代码,基础与综合题除代码可打印之外必须手写,创新题需单独写成报告。 以下就是我们这次得基础题与综合题,每年得题目都几乎相同,改动得地方很少。其中,综合型题目选题要求就是12班从15题中选,34班从610题中选,56班从1115题中选。在实验前便把每组选好得题目报给老师。 基础型题目: 8253、8255 及 8259 与 8086 系统得连接如图所示,8255 得 A 口接按键,B 口接数码管,图为微机原理书上习题8、11得图 要求实现以下功能: 1、 按键为 00~0FH 时显示低四位数字,大于 0FH 以后交替显示“H”与高四位数字 ; 2、 显示高四位数

3、字与“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)

4、输入字符(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) 用 ADC

5、0809 以 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)

6、将脉冲宽度在实验台得液晶屏上显示(带小数点与单位) ; 2)在液晶屏上显示按键次数(显示方式—“按键次数:***” ) 。 7、 通过实验箱上得可调电压旋钮控制步进电机转速,要求: 1)根据可调电压得输出值,对应电机转速由 0~100r/min,转速与电压复制成线性关系,可调电压得采样频率为 0、5Hz; 2)将电机转速在数码管或液晶屏上显示输出。 8、 通过实验台上 PS2 接口连接键盘,要求: 1)输入字符,并在实验箱得 8x8LED 点阵显示该字符; 2)用两种颜色各显示一次,并以周期 0、5 秒闪烁。 9、 将实验台上得直流可调信号(范围 0~5V)输出端与 A/D 转

7、换器得 IN0 连接,要求: 1)将该直流信号进行 A/D 转换(ADC0809,端口地址 298H~29FH)输入到计算机中,采样频率 1Hz; 2)在 PC 机屏幕或实验台液晶屏上显示该信号得电压值(小数点后两位) 。 10、 通过 PC 机得键盘输入一串字符(以“$”作为结束符) ,并在实验台得液晶屏上显示显示输出,要求: 1)可显示基本得 ASCII 码(字母、数字、标点等) ; 2)在液晶屏上动态显示输入内容(包含空格、换行、回车等格式) 。 11、 利用定时器 8253 与外扩展得键盘—显示模块, 实现时钟显示及时间设置功能: 1)时钟显示内容为“分:秒”,即“MM、

8、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)从键

9、盘输入数字 0~360,对应电机转角由 0~360°,转角与数字大小成线性关系,输入数字得采样频率为 5Hz; 2)将转角在液晶屏上显示。 15、 通过实验台上 PS2 接口连接鼠标,要求: 1)在实验箱得液晶屏上显示小箭头,并根据鼠标得移动改变箭头得位置 2)刷新频率 10Hz,并且使箭头限定在屏幕范围以内。 华丽丽得分割线【明明不华丽】 以上都就是官方资料,下面说一下我自己感受得实验技巧 如果您就是一个勤奋求学得少年,那么您大可在瞧完本篇日志后便开始着手设计与编程。如果您跟我一样就是个重度拖延症患者,那您大可不必担心,在到您们进实验室之前都可高枕无忧,在实验过程中解决即可。

10、 现在说一下详细得实验过程: 到实验室得第一次,老师会分配给您一个实验台,在整个实验过程中您们组就用这块实验台,除非有特殊情况,否则不能随意更换【微机实验老师得脾气您们都懂(与善得眼神)】。 在实验台边坐定之后,就可以打开电脑与开发板了,老师尤其强调得就是不能带电接线,如果被瞧到得话您又死定了(与善得眼神) 首先要说得就是基础题不需要使用8259,直接把8253产生得脉冲接到8086上得INTR端即可。 有一个小工作就是最好在去实验室前就做好得,就就是检查一下需要用到得资源就是否能正常工作,比如在基础实验中,最好写两个简单得小程序检查一下8253与8255就是否工作正常【不正常得可能性

11、非常大】,如果不正常得话就要协调老师解决了,不免又要跟老师费一番口舌(与善得眼神) 当各个芯片检查无误,能够正常工作后,就可以调试程序了。拿出自己写得或者从别人那里拷来得程序,一点点调试运行成功,出现正确得现象之后,就可以招呼老师过来检查了。 老师会问您几个问题,或者让您加个功能,按她得要求做即可,所以,即使就是从别人那里拷来得程序,也起码要做到瞧懂得水平……老师尤其爱问得就是在入中断或出中断附近设置断点,单步运行,指出数码管显示得数字与8086内部得数据就是如何传输得之类得问题。 基础型实验建议有所准备得同学在3小时内做完。 然后就是综合型,选两个瞧(you)起(xian)来(che

12、ng)简(cheng)单(xu)得题目,需要用到得液晶屏、双色led灯等资源得资料可以在上学期微机原理课得实验指导书中找到。然后也就是先检查资源就是否能正常工作,然后调试程序即可。需要提示得两点就是,最好不要所有人一下同时做出同一个实验,否则太明显……如果自己写得程序实在无法正确运行且找不出毛病,还就是乖乖拿来别人试好得程序先通过检查再说,否则夜长梦多【?】,会把做其她实验得时间用完。 还就是提醒一下千万不要冲撞老师…… 创新型实验,百度即可,也可以自己想,建议别做电子琴,因为一百度全就是电子琴,也会有好多人做电子琴,老师都吐槽了…… 然后大概就没什么可说得了,课设这种东西嘛,想真正学到

13、东西得同学可以好好做,真得能学到很多。如果只就是想水过去也不就是什么难事。以上。 以下(23333)就是我当时得一些程序,希望能对大家有所帮助 8253测试程序: DATA SEGMENT DATA ENDS STACK SEGMENT STA DW 100 DUP (?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, A

14、X MOV SP, TOP MOV DX, 0283H MOV AL, 36H OUT DX, AL MOV DX, 0280H MOV AX, 03E8H OUT DX, AL MOV AL, AH OUT DX, AL MOV DX, 0283H MOV AL, 76H OUT DX, AL MOV DX, 0281H MOV AX, 03E8H OUT DX, AL MOV AL, AH OUT DX, AL MOV AH, 4CH INT 21H CODE ENDS END START 8255测试程序: data segment dat

15、a ends code segment start:assume ds:data,cs:code mov dx,029bh mov al,90h out dx,al again:mov dx,0298h in al,dx mov dx,0299h out dx,al jmp again code ends end start 必做程序(对应日志中必做题得3,4) ;数据段定义 DATA SEGMENT TABLE DB 3FH,06H,5BH,4FH,66H,6D

16、H,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;数码管段码 MES DB 'PRESS ANY KEY EXIT TO DOS',0DH,0AH,'$';提示信息 CS_REG DW ?;中断程序段基址 IP_REG DW ?;中断程序段偏移量 DATE ENDS ;堆栈段定义 STACK SEGMENT STA DW 100 DUP(?) TOP EQU LENGTH STA STACK ENDS ;程序初始化 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:ST

17、ACK,ES:DATA START: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, AX MOV SP, TOP ;显示提示信息 MOV DX, OFFSET MES MOV AH, 09H INT 21H ;初始化8255 MOV DX, 0288H;控制端 MOV AL, 90H;控制字 OUT DX, AL;写入 ;初始化8253 MOV DX, 0283H;控制端 MOV

18、AL, 36H;控制字 OUT DX, AL;写入 MOV DX, 0280H;CLK1 MOV AX, 03E8H;1000倍 OUT DX, AL;写入 MOV AL, AH OUT DX, AL;再写入 MOV DX, 0283H;控制端 MOV AL, 76H;控制字 OUT DX, AL;写入 MOV DX, 0281H;CLK2 MOV AX, 03E8H;1000倍 OUT DX, AL;写入 MOV AL, AH OUT DX, AL;再写

19、入 ;存储中断向量 CLI;关中断 MOV AX, 350BH INT 21H MOV AX, ES MOV CS_REG, AX MOV IP_REG, BX PUSH DS ;设置新中断向量 MOV AX, SEG INTP MOV DS, AX MOV DX, OFFSET INTP MOV AX, 250BH INT 21H POP DS IN AL, 21H AND AL, 0F7H OUT 21H, AL LOP:

20、 STI;开中断 JMP LOP;不停循环 ;恢复原中断向量 IN AL, 21H OR AL, 08H OUT 21H, AL MOV DX, IP_REG MOV AX, CS_REG MOV DS, AX MOV AX, 250BH INT 21H LAST:;返回DOS系统 MOV AH, 4CH INT 21H ;中断子程序 INTP PROC FAR MOV AH, 01H INT 16H JNZ

21、LAST CLI;关中断 PUSH DX;保护寄存器 PUSH BX PUSH AX MOV BX, OFFSET TABLE;换码数据地址 MOV DX, 0298H;取A口 IN AL, DX MOV DX, 0299H;设定DX为B口 CMP AL, 0FH;比较开关与0FH JA NEXT1;大于则跳 CMP AL, CL;比较开关与数码管(CL中存数码管得值) JE NE

22、XT2;等于则跳 INC CL;数码管加一 MOV AL, CL XLAT;查表 OUT DX, AL;输出到B口 JMP FINISH;结束 NEXT2:;如果开关等于数码管 MOV CL, 0;数码管置零 MOV AL, CL XLAT;查表 OUT DX, AL;输出到B口 JMP FINISH;结束 NEXT1:;如果开关大于0FH IN AL, DX;取数码管数据 C

23、MP AL, 00H;判断就是否全灭 JE NEXT3;就是则跳 MOV CL,00H MOV AL, CL;不就是则置零 OUT DX, AL;输出到B口 JMP FINISH;结束 NEXT3:;如果数码管全灭 MOV AL,76H;数码管置为H OUT DX, AL;输出到B口 ;结束 FINISH: POP AX;恢复现场 POP BX POP DX MOV AL, 20H

24、 OUT 20H, AL STI;开中断 IRET INTP ENDP CODE ENDS END START 综合题8 如果我没记错得话,这个程序就是错得,当时没做出来,但就是不知道哪里错了,所以就拿得别人得程序,大家注意一下〒_〒 ;定义数据段 DATA SEGMENT ;定义ASCII码从30H到7AH所有字符得形状 DATA30 DB 000H,07EH,0A1H,091H,089H,085H,07EH,000H DATA31 DB 000H,000H,001H,0FFH,041H,0

25、00H,000H,000H DATA32 DB 000H,061H,091H,089H,085H,083H,061H,000H DATA33 DB 000H,066H,0A9H,091H,081H,081H,042H,000H DATA34 DB 000H,005H,0FFH,045H,024H,014H,00CH,000H DATA35 DB 000H,08EH,091H,091H,091H,091H,0F2H,000H DATA36 DB 000H,04EH,091H,091H,091H,091H,07EH,000H D

26、ATA37 DB 000H,0C0H,0A0H,098H,087H,080H,0C0H,000H DATA38 DB 000H,06EH,091H,091H,091H,091H,06EH,000H DATA39 DB 000H,07EH,089H,089H,089H,089H,072H,000H DATA3A DB 000H,000H,036H,036H,000H,000H,000H,000H DATA3B DB 000H,000H,036H,037H,001H,000H,000H,000H DATA3C DB 000H,000H,

27、041H,022H,014H,008H,000H,000H DATA3D DB 000H,024H,024H,024H,024H,024H,024H,000H DATA3E DB 000H,000H,008H,014H,022H,041H,000H,000H DATA3F DB 000H,060H,090H,08DH,080H,080H,060H,000H DATA40 DB 034H,04AH,085H,0BDH,0A5H,0BDH,042H,03CH DATA41 DB 000H,03FH,048H,088H,088H,048H,

28、03FH,000H DATA42 DB 000H,06EH,091H,091H,091H,091H,0FFH,000H DATA43 DB 000H,042H,081H,081H,081H,081H,07EH,000H DATA44 DB 000H,03CH,042H,081H,081H,081H,0FFH,000H DATA45 DB 000H,091H,091H,091H,091H,091H,0FFH,000H DATA46 DB 000H,090H,090H,090H,090H,090H,0FFH,000H DATA4

29、7 DB 000H,04EH,089H,089H,081H,081H,07EH,000H DATA48 DB 000H,0FFH,010H,010H,010H,010H,0FFH,000H DATA49 DB 000H,000H,081H,0FFH,081H,000H,000H,000H DATA4A DB 000H,080H,0FEH,081H,001H,002H,000H,000H DATA4B DB 000H,001H,082H,044H,028H,010H,0FFH,000H DATA4C DB 000H,003H,001H

30、001H,081H,0FFH,081H,000H DATA4D DB 0FFH,040H,020H,010H,020H,040H,0FFH,000H DATA4E DB 000H,0FFH,002H,00CH,030H,040H,0FFH,000H DATA4F DB 000H,07EH,081H,081H,081H,081H,07EH,000H DATA50 DB 000H,070H,088H,088H,088H,088H,0FFH,000H DATA51 DB 000H,07DH,082H,085H,081H,081H,07EH

31、000H DATA52 DB 000H,071H,089H,08AH,08CH,088H,0FFH,000H DATA53 DB 000H,046H,089H,089H,091H,091H,062H,000H DATA54 DB 080H,080H,080H,0FFH,080H,080H,080H,000H DATA55 DB 000H,0FEH,001H,001H,001H,001H,0FEH,000H DATA56 DB 000H,0F8H,006H,001H,001H,006H,0F8H,000H DATA57 DB

32、 0FFH,002H,004H,008H,004H,002H,0FFH,000H DATA58 DB 041H,022H,014H,008H,014H,022H,041H,000H DATA59 DB 080H,040H,020H,01FH,020H,040H,080H,000H DATA5A DB 000H,0C1H,0A1H,091H,089H,085H,083H,000H DATA5B DB 000H,000H,000H,000H,000H,000H,000H,000H DATA5C DB 000H,000H,000H,000

33、H,000H,000H,000H,000H DATA5D DB 000H,000H,000H,000H,000H,000H,000H,000H DATA5E DB 000H,000H,000H,000H,000H,000H,000H,000H DATA5F DB 000H,000H,000H,000H,000H,000H,000H,000H DATA60 DB 000H,000H,000H,000H,000H,000H,000H,000H DATA61 DB 000H,001H,07EH,091H,091H,091H,04EH,000

34、H DATA62 DB 000H,000H,00EH,011H,011H,009H,0FFH,000H DATA63 DB 000H,012H,021H,021H,021H,01EH,000H,000H DATA64 DB 000H,001H,0FEH,011H,011H,011H,00EH,000H DATA65 DB 000H,012H,029H,029H,029H,029H,01EH,000H DATA66 DB 000H,050H,090H,07FH,010H,010H,000H,000H DATA67 DB 00

35、0H,07EH,091H,089H,089H,072H,000H,000H DATA68 DB 000H,001H,00FH,010H,010H,008H,0FFH,000H DATA69 DB 000H,000H,001H,05FH,011H,000H,000H,000H DATA6A DB 000H,000H,000H,0BFH,021H,002H,000H,000H DATA6B DB 000H,001H,011H,00AH,004H,0FFH,000H,000H DATA6C DB 000H,000H,001H,07FH,04

36、1H,000H,000H,000H DATA6D DB 000H,00FH,010H,01FH,010H,010H,00FH,000H DATA6E DB 000H,00FH,010H,010H,008H,01FH,000H,000H DATA6F DB 000H,00EH,011H,011H,011H,00EH,000H,000H DATA70 DB 000H,030H,048H,048H,048H,03FH,041H,000H DATA71 DB 000H,041H,03FH,049H,048H,048H,030H,000H

37、 DATA72 DB 000H,010H,010H,008H,01FH,010H,000H,000H DATA73 DB 000H,012H,025H,029H,012H,000H,000H,000H DATA74 DB 000H,002H,011H,07EH,010H,000H,000H,000H DATA75 DB 000H,001H,01EH,001H,001H,01EH,010H,000H DATA76 DB 000H,000H,01EH,001H,001H,01EH,000H,000H DATA77 DB 000H,0

38、1EH,001H,01EH,001H,01EH,010H,000H DATA78 DB 000H,011H,00AH,004H,00AH,011H,000H,000H DATA79 DB 000H,0FEH,011H,009H,009H,0F2H,080H,000H DATA7A DB 000H,031H,029H,025H,023H,021H,000H,000H ;定义数码管扫描时得行数 BUFFER DB 000H,001H,002H,003H,004H,005H,006H,007H DATA ENDS ;定义堆栈段 STACK SE

39、GMENT STA DB 100 DUP (?) TOP EQU LENGTH STA STACK ENDS ;程序初始化 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TOP CHECK:;检查键盘输入得字符 MOV AH,01H INT 21H;键盘输入一个字符 SU

40、B AL,30H;ASCII码减去30H MOV BL,08H MUL BL;将减去30H得ASCII码乘以8即得到起始地址 MOV BX,AX;将起始地址存储在BX中以备换码 OUT0: MOV DI,02H;置DI为02H FLASH0: MOV CX,1000H;设置循环次数 D0: MOV AH,01H;AH置1 PUSH CX;D0得循环次数 MOV CX,08H;8行得循环 MOV SI,OFFSET BUFFER;取行数 NEXT0: MOV AL,[SI];取需要显示得行

41、数 XLAT;换码取数据 MOV DX,0280H;取行地址 OUT DX,AL;输出 MOV AL,AH;取列 CMP DI,02H;DI跟2比较 JNZ X0;不等于则为绿色 MOV DX,0288H;等于则为红色 JMP X00 X0:;将输出地址置为绿色 MOV DX,0290H X00:;继续显示 OUT DX,AL;输出列 MOV AL,0; OUT DX,AL;输出0 SHL AH,01H;列左移 INC SI;数据加一 LOO

42、P NEXT0;循环完8列 POP CX;弹出D0得循环 LOOP D0;循环1000H次 MOV CX,3FFFH DEC DI ;DI减一 JNZ FLASH0;不等于零则循环D0 MOV AH,01H;检查就是否有按键 INT 16H JNZ CHECK;有则跳到开头 JMP OUT0 EXIT: MOV AH,4CH INT 21H CODE ENDS END START 综合题10 ;数据段定义 DATA SEGMENT CMD DB ? ;指令编

43、号 DAT DB ? ;单字节图形数据 DATA ENDS ;堆栈段定义 STACK SEGMENT STACK 'STACK' STA DB 100 DUP(?) TOP EQU LENGTH STA STACK ENDS ;程序初始化 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK1 MOV SS,AX MOV SP,TOP CALL DELAY; CALL INI ;调用初

44、始化子程序 MOV BL,30H;写入预定指令 MOV CMD,BL CALL WCMD MOV BL,0FH MOV CMD,BL CALL WCMD MOV BL,01H MOV CMD,BL CALL WCMD X1: MOV BL,80H;选择了LED得第一行 MOV CMD,BL CALL WCMD MOV CX,0;清零 XUNHUAN: MOV BH,BL L1: MOV AH,01H INT 21H;检测键盘就是否

45、输入 CMP AL,00H JZ L1;如果没有输入,继续检测 CMP AL, '$';判断输入字符就是否就是'$' JNE KAISHI;不就是则跳转到KAISHI MOV AH, 4CH;就是则直接返回DOS系统 INT 21H KAISHI: CMP AL,0DH;判断输入字符就是否就是回车 JZ X2;如果就是则跳转至L2用下一行输入 MOV DAT,AL;把输入字符AL写到DAT中 CALL WDAT;调用WDAT输出 INC CH;字符统计数加一 CMP CH,

46、16;瞧就是否超过了1行所规定得16个字符 JNZ L1;如果没有,跳转至L1 X2: MOV BL,90H;选择第二行 MOV CMD,BL CALL WCMD MOV CH,00H;把新得字符计数得CH置零 L2: MOV AH,01H;与L1类似 INT 21H CMP AL,00H JZ L2 CMP AL,0DH JZ X3 MOV DAT,AL CALL WDAT INC CH CMP CH,16 JNZ L2 X3:

47、 MOV BL, 88H;选择第三行 MOV CMD,BL CALL WCMD MOV CH,00H;把新得字符计数得CH置零 L3: MOV AH,01H;与L1类似 INT 21H CMP AL,00H JZ L3 CMP AL,0DH JZ X4 MOV DAT,AL CALL WDAT INC CH CMP CH,16 JNZ L3 X4: MOV BL, 98H;选择第四行 MOV CMD,BL CAL

48、L WCMD MOV CH,00H;把新得字符计数得CH置零 L4: MOV AH,01H;与L1类似 INT 21H CMP AL,00H JZ L4 CMP AL,0DH JZ X5 MOV DAT,AL CALL WDAT INC CH CMP CH,16 JNZ L4 X5: MOV BL,80H;再循环选择第一行进行输入 MOV CMD,BL CALL WCMD JMP XUNHUAN;继续循环输入 ;*********

49、 ;**初始化子程序 ;**功能:完成LCD屏得初始化 ;**入口参数:无 ;************************************* INI PROC MOV BL,30H MOV CMD,BL ;功能设定,基本指令 CALL WCMD MOV BL,0CH MOV CMD,BL ;开显示,关游标,关反白 CALL WCMD MOV BL,01H MOV CMD,BL ;清除显示 CALL WCMD MOV BL,06H MOV CMD,BL ;进入设定点,游标右移,画面不移动 CAL

50、L WCMD RET INI ENDP ;************************************* ;**写指令子程序 ;**功能:按照ST7920得时序向LCD屏写命令 ;**入口参数:CMD ;************************************* WCMD PROC ;写指令子程序 PUSH AX PUSH DX MOV DX,0283H MOV AL,90H OUT DX,AL ;A入C出 MOV DX,0283H MOV AL,00H OUT DX,AL ;把RS(ID)置零(此处对C口操作,所以把控制字写入控制寄

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服