《单片机原理与接口技术》 课件 2.7 IAP15F2K61S2单片机的IO口程序设计实例_第1页
《单片机原理与接口技术》 课件 2.7 IAP15F2K61S2单片机的IO口程序设计实例_第2页
《单片机原理与接口技术》 课件 2.7 IAP15F2K61S2单片机的IO口程序设计实例_第3页
《单片机原理与接口技术》 课件 2.7 IAP15F2K61S2单片机的IO口程序设计实例_第4页
《单片机原理与接口技术》 课件 2.7 IAP15F2K61S2单片机的IO口程序设计实例_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章

C51程序设计基础

单片机原理与接口技术2.7IAP15F2K61S2单片机的I/O口程序设计实例

任务要求:点亮8个发光二极管,在上电时关闭继电器、轰鸣器。任务1点亮发光二极管知识点:1.发光二极管限流电阻的选择。2.74HC573、74HC138、ULN2003的使用。3.继电器、轰鸣器的工作原理及控制。

一、发光二极管(LED)限流电阻的选择

LED具有许多优点,它不仅有工作电压低(1.5~3V)、体积小、寿命长、可靠性高等优点,而且响应速度快(≤100ns)、亮度比较高。一般LED的工作电流选在5~10mA,不允许超过最大值(通常为50mA)。LED模块电路图二、工作原理分析1.74HC138译码器电路任务1要求:点亮开发板的8个发光二极管,上电时关闭继电器、轰鸣器。74HC138译码器是一款高速CMOS器件,其引脚兼容低功耗肖特基TTL(LSTTL)系列。可接受3位二进制加权地址输入(C、B、A,C是高位),任务1要求:点亮开发板的8个发光二极管,上电时关闭继电器、轰鸣器。2.74HC573锁存器电路二、工作原理分析M74HC573M1R锁存器为八路3态输出的非反转透明锁存器,

引脚为输出使能端,LE引脚为锁存使能端。当LE为高电平时,输出同步,当LE为低电平时,符合建立时间和保持时间的数据将会被锁存输入输出LED0~D7Q0~Q7Hxx高阻LLx不变LHLLLHHH3.ULN2003达林顿阵列芯片电路任务1要求:点亮开发板的8个发光二极管,上电时关闭继电器、轰鸣器。二、工作原理分析电路中ULN2003的作用是驱动继电器(K1)和轰鸣器(BUZZER)。ULN2003是一款高耐压、大电流驱动反向器件,由7个NPN达林顿管组成,单个达林顿管集电极可输出500mA电流,每个都有内置2.7K基极电阻,在5V的工作电压下,它能与TTL和CMOS电路直接相连。常用于单片机、PLC等控制电路,能直接驱动继电器、显示屏、步进电机等负载。当Y5C=1,M74HC573M1R(U9)锁存器工作。蜂鸣器一端接VCC,只需给另一端给高电平则不响,即令P06=0。继电器一端接VCC,只需给另一端RELAY给高电平则不吸合,即令P04

=0。故P0赋值为0。4.程序设计流程要点分时控制两个锁存器U6、U9,避免同时工作冲突。保留P2.0~P2.4(低5位)数据,不影响外围设备,通过P2&0x1F实现数据保留。锁存器选择指令:控制U6:P2=(P2&0x1F)|0x80(0x80为U6选通地址,与保留的低5位数据组合)控制U9:P2=(P2&0x1F)|0xA0(0xA0为U9选通地址,与保留的低5位数据组合)程序如下:#include"STC15F2K60S2.h"//IAP15F2K61S2单片机对应的头文件voidjf_init()//继电器和轰鸣器初始化函数{P2=(P2&0x1f)|0xa0;//Y5C=1,打开锁存器U9P0=0;P2&=0x1f;//Y5C=0,关闭锁存器U9}voidmain(){jf_init();//关闭继电器和轰鸣器P2=(P2&0x1f)|0x80;//Y4C=1,关闭锁存器U6while(1){P0=0;//LED点亮}}请同学们编译并调试程序,观察运行效果。任务要求:将开发板上的8个发光二极管间隔400ms依次循环左移、右移点亮,每次只有一个LED亮。上电关闭继电器、轰鸣器。任务2LED流水灯控制知识点:

1.软件延时函数测试。2.循环移位函数的使用。图2.12LED闪烁调试界面一、软件延时函数测试

图2.13(a)delay(1)语句执行前图2.13(b)delay(1)语句执行后二、循环移位函数的使用

Keil编译系统提供的C51内部函数库有循环移位和延时等操作函数。内部函数的原型声明包含在头文件intrins.h中。本例实现循环左移和循环右移将用到C51库函数的“_crol_(c,b)”和“_cror_(c,b)”两个函数。可以Keil界面中点击“Help”菜单,选择“uvisionhelp”,调出帮助对话框,在搜索框输入关键字“crol”,点回车,即得到搜索结果,选中需要查看的内容。void

main(){ u8i; jf_init(); P2=(P2&0x1f)|0x80;//Y4C=0; while(1) { for(i=0;i<8;i++) { P0=_crol_(0xfe,i);//初始值为0xfe,点亮L1 delay(2000);//400ms } P0=0xff; delay(2000);//400ms for(i=0;i<8;i++) { P0=_cror_(0x7f,i);//0xfe; delay(2000); } P0=0xff; delay(2000); }}三、main函数

请同学们编译并调试程序,观察运行效果。任务要求:采用MM模式(存储器映射扩展方式),修改【例2.2】。任务3存储器映射编程方法知识点:1.存储器映射编程方法原理。2.接口电路的地址计算。MM模式实际上是存储器映射编程,是一种可以像操作外部RAM存储器一样,操作LED指示灯、执行结构(蜂鸣器、继电器)、数码管等等外设资源的编程方式,MM模式占用开发板上单片机的P4.2引脚,将跳线J13-2(WR)和J13-1(P4.2/WR)相连即可。一、工作原理分析使用MM模式,需使用XBYTE关键字对存储空间进行寻址XDATA区。用XBYTE[Address]=Data来描述,Address是P2和P0组成的16位地址。XBYTE关键字对应的头文件为absacc.h。当P2.7=1,P2.6=0,P2.5=0时,即Address为10000000时,锁存器U6工作,通过P0口即可控制LED灯的状态,所以LED的地址为0x8000;同样P2.7=1,P2.6=0,P2.5=1时,锁存器U9工作,通过P0口即可控制继电器和轰鸣器的状态,所以继电器和轰鸣器的地址为0xA000。voidmain(){

u8i;

jf_init();

while(1)

{

for(i=0;i<8;i++)

{

XBYTE[0x8000]=_crol_(0xfe,i);

delay(2000);//400ms

}

voidjf_init()//继电器和轰鸣器初始化函数{XBYTE[0xA000]=0x00;//MM模式,关闭继电器和轰鸣器}二、修改继电器和轰鸣器初始化函数三、修改main函数

XBYTE[0x8000]=0xff;

delay(2000);

for(i=0;i<8;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论