久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1037|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)端口使用問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:192020 發(fā)表于 2024-11-14 11:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)教下STC單片機(jī)可以用指針變量來控制端口P0、P1這些嗎?正常是sfr P0=0x80;P0=0xAA;能不能用變量的方法來控制?可以的話c語言應(yīng)該怎么寫?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:161164 發(fā)表于 2024-11-14 16:08 | 只看該作者
STC只接受sfr定義端口,然后控制
回復(fù)

使用道具 舉報(bào)

板凳
ID:1109793 發(fā)表于 2024-11-14 16:49 | 只看該作者
uchar aaa;
P0 = aaa;這樣嗎?
uchar *bbb;
bbb = @aaa;
P0 = *bbb;這樣?
回復(fù)

使用道具 舉報(bào)

地板
ID:404160 發(fā)表于 2024-11-14 17:16 | 只看該作者
通過改變指針的值來操作不同的IO端口可以實(shí)現(xiàn)的。通過修改指針的指向,讓它指向不同的端口地址,從而實(shí)現(xiàn)控制不同的端口。以下是一個(gè)示例,展示通過改變指針的值來控制不同的端口:

c
#include <reg51.h>

// 定義端口地址
#define P0_ADDRESS 0x80
#define P1_ADDRESS 0x90

void main() {
    unsigned char xdata *port;  // 定義指針變量
   
    // 指向P0端口
    port = (unsigned char xdata *)P0_ADDRESS;
    *port = 0xAA;  // 控制P0端口輸出0xAA
   
    // 改變指針指向P1端口
    port = (unsigned char xdata *)P1_ADDRESS;
    *port = 0x55;  // 控制P1端口輸出0x55

    while (1) {
        // 主循環(huán)
    }
}
在這個(gè)示例中,定義了一個(gè)指針port,并通過改變?cè)撝羔樀闹赶騺砜刂撇煌亩丝凇J紫龋羔樦赶騊0端口,并設(shè)置輸出值為0xAA;然后,指針指向P1端口,并設(shè)置輸出值為0x55。

通過這種方法,你可以靈活地使用指針來控制不同的端口。
回復(fù)

使用道具 舉報(bào)

5#
ID:624769 發(fā)表于 2024-11-14 19:06 | 只看該作者
飛云居士 發(fā)表于 2024-11-14 17:16
通過改變指針的值來操作不同的IO端口可以實(shí)現(xiàn)的。通過修改指針的指向,讓它指向不同的端口地址,從而實(shí)現(xiàn)控 ...

你是夢(mèng)里學(xué)的 51 么?
你知道51的 高位地址 0x80~0xFF 直接訪問 和  間接訪問的區(qū)別么?
你知道不知道 當(dāng) SP = 0x80 的時(shí)候,執(zhí)行入棧 操作不會(huì)改變 P0 的值是什么原因么?
回復(fù)

使用道具 舉報(bào)

6#
ID:161164 發(fā)表于 2024-11-14 23:25 | 只看該作者
188610329 發(fā)表于 2024-11-14 19:06
你是夢(mèng)里學(xué)的 51 么?
你知道51的 高位地址 0x80~0xFF 直接訪問 和  間接訪問的區(qū)別么?
你知道不知道  ...

一眼AI回答
回復(fù)

使用道具 舉報(bào)

7#
ID:192020 發(fā)表于 2024-11-15 09:07 | 只看該作者
xiaobendan001 發(fā)表于 2024-11-14 16:49
uchar aaa;
P0 = aaa;這樣嗎?
uchar *bbb;

uchar *bbb;
bbb = &P0;
*bbb = 0xff;
差不多這意思,試了下(*(unchar * 0x80)) = 0xff是不行的
回復(fù)

使用道具 舉報(bào)

8#
ID:192020 發(fā)表于 2024-11-15 09:08 | 只看該作者
lkc8210 發(fā)表于 2024-11-14 16:08
STC只接受sfr定義端口,然后控制

所以是不行的嗎?是51的都不行還是說STC的不行
回復(fù)

使用道具 舉報(bào)

9#
ID:1109793 發(fā)表于 2024-11-15 12:10 | 只看該作者
Graves 發(fā)表于 2024-11-15 09:07
uchar *bbb;
bbb = &P0;
*bbb = 0xff;

&P0是個(gè)啥操作?P0本來就是個(gè)地址啊
uchar* ppp;
ppp = P0;
*ppp = 0x55;這樣應(yīng)該可以吧
回復(fù)

使用道具 舉報(bào)

10#
ID:1109793 發(fā)表于 2024-11-15 12:14 | 只看該作者
Graves 發(fā)表于 2024-11-15 09:07
uchar *bbb;
bbb = &P0;
*bbb = 0xff;

好像PPP = P0不行,=0x80;能編譯,但是好像也不起作用。為何要這么用呢?
回復(fù)

使用道具 舉報(bào)

11#
ID:161164 發(fā)表于 2024-11-15 13:52 | 只看該作者
xiaobendan001 發(fā)表于 2024-11-15 12:10
&P0是個(gè)啥操作?P0本來就是個(gè)地址啊
uchar* ppp;
ppp = P0;

P0被定義為端口0的寄存器
ppp = P0是把端口0的電平,化為一個(gè)地址
如 P0 讀到 1110 1110 (0xEE)
*ppp = 0x55就是把0x55放到地址為0xEE的內(nèi)存內(nèi)
回復(fù)

使用道具 舉報(bào)

12#
ID:161164 發(fā)表于 2024-11-15 13:54 | 只看該作者
Graves 發(fā)表于 2024-11-15 09:08
所以是不行的嗎?是51的都不行還是說STC的不行

STC的和ATMEL 的51都不行
其他51沒用過

評(píng)分

參與人數(shù) 1黑幣 +15 收起 理由
Graves + 15 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

13#
ID:1034262 發(fā)表于 2024-11-15 14:47 | 只看該作者
傳統(tǒng)的51不支持指針訪問特殊功能寄存器(0x80~0xff),但STC的擴(kuò)展在xdata的特殊功能寄存器可以用xdata指針訪問的。
回復(fù)

使用道具 舉報(bào)

14#
ID:192020 發(fā)表于 2024-11-15 16:01 | 只看該作者
xiaobendan001 發(fā)表于 2024-11-15 12:10
&P0是個(gè)啥操作?P0本來就是個(gè)地址啊
uchar* ppp;
ppp = P0;

不是很理解,P0是地址的話那P0=0xAA是什么操作?
回復(fù)

使用道具 舉報(bào)

15#
ID:192020 發(fā)表于 2024-11-15 16:07 | 只看該作者
xiaobendan001 發(fā)表于 2024-11-15 12:14
好像PPP = P0不行,=0x80;能編譯,但是好像也不起作用。為何要這么用呢?

需要模擬通訊的設(shè)備有點(diǎn)多,而且又是同一個(gè)協(xié)議,但是端口不一樣。這時(shí)想到幾種方法
①模擬通訊代碼全部復(fù)制粘貼一遍,但是代碼量就太大擠不進(jìn)
②if_else換端口,要加多個(gè)參數(shù),也不太好改端口
所以想把端口當(dāng)參數(shù)來傳,那模擬的通訊只要一份就行
回復(fù)

使用道具 舉報(bào)

16#
ID:161164 發(fā)表于 2024-11-16 22:18 | 只看該作者
Graves 發(fā)表于 2024-11-15 16:07
需要模擬通訊的設(shè)備有點(diǎn)多,而且又是同一個(gè)協(xié)議,但是端口不一樣。這時(shí)想到幾種方法
①模擬通訊代碼全部 ...

沒辦法,用51就是要這樣
只能用方法2
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品91久久久久久再现 | 国产精品无码专区在线观看 | 亚洲一区二区三区免费 | 亚洲国产成人精品久久久国产成人一区 | 欧美成人精品一区二区三区 | 精品久久久久国产 | 精品久久香蕉国产线看观看亚洲 | 欧美极品在线 | 久久精品小视频 | 欧美成视频 | 99re视频在线 | 黄色在线观看国产 | 欧美亚洲国产一区二区三区 | a级在线免费视频 | 日韩www视频| 区一区二在线观看 | 成人夜晚看av | 亚洲欧美日韩久久久 | 久久久不卡网国产精品一区 | 羞羞的视频在线观看 | 国产激情一区二区三区 | 在线一区二区三区 | 国产精品成人国产乱一区 | 男女搞网站 | 欧美亚洲一区二区三区 | 日韩电影中文字幕 | 成人av看片| 成年人网站国产 | 国产91丝袜在线播放 | 欧美一级久久 | 91精品国产一区二区三区 | 精品一区二区久久久久久久网站 | 在线一区视频 | 欧美亚洲视频在线观看 | 欧美电影网 | 国产一级在线 | 伊人影院99 | 99re热精品视频国产免费 | 美女国内精品自产拍在线播放 | 久99久视频 | 国产一区2区 |