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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機程序問題 請問,這樣的表達有沒有問題?

[復制鏈接]
跳轉到指定樓層
樓主
ID:706724 發(fā)表于 2024-3-1 19:32 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大神,這樣的描述對不對,總感覺怪怪的,感謝指點一下.
  1. #inclde"STC8GXXXX.H"

  2.   sbit P1^1=LED;  燈具
  3.         sbit P1^2=SW;   開關
  4.         
  5. void main()
  6. {
  7.     P0M0 = 0x00; P0M1 = 0x00;
  8.     P1M0 = 0x00; P1M1 = 0x00;
  9.     P2M0 = 0x00; P2M1 = 0x00;
  10.     P3M0 = 0x00; P3M1 = 0x00;
  11.     P4M0 = 0x00; P4M1 = 0x00;
  12.     P5M0 = 0x00; P5M1 = 0x00;
  13.     P6M0 = 0x00; P6M1 = 0x00;
  14.     P7M0 = 0x00; P7M1 = 0x00;

  15.         
  16.         
  17.     while (1)
  18.     {
  19.         if (LED == 0xff)  // 燈亮時,開關關閉
  20.         {
  21.             SW = 0x00;   // 設置P5口輸出為高電平
  22.         }
  23.         else
  24.         {
  25.            LED = 0x00;     // 燈不亮
  26.                                          SW =0xff;      //  開關開啟
  27.         }
  28.                         
  29.                                 。。。。。
  30.                                 
  31.                 switch(num)
  32.                         {
  33.                                         case 1:SW=~SW;LED=~LED;break;
  34.                                         case 2:;break;
  35.                                         case 3:;break;
  36.                                         case 4:;break;
  37.                                         case 5:;break;
  38.     }
  39. }
復制代碼



復制代碼


1.png (21.51 KB, 下載次數(shù): 93)

1.png

1709292043548.jpg (3.81 MB, 下載次數(shù): 99)

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

使用道具 舉報

沙發(fā)
ID:277550 發(fā)表于 2024-3-1 23:37 | 只看該作者
#inclde"STC8GXXXX.H"

sbit LED = P1^1;        //燈具
sbit SW  = P1^2;        //開關
   
void main(){
    P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

      
      
    while (1){
        if(LED == 1){        // 燈亮時,開關關閉
            SW = 0;                // 設置P5口輸出為高電平
        }else{
           LED = 1;                // 燈不亮
                        SW = 1;                // 開關開啟
        }
                // 。。。。。。。
                switch(num){
                        case 1:SW=~SW;LED=~LED;break;
                        case 2:;break;
                        case 3:;break;
                        case 4:;break;
                        case 5:;break;
                }
    }
}
回復

使用道具 舉報

板凳
ID:1109793 發(fā)表于 2024-3-2 07:17 | 只看該作者
devcang 發(fā)表于 2024-3-1 23:37
#inclde"STC8GXXXX.H"

sbit LED = P1^1;        //燈具

~也不是位操作,我還沒試過用在位操作會怎樣
回復

使用道具 舉報

地板
ID:342822 發(fā)表于 2024-3-2 10:52 | 只看該作者
文心一言人工智能對你的問題回復:
從你給出的代碼片段來看,存在幾個問題。以下是對這些問題的解釋和修正建議:

頭文件包含錯誤:

c
#inclde"STC8GXXXX.H"
這一行應該是:

c
#include "STC8GXXXX.H"
sbit定義錯誤:

c
sbit P1^1=LED;  燈具  
sbit P1^2=SW;   開關
sbit的定義方式可能不正確。通常,sbit`是用來定義單片機某個位地址上的單個位的,但具體定義方式依賴于你使用的單片機庫。正確的定義方式可能類似于:

c
sbit LED = P1^1;  // 定義P1.1為LED  
sbit SW = P1^2;   // 定義P1.2為SW
在main函數(shù)中定義變量:
在main函數(shù)中,你使用了num這個變量,但沒有定義它。你需要在使用之前定義它,例如:

c
unsigned char num = 0;
邏輯錯誤:
在while(1)循環(huán)中,你檢查了LED的值,但LED是一個sbit,它應該是一個位地址,不應該直接與0xff比較。你可能是想檢查P1的某個位來確定LED的狀態(tài)。
switch語句中未使用的變量:
在switch語句中,你使用了num變量,但在while(1)循環(huán)中并沒有修改它的值,這可能導致switch語句中的代碼永遠不會被執(zhí)行。
邏輯混亂:
在while(1)循環(huán)中,你先檢查了LED的狀態(tài),然后又設置了LED和SW的值。這種邏輯可能不是你想要的。
基于上述分析,以下是一個修改后的代碼示例:

c
#include "STC8GXXXX.H"  
  
sbit LED = P1^1;  // 定義P1.1為LED  
sbit SW = P1^2;   // 定義P1.2為SW  
  
void main()  
{  
    P0M0 = 0x00; P0M1 = 0x00;  
    P1M0 = 0x00; P1M1 = 0x00;  
    P2M0 = 0x00; P2M1 = 0x00;  
    P3M0 = 0x00; P3M1 = 0x00;  
    P4M0 = 0x00; P4M1 = 0x00;  
    P5M0 = 0x00; P5M1 = 0x00;  
    P6M0 = 0x00; P6M1 = 0x00;  
    P7M0 = 0x00; P7M1 = 0x00;  
  
    unsigned char num = 0; // 定義并初始化num變量  
  
    while (1)  
    {  
        if (SW == 0)  // 假設SW為0時表示開關關閉,LED亮  
        {  
            LED = 1;   // 設置LED亮  
        }  
        else  
        {  
            LED = 0;   // 設置LED滅  
        }  
  
        // 根據(jù)num的值執(zhí)行相應的操作  
        switch(num)  
        {  
            case 1:  
                SW = ~SW; // 切換SW的狀態(tài)  
                LED = ~LED; // 切換LED的狀態(tài)  
                break;  
            // 其他case可以根據(jù)需要添加  
            default:  
                break;  
        }  
  
        // 可以根據(jù)需要修改num的值,例如:  
        // num = (num + 1) % 6; // 使num在1到5之間循環(huán)  
    }  
}
請注意,上述代碼只是一個示例,你可能需要根據(jù)你的具體硬件和需求進行修改。
回復

使用道具 舉報

5#
ID:1110945 發(fā)表于 2024-3-2 11:09 | 只看該作者
波浪號“~”是按位取反,無論是1位,8位,還是32位,運算后每一位都會變成
和之前相反的數(shù)字,之前是1就會變成0,之前是0就會變成1。
回復

使用道具 舉報

6#
ID:34149 發(fā)表于 2024-3-2 13:40 | 只看該作者
文心一言這么厲害嗎?
看不出來有什么漏洞。
如何使用這個用這個超級智能的工具呢 ?
好想讓她幫我寫代碼
回復

使用道具 舉報

7#
ID:883242 發(fā)表于 2024-3-2 15:34 | 只看該作者
為什么不編譯一下呢?
回復

使用道具 舉報

8#
ID:1102070 發(fā)表于 2024-3-6 12:49 來自手機 | 只看該作者
這樣表達也是可以的。反過來一般情況下。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久免费视频1 | 亚洲综合天堂网 | 成人在线中文字幕 | 国产欧美久久精品 | 午夜影院| 欧美日韩在线一区二区三区 | 一级久久久久久 | 夜夜骑av| 亚洲成人国产精品 | 亚洲一区在线播放 | 中国一级特黄视频 | 精品视频在线免费观看 | 久久成人精品 | 久久国产精彩视频 | www.国产精 | 亚洲一区三区在线观看 | 免费高潮视频95在线观看网站 | 日韩在线一区二区三区 | 国产一区二区三区视频免费观看 | 亚洲精品国产偷自在线观看 | 国产乱码精品一区二区三区五月婷 | 亚洲精品欧美一区二区三区 | 欧美 日韩 视频 | 综合精品 | a级毛片国产 | 亚洲精品一区二区 | 伊人精品在线视频 | 成人精品一区二区三区中文字幕 | 久久久久国产 | 国精产品一品二品国精在线观看 | 男女网站视频 | 久久久久久av | 99re热精品视频 | 国产探花在线精品一区二区 | 亚洲精品视频免费 | 日韩在线免费观看视频 | 日日爱视频| 亚洲另类视频 | 国产福利91精品一区二区三区 | 成年免费大片黄在线观看一级 | 7777久久 |