单片机实验——8155并行IO口扩展和动态扫描程序编制_第1页
单片机实验——8155并行IO口扩展和动态扫描程序编制_第2页
单片机实验——8155并行IO口扩展和动态扫描程序编制_第3页
单片机实验——8155并行IO口扩展和动态扫描程序编制_第4页
单片机实验——8155并行IO口扩展和动态扫描程序编制_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验 8155并行I/O口扩展和动态扫描程序编制1.实验目的(1)掌握8155并行I/O芯片扩展和使用方法(2)掌握数码管动态扫描汇编语言的编制方法2.预习要点(1)8155芯片基础知识(2)51单片机的总线时序、地址译码的原理(3)数码管动态扫描显示方法3.实验设备计算机、单片机实验箱。4.实验内容基本要求:通过实验板的上的8155显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在八位数码管上显示30H到33H存储单元的内容。扩展要求:假定30H33H的存储单元内容为高四位和低四位分存不同的BCD码,请依序将他们显示在LED上实验2ORG 0000H ;OGR为伪指令,不占用地址,只负责分配地址SJMP MAIN;* ;主程序ORG 0030HMAIN:MOV SP,#70H ;可以随意用的内部RAM为30H-7FH,习惯上设置栈指针为70H LCALL INIT ;调用初始化子程序LOOP:LCALL DISPLAY ;循环调用显示子程序 SJMP LOOP;* ;初始化子程序INIT: ;设置显示缓存区 显示缓存区一般习惯上设为30H-37H MOV 30H,#1 MOV 31H,#2 MOV 32H,#3 MOV 33H,#4 MOV 34H,#5 MOV 35H,#6 MOV 36H,#7 MOV 37H,#8 ;初始化8155 ;8155地址:1、控制字*00H PA为*01H PB为*02H PC为*03H MOV DPTR,#0100H ;8155控制字地址 MOV A,#03H ;03H=0000 0011B A口B口为输出 C口为输入 具体看第5章 MOVX DPTR,A RET;* ;显示子程序DISPLAY: MOV R0,#30H ;每次进显示子程序的时候先从显示缓存区的第一个开始显示 MOV R3,#0FEH ;R3为字位,控制哪个数码管亮 【注意,每次只点亮一个数码管】 LD0: ;控制字位 MOV DPTR,#0102H ;把字位端PB的地址送DPTR MOV A,R3 ;把字位送A MOVX DPTR,A ;把字位送PB口 ;查表 MOV DPTR,#DTAB ;把字形表的首地址给DPTR MOV A,R0 ;把要查的字送A MOVC A,A+DPTR ;查到字形并赋给A ;控制字形 MOV DPTR,#0101H ;把字形端PA的地址送DPTR MOVX DPTR,A ;把字形送到PA口 LCALL DELAY ;延时 INC R0 MOV A,R3 JNB ACC.7,LD1 ;判断最后一个管子是否亮了,亮了之后就退出显示程序 RL A ;让下一个管子亮,左移字位 MOV R3,A LJMP LD0 LD1:RET;* ;字形表DTAB: DB 3FH,06H,5BH,4FH,66H ;0-F的字形 DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H DB 71H;* ;延时1ms的子程序DELAY: MOV R7,#02H ;具体延时时间T=25022us=1000us=1ms (这个只是大概的,大概等于1ms而已) DEL1:MOV R6,#250 ;这个地方很多人直接写#0FFH了,这样误差也不大 DEL2:DJNZ R6,DEL2 ;这条为双周期指令,所以上面250后面会乘以2 DJNZ R7,DEL1 RET;*实验2扩展 ORG 0000H SJMP MAIN;* ;主程序 ORG 0030H MAIN:MOV SP,#70H MOV 30H,#11H ;要显示的内容,这个自己可以随便改, MOV 31H,#22H ;只要能正确显示出来就可以了 MOV 32H,#33H MOV 33H,#44H MOV DPTR,#0100H ;初始化8155 即控制字 MOV A,#03H MOVX DPTR,A LCALL SEPARATE ;分离字 LOOP:LCALL DISPLAY ;循环调用显示程序 SJMP LOOP;* SEPARATE: ;分离字子程序 MOV R0,#30H ;待分离的字 MOV R1,#40H ;分离后的代显示的内容还是放在显示缓存区40H-47H里 MOV R2,#04H ;要分离4个数据(字) R2为循环次数 LP:MOV A,R0 ANL A,#0F0H ;取高4位 SWAP A MOV R1,A ;存高4位 INC R1 MOV A,R0 ANL A,#0FH ;取低4位 MOV R1,A ;存低4位 INC R1 INC R0 ;换下一个字 DJNZ R2,LP ;如果还没有转换完成就继续循环 RET;* ;显示子程序DISPLAY: MOV R0,#40H ;显示缓存区为40H-47H,其它的与实验二的一致) MOV R3,#0FEH LD0:MOV DPTR,#0102H MOV A,R3 MOVX DPTR,A MOV DPTR,#DTAB MOV A,R0 MOVC A,A+DPTR MOV DPTR,#0101H MOVX DPTR,A LCALL DELAY INC R0 MOV A,R3 JNB ACC.7,LD1 RL A MOV R3,A LJMP LD0 LD1:RET;* ;字形表 DTAB: DB 3FH,06H,5BH,4FH,66H ;0-F DB 6DH,7DH,07H,7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论