单片机实验——8155并行IO口扩展和动态扫描程序编制.doc

单片机实验——8155并行IO口扩展和动态扫描程序编制.doc

ID:59361244

大小:24.50 KB

页数:6页

时间:2020-09-04

单片机实验——8155并行IO口扩展和动态扫描程序编制.doc_第1页
单片机实验——8155并行IO口扩展和动态扫描程序编制.doc_第2页
单片机实验——8155并行IO口扩展和动态扫描程序编制.doc_第3页
单片机实验——8155并行IO口扩展和动态扫描程序编制.doc_第4页
单片机实验——8155并行IO口扩展和动态扫描程序编制.doc_第5页
资源描述:

《单片机实验——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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。