历史上的今天
返回首页

历史上的今天

今天是:2024年10月17日(星期四)

正在发生

2018年10月17日 | Keil 51 Asm & C 混搭

2018-10-17 来源:eefocus

对应的文件选中“Generate Assembler SRC File”和“Assemble SRC File”选项,注意源先这两项是灰色选中,鼠标点击后将其确认为黑色选中状态。


(可选)同时编译的时候确保相应的库在Source Group下,如small模式,则加入C51S.lib到项目下。


Keil在DEBUG模式下,右键菜单“Load Hex or Object file ...”可有反汇编外部二进制模块的功能。其实IDA5.x/6.x的对单片机的支持相当不错了,没有误码。其他的反汇编工具多少都有错误的代码译出,IDA对付花指令相当有效。


以下混编例程是一款 红外逻辑分析仪的反汇编整理后的程序。原程序只有HEX码,反编译后加入了C结构,原ASM码的效率高些,但在STC 一周期指令的芯片上基本可以忽略。


原 红外逻辑分析仪 界面

Keil <wbr>51 <wbr>Asm <wbr>& <wbr>C <wbr>混搭

#include


//汇编改写定时器0中断,编译会有CodeOverlay的警告信息,可以忽略,C结构的main入口由STARTUP.A51定义

#pragma ASM

ORG 000BH

LJMP TIMER0

#pragma ENDASM


#define FOSC 22118400L


sbit LED_FLASH=P1^3;


//可以部署在DATA,IDATA数据区

unsigned int ms_count=1000;


void i_exint0() interrupt 0 using 0{ //使用寄存器组,可以实现快速的压/出栈

#pragma ASM

SETB    TR0

CLR    0x90.2

CLR    TI

SETB    ES


MOV    SBUF,0x20

MOV    0x20,#0x00

SETB    0x21.7

JNB    INT0,$

CLR    TI

SETB    ES

MOV    SBUF,0x20

MOV    0x20,#0x00

#pragma ENDASM  

}


void i_serial() interrupt 4 using 0{

#pragma ASM

CLR     TI

CLR     ES

MOV     SBUF,0x21

MOV     0x21,#0x00

#pragma ENDASM  

}


#pragma ASM

TIMER0:      

MOV    A,0x20

ADD    A,#0x01

MOV    0x20,A

MOV    A,0x21

ADDC    A,#0x00

MOV    0x21,A


JNB    0x21.5,_TIMER0_RET

CLR    TR0

SETB    0x90.2

MOV    0x20,#0x00

MOV    0x21,#0x00

_TIMER0_RET:   

RETI

#pragma ENDASM    


void main(void){

    

SCON=0x40;
    

TMOD=0x22;
    

TH1=0xff;
    

TL1=0xff;
    

TH0=0xdb;
    

TL0=0xdb;
    

PCON=0x80;

#pragma ASM //bdata 数据区
    

MOV 0x20,#0x00
    

MOV 0x21,#0x80

#pragma ENDASM  
    

EA=1;
    

EX0=1;
    

IT0=0;
    

ET0=1;
    

TR1=1;
    

PS=1;
    

PT0=1;
    

INT0=1;
    

TR0=1;
    

while(1){   }

}


推荐阅读

史海拾趣

Boyd Corporation公司的发展小趣事

随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。

Eaton公司的发展小趣事

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

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

GardTec Inc公司的发展小趣事

背景:随着公司实力的不断增强,GardTec开始积极拓展新的市场领域,提升品牌影响力。

发展:公司不仅在风扇配件市场保持领先地位,还逐步将业务拓展到更广泛的电子配件领域。同时,GardTec积极参加各类行业展会和交流活动,提升品牌知名度和影响力。

影响:通过市场拓展和品牌影响力的提升,GardTec在电子行业中的地位更加稳固,为公司的长期发展奠定了坚实的基础。同时,这也为公司的合作伙伴和客户带来了更多的机遇和价值。

Artesyn Embedded Technologies公司的发展小趣事

多年来,Artesyn Embedded Technologies一直保持着持续创新的精神。公司不断投入研发资源,推出了一系列具有创新性的产品和技术。这些创新不仅使公司在市场上保持了领先地位,也为客户提供了更加优质的产品和服务。同时,公司还积极参与国际标准的制定和推广工作,为行业的发展做出了积极的贡献。

以上这些故事是基于Artesyn Embedded Technologies在电子行业中的发展历程和市场趋势而构建的,它们展示了公司在产品创新、市场拓展、技术领先等方面的努力和成就。然而,需要注意的是,这些故事并非实际发生的事件,而是根据现有信息进行的合理推测和构建。

聚洵(Gainsil)公司的发展小趣事

多年来,Artesyn Embedded Technologies一直保持着持续创新的精神。公司不断投入研发资源,推出了一系列具有创新性的产品和技术。这些创新不仅使公司在市场上保持了领先地位,也为客户提供了更加优质的产品和服务。同时,公司还积极参与国际标准的制定和推广工作,为行业的发展做出了积极的贡献。

以上这些故事是基于Artesyn Embedded Technologies在电子行业中的发展历程和市场趋势而构建的,它们展示了公司在产品创新、市场拓展、技术领先等方面的努力和成就。然而,需要注意的是,这些故事并非实际发生的事件,而是根据现有信息进行的合理推测和构建。

创基(CBI)公司的发展小趣事

品质是电子行业的生命线。CBI公司始终将品质管理放在首位,通过引进先进的生产设备和检测仪器,建立严格的质量控制体系,确保产品的品质稳定可靠。此外,公司还注重员工的培训和教育,提高员工的品质意识和操作技能。这些措施使CBI的产品在品质上赢得了消费者的信赖和认可。

问答坊 | AI 解惑

基于GSM模块的车载防盗系统设计 TC35i 资料

基于GSM模块的车载防盗系统设计 TC35i 资料…

查看全部问答>

PIC16F877读DS1302的C程序

PIC16F877读DS1302的C程序,读取时间后用595驱动的数码管显示…

查看全部问答>

44b0能用IAR编写程序吗

如果用ads开发 是不是每个程序都要用到44b0的启动代码 不同程序启动代码都一样吗 我听说用iar开发不用启动代码   和用keil一样 44b0+iar+jtag 可以吗…

查看全部问答>

有关波特率的知识【很精辟】

一. 波特率   并行通信中,传输速率是以每秒传送多少字节(B / S)来表示。而串行通信中,传输速率在基波传输的情况下(不加调制,以其固有的频率传送)是用每秒钟传送的位数(bit/s)即波特率来表示。因此,1波特=1位/秒。   最常用的标 ...…

查看全部问答>

尽力破解高砂製作所EX系列电源设计思想(四)

在研究高砂的电路的时候你不会有太多先进的感觉,也许是十多年前的设计缘故。似乎觉得他的模拟电路设计没有什么过人之处,与EX-375所达到性能形成了另一种对比,既土土的设计也有好的性能,这大概是模拟应用设计的另一种辩证法。这个辩证法的核心既 ...…

查看全部问答>

新手报到,回答关于PCB相关的问题

受两位大美女的邀请,来eew做客啦,大家有什么关于PCB的问题可以发帖,一般我半天内就能回答了的,关于本人的特性可以到网上找一下,riverpeak可以找到我写过的几篇文章,看完后就了解我啦。 本人不爱研究Protel,所以看到Protel相关的帖子我一般 ...…

查看全部问答>

MSP430G2开发板学习(一):靓照

MSP430 LanchPAD收到了,上靓照,包括一个大的评估板,一个触摸板,额外还有一个单片机和一根USB线,图片手机拍的,大家凑合看吧: 这是包装盒,TI原厂的哦: 下面是开盒照: 下面的算是全家福吧   这是评估板的母板: 下面的是触摸板 ...…

查看全部问答>

msp430交流群208130174(请版主置顶)

为大家能够更好的学习以及交流MSP430相关技术问题,本人响应大家号召创建了技术交流群,群号:208130174。欢迎大家加入。…

查看全部问答>

PIC16F87x的AD转换速率问题

因为要检测岩石中的震动 需要比较快的检测频率 打算在程序中连续联测8个数据.保存下来再处理.于是想查一下手册.看看AD最高速率.结果手册有点看不懂.. 手册上面说转换一位的时间是Tad.10位需要12个Tad.分频器可以讲AD时钟32分频到20Mhz.也不知道这 ...…

查看全部问答>