历史上的今天
返回首页

历史上的今天

今天是:2025年01月29日(星期三)

2021年01月29日 | 在51单片机系统中使用8155

2021-01-29 来源:eefocus

简介:单片机自身的 RAM 存储空间和引脚数目往往有些不足,当需要在外部拓展不太多的时候,8155 芯片就是首选了。


一片8155,可以提供256字节的RAM,3个并行IO接口和一个14位的定时器。


8155的内部还集成了地址锁存器,如果只是需要扩展8155,就可以省去常用的地址锁存器74LS373。


下面,先写一个使用单片机自身资源来驱动16个LED进行流水的程序。


然后,再把它改造为利用8155来驱动。


利用51单片机驱动16个LED流水灯的汇编语言程序如下。


;=========================================================


;16个LED接到P0,P2。


ORG0000H


START:


MOV30H,#254;片内RAM


MOV31H,#255;30H31H中仅有一个低电平


;-------------------------------------


MOVR2,#16;循环16遍


LOOP:


MOVP0,30H;输出到LED


MOVP2,31H


CALLDLY200MS;延时


CALLSHIFT_L;移位


DJNZR2,LOOP;循环16遍


SJMPSTART;再从头开始


;-------------------------------------


SHIFT_L:;16位数左移一位


MOVA,30H


RLCA;高位移入Cy


MOV30H,A


;---------------


MOVA,31H


RLCA;Cy移入低位,且高位移入Cy


MOV31H,A


;---------------


MOVA,30H


MOVACC.0,C;把Cy(高位)写入低位


MOV30H,A


;---------------


RET


;-------------------------------------


DLY200MS:;延时200ms,误差0us


MOVR6,#197;


DL0:


MOVR7,#250;1


DJNZR7,$;2*250=500


DJNZR7,$;2*256=512


DJNZR6,DL0;(1+500+512+2)*197=199955


MOVR7,#19;1


DJNZR7,$;2*19=38


NOP;1


RET;1+199955+1+38+1+2=199998


;-------------------------------------


END


;========================================================


上述程序所对应的电路,太简单了,就不在这里显示插图了,读者可自行画图。


当在电路中加入了一片8155,电路可以如下连接:

图中,由于使用了P2.7和P2.0连接到CS和IO/M,所以,8155的接口地址、存储器地址分别为:


;I/O地址:


COMMANDEQU7F00H


PORTAEQU7F01H


PORTBEQU7F02H


PORTCEQU7F03H


TIMER_LEQU7F04H


TIMER_HEQU7F05H


;MEM地址:


;7E00H~7EFFH


因此,前面的流水灯程序,就要如下修改:


;=========================================================


;51单片机流水灯(16个灯)


;P0,P2外接16个LED--改为PA,PB


;30H,31H片内RAM----改为片外


ORG0000H


START:


MOVDPTR,#COMMAND


MOVA,#00000011B;PA方式0输出,PB方式0输出


MOVX@DPTR,A


INCDPTR;转到PA


MOVA,#00110011B;测试共阳极7段数码管


MOVX@DPTR,A


INCDPTR;转到PB


MOVA,#00001111B


MOVX@DPTR,A


;MOV30H,#254;--改为7E30H


;MOV31H,#255;--改为7E31H


MOVDPTR,#7E30H


MOVA,#254


MOVX@DPTR,A


MOVDPTR,#7E31H;片外RAM7E30H7E31H


MOVA,#255;中仅有一个低电平


MOVX@DPTR,A


;-------------------------------------


MOVR2,#16;循环16遍


LOOP:


;MOVP0,30H;输出到LED


;MOVP2,31H


MOVDPTR,#7E30H


MOVXA,@DPTR


MOVDPTR,#PORTA


MOVX@DPTR,A


MOVDPTR,#7E31H


MOVXA,@DPTR


MOVDPTR,#PORTB


MOVX@DPTR,A


CALLDLY200MS;延时


CALLSHIFT_L;移位


DJNZR2,LOOP;循环16遍


SJMPSTART;再从头开始


;-------------------------------------


SHIFT_L:;16位数左移一位


;MOVA,30H


MOVDPTR,#7E30H


MOVXA,@DPTR


RLCA;高位移入Cy


;MOV30H,A


MOVX@DPTR,A


;---------------


;MOVA,31H


MOVDPTR,#7E31H


MOVXA,@DPTR


RLCA;Cy移入低位,且高位移入Cy


;MOV31H,A


MOVX@DPTR,A


;---------------


;MOVA,30H


MOVDPTR,#7E30H


MOVXA,@DPTR


MOVACC.0,C;把Cy(高位)写入低位


;MOV30H,A


MOVX@DPTR,A


;---------------


RET


;-------------------------------------


DLY200MS:;延时200ms,误差0us


MOVR6,#197;


DL0:


MOVR7,#250;1


DJNZR7,$;2*250=500


DJNZR7,$;2*256=512


DJNZR6,DL0;(1+500+512+2)*197=199955


MOVR7,#19;1


DJNZR7,$;2*19=38


NOP;1


RET;1+199955+1+38+1+2=199998


;-------------------------------------


END


;=========================================================


原来程序中,凡是对30H、31H读写的指令,都改成对片外RAM读写。


凡是对P0、P2输出的指令,都改成对片外PA、PB输出。


这样写,程序的长度,将近增加了一倍。呵呵,没有办法,只能这样。


经过修改,即可利用8155的资源,进行流水灯的实验了。


显示的效果,是只有一个LED流动发光,比较简单,就不在这里插图了。


推荐阅读

史海拾趣

Aerovox Corporation公司的发展小趣事

Aerovox Corporation成立于1922年,是一家专业生产电容器和电子元件的公司。以下是关于Aerovox Corporation发展的五个相关故事:

  1. 成立与初期发展: Aerovox Corporation于1922年在美国马萨诸塞州波士顿成立,最初名为"Northeast Electric Company",后来改名为"Aerovox Corporation"。公司的创始人是W·H·J·Gilbert先生,他致力于开发高性能的电容器。起初,Aerovox主要生产电感线圈和电容器,为无线电和电视等新兴行业提供支持。

  2. 二战期间的发展: 在二战期间,Aerovox Corporation转向军事市场,为美国军方生产电容器和其他电子元件,支持军事通信和雷达系统的发展。这一时期,公司迅速扩张并积累了丰富的技术经验。

  3. 技术创新与扩张: 随着电子技术的不断发展,Aerovox Corporation不断进行技术创新,推出了一系列具有创新性的产品,包括高压电容器、电感器和电源解决方案。公司不仅在军事领域取得了成功,还在民用市场上获得了广泛的应用。

  4. 全球化和市场拓展: Aerovox Corporation通过建立全球销售网络和合作伙伴关系,拓展了国际市场。公司在美国以外的地区设立了生产基地和销售办事处,提供定制化的解决方案,满足客户不断增长的需求。

  5. 持续创新与领先地位: 如今,Aerovox Corporation仍然致力于持续创新,不断开发新的产品和解决方案,以满足不断变化的市场需求。公司在电力电子、医疗设备、工业自动化、交通运输等领域拥有广泛的应用,保持着行业领先地位。

这些故事展示了Aerovox Corporation作为一家具有悠久历史和丰富经验的电子公司,在不同时期和领域的持续发展和创新。

Helium公司的发展小趣事

随着Helium在物联网领域的不断突破和发展,其市场认可度逐渐提升。在2021年,Helium通过Token销售完成了1.11亿美元的融资;次年年初,又以12亿美元估值完成了2亿美元的D轮融资。这些融资的成功不仅为Helium提供了充足的资金支持,也进一步验证了其在物联网和区块链领域的商业价值和发展潜力。同时,Helium还吸引了众多明星机构和投资者的青睐,为其未来的发展奠定了坚实的基础。

EOZ Secme公司的发展小趣事

EOZ Secme深知人才是企业发展的核心动力。因此,公司高度重视人才的培养和引进。通过设立研发中心、提供优厚的福利待遇等方式,EOZ Secme吸引了大量优秀人才加入。同时,公司还建立了完善的培训体系,不断提升员工的技能和素质。这些措施为EOZ Secme的持续发展提供了有力的人才保障。

ABCO公司的发展小趣事

ABCO公司初创时,电子市场竞争激烈,众多企业争夺市场份额。面对这样的环境,ABCO公司创始人凭借对电子技术的深刻理解,以及敏锐的市场洞察力,选择了专注于某一细分领域——高精度传感器的研发与生产。通过不断优化产品设计,提升产品性能,ABCO公司的传感器逐渐在市场上获得认可,为公司的起步奠定了坚实基础。

BITECH公司的发展小趣事

ABCO公司深知产品质量是企业生存的根本。因此,公司建立了一套严格的质量管理体系,从原材料采购到产品生产、检测、出厂等各个环节都进行严格把控。同时,公司还注重持续改进,不断优化生产流程,提高生产效率,确保产品质量始终保持在行业前列。

Eaton公司的发展小趣事

在伊顿的发展历程中,合作伙伴起到了至关重要的作用。伊顿一直秉持开放合作的态度,与全球各地的企业和机构建立了广泛的合作关系。通过与合作伙伴的共同努力,伊顿不仅在技术和产品上取得了突破和创新,还实现了市场份额的快速增长和业务的全球化拓展。例如,伊顿与天合智慧达成的战略合作伙伴关系,就是双方共同推动分布式光伏产业发展的有力证明。这一合作不仅为双方带来了共赢的机会,也为全球能源结构的转型和升级做出了积极贡献。

以上五个故事涵盖了伊顿公司在电子行业中的发展历程、在中国市场的拓展、与绿色能源的结合、在商用车领域的发展以及与合作伙伴的共赢等多个方面。这些故事不仅展示了伊顿公司的实力和成就,也体现了其不断创新和追求卓越的精神。

问答坊 | AI 解惑

【瑞萨 CPK-RA2L1 开发板】测评 - 1:安装 BSP

本帖最后由 MianQi 于 2022-11-12 20:34 编辑 从用户的角度来说,E2 Studio 中最重要的组成部分是两个: 1、 Flexible Software Package (FSP) ,下载地址:https://github.com/renesas/fsp;这个类似于Android 的 SDK - 软件开发包,它有版 ...…

查看全部问答>

[RTT&瑞萨超低功耗MCU RA2L1开发板]测评之基于MDK+RT-Thread的开发环境搭建

本帖最后由 qinyunti 于 2022-11-12 10:27 编辑 准备 前提已经安装MDK和JLINK我这里 MDK版本 V5.37 JLINK版本 V7.82(V7.5以上)   开发板资料参考 https://www2.renesas.cn/cn/zh/products/microcontrollers-microprocess ...…

查看全部问答>

[RTT&瑞萨超低功耗MCU RA2L1开发板]测评之SPI模块介绍驱动分析与测试

SPI模块介绍 参考<<Renesas RA2L1 Group User’s Manual: Hardware>>的章节<<28. Serial Peripheral Interface (SPI) >>   特征 2通道 支持全双工和仅发送模式,支持3线制和4线制 RSPCK极性反转,相位 ...…

查看全部问答>

e络盟限时福利|《e选》-------晒单

以前有一个树莓派: 但是。。。没有HDMI的小头的线。。。 这一次,又弄了线,又弄了盒子,甚至于还有天线,也许可以好好的玩玩树莓派了。。。 感谢电子工程世界(eeworld),感谢e络盟(element14)   …

查看全部问答>

【行空板 Python编程学习主控板】开箱报告

【行空板 Python编程学习主控板】开箱报告 首先真诚感谢eeword、DFRobot给了我这次参与《DFRobot行空板Python编程学习板》评测的机会。11月7日收到快递通知,因最近一直出差在外,周五回来后拿到快递,立即开箱,首先映入眼帘的是印有行空板及lo ...…

查看全部问答>

【行空板 Python编程学习主控板】评测二、硬件系统熟悉

    一周工作终于结束,每天加班到很晚,都没有什么时间来学习行空板,赶紧趁着周末把玩一下。     所谓工欲善其事必先利其器,我玩任何开发板都有个习惯,那就是上手前先要熟悉一下该板子的硬件设计, ...…

查看全部问答>

【MPS商城钜惠体验季】开箱

        借助活动买了几款升压芯片测试下, 顺便买了官方的电感。 活动好评!   …

查看全部问答>

【行空板 Python编程学习主控板】评测三、开发板初探之连接方式介绍

        在上篇测评二中,对行空板的硬件系统进行了初步的了解,这篇文章对行空板的几种连接方式进行介绍。         行空板支持四种连接方式与开发者的电脑进行连 ...…

查看全部问答>

[RTT&瑞萨超低功耗MCU RA2L1开发板]测评之DAC模块介绍与测试

[localvideo]9fb1cabad83ad0154eb76903f1caaa2f[/localvideo]   DAC模块介绍 参考<<Renesas RA2L1 Group User’s Manual: Hardware>>的章节<<31. 12-Bit D/A Converter (DAC12)>> 特征 12位带运放,1通道 ...…

查看全部问答>

【行空板 Python编程学习主控板】评测四、开发板初探之WEB服务器介绍

本帖最后由 天意无罪 于 2022-11-13 20:29 编辑        在上篇评测三中,对行空板的4种连接方式进行了简单介绍,这篇测评文章便介绍通过USB Type-C线连接到行空板自带的WEB服务器,并查看其WEB服务功能有哪 ...…

查看全部问答>