- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.2.2跑马灯参考程序 ; ; 跑马灯,课设题目 ; 8255方式0的B输出 ; 接线:采用排线将 L0~L7 连接到 B口。 ; 端口地址288H~28BH,控制口28BH。CS/8255接Y1/IO地址 。 ; .model small .586 .stack .data msg db Press anykey to Exit,0dh,0ah,$ ;显示字符串必须以$结尾! p8255a 288h ;A口地址 p8255b p8255a+1 ;B口地址 p8255Ctrl p8255a+3 ;控制口地址 * .code main proc mov ax,@data mov ds,ax ;建立数据段 call init8255 call App8255 mov ah,4ch ;返回DOS int 21h ret main endp 2.2.2跑马灯参考程序 * init8255 proc mov dx,p8255Ctrl ;控制口地址 mov al,80h ;设置8255为B口输出 out dx,al ;控制字 ret init8255 endp 2.2.2跑马灯参考程序 * App8255 proc mov bl,01h ;暂存al状态,点亮L0 monitor: mov dx,p8255b ;B口地址 mov al,bl out dx,al ;驱动LED rol bl,1 call delay ;精确延时0.5秒。 mov dx,offset msg mov ah,09h ;显示字符串 int 21h 2.2.2跑马灯参考程序 * 2.2.2跑马灯参考程序 mov dl,0ffh ;直接控制台IO,相当于C中while !kbhit mov ah,06h ;等待按键 int 21h ;al 输入字符 jz monitor ;若无按键,则继续。ZF 1 ret App8255 endp * 2.2.2跑马灯参考程序 ; ; delay为周期为55ms的精确延时子程序。 ; 利用DOS系统日时钟 8254计数器0 与用户程序并发, ; DOS系统数据区40h:6ch开始的双字单元日时钟计数器, ; 8254计数器0以18.2Hz的频率产生中断, ; ISR对40h:6ch的双字单元加1,周期55ms。 ; 利用这一特点可以实现精确定时与延时。 ; Windows的日时钟单元在哪里? ; Windows系统数据区在哪里? ; 怎样访问它们?很富有挑战性! ; * 2.2.2跑马灯参考程序 delay proc push ax mov ax,40h mov es,ax ;利用es来访问物理地址46CH ;物理地址46CH,双字计数单元清零 mov word ptr es:[6ch],0 ;保护模式下不允许! ;精确延时9*55ms约为0.5秒。 ;相当于C中的sleep(9)。 l1: cmp word ptr es:[6ch],9 ;实验中取90 jb l1 ;循环检测等待时间到。 pop ax ret delay endp end main DOS系统数据区40h:6ch开始的双字单元日时钟计数器 * 3.8254方式2、3实验 3.1 通道级联(试题库习题 5/9/11/12/13) 如图所示,要求8253的通道0产生周期为500μs 的负的窄脉冲,8253的通道1产生周期为2S的对称方波。完成如下任务: 1. 在图2的基础上画出完成指定功能的线路连接(译码电路的设计可略去)。 2. 分别写出通道0和通道1的控制字,并求出它们的计数初值。 3.编写完成指定功能的8253初始化程序子程序INIT8253。 * 3.8254方式2、3实验 500us负窄脉冲 2S对称方波 * 5. 8253如图所示,8253的端口地址为90H~93H。要求8253的通道0产生周期为100μs 的对称方波,8253的通道1产生周期为1S的对称方波。完成如下任务: 1. 在该图的基础上画出完成指定功能的线路连接(译码电路的设计可略去)。 2. 分别写出通道0和通道1的控制字,并求出它们的计数初值。 3.编写完成指定功能的8253初始化程序子程序INIT8253。 9.8253如图所示,利用8253的3个计数器输出out,分别产生周期为100μs的对称方波.周期为1s的负窄脉冲和周期为10s的对称方波( 8353方式控制字如图所示)试按上述要求分别编写8253的初始化程序。 3.1 通道级联(试题库习题) * 32位接口实验指导 西安理工大学计算机学院 2016
文档评论(0)