资源描述:
《单片机实验——8155并行IO口扩展和动态扫描程序编制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机实验8155并行I/O口扩展和动态扫描程序编制1.实验目的(1)掌握8155并行I/O芯片扩展和使用方法(2)掌握数码管动态扫描汇编语言的编制方法2.预习要点(1)8155芯片基础知识(2)51单片机的总线时序、地址译码的原理(3)数码管动态扫描显示方法3.实验设备计算机、单片机实验箱。4.实验内容基本要求:通过实验板的上的8155显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在八位数码管上显示30H到33H存储单元的内容。扩展要求:假定30H~33H的存储单元内容为高四位和低四位分存不同的BCD码,请依序将他们显示在LED上实验2ORG
2、0000H;OGR为伪指令,不占用地址,只负责分配地址SJMPMAIN;********************************;主程序ORG0030HMAIN:MOVSP,#70H;可以随意用的内部RAM为30H-7FH,习惯上设置栈指针为70HLCALLINIT;调用初始化子程序LOOP:LCALLDISPLAY;循环调用显示子程序SJMPLOOP;*********************************;初始化子程序INIT:;设置显示缓存区显示缓存区一般习惯上设为30H-37HMOV30H,#1MOV31H,#2MOV32H,#3MOV33H,#4MOV34H,#5M
3、OV35H,#6MOV36H,#7MOV37H,#8;初始化8155;8155地址:1、控制字**00HPA为**01HPB为**02HPC为**03HMOVDPTR,#0100H;8155控制字地址MOVA,#03H;03H=00000011BA口B口为输出C口为输入具体看第5章MOVX@DPTR,ARET;**********************************;显示子程序DISPLAY:MOVR0,#30H;每次进显示子程序的时候先从显示缓存区的第一个开始显示MOVR3,#0FEH;R3为字位,控制哪个数码管亮【注意,每次只点亮一个数码管】LD0:;控制字位MOVDPTR,#
4、0102H;把字位端PB的地址送DPTRMOVA,R3;把字位送AMOVX@DPTR,A;把字位送PB口;查表MOVDPTR,#DTAB;把字形表的首地址给DPTRMOVA,@R0;把要查的字送AMOVCA,@A+DPTR;查到字形并赋给A;控制字形MOVDPTR,#0101H;把字形端PA的地址送DPTRMOVX@DPTR,A;把字形送到PA口LCALLDELAY;延时INCR0MOVA,R3JNBACC.7,LD1;判断最后一个管子是否亮了,亮了之后就退出显示程序RLA;让下一个管子亮,左移字位MOVR3,ALJMPLD0LD1:RET;**************************
5、***************;字形表DTAB:DB3FH,06H,5BH,4FH,66H;0-F的字形DB6DH,7DH,07H,7FH,6FHDB77H,7CH,39H,5EH,79HDB71H;*******************************************;延时1ms的子程序DELAY:MOVR7,#02H;具体延时时间T=250×2×2us=1000us=1ms(这个只是大概的,大概等于1ms而已)DEL1:MOVR6,#250;这个地方很多人直接写#0FFH了,这样误差也不大DEL2:DJNZR6,DEL2;这条为双周期指令,所以上面250后面会乘以2DJNZ
6、R7,DEL1RET;********************************************实验2扩展ORG0000HSJMPMAIN;**************************************;主程序ORG0030HMAIN:MOVSP,#70HMOV30H,#11H;要显示的内容,这个自己可以随便改,MOV31H,#22H;只要能正确显示出来就可以了MOV32H,#33HMOV33H,#44HMOVDPTR,#0100H;初始化8155即控制字MOVA,#03HMOVX@DPTR,ALCALLSEPARATE;分离字LOOP:LCALLDISPLAY;循
7、环调用显示程序SJMPLOOP;*****************************************SEPARATE:;分离字子程序MOVR0,#30H;待分离的字MOVR1,#40H;分离后的代显示的内容还是放在显示缓存区40H-47H里MOVR2,#04H;要分离4个数据(字)R2为循环次数LP:MOVA,@R0ANLA,#0F0H;取高4位SWAPAMOV@R1,A;存高4位I