|
1、在匯編文件中,程序前邊加上如下三句話就可以:
PUBLIC _delay, _binrlc ;定義公用子程序名,這里定義了兩個(gè)子程序(有下劃線)
LUOYUAN SEGMENT CODE ;程序段命名,LUOYUAN,叫啥名都可以
RSEG LUOYUAN
下邊放子程序(程序名要下劃線,其它標(biāo)號(hào)不要下劃線)
;匯編語(yǔ)言文件
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時(shí)鐘口;P3.4 74LS595數(shù)據(jù)口
;P3.5 工作指示
;**********************************************
_binrlc: CLR P3.2 ;鎖存
MOV A,R7
;XRL A,#0FFH ;顯示要取反
MOV R3,#8H
binrl1: CLR P3.3 ;時(shí)鐘位下降
RLC A ;連同進(jìn)位左移1位
MOV P3.4,C ;進(jìn)位到直接尋址位
SETB P3.3 ;時(shí)鐘位上升
DJNZ R3,binrl1
SETB P3.2 ;鎖存
CPL P3.5 ;取反閃亮
RET
END
2、在C程序中,先聲明外部函數(shù),不然編譯找不到函數(shù)錯(cuò)誤,然后就如同C程序中調(diào)用C函數(shù)一樣
binrlc(SBUF); 不要下劃線。
本程序89C51接收PC 串口來(lái)的數(shù)據(jù),送到74LS595驅(qū)動(dòng)的LED顯示。
//89C51串口0方式驅(qū)動(dòng)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)
2021-11-26 01:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|