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);

}

c语言的子程序,51单片机C语言调用汇编子程序的简便方法相关推荐

  1. 51c语言延时作用,51单片机C语言延时函数怎么定义和使用

    描述 51单片机C语言延时函数怎么定义 C语言定义延时函数主要通过无意义指令的执行来达到延时的目的.C程序中可使用不同类型的变量来进行延时设计.经实验测试,使用unsigned char类型具有比un ...

  2. 51单片机c语言内存使用,51单片机C语言编程之内存优化

    原标题:51单片机C语言编程之内存优化 最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128 ...

  3. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc

    基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...

  4. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  5. 51单片机c语言工作手册,51单片机C语言编程手册

    51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...

  6. 51单片机c语言编程100,51单片机C语言编程100例.doc

    51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...

  7. 51单片机c语言版清华大学,51单片机c语言版.docx

    51单片机(呼吸灯)C语言版 基于单片机与PWM的呼吸灯设计 实训指导教师:班级: 设计人姓名:设计日期:设计地点:完成时间: 本设计是基于单片机的原理与接口设计,采用单片机I/O 口,加以C 语言编 ...

  8. 单片机 rs232 c语言,完全手册 51单片机C语言开发详解系列之第8章 串口通讯实战—RS232...

    完全手册 51单片机C语言开发详解系列 技术凝聚实力 专业创新出版 第8章 串口通讯实战-RS232接口电路与软件设计 本章主要通过实际的例子讲解AT89S51单片机的RS232串行通讯接口设计. 随 ...

  9. 51单片机c语言延时库,51单片机c语言---延时

    1,_nop_()适用于us级的少量延时 标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果. 这在汇编语言中很容易实现,写几个nop就行了.本文引用地址:htt ...

最新文章

  1. smack连接远程openfire连接超时-No response received within reply timeout. Timeout was 5000ms (~5s).
  2. Windows Server 2008 RemoteApp(四)---发布应用程序
  3. 还觉得linux命令难吗,看这篇2w多字的linux命令详解,通俗易懂
  4. Windows程序闪退Windows日志捕获Kernelbase模块错误
  5. SpringMvc和Mybatis整合需要配置的xml
  6. 《金色梦乡》金句摘抄(三)
  7. chrome控制台如何把vw显示成px_【CSS】rem,em,px的区别和使用场景
  8. 大理,徐娘半老的蝴蝶泉
  9. 使用Android OpenGL ES 2.0绘图之二:定义形状
  10. Python reversed()函数
  11. 如何通过 WinUSB 功能访问 USB 设备
  12. vs2010操作excel 需要安装office2010
  13. idea中lombok插件安装
  14. 技术面试最后反问面试官的问题合集
  15. 不值一提?开源CRM是否值得应用
  16. Python优化算法05——蚁群算法和免疫优化算法
  17. 电子护照阅读器便捷通行管理系统
  18. 分布式链路追踪opentracing-go jaeger小示例
  19. 制作一个简单HTML西安旅游网页(HTML+CSS)
  20. Java评论点赞推送系统_推送(评论,点赞,关注)

热门文章

  1. KepServer介绍
  2. Xcode iOS 虚拟机,交互效果特别慢
  3. 程序员是有多凡尔赛,工作三年晒出9月工资条,直言加班太累了
  4. 从两通客服电话看支付宝和快钱
  5. CSS3初级学习(三) 绘制彩虹
  6. 读书笔记-精准努力-关于爱情的一些建议
  7. Linux提取—suid
  8. HttpServletResponse cannot be resolved to a type
  9. Android Studio 运行java程序
  10. 在线英语教育机构阿卡索引入法大大,电子合同助力行业降本增效 | 案例