1、在汇编文件中,程序前边加上如下三句话就可以:

PUBLIC   _delay, _binrlc       ;定义公用子程序名,这里定义了两个子程序(有下划线)

LUOYUAN  SEGMENT CODE  ;程序段命名,LUOYUAN,叫啥名都可以

RSEG     LUOYUAN


下边放子程序(程序名要下划线,其它标号不要下划线)


;汇编语言文件

PUBLIC  _delay, _binrlc;定义子程序名

LUOYUAN  SEGMENT CODE  ;命名LUOYUAN的程序段

RSEG     LUOYUAN


_delay:  MOV P1,#55H

             MOV R2,#30H

        DJNZ R2,$

        RET

;**********************************************;P3.2  74LS595锁存口

;P3.3  74LS595时钟口;P3.4  74LS595数据口

;P3.5  工作指示

;**********************************************

_binrlc: CLR P3.2                ;锁存

         MOV A,R7

         ;XRL A,#0FFH    ;显示要取反

         MOV R3,#8H        

binrl1: CLR  P3.3       ;时钟位下降

        RLC A           ;连同进位左移1位

            MOV P3.4,C      ;进位到直接寻址位

        SETB P3.3       ;时钟位上升

        DJNZ R3,binrl1


        SETB P3.2       ;锁存

                CPL P3.5   ;取反闪亮

        RET

END



2、在C程序中,先声明外部函数,不然编译找不到函数错误,然后就如同C程序中调用C函数一样


binrlc(SBUF);   不要下划线。

本程序89C51接收PC 串口来的数据,送到74LS595驱动的LED显示。


//89C51串口0方式驱动74LS595

// 11.0532

// P3_4控制锁存

#include "AT89X51.h"


void initUart(void)

{

TMOD|=0x20;

SCON=0x50;

PCON|=0x80;

TH1=0xfa;

TL1=0xfa;

TR1=1;

ES=1;

}

extern void binrlc(char);      //外部函数声明


void uart(void) interrupt 4

{

if(RI)

{

    RI=0;

     binrlc(SBUF);    //调用汇编子程序,方式同C子程序一样

         P1= SBUF;

}

else

    TI=0;

}

void main(void)

{

initUart();

EA=1;

while(1);

}


关键字:51单片机  C语言调用  汇编子程序 引用地址:51单片机C语言调用汇编子程序的简便方法

上一篇:51单片机控制小车前后左右运动程序
下一篇:单片机DIY模拟冰球

推荐阅读

有些用户一直很抗拒将手机系统升级到最新版本,原因除了新系统可能会不太稳定之外,手机运行的本身还有可能会被新固件所拖累,也就是所谓的“负优化”。        去年苹果就被爆出在新手机固件中添加了一些控制手机速度的功能,虽然可能出发点是好事,想要提高老苹果用户手机的续航,防止设备突然断电,但是该功能一开始为强制开启,让很多用户不得...
(文章来源:中科罗伯特机器人学院) 在2014年的时候ABB推出了一款协作机器人Yu,YuMi在英文中就是“你和我”协同工作的简称。这是协作机器人的第一次对大众的亮相,那时候谁都没想到协作机器人的出现,会在今天打破工业机器人市场增长缓慢局面的一把利刃。协作机器人是一种轻量化、安全化的新型工业机器人,它可以弥补生产中传统流水线的限制,可以进...
10月26日晚间,中国台湾IC设计公司威盛(VIA)召开重大讯息说明会,董事长陈文琦亲自主持。威盛在会上宣布,旗下100%持股子公司VIABASE、VIATECH将部分x86芯片组相关技术、资料等IP产权卖给上海兆芯,交易价格约1.38亿美元。同时,VIABASE将部分x86处理器相关技术、资料等IP产权卖给上海兆芯,交易价格约1.18亿美元。两笔交易总价约2.56亿美元,约合人民币1...
安富利全球销售管理与供应商支持副总裁 Peggy Carrieres价格上升、技术更迭,还有不可避免的供应链紧缺问题,将给半导体行业带来广泛、深刻的变化。毫无疑问,新冠疫情的大流行对半导体行业产生了非同寻常的影响。但需要强调的是,这场疫情实际上也放大了行业现存的问题。早在芯片短缺的新闻占据各大媒体头版头条之前,一些重大的行业变革就已经在悄然酝...

史海拾趣

问答坊 | AI 解惑

走进无线局域网

无线技术给人们带来的影响是无可争议的。如今每一天大约有15万人成为新的无线用户,全球范围内的无线用户数量目前已经超过2亿。这些人包括大学教授、仓库管理员、护士、商店负责人、办公室经理和卡车司机。他们使用无线技术的方式和他们自身的工作 ...…

查看全部问答∨

中国DSP市场现状

2003年,我国DSP市场继续保持了快速增长,市场销量总计达到26628.8万片,总销售额达126.4亿元。我国DSP市场规模迅速扩大,主要得益于我国移动电话市场、数字消费市场以及自动控制市场规模的增长。          ...…

查看全部问答∨

毕业设计论文原来还可以这么写

网上搜资料找到一篇毕设论文,我塞,又是一个牛人哎,这毕业论文牛叉的把大学期间的学习及科研工作中各方面知识和经验以及自己参加全国大学生电子设计竞赛获奖作品的设计都写了进去,洋洋洒洒100多页啊。从单片机到windows编程,大家自己看吧,牛就 ...…

查看全部问答∨

C语言实战105例

目录: 第1部分 基础篇 实例1 一个价值“三天”的BUG 2 实例2 灵活使用递增(递减)操作符 5 实例3 算术运算符计算器 7 实例4 逻辑运算符计算器 9 实例5 IP地址解析 11 实例6 用if…else语句解决奖金发放问题 13 实例7 用for循 ...…

查看全部问答∨

基于自适应多步预测的前向链路功率控制算法

基于自适应多步预测的前向链路功率控制算法…

查看全部问答∨

mini2440上SDIO无线网卡请教

我用的mini2440的板子,现在也在想在上面的SD插槽里上加个SDIO无线网卡。 我在PB中添加了相应的SDIO的组件: SDIO   Standard   Host   Controller SDIO   WiFi   (SyChip) Wireless  ...…

查看全部问答∨

Verilog HDL的一个问题

8’h00在VHDL里面表示的是什么意思   好像是什么8位什么什么的数据类型。…

查看全部问答∨

STM32容易焊坏吗?

我们公司的一个工厂客户说,他在贴100pcs  STM32 芯片后, 烧坏了 若干片, 而他们在贴其它类型例如LPC21xx 型号的MCU,却没有类似情况。 想问下, STM32 是否容易焊坏?  (手工焊接未曾坏过) 它在这方面的关键 指标 ...…

查看全部问答∨

【为C2000做贡献】闻亭DSP培训第1天全部资料

闻亭DSP培训第1天全部资料 [ 本帖最后由 0212009623 于 2011-5-1 16:01 编辑 ]…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved