c语言的子程序,51单片机C语言调用汇编子程序的简便方法
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语言调用汇编子程序的简便方法相关推荐
- 51c语言延时作用,51单片机C语言延时函数怎么定义和使用
描述 51单片机C语言延时函数怎么定义 C语言定义延时函数主要通过无意义指令的执行来达到延时的目的.C程序中可使用不同类型的变量来进行延时设计.经实验测试,使用unsigned char类型具有比un ...
- 51单片机c语言内存使用,51单片机C语言编程之内存优化
原标题:51单片机C语言编程之内存优化 最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128 ...
- 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...
- 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...
(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...
- 51单片机c语言工作手册,51单片机C语言编程手册
51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...
- 51单片机c语言编程100,51单片机C语言编程100例.doc
51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...
- 51单片机c语言版清华大学,51单片机c语言版.docx
51单片机(呼吸灯)C语言版 基于单片机与PWM的呼吸灯设计 实训指导教师:班级: 设计人姓名:设计日期:设计地点:完成时间: 本设计是基于单片机的原理与接口设计,采用单片机I/O 口,加以C 语言编 ...
- 单片机 rs232 c语言,完全手册 51单片机C语言开发详解系列之第8章 串口通讯实战—RS232...
完全手册 51单片机C语言开发详解系列 技术凝聚实力 专业创新出版 第8章 串口通讯实战-RS232接口电路与软件设计 本章主要通过实际的例子讲解AT89S51单片机的RS232串行通讯接口设计. 随 ...
- 51单片机c语言延时库,51单片机c语言---延时
1,_nop_()适用于us级的少量延时 标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果. 这在汇编语言中很容易实现,写几个nop就行了.本文引用地址:htt ...
最新文章
- smack连接远程openfire连接超时-No response received within reply timeout. Timeout was 5000ms (~5s).
- Windows Server 2008 RemoteApp(四)---发布应用程序
- 还觉得linux命令难吗,看这篇2w多字的linux命令详解,通俗易懂
- Windows程序闪退Windows日志捕获Kernelbase模块错误
- SpringMvc和Mybatis整合需要配置的xml
- 《金色梦乡》金句摘抄(三)
- chrome控制台如何把vw显示成px_【CSS】rem,em,px的区别和使用场景
- 大理,徐娘半老的蝴蝶泉
- 使用Android OpenGL ES 2.0绘图之二:定义形状
- Python reversed()函数
- 如何通过 WinUSB 功能访问 USB 设备
- vs2010操作excel 需要安装office2010
- idea中lombok插件安装
- 技术面试最后反问面试官的问题合集
- 不值一提?开源CRM是否值得应用
- Python优化算法05——蚁群算法和免疫优化算法
- 电子护照阅读器便捷通行管理系统
- 分布式链路追踪opentracing-go jaeger小示例
- 制作一个简单HTML西安旅游网页(HTML+CSS)
- Java评论点赞推送系统_推送(评论,点赞,关注)