導航:首頁 > 編程語言 > 單片機可編程外圍晶元

單片機可編程外圍晶元

發布時間:2025-05-11 13:40:14

『壹』 8255A有你幾種工作方式埠A、埠B和埠C各可工作於那種方式

8255 有三種工作方式

方式0(基本輸入輸出方式):
不需任何選通信號,A口、B口、高半C口、低半C口,者可被設定為輸入或輸出。
作輸出口時輸出數據存鎖;作輸入口時輸入數據不存鎖。

方式1(選通輸入輸出方式):
A、B、C 三個口分為兩組。
A組包括A口及高半C口,A口可編程設定為輸入或輸出,高半C口作I/O控制及同步信號;
B組包括B口及低半C口,B口可編程設定為輸入或輸出,低半C口作I/O控制及同步信號;
A口、B口的輸入/輸出數據都被存鎖。

方式2(雙向匯流排方式):
A口(僅A口)作8位雙向匯流排,C口的PC3~PC7位用作I/O控制及同步信號;
B口及C口的PC0~PC2可編程設定為方式0或方式1工作。

『貳』 51單片機外圍模塊中,超聲波測距模塊上 STC11 晶元是什麼STC11、TL074和MAX232的作用都是什麼

STC11是一款STC單片機(STC單片機的一個系列,而不是一個具體的單片機型號),在這里的作用是根據收到的發送信號TRIG,發送一端超聲波波形給MAX232;還有個作用是根據接收到的超聲波波形,返回一段ECHO信號。
MAX232在這里做電平轉換,因為單片機給的波形是TTL波形,這里要轉換電平,提高發射功率。
TL074應該是對接收的超聲波波形進行濾波、放大、解調之類的

『叄』 怎麼寫單片機控制外圍晶元程序

兄弟,參加電子設計大賽吧??b題?
這個最重要的是看晶元資料,晶元資料內對通信方式,協議,時序,都有的,可以利用單片機自帶的通信介面,即埠第二功能。也可以自己制定時序。
這是24c02的程序。用的ATmega16;
最後祝你有個好成績
#include <iom16v.h>
#include <macros.h>
#include "delay.h"
#include "lcd.h"

#define uchar unsigned char
#define uint unsigned int

/**************************************************************************
* 函數名稱: ERROR();
* 功 能: 蜂鳴器報錯
* 參 數:無
* 描 述:PA0口置低可以鳴響蜂鳴器
**************************************************************************/
void ERROR()
{
uint i;
DDRA |= (1 << PA0);
PORTA &= ~(1 << PA0);
for( i = 0 ; i < 10000 ; i ++);
PORTA |= (1 << PA0);
}
//********************************************************************8
//*函數 向24c02發送一個位元組
//*名稱 wtwib();
//*參數 地址,數據
//*********************************************************************/
void wtwib(uchar ad,uchar da)
{ TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);//發送start
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x08)
ERROR();
TWDR =0xA0; //adress of e2prom
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x18)
ERROR();
TWDR =ad; //adress of the data
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x28)
ERROR();
TWDR =da; //send the data to the bus
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x28)
ERROR();
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);//send the stop signal
}
//=================================================================
//=======read a byte from 24c02
//========rtwib()
//==========need address
//================================================================
uchar rtwib(uchar ad)
{ uchar da;
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);//send the signal of start
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x08)
ERROR();
TWDR =0xA1; //adress of e2prom
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x18)
ERROR();
TWDR =ad; //adress of the data
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x28)
ERROR();
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);//send the signal of start
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x08)
ERROR();
TWDR =0xA1; //adress of e2prom
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x18)
ERROR();
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x58)
ERROR();
da=TWDR;
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);//send the stop signal
return da;
}
//========================================================
//====== send a page to the 24c02
//====== wtwis();
//=======need address and data and number;
//=========================================================
void wtwip(uchar ad,uchar n,uchar *da)
{ uchar i;
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);//發送start
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x08)
ERROR();
TWDR =0xA0; //adress of e2prom
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x18)
ERROR();
TWDR =ad; //adress of the data
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x28)
ERROR();
for(i=0;i<n;i++)
{ TWDR =da[i]; //send the data to the bus
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x28)
ERROR();
}
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);//send the stop signal

}
//====================================================
//========read a string from the 24C02
//========rtwis();
//========need address,number
//=====================================================
void rtwis(uchar ad,uchar *p,uchar n)
{ uchar i;
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);//send the signal of start
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x08)
ERROR();
TWDR =0xA1; //adress of e2prom
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x18)
ERROR();
TWDR =ad; //adress of the data
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x28)
ERROR();
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);//send the signal of start
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x08)
ERROR();
TWDR =0xA1; //adress of e2prom
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x18)
ERROR();
for(i=0;i<n;i++)
{ TWCR = (1<<TWINT) | (1<<TWEN)|(1<<TWEA);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != 0x50)
ERROR();
p[i]=TWDR;
}
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);//send the stop signal
}
void main()
{ uchar a[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},i=0;
init_lcd();
TWBR = 0x1F;
TWSR = 0x02;
for(i=0;i<16;i++)
wtwib( 0x00+i,i);

for(i=0;i<16;i++)
rtwib( 0x00+i);
for(i=0;i<16;i++)
a[i]=0;
for(i=0;i<16;i++)
send_d(a[i]+48);
}

『肆』 52單片機全稱

52單片機全稱STC89C52單片機。

STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統可編程Flash存儲器。在單晶元上,擁有靈巧的8位CPU和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。

單片機介紹:

單片機(Microcontrollers)又稱微控制器,由中央處理器、存儲器、輸入輸出埠(包括並行I/O、串列I/O、模數轉換器)、計時器和計數器等組成,具有完整數字處理功能的大規模集成電路。

微控制器是一種面向控制領域嵌入式應用的集成化計算機晶元,主要用於工業控制、數據處理、信號處理、智能儀器、通信產品及民用消費產品等自動控制產品與器件中。

通常也把它簡稱為MCU或μC,MCU配以適當的外圍設備和軟體就可構成一個計算機應用系統,所以也稱之為單片微型計算機,簡稱為單片機。

MCU的發展始於20世紀70年代中期,當時主要稱為單片機,由於工藝和集成度的限制,一個完整功能的MCU由兩塊集成電路組成。如Fairchild公司的單片機F8必須外接一塊專為F8設計的程序存儲單元電路3851。

第二階段為低性能MCU階段,雖已只用一塊晶元構成,但性能低,品種少。如Intel的MCS-48系列,晶元內含有中央處理器(CPU)、並行I/O口、計時器、隨機存取存儲器(RAM)和只讀存儲器(ROM)等,但其CPU功能不強,I/O的種類和數量少,存儲容量小。

只能應用於要求比較簡單的場合。第三階段是高性能微型計算機系統(MCS)發展階段,此時的MCU內部具有功能很強的CPU、比較多的輸入輸出電路和大容量的數據存儲器、程序存儲器,MCU產品型號、規格多,各具特色,能滿足不同領域應用需求。

閱讀全文

與單片機可編程外圍晶元相關的資料

熱點內容
如何理解php面向對象 瀏覽:96
macword轉pdf 瀏覽:848
python列表求交集 瀏覽:872
解壓包如何轉音頻 瀏覽:447
機明自動編程軟體源碼 瀏覽:325
php埠號設置 瀏覽:541
phperegreplace 瀏覽:320
androidgridview翻頁 瀏覽:537
ssh協議編程 瀏覽:634
如何開我的世界電腦伺服器地址 瀏覽:861
玄關pdf 瀏覽:609
程序員學習論壇 瀏覽:940
程序員的毒雞湯怎麼做 瀏覽:548
安卓怎麼降級軟體到手機 瀏覽:281
雲與伺服器入門書籍推薦產品 瀏覽:636
delphi編程助手 瀏覽:762
電腦遇到伺服器問題怎麼辦 瀏覽:515
加工中心編程結束方法 瀏覽:296
了解什麼是web伺服器 瀏覽:140
面向對象的編程的基本特徵 瀏覽:718