只需一步,快速開始
熱門: 51單片機 | 24小時必答區 | 單片機教程 | 單片機DIY制作 | STM32 | Cortex M3 | 模數電子 | 電子DIY制作 | 音響/功放 | 拆機樂園 | Arduino | 嵌入式OS | 程序設計
使用道具 舉報
肯定是你那個程序用的頭文件是 at89x52.h 吧,,在這個頭文件里已經定義了好了P3_0的,P3^0是不能直接使用的哦,必須要把P3^0定義為一個sbit的變量才可以.
那肯定是因為頭文件是 reg52.h吧 這個頭文件里面沒有定義P2_7 ,所以必須手工定義sbit DUAN=P2^7
#include"AT89x52.h" #include"intrins.h" #define uint unsigned int #define uchar unsigned char sbit WEI=P2^7; //U2 74HC573的LE端 數碼管的位選端 sbit SJ=P1^4; //LED發光管的使能端 這個程序里有AT8952 怎么還能用P2^7??
這么說把 reg52.h 里沒有定義P2_7 所以不能用 P2_7
而P2^7這個不是自己定義的是c51的語言規定的,所以P2^7在 reg52.h和 at89x52.h里都能使用,而P2_7 則只能在at89x52.h里使用
因為P3^0不是一個變量,你給他賦值當然會提示錯誤,這是不符合語法的,你要給他賦值首先得定義它才行
比如說在頂部定義
sbit p30=P3^0;
然后賦值的時候就寫p30=0或者p30=1
這樣就不會提示錯誤了.
在reg51.h中 P3是這樣定義的
sfr P3 = 0xB0;
而P3^0 的意思是P3口的第0位,但P3^0 這是一個表達式,就像是1+1一樣 ,所以這是不能直接使用的, 你必須把他定義為一個sbit類型的變量才能使用.
本版積分規則 發表回復 回帖后跳轉到最后一頁
手機版|小黑屋|51黑電子論壇 | 管理員QQ:125739409;技術交流QQ群281945664
Powered by 單片機教程網