导航:首页 > 编程语言 > 单片机可编程外围芯片

单片机可编程外围芯片

发布时间: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产品型号、规格多,各具特色,能满足不同领域应用需求。

阅读全文

与单片机可编程外围芯片相关的资料

热点内容
java聊天窗口 浏览:976
单片机控制阵列led灯 浏览:577
白鹿用的什么APP修图 浏览:499
阿里云轻量应用服务器ssh无法连接 浏览:794
员工福利系统源码 浏览:982
数据加密如何设置 浏览:570
php取余运算 浏览:153
php如何压缩图片大小 浏览:137
编程三阶教程 浏览:983
pdf颜色查看 浏览:469
怎么用指令停用命令方块java 浏览:406
鼠标命令行 浏览:567
如何朗读pdf 浏览:746
压缩机启动后继电器发烫 浏览:405
小学编程项目学习 浏览:557
net编译运行原理 浏览:786
加密电脑的文件拷出来打不开 浏览:366
可达性算法根 浏览:208
ibm的服务器怎么安装系统 浏览:492
pdftomobi在线 浏览:797