導航:首頁 > 操作系統 > 單片機porte是什麼

單片機porte是什麼

發布時間:2022-06-14 04:12:47

① PIC 單片機PSP應用

郭德綱這首歌

② PIC16F877單片機的5個埠RA~RE各具什麼特色分別適用於什麼場合

1. PORTA 總共有6個位(RA0~RA5),PORTA埠模塊有3個特殊的寄存器:埠數據寄存器PORTA,埠方向控制寄存器TRISA,A/D轉換控制寄存器ADCIN1;PORTA埠各引腳的所復合的功能相同,各引腳的內部結構也不一致。對三個寄存器的設置可控制PORTA埠作為數字I/O埠的應用,而系統重置後,PORTA自動成為模擬輸入狀態,可讀取模擬輸入訊號;

PORTB 是8位寬度的數字I/O埠(RB0~RB7),一般只有RB6和RB7兩個引腳存在復用功能,它們在晶元編程燒寫和在線調試時,RB6作為編程串列時鍾引腳PGC,RB7作為編程串列數據引腳PGM,這是一種特殊模式的功能復用類型,它不可能出現在晶元正常工作時。PORTB模塊有關的特殊寄存器有4個,PORTB埠作為數字I/0埠的應用可以撰寫程序規劃輸入輸出方向、狀態;

PORTC 總共有8個位(RC0~RC7),有關的特殊寄存器有2個,單片機上電之後,輸出數據寄存器PORTC的值隨機值,方向寄存器TRISC的值全為1,因此,起始狀態下各個引腳均處於輸入方式,對外呈現高阻狀態,通過定義TRISC寄存器的值,可以分別指定引腳設置為輸入還是輸出方式。除了可作為數位I/O外,還和一些特殊功能的周邊電路共享接腳;

PORTC 是8位寬度的雙向數字I/O埠(RC0~RC7),有關的特殊寄存器有3個,它在基本輸入/輸出功能的基礎上,增加並行從動埠功能;另外每個引腳作I/O引腳使用時,輸入信號都要經過其內部的施密特觸發輸入緩沖器,對於輸入信號波形可以起整形作用,而工作於並行從動埠方式時則是經過TTL緩沖器輸入。PORTC可作一般數字I/O,並與PSP(Parallel Slave Port)並列傳輸介面共享。當整體系統需要多單片機時,彼此可以經由並列傳輸介面來快速傳輸資料;
PORTE 只有3條引腳的雙向I/O埠(RE0~RE2),有關的特殊寄存器有3個,它在基本輸入/輸出功能的基礎上,增加並行從動埠,模擬量輸入功能。單片機上電之後,輸出數據寄存器PORTE的值隨機值,方向寄存器TRISC的值全為1,因此,起始狀態下各個引腳均處於輸入方式,對外呈現高阻狀態,通過定義TRISE寄存器的值,可分別指定引腳設置為輸入還是輸出方式。

2.由RA4的內部結構可知,RA4和PORTA埠的其它埠有很大的不同,它沒有被復用成模擬信號輸入。一般其作用有個:普通數字I/O埠和定時TMR0的外部數字脈沖輸入埠(TOCKI)。RA4特徵如下:

(1)輸入時與其它埠一樣,都是呈現高阻態。

(2)輸出低電平時,與其它埠一樣,吸入埠外部電路的電流,引腳上的電壓接近0V。

(3)輸出高電平時,與其它埠有很大不同,RA4埠只有一個N溝道場效應驅動管,沒有P溝道場效應驅動管,所以RA4引腳處於漏極開路狀態,輸出高電平時為懸空狀態。改進方法:盡量設計成低電平有效,若需要高電平來驅動外圍電路時,必須在RA4引腳上外加上拉電阻。上拉電阻的取值范圍為1KΩ~10KΩ左右。

3.是,選項寄存器POTION也是一個可讀/寫的寄存器,包含TMR0,分頻器和埠RB有關的控制位。埠RB0與外部中斷INT共同一引腳,與該引腳有關的2個控制位含義如下:

1=RB 埠弱上拉電路禁止

0=RB 埠弱上拉電路使能

所以該埠內部每條引腳的弱上拉電路是不可單獨編

③ porte是什麼意思

Porte 英[pɔ:t] 美[pɔrt, port]
n. (=Sublime Porte) 土耳其宮廷;
[例句]The16th Paris Chocolate Exhibition's opening ceremony was held in Paris Portede Versailles Exhibition Center, France.
法國巴黎第16屆巧克力展在巴黎凡爾賽門展覽中心拉開了序幕。

④ 關於STM32GPIO口的問題

void GPIO_Write(GPIO_TypeDef* GPIOx, u16 PortVal)可以實現,要學會使用庫函數。另外,每一個GPIO都有相應的一組寄存器,實現IO輸出的寄存器有好幾個,如:置位復位寄存器、輸出寄存器。建議一下,學stm32要先學會它的編程思路。如果你明白了庫函數,我相信只要按照常式練習練習就能上手了

⑤ 單片機 pic c語言

PORTG是單片機裡面的寄存器,而lcd_wz8是你在內存裡面開出來的一個位元組空間。
所以對lcd_wz8空間操作,當然不會對PORTG操作了。

你可以試一下這個結構
union {
struct
{
unsigned b0: 1 _at_ RG0;
unsigned b1: 1 _at_ RG1;
unsigned b2: 1 _at_ RG2;
unsigned b3: 1 _at_ RG3;//bit_wz8的低四位
unsigned b4: 1 _at_ RA0;
unsigned b5: 1 _at_ RA1;
unsigned b6: 1 _at_ RA2;
unsigned b7: 1 _at_ RA3; //bit_wz8的高四位
} bit_wz8;
unsigned char xs_wz8;
} lcd_wz8;

這個聯合我也沒試過,你可以試下下。
也就是分配變數時候,指定存儲地址。把存儲地址跟寄存器地址匹配成一樣,應該就可以了。

⑥ 在51單片機上如何讓數碼管流水式的顯示16進制數,

這個簡單啊,你建一個表就行了,直接取表數據放上去顯示。

數碼管用動態掃描。下面是AVR的代碼,你參考一下就行了。

#include <iom64v.h>
#include <macros.h>
#define SEG PORTA // 數碼管段碼
#define SCAN PORTC // 數碼管位選
#define uchar unsigned char
#define uint unsigned int

///////////////////////////////////////////////////////////
// Name : 段碼和位選
// In :
// Out :
// Function :
// Explain : 數碼管為共陽,低電平時選通數碼管
///////////////////////////////////////////////////////////
uchar seg[]={ 0xc0,0xf9,0xa4,0xb0,0x99, // 0-4 (共陽)
0x92,0x82,0xf8,0x80,0x98, // 5-9
0xff }; // 滅
uchar sel[]={ 0xfe,0xfd,0xfb,0xf7, // 從右向左選擇(低電平選通)
0xef,0xdf,0xbf,0x7f };

///////////////////////////////////////////////////////////
// Name : 8個數碼管的狀態
// In :
// Out :
// Function :
// Explain : 10代表滅,其它數字代表真實的顯示值
///////////////////////////////////////////////////////////

uchar display[]={ 7,10,10,10,10,10,10,10, // 右邊第一個數碼管顯示7,第二個滅……
6,7,10,10,10,10,10,10, // 右邊第一個數碼管顯示6,第二個顯示7,第三個滅……
5,6,7,10,10,10,10,10, // 右邊第一個數碼管顯示5,第二個顯示6,第三個顯示7,第四個滅……
4,5,6,7,10,10,10,10, // 以此類推,得到76543210向左移動的效果!
3,4,5,6,7,10,10,10,
2,3,4,5,6,7,10,10,
1,2,3,4,5,6,7,10,
0,1,2,3,4,5,6,7
};

///////////////////////////////////////////////////////////
// Name : 延時函數
// In :
// Out :
// Function : 用於延時一定時間
// Explain : 用12M晶振時,大概延時1ms,
///////////////////////////////////////////////////////////
void delay_1ms(uint x) // 用12M晶振時,延時1ms,
{
uint i,j;
for(i=0; i<x; i++)
for(j=0; j<1720; j++);
}

///////////////////////////////////////////////////////////
// Name : 埠定義
// In :
// Out :
// Function : 用於定義埠方向等
// Explain :
///////////////////////////////////////////////////////////
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xff; // PA口設置成輸出,數碼管段碼
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; // m103 output only
DDRC = 0xff; // PC口設置成輸出,數碼管位選
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x00;
}

///////////////////////////////////////////////////////////
// Name : 初始化函數
// In :
// Out :
// Function :
// Explain :
///////////////////////////////////////////////////////////
// call this routine to initialize all peripherals
void init_devices(void)
{
// stop errant interrupts until set up
CLI(); // disable all interrupts
XDIV = 0x00; // xtal divider
XMCRA = 0x00; // external memory
port_init(); // 埠初始化
MCUCR = 0x00;
EICRA = 0x00; // extended ext ints
EICRB = 0x00; // extended ext ints
EIMSK = 0x00;
TIMSK = 0x00; // timer interrupt sources
ETIMSK = 0x00; // extended timer interrupt sources
SEI(); // re-enable interrupts
// all peripherals are now initialized
}

///////////////////////////////////////////////////////////
// Name : 主函數
// In :
// Out :
// Function :
// Explain :
///////////////////////////////////////////////////////////
void main(void)
{
uint a,b,c,cnt;
init_devices(); // 初始化

delay_1ms(500);

while(1)
{
for(b=0; b<8; b++) // 總共顯示8幅(8個左移效果)
for(c=0; c<500; c++) // 顯示一幅,一幅包括8個數碼管的顯示值
{
SCAN=0xff; // 送數據時,先關閉顯示,以避免重影現象
SEG=seg[display[cnt+b*8]]; // 送數據
SCAN=~sel[cnt]; // 送出數據後,打開顯示
delay_1ms(1); // 延時1ms,動態掃描,讓人看得到
cnt++; // 指向下一個狀態
if(cnt==8) // 判斷是否取完8個數碼管的狀態
cnt=0;
};
}
}

⑦ PIC單片機清零指令 CLRF PORTD ;PORTD 清零 BCF PORTE ;RE0清零 這兩個清零指令除了一個是清除所有的,和

CLRF 影響標志位,BCF不影響標志位.並沒有其它的區別了,兩個指令運行的效率是一樣的.

⑧ 單片機為什麼能按位定址

以Atmega16單片機為例吧,這單片機的A、B、C、D四個埠的所有寄存器地址處於0x10~0x1B的地址范圍內,而單片機的SBI、CBI指令能將0x20之前所以地址中任意位清零或者置一。所以PORTB.2=1對應的匯編指令就是SBI 0x18,2。如果埠的地址大於0x20,那就只能使用IN、OUT指令完成了。

這是CVAVR中Atmega128單片機中語句編譯的結果:

; 182 PORTA.0=1;
SBI 0x1B,0
; 183 DDRA.2=0;
CBI 0x1A,2
; 184
; 185 PORTB.1=1;
SBI 0x18,1
; 186
; 187 PORTC.2=1;
SBI 0x15,2
; 188
; 189 PORTD.3=0;
CBI 0x12,3
; 190
; 191 PORTE.4=1;
SBI 0x3,4

對於PORTF和PORTG則不能這樣操作。

CVAVR是直接編譯這些語句的,沒有使用結構體。 並且結構體中也沒有PORTB.2這種寫法,結構體成員不能是直接的數值!

⑨ AVR單片機問題 undeclared identifier DDRE

這單片機有沒有E口?你把你包含的頭文件打開,看裡面都定義了什麼埠,沒有定義的,你用了就會出錯。

⑩ 飛思卡爾單片機串口中斷

如果是模擬, 得先虛擬串口對才行
如果是下到單片機中, 你看看你數據緩沖區有沒有問題
我不懂C

閱讀全文

與單片機porte是什麼相關的資料

熱點內容
程序員上海與北京 瀏覽:404
安卓手機的動態照片為什麼卡 瀏覽:538
ad編譯集成庫時最常見的問題 瀏覽:846
matlab微分方程編程 瀏覽:700
安卓手機如何打開esp文件 瀏覽:545
什麼app能安裝應用 瀏覽:199
手機用什麼app看電視劇電影好 瀏覽:603
導入原理圖為什麼文件夾不顯示 瀏覽:653
androidapp風格 瀏覽:209
php取伺服器url地址 瀏覽:293
linux時間調度演算法 瀏覽:769
單片機最小電路詳解 瀏覽:185
請求要求命令 瀏覽:806
電腦文件夾發微信顯示被佔用 瀏覽:295
手機怎麼看加密視頻 瀏覽:206
怎樣解壓手機es文件包 瀏覽:661
2017年學什麼編程 瀏覽:935
金融期貨pdf 瀏覽:694
程序員客棧的信息保密嗎 瀏覽:507
編程顯示器什麼意思 瀏覽:147