历史上的今天
返回首页

历史上的今天

今天是:2024年09月24日(星期二)

正在发生

2020年09月24日 | STM8S103汇编文档和注意

2020-09-24 来源:eefocus

1、官方文档《STM8 CPU programming manual》介绍了指令和寻址方式

2、辅助类文档,boot loader文档《STM8 bootloader》

3、关于一些实例和伪指令的介绍,网搜《STM8S第1章-第5章》,已下载至本人电脑cpu-stm8s目录下和《asm_lnk_user_manual.pdf》

4、关于一些实际应用,网搜《STM8S-汇编》,已下载至本人电脑cpu-stm8s目录下

5、详细教科书《STM8S系列单片机原理与应用》

6、STVD安装目录下的asm 的文档《asm_lnk_user_manual.pdf》和asmdemo文件夹下的例程

 

 

1、EQU和#define的区别?

2、寄存器间接寻址(X),表示X为指针,对标为:PIC的间接寻址,INDF0-2

3、LD和MOV的区别?

LD是和寄存器交互时用

MOV只能和mem交互用

4、如何定义为位变量

COMM_LCD
DS.B 1

#define F_TEST COMM_LCD,#5 

其中DS.B必不可少

5、()和[]的区别

两者都是间接寻址(何谓间接寻址即指针)

不过()指的是寄存器间接寻址或者以mem为基址+寄存器的变址寻址      例如:LD A,(X)和LD A,($5000,X)

[]为mem,以存储单元作间址的间接寻址方式是STM8 CPU特有的间接寻址方式 。操作数所在的储存单元的地址存放在00段内另一个存储单元中,16位地址要带后缀.W;24位地址形式带后缀.E       例如LD [$50.W],A,

总结:ld A,[F5]等价于ldA,((F5]等价于ldA,((F5))

6、如何定义查表,且表中存放地址

NEC中DW SEG0_LCD

ST中DC.W?而不是DS.W

7、short mem和long mem

如果定义在0-FF,则为short mem,定义在100后面的变量则为long mem,short mem的指令周期比long mem的指令周期短。

定义的ram0变量,FLAG2:DS.B 1  后面如果LD A,FLAG2则会将FLAG2的地址变为long mem;如果FLAG2.B:DS.B 1则会将FLAG2的地址变为short mem

8、将模块的标号也加上后缀.B但是出现问题,报错"as1 : Error 84: Byte Size label has val > 255! (need WORDS?) 'MAIN_LOOP'

"

9、Label属性、地址模式和segment属性的联系

Labe有3属性:size,relativity和scope,size:B、W(word默认)、L(4字节)

当Label的地址为0x00-0xFF时,既可以作为long mem也可以作为short mem,如果加上.B则作为short mem。

当label的地址其他时,不可以为b

Label的属性为relative 和absolute,常量为absolute,其余为relative,Lable的属性由linker决定,程序员不能显式改变

segmeng的对齐方式有byte、word等,这是说segmeng的边界必须以字节对齐、字对齐或其他方式对齐,

具体参考STVD安装目录下的 asm文件夹下的《asm_lnk_user_manual.pdf》

10、STM8S为大端模式,即高字节存放在低地址,即如果你ADDW      X,TMP0_MSB有问题,其中TMP0_MSB是8位的假设值=9,但是X是16位的,将TMP0_MSB时,默认会转换为低字节为0,高字节为TMP0_MSB的值,即ADDW X,0x900

11、查表用LD A,(DIS_TAB,X),其中DIS_TAB为定义的表,X为索引,在flash区定义表格用DC.B、DC.W和DC.L;在ram区定义变量用DS.B,而且千万千万要注意,DS等宏指令不能顶格,前面必须至少一个TAB

推荐阅读

史海拾趣

Hirosugi-Keiki公司的发展小趣事

对于门控夜明灯电路,网友们可能会有多种问题,以下是一些常见问题及其详细回答:

一、工作原理相关问题

  1. 问:门控夜明灯电路是如何实现自动开关的?
    : 门控夜明灯电路主要通过门控开关、延迟电路、光控电路和电源电路等几部分组成。当门打开时,门控开关触发电路,使电灯点亮。同时,延迟电路控制电灯的点亮时间,一般为几十秒左右。光控电路则确保在光线较暗的环境下(如夜晚)电路才会工作,而在白天则自动封锁电路,避免电灯误亮。

  2. 问:电路中的光控部分是如何工作的?
    : 电路中的光控部分通常由光敏电阻器(如MG45型)和相关的电子元件组成。光敏电阻器的阻值会随着光照强度的变化而变化。在白天,由于光照强度大,光敏电阻器呈现低阻值状态,导致电路中的某个三极管(如VT3)导通,进而封锁整个电路,使电灯不会点亮。而在夜晚,光照强度减弱,光敏电阻器呈现高阻值状态,三极管截止,电路恢复正常工作状态,受门控开关控制。

二、安装调试相关问题

  1. 问:如何安装门控夜明灯电路?
    : 安装门控夜明灯电路时,首先需要将干簧管安装在门框上,将小磁铁安装在门上,并确保两者在门关闭时能够对准并吸合。接着,将电路板固定在合适的位置,并连接好电源线和电灯线。最后,进行电路调试,确保电路能够正常工作。

  2. 问:如何调整电灯的点亮时间?
    : 电灯的点亮时间主要由延迟电路中的电阻和电容决定。要调整点亮时间,可以通过改变电阻(如R2)的阻值或电容(如C1)的容量来实现。一般来说,电阻阻值增大或电容容量增大,都会导致点亮时间延长;反之,则点亮时间缩短。

三、故障排除相关问题

  1. 问:如果电灯不亮,可能是什么原因?
    : 如果电灯不亮,可能是由多种原因造成的。首先,应检查电源是否正常,以及电路中的保险丝是否熔断。其次,检查门控开关是否工作正常,即干簧管和小磁铁是否能够在门打开时正确触发电路。此外,还应检查光控电路是否因光线过强而处于封锁状态。最后,检查电灯本身是否损坏。

  2. 问:电灯在白天也会亮,怎么办?
    : 如果电灯在白天也会亮,可能是光控电路出现了问题。首先,应检查光敏电阻器是否损坏或受到其他光源的干扰。其次,检查与光敏电阻器相关的电子元件(如VT3)是否工作正常。如果问题依然存在,可能需要重新调整光控电路的灵敏度或更换相关元件。

四、其他相关问题

  1. 问:门控夜明灯电路适用于哪些场合?
    : 门控夜明灯电路适用于需要自动照明的各种场合,如家庭玄关、走廊、楼梯间等。它能够在人们进门时自动点亮电灯,为人们提供方便,同时也能够节省能源。

  2. 问:如何选择合适的电灯与电路匹配?
    : 在选择电灯与电路匹配时,首先需要考虑电灯的功率和类型。由于门控夜明灯电路通常设计为低功耗电路,因此建议选择功率较小、发光效率较高的电灯,如LED灯泡。此外,还需要确保电灯的电压和电流与电路的输出相匹配,以避免电路损坏或电灯烧毁。

aconno公司的发展小趣事

aconno公司在电子行业的崛起,始于其坚持创新驱动的发展策略。早年公司便投入大量资源进行技术研发,尤其是在物联网和嵌入式系统领域。通过不断推出具有创新性和实用性的产品,aconno逐渐在市场中建立了良好的口碑。例如,其自主研发的一款智能传感器,因其高灵敏度和稳定性受到了市场的广泛认可。随着技术的不断积累和创新,aconno逐渐在行业中崭露头角。

Digital Voice Systems Inc公司的发展小趣事

Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。

在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。

随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。

故事二至五框架概述

  1. 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
  2. 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
  3. 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
  4. 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。

以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。

H&D Wireless公司的发展小趣事

2017年,高创被美的集团全资收购,成为美的工业技术事业群的重要业务板块之一。这一转变标志着高创进入了一个全新的发展阶段。借助美的集团的平台力量,高创在技术研发、生产制造、供应链管理等方面得到了显著提升。同时,与美的集团旗下其他业务板块如库卡机器人等的协同合作,进一步拓宽了高创的市场应用领域。

中科芯(CKS)公司的发展小趣事

人才是企业发展的核心驱动力。中科芯高度重视人才队伍建设,通过引进和培养高素质人才、优化人才结构等措施,不断提升公司的创新能力和竞争力。同时,公司还创新激励机制,通过“揭榜挂帅”等形式吸引和激励人才投身重点项目的研发攻关。这些措施的实施不仅激发了员工的积极性和创造力,也为公司的持续发展提供了有力保障。

以上五个故事分别从中科芯的技术创新、科研成果、业绩增长、产品推广和人才队伍建设等方面展示了公司在电子行业中的发展历程和取得的成就。这些故事不仅展现了公司的实力和潜力,也体现了公司对社会和行业发展的贡献和担当。

固驰(GUERTE)公司的发展小趣事

浙江固驰电子有限公司,即固驰(GUERTE)品牌的发源地,于1995年在浙江省丽水市创立。公司由范*先生创立,初期专注于半导体器件的生产。经过数年的不懈努力,固驰电子逐渐在行业内崭露头角,通过持续的技术创新和产品优化,成功开发出ZQ系列整流管芯、CELL芯片、5-200A单三相整流桥及电力半导体模块等核心产品。这些产品广泛应用于变频器、逆变焊机、UPS电源等领域,为公司的快速发展奠定了坚实基础。

问答坊 | AI 解惑

2008-2009手机热点展望

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 2007年,随着一声“手机生产核准制正式取消”的赦令,大批所谓的“黑手机”厂商如雨后春笋般破土而出,加之MTK积极的方案提供和技术支持推波助澜,大大降低了手机设计的入行门槛。手机 ...…

查看全部问答>

Lenze有没有可以连接多台电机的驱动器?

Lenze有没有可以连接多台电机的驱动器? 如题,一个驱动器连接多个电机,这需要驱动器有多个电机接口,包括多套UVW输出和多个编码器的输入,Lenze有这样的驱动器吗?其他品牌的伺服有吗?恳请高手指点,谢谢!…

查看全部问答>

CLSID_RemoteDataAccess对应的是哪个DLL文件啊

if (dlgPush.DoModal()) { //得到pCERDA接口 HRESULT hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA); ASSERT(hr == S_OK); ASSERT(pCERDA != NULL); 执行到ASSERT(h ...…

查看全部问答>

I have a dream!IBM T23能否当场个X86结构的嵌入式开发板?

I have a dream! 本人闲置一台IBM T23笔记本,闲来无事,有以下想法: IBM T23能否当场个X86结构的嵌入式开发板? 请大家多多发言...…

查看全部问答>

求助这样该如何计算总功率?

 一条生产线,用到多个200W和400W的电机,由于通用和经济的考虑变频器全都用750W的,请问这条生产线根据什么计算总功率?…

查看全部问答>

梦之旅同学EZ430系列学习笔记和智能家居系统项目之DHT11

  虽然之前有同学传了DHT11的程序,但我发现那个程序不好用,呵呵,我的在那时候也调通了,然后现在我参考下那位同学程序,优化了一下相关结构,传下我的DHT11,也说下我的DHT11开发经历,今天上传三章,呵呵,今天这项目算完结了,多谢大家关 ...…

查看全部问答>

请教:uart、can、Eth等通信接口配置好后,如何通过软件查询其是否工作正常?

本人最近用 LM3S 9B81做一个项目,需要随时应答 上位机发送的 各个端口状态查询信息,请问 假如没有数据收发,我如何反应出 各个通信端口状态是正常的呢?谢谢…

查看全部问答>

求交流假电子负载方案

现在准备电子设计竞赛,做一个电子假负载的题目,开始直流模式下的恒流恒压横阻模式已完成,但负载不能进交流,求各路大神提供一下能进交流的电子负载原理电路或方案,要测量交流电源内阻的……小弟在此谢过了。。。谢谢!做了差不多3个星期了,没想 ...…

查看全部问答>

LM3S RTX 任务处理

//*******************************************************************os_tsk_create() #include <rtl.h> OS_TID os_tsk_create (  void (*task)(void),  /* Task to create建立任务 */  U8  priority ); &n ...…

查看全部问答>