微机原理实验报告_实验三_七段数码管.docxVIP

微机原理实验报告_实验三_七段数码管.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理实验报告_实验三_七段数码管

实验三 七段数码管一、实验目的:进一步熟悉8255,掌握数码管显示数字的原理二、实验原理:实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。七段数码管的字形码:在实验2中加入键盘是否有输入判断,如有则去读取键盘输入数据,并加入提示信息,比如“输入十位数”,“输入个位数”,从键盘读入的数据放入十位和个位数据定义区,取代要显示的数据。只需要添加两位变量作为缓存,一个记录键盘输入的值,一个记录循环减1的结果,将其通过数码管显示出来,减至0时重载键盘输入的值。三、实验步骤:静态显示:将8255的A口PA0~PA6分别与气短数码管的段码驱动输入端A~G相连,位码驱动输入端S1接+5V(选中),S0、DP接地(关闭)。动态显示:七段数码管段码不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。8253的接法参考第二次实验的接法,CLK0接入1MHz,CLK1接8255的PC7。1、在两个数码管上显示两位数字,要求延时应用8253硬件延时2、可以改变数码管显示数字,从键盘读入两位数字,并在数码管显示出来。3、对输入数据进行倒计时计数,时间显示在数码管上,计到0重新开始。四、流程图: Y N按键?循环显示这个数n? N Y要输出的数字等于0? Y五、实验结果:实验结果如预期一致,可以键盘输入倒计时的值,时间显示在数码管上,计数到0重新计数。六、程序代码:;******************************************;* 数码管显示对键盘输入数据进行倒计时计数 *;******************************************data segmentio8255a equ 288hio8255c equ 28ahio8255_mode equ 28bhio8253a equ 280hio8253b equ 281hio8253c equ 282hmesg1 db 0dh,0ah,Input a num (00--99) for high position,other key is exit:,0dh,0ah,$mesg2 db 0dh,0ah,Input a num (00--99) for low position,other key is exit:,0dh,0ah,$leddb 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh; 段码buffer db ?,?; 存放要显示的个位和十位buffer1 db ?,?; 存放临时的个位和十位用于减一bz dw ? ; 位码data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255_mode ;将8255的A口为输出 mov ax,88h out dx,almov dx,offset mesg1;显示提示信息 mov ah,09hint 21h mov ah,01;从键盘接收十位字符 int 21h cmp al,0 ;是否小于0 jl exit;若是则退出 cmp al,9 ;是否大于9 jg exit;若是则退出 sub al,30h mov buffer,al ;将输入的十位数存入指定地址 mov dx,offset mesg2 ;显示提示信息 mov ah,09h int 21h mov ah,01h int 21h cmp al,0 ;判断方法同十位 jl exit cmp al,9 jg exit sub al,30h mov buffer+1,al;将输入的个位数存入指定地址jmp resetexit:mov ah,4ch ;返回 int 21hreset:mov al,buffer mov buffer1,al mov al,buffer+1 mov buffer1+1,al mov di,offset buffer1 ;取得显示缓冲区的地址loop1:call timeloop2: mov bh,02h ;数码管循环显示部分lll:mov byte ptr bz,bh push di dec di add di, bz mov bl,[di];bl为要显示的数 pop di mov al,0 mov dx,io8255c out dx,al mov bh,0 mov si,offset led;置led数码表偏移地址为SI add si,bx ;求出对应的led数码 mov al,byte ptr [si] mov dx,io8255a;自8255A的口输出 out dx,al

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档