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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3523|回復: 7
打印 上一主題 下一主題
收起左側

單片機中如果位定義sbit定義整個字節會起到什么作用

[復制鏈接]
跳轉到指定樓層
樓主
ID:703220 發表于 2020-3-5 23:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg52.h"
sbit led1=P2;            //用位定義sbit定義了P2整個字節
typedef unsigned int u16;
void delay(u16 i)        //延時函數
{
        while(i--);
}
void main()
{
        led1=0x0f;       //這里我是想嘗試看這樣是否能實現整個字節的控制
        delay(50000);
        while(1)
        {
                led1=!led1;
                delay(5000);
        }
}
執行的結果是,我的51開發板上第一個小燈先不亮,一段時間后(約0.5s)第一個小燈閃爍,其余所有小燈都不亮。
請各位大神能指點一下,我是小白,剛學幾天


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

使用道具 舉報

沙發
ID:584814 發表于 2020-3-6 08:08 | 只看該作者
整個端口:#define lcd1 P2
按位取反:led1=~led1
回復

使用道具 舉報

板凳
ID:675145 發表于 2020-3-6 08:31 | 只看該作者
按道理來說,位應該定義不了字節,也沒有人這么教過!其實,我也不清楚,我是來學習的
回復

使用道具 舉報

地板
ID:299519 發表于 2020-3-6 09:13 | 只看該作者
這是定義端子的,建議規范操作。。
回復

使用道具 舉報

5#
ID:316880 發表于 2020-3-6 10:18 | 只看該作者
P2是特殊功能寄存器,sbit是位定義,一般是定義一位,一個字節8個位,這樣定義是不規范的,會報錯,因為P2已經被#include "reg52.h"里面定義了
回復

使用道具 舉報

6#
ID:612392 發表于 2020-3-6 10:50 | 只看該作者
P2是指P2^0-P2^7這八個IO口,sbit只能定義其中一個IO口。
應該改成這樣
sbit LED1=P2^0;
回復

使用道具 舉報

7#
ID:703220 發表于 2020-3-6 11:08 | 只看該作者
man1234567 發表于 2020-3-6 08:08
整個端口:#define lcd1 P2
按位取反:led1=~led1

可以講詳細一點嗎,你講的這兩條語句的作用我是知道的哈,我想知道為什么我用位定義sbit定義了整個端口,程序仍然執行,我想知道錯誤用法下,它執行的邏輯是什么
回復

使用道具 舉報

8#
ID:703220 發表于 2020-3-6 11:22 | 只看該作者
myemcu 發表于 2020-3-6 09:13
這是定義端子的,建議規范操作。。

我就是好奇
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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