ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:196.60KB ,
资源ID:9529659      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9529659.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机学习之1锁存器驱动led灯.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机学习之1锁存器驱动led灯.docx

1、51单片机学习之1锁存器驱动led灯51单片机学习之1-锁存器驱动led灯 原本想学AVR的,o()o 唉,交了一年的学费,现在穷的只剩下裤裆了。还好,还有几天我的腰包又会涨了。嘎嘎。这段时间就复习复习51单片机吧,之前写的笔记都不知道放哪了。现在重新看视频再写一次增强记忆。 第一集 单片机的介绍以及学习必备的一些基础知识等。 第二集 一、单片机型号解析。 1、例子AT89S5224PU AT—生产商标志,表示该器件是ATMEL公司的产品。 89—ATMEL公司的产品89系列家族(内涵Flash存储器)。 S—表示可在线编程。 还有C表示是CMOS产品、LS

2、表示低电压2.7V-4V、LV表示低电压2.7V-6V、LP表示低功耗单时钟周期指令。 52—表示存储器的容量是8K,还有53是12K、54是16K、55是20K,51是4K、2051是2K等。 24—表示芯片的最高时钟频率为24MHZ。还有33MHZ、20MHZ、16MHZ等。 P—表示DIP封装。还有 S表示SOIC封装、 Q表示PQFP封装、A表示TQFP封装、J表示PLCC封装、W表示裸芯片等。 U—表示芯片的产品等级为无铅工业产品,温度范围为-40至+85。还有C表示商业产品,温度范围为0至+70;I表示工业产品,温度范围为-40至+8

3、5;A表示汽车用产品,温度范围为-40至+125;M表示军用产品,温度范围为-55至+150。 二、51单片机内部结构 8位CPU、4K的ROM、128字节RAM、4个8位并行I/O口、一个全双工串行口,2个16位定时器/计数器,5个中断源 单片机为TTL电平:高电平+5V低电平0V如果要和计算机通讯,因为计算机高电平-12V低电平+12V所以计算机与单片机之间通讯需要加电平转换芯片MAX232。 三、二进制的运算 【与】:两者都为1(真)才为1真例:1&1=1 0&0=0 0&1=0 1&0=0 【或】:两者只要其中一个为1(真)则为真例:1|0=1 0|1=1 1|1=1 0|0=0 【非

4、】:1则0 0则1例:!1=0 !0=1 第三集 一、C51数据类型 1、sfr:特殊功能寄存器声明 C51已经为我们定义好的。如reg52.h文件里面的sfrTCON =0x88;我们可以直接操作TCON就等于操作0x88这个地址的内容。 2、sfr16:sfr的16位数据声明 同上。 3、sbit:特殊功能位声明 C51已经为我们定义好的。如reg52.h文件里面的sbitTR1 =TCON6;我们可以直接将TR1=1就等于把TCON的第6位置1 4、bit:位变量声明 二、C51头文件 通常有:reg51.h reg52.hmath.h ctype.hstdio.h stdlib.h a

5、bsacc.h 常用有:reg51.h reg52.h里面定义了特殊功能寄存器和位寄存器 math.h定义常用数学运算 三、宏定义 例: #defineucharunsignedchar #defineuintunsignedint #defineulintunsignedlongint 凡是程序源码中出现uchar时,在我们编译的时候编译器会把uchar替换成unsignedchar,uint替换成unsignedint,uling替换成unsignedlongint方便我们使用。和C的含义一样。 四、C51运算符 与C语言基本相同 + - * /(加减乘除) ; ;= ; 74HC573引

6、脚说明: OE:低电平有效,要使用这个芯片OE必须为低电平芯片才会工作。 D0—D7:为输入一般接在单片机的IO口 Q0—Q7:为输出外围芯片、电机、led等 LE:锁存控制,当LE为高电平时D引脚输入的电平状态会直接影响Q输出引脚的电平状态,相当于单片机的IO口可以直接操控Q输出引脚,即单片机IO=Q=D。当LE为低电平时,无论D引脚的电平状态怎么变动,Q的电平状态仍维持不变。相当于Q输出引脚与单片机的IO口隔离。 真值表这表格分成两个部分:INPUTS(输入)、OUTPUT(输出)。L:表示低电平 在INPUTS表示输入低电平 在OUTPUT表示输出低电平。H:表示

7、高电平 在INPUTS表示输入高电平在OUTPUT表示输出高电平。X:表示无所谓是高电平还是低电平。Q0:表示维持原来的状态不变。Z:高阻态 (接的是高电平则是高电平,接的是低电平则是低电平)当输出高阻态时,说明芯片没有工作。INPUTS(输入):OE:OE上面有一条横杠代表低电平有效。LE:锁存控制。D:输入端 即 D0 — D7OUTPUT(输出):Q:输出端 即 Q0 — Q7真值表解释:第三行:OE=L LE=H D=H Q=H 表示OE为低电平时,LE为高电平即不锁存,那么D是高电平则Q也是高电平。 第四行:OE=L LE=H D=L Q=L 表示OE为低电平

8、时,LE为高电平即不锁存,那么D是低电平则Q也是低电平。 第五行:OE=L LE=L D=X Q=Q0 表示OE为低电平时,LE为低电平即锁存,那么无论D是什么状态,Q仍保持上一次的状态。 第六行:OE=H LE=X D=X Q=Z 表示OE为高电平即停用芯片,LE无论是什么状态,D无论是什么状态,Q保持高阻态即不起作用。 二、电路图 单片机的一组P0口要控制8个Led灯,首先需要将LE引脚置1,让74HC573的Q输出端与D输入端关联起来。这样P0口的电平状态会传递给D输入端进而改变Q的电平状态。 8个Led的正极接在1k的排阻。相当于每个Led串入一个1k的电阻。这里的电阻起限流作用,硅发

9、光二极管的发光压降是0.7V;其发光的电流一般为3—10mA,而单片机(控制芯片)的I/O口有一个灌入电流一般为20mA左右(超过这个电流时,单片机内部PN节会被击穿)。所以加一个1k电阻限流,避免流过Led的电流过大而烧毁Led。 (单片机(控制芯片)的I/O口有一个灌入电流一般为20mA左右;超过这个电流时,单片机内部PN节会被击穿。一般的继电器驱动电流在40、50—120mA;一般常用9012的PNP(9013、NPN)三极管作为开关三极管,该三极管的驱动电流可以达到200mA左右,可以用来驱动继电器。达林顿反向驱动器:ULN2001A—ULN2002

10、A(ST)驱动电流500mA;(给低电平输出高电平,给高电平输出低电平) 电阻的取值: 当Led点亮后,Led会有一个电压。一般情况下红色直插LED应该是1.7V,剩下3.3V的电压会加在电阻上。Led需要的电流是3.3ma(0.0033A)电压除于电流3.3V/0.0033A=1000欧=1K。(不同的厂家生产的LED的电压和电流可能略有差别) 我们要让Led亮,那么首先要明确的是,单片机是TTL电平,高电平为+5V低电平为0V,单片机供电也是5V,所以电源正极VCC应该为+5V负极为0V。Led的正极通过电阻接在VCC,Led的负极接在74HC573的Q输出端。当单片机的IO口给低电平时即

11、0V,并且74HC573LE为高电平,那么电流会从VCC→1K电阻→Led→74HC573Q→74HC573D→单片机的IO口,此时Led灯亮。 按照上面的电路图,程序代码应为: #include; sbitLed=P00; sbitLE=P16; /由于51单片机上电,IO口默认为高电平所以这句可省略。 voidmain() LE=1; /由于51单片机上电,IO口默认为高电平所以这句可省略。 Led=0; /直接操作P0的0端口让第一个Led灯亮 /P0=0xFE; /操作P0一组IO口,0xFE=11111110,P0的0端口置0其余置1 效果和 Led=0 一样。不同的是前者操作了一组端口后者只操作了一个端口 P0=0x00; /P1端口全部置0即让所有的LED灯亮。 while(1); / 程序运行到这里的时候 一直无限循环。因为 Keil 编译后期产生的汇编代码中,结尾有一条 LJMP main,就是不同的执行main函数。加上这一条就可以阻止它重复执行上面的代码。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1