日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] 單片機同一IO口輸出兩組數組基于80C51,因為沒有多余的口可用,只能用同一IO口輸出兩組數組,高4位一組輸出0~9,低4位一組輸出0~15!試試看: MOV R0, #s1 ;數組一的指針 MOV R1, #s2 ;數組二的指針 LC

單片機同一IO口輸出兩組數組
基于80C51,因為沒有多余的口可用,只能用同一IO口輸出兩組數組,高4位一組輸出0~9,低4位一組輸出0~15!

試試看:

MOV R0, #s1 ;數組一的指針
MOV R1, #s2 ;數組二的指針
LCALL _HEBY_OUT ;調用子程序,合并輸出
......
;---------------------
_HEBY_OUT:
MOV A, @R0 ;取數組一的元素
ANL A, #0FH
SWAP A ;放到高四位
MOV R0, A
MOV A, @R1 ;取數組二的元素
ANL A, #0FH
ADD A, R0 ;合并
MOV P1, A ;輸出
RET


最佳答案:
“做而論道”同學正解。
用C來做更簡單, 子程序就一句話, 而且更加靈活, 想取數組那位直接給編號即可。

#include
#define dat_out P0
unsigned char str1[]={1, 2, 3, 5, 6, 7......};//數值不要超過15即可
unsigned char str2[]={15, 8, 6, 12, 3, 6, 4.....};
/***********************
str0:數組1 str1:數組2
n1:取數組1中的某位數
n2:取數組2中的某位數
************************/
void exp(unsigned char *str1, unsigned char *str2, unsigned char n1,unsigned char n2)
{
dat_out = ((str1[n1] << 4) & 0xf0) | (str2[n2] & 0x0f);
}
void main(void)
{
exp(str1, str2, 1, 3); //P0口高4位輸出str1數組的第1個元素"2"
// 低4位輸出str2數組的第3個元素"12"
//P0 = 0x2C
while(1);
}


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉