亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6902|回復: 5
打印 上一主題 下一主題
收起左側(cè)

51單片機C語言調(diào)用匯編子程序的簡便方法

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:716413 發(fā)表于 2020-4-23 06:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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數(shù)據(jù)口
;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程序中,先聲明外部函數(shù),不然編譯找不到函數(shù)錯誤,然后就如同C程序中調(diào)用C函數(shù)一樣

     binrlc(SBUF);   不要下劃線。
本程序89C51接收PC 串口來的數(shù)據(jù),送到74LS595驅(qū)動的LED顯示。

//89C51串口0方式驅(qū)動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);      //外部函數(shù)聲明

void uart(void) interrupt 4
{
if(RI)
{
    RI=0;
     binrlc(SBUF);    //調(diào)用匯編子程序,方式同C子程序一樣
         P1= SBUF;
}
else
    TI=0;
}
void main(void)
{
initUart();
EA=1;
while(1);
}

以上Keil代碼工程下載::
Keil工程文件.7z (13.52 KB, 下載次數(shù): 34)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:65297 發(fā)表于 2020-10-28 17:27 | 只看該作者
從C語言調(diào)用匯編語言中看到,從C語言傳遞數(shù)據(jù)到匯編語言里面的R7,可是沒有看到任何聲明R7的語句,請問我們怎么知道C語言的數(shù)據(jù)是傳給R7的?為什么不是R0或R5之類的寄存器???
回復

使用道具 舉報

板凳
ID:624769 發(fā)表于 2021-8-29 01:32 | 只看該作者
mkkop 發(fā)表于 2020-10-28 17:27
從C語言調(diào)用匯編語言中看到,從C語言傳遞數(shù)據(jù)到匯編語言里面的R7,可是沒有看到任何聲明R7的語句,請問我們怎 ...

規(guī)定,C語言傳參,Char的話, 第一變量 R7, 第二變量 R5, 第三變量 R3  short 的話,第一變量 R6,R7 第二變量R4,R5,第三變量 R2R3, long 的話 R4R5R6R7, 指針的話 R1R2R3 bit的話 C  返回值同理,
回復

使用道具 舉報

地板
ID:235200 發(fā)表于 2021-8-29 22:40 | 只看該作者
編譯出現(xiàn)A33的錯誤,下載的壓縮包沒有595匯編.asm,照上面的說明打了,編譯不能通過,無法驗證
回復

使用道具 舉報

5#
ID:262 發(fā)表于 2021-11-26 01:25 | 只看該作者
csmyldl 發(fā)表于 2021-8-29 22:40
編譯出現(xiàn)A33的錯誤,下載的壓縮包沒有595匯編.asm,照上面的說明打了,編譯不能通過,無法驗證

樓主現(xiàn)在已經(jīng)修復了
回復

使用道具 舉報

6#
ID:99987 發(fā)表于 2021-11-26 10:50 | 只看該作者
heicad 發(fā)表于 2021-11-26 01:25
樓主現(xiàn)在已經(jīng)修復了

您好怎么修復的?同樣的問題
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表