- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二.开51单片机点亮流水灯
实验二:流水灯
做人如钱,外圆内方
准备材料
1.单片机最小系统(晶振,复位,电源带PL2303)
2.面包板(杜邦线,插线若干)
电阻1KΩ(8个),330Ω(8个)
PNP9012(就是S9012)三极管(8个)
74HC138(一套:0.1uf电容)
发光二极管(8个)。
硬件讲解
我们看下我们讲的这个STC89C52单片机,它有很多的引脚,我们经常拿来用的主要有P0、P1、P3、P2四组,每组有八个,一共32个端口。以P3组为例:有P3.0~P3.7这八个,这一组里面每一个都有一个用法相同的基本功能,就是能够读取外部传过来的电平信号和向外部输出电平信号,这样进进出出的是不是很有意思?所以叫它们为IO口。细心的同学会发现P3这组IO口都有一个另外的名字,比如P3.0又写了RXD这个名字,等等。是的,有两个名字的端口说明它们还有第二个功能,具体怎么用我们现在先不要去管它。想像一下,你的小车上有一个传感器和一个电机,你希望在某个时间点上读取到传感器的信号,然后你根据这个信号来给电机下达一个命令让其是正转、反转、停止、加速、减速等等。这时你只需将传感器的信号线接到其中一个IO口上(比如P3.0),然后将电机的两根线(这里先不考虑驱动的问题,驱动可理解为只是把电流电压放大了)接到另两个IO口上(比如P3.1和P3.2)。
电磁干扰
冬天干燥的城市有时候手接触金属外壳会产生静电;你在家里看电视,外面有大车经过,电视会有颤纹出现;电脑在热插拔优盘后有时会出现蓝屏现象;等等。
这些都是电磁干扰,有时会对电子元件造成损坏;
去耦电容
电容的充放电功能就像一个大水库,洪水(电磁干扰)来的时候,先经过水库(电容),在放水,庄稼(电子元器件)就不会受伤害;雨水不够的时候,水库开闸放水(电容放电);总之,电容起到了一个缓冲,稳定电路的作用。
经过大量的研究,科学家在每个芯片的供电处的+5v和GND之间加上一个0.1微法的电容。
三极管的应用
三极管有三个功能,截止,放大,饱和;我们主要学习三极管的截止和饱和二种状态。
三极管原理
三极管的型号记忆方式:箭头朝内PNP,导通电压顺箭头过,电压导通,电流控制。
横向左侧的引脚叫B(基极),右边有箭头的那侧叫E(发射级),剩下那个引脚叫C(集电极);
只要箭头初始端的电压大于箭头末端的电压0.7v,那么e,c之间就有可以导通。
以pnp为例,若UeUb+0.7;那么e和c之间就导通了。
三极管封装
三级管应用
在这个实验中,主要是用三极管基极侧的低电压来控制集电极和发射级之间的高电流;
由于IO口内部有电阻,所以电流很低,用了三极管之后,LED直接使用的+5v电压供电,所以电流更高,所以要借助电阻来控制电流小于20mA。
74HC138三八译码器
三八译码器是把三种输入状态翻译成八种输出状态;
74L138引脚介绍
A0,A1,A2可以组成8种状态:000,001,010,011,100,101,110,111;
它的真值表:
注意观察E1,E2,E3上面的横线!!!
E1,E2,E3是三个使能输入端,两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。
硬件连接
程序说明
#includereg52.h
sbit A0=P1^0;//位地址声明
sbit A1=P1^1;
sbit A2=P1^2;
sbit A3=P1^3;
sbit ENLED=P1^4;
unsigned char LED[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};//定义无符号字符型一维数组LED的8个初值
void main()
{ ENLED=0;
A3=1;
unsigned int i=0;//无符号整形I,并赋初值0
while(1)
{
P1=LED[0];
for(i=0;i30000;i++);
P1=LED[1];
for(i=0;i30000;i++);
P1=LED[2];
for(i=0;i30000;i++);
P1=LED[3];
for(i=0;i30000;i++);
P1=LED[4];
for(i=0;i30000;i++);
P1=LED[5];
for(i=0;i30000;i++);
P1=LED[6];
for(i=0;i30000;i++);
P1=L
原创力文档


文档评论(0)