- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机外接电路精要
单片机外接电路
一.各个外接电路原理:
1.最小系统及二极管电路原理图:
图1 最小系统及二极管电路原理图
应用89C51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:???
1、具有上电复位和手动复位功能。
2、使用单片机片内程序存储器。?
3、具有基本的人机交互接口。按键输入、LED显示功能。?
4、具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
(1) 复位及振荡电路
复位及振荡电路图
复位电路由按键复位和上电复位两部分组成。AT89S系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为8.2K和10uF。
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。MCS51 LITE使用22.1184MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。 蜂鸣器电路
蜂鸣器电路图
蜂鸣器使用PNP三极管进行驱动控制,板上使用的是直流蜂鸣器,当P3.7输出低电平时,蜂鸣器鸣叫。由于蜂鸣器为感性原件,可以在两端并接一个二极管来起到泄放作用。
RS232串口电路
图4 RS232串口电路图
RS232串口电路使用MAX232CPE作为电平转换芯片,并通过套件提供的串口电缆连接到计算机背后的COM口(9针D型口),用于MCS51 LITE与上位机通信以及和其他串口设备的数据交互。 需要注意的是这里在电路板上对TxD和RxD进行了交叉,对应使用的DB9接头类型为Female,使用的线缆为延长线,也叫做直连线,线缆一头为Female一头为Male。如果电路板上不将RxD和TxD交叉,就应该采用Male类型的接头和交叉线缆(两头均为Female)连接。
图5 1602液晶显示器电路原理图
3.数码管电路原理图:
图6 数码管电路原理图
八段数码显示管MCS51 LITE包含两个共阳8段数码管显示器,使用动态扫描方式驱动。共阳极作为位选有PNP三极管驱动连接在P口,八位段选在通过Ω限流后连接在单片机的P口上。由于数码管是共阳的,所以当驱动信号为0时对应的数码管才点亮
图7 矩阵按键原理电路图
矩阵键盘原理:
矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。 扫描法
按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平,然而,第2行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下同样使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。#includereg52.h
#define uint unsigned int
void delay(uint z)
{
uint i,j;
for(i=z;i0;i--)
for(j=110;j0;j--);
}
void main()
{
P2=0x07;
P0=0xfe;
while(1)
{
P0=P0-1;
delay(500);
}
}
,2.1602液晶显示“Everyone is number one!”
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P3^5;
sbit lcden=P3^4;
uchar num;
uchar table1[]=Everyone is;
uchar tab
文档评论(0)