① 51單片機調用子程序問題
直接跳回主程序,再初始化。
② 51鍗曠墖鏈轟負浠涔堜笉鑳戒粠瀛愮▼搴忕洿鎺ヨ煩杞鑷充富紼嬪簭
51鍗曠墖鏈轟笉鑳戒粠瀛愮▼搴忕洿鎺ヨ煩杞鑷充富紼嬪簭鏄鍥犱負娌℃湁瑁よ¥姝g『緙栬緫瀛愮▼搴忚皟鐢ㄨ鍙ャ傜紪杈戝瓙紼嬪簭鐨勮皟鐢ㄨ鍙ヨ捐′笉瑙勮寖浼氬艱嚧鏃犳硶榪涜岃漿鎹㈣儭鐗╃畝銆傛牴鎹鏌ヨ㈢浉鍏寵祫鏂欎俊鎮寰楃煡浣跨敤鍗曟満鐗囧繀欏誨眰嬈″垎鋩傞敭鏄庯紝涓嶅厑璁鎬駭鐢熷唴澶栧眰寰鐜浜ゅ弶銆
③ 51單片機怎麼把多個子程序做成頭文件,然後調用
標準的做法:
timer.c 裡麵包含了函數聲明,全局變數,函數體,
timer.h 裡面使用#ifndef 語句,並且將外部需要使用的變數或函數加extern;
---------------------------------------------------
例:
timer.c:
#include "timer.h"
int timerCnt;
int timerStatu;
void TimerStart();
void TimerStop();
void TimerInit();
void TimerStart()
{}
void TimerStop()
{}
void TimerInit()
{}
--------------------------------------------------------
timer.h:
#ifndef __TIMER_H_
#define __TIMER_H_
//如果外部需要使用這些變數或函數,直接包含頭文件即可。
//如果不對外開放的函數,就不需要添加
//註:在C源文件中,函數聲明要補全
extern int timerCnt;
extern int timerStatu;
extern void TimerStart();
extern void TimerStop();
extern void TimerInit();
#endif
④ 51單片機實驗:無符號雙位元組乘法運運算元程序
以前搞的子程序庫里的
(5) 標號: MULD 功能:雙位元組二進制無符號數乘法
入口條件:被乘數在R2、R3中,乘數在R6、R7中。
出口信息:乘積在R2、R3、R4、R5中。
影響資源:PSW、A、B、R2~R7 堆棧需求: 2位元組
MULD: MOV A,R3 ;計算R3乘R7
MOV B,R7
MUL AB
MOV R4,B ;暫存部分積
MOV R5,A
MOV A,R3 ;計算R3乘R6
MOV B,R6
MUL AB
ADD A,R4 ;累加部分積
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 ;計算R2乘R7
MOV B,R7
MUL AB
ADD A,R4 ;累加部分積
MOV R4,A
MOV A,R3
ADDC A,B
MOV R3,A
CLR A
RLC A
XCH A,R2 ;計算R2乘R6
MOV B,R6
MUL AB
ADD A,R3 ;累加部分積
MOV R3,A
MOV A,R2
ADDC A,B
MOV R2,A
RET