




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 单片机输入/输出端口,章节安排: 2.1 单片机时序简介 2.2 单片机外部引脚简介 2.3 C51语言简介 2.4 输入/输出端口编程实践 能力要求: 了解单片机时序 掌握单片机端口输入/输出操作 掌握编程实践环境与工具的应用,实践项目:流水灯 硬件连线:使单片机的P1、P2或者P3端口与发光二极管相连(以P2口为例) 电路原理分析,单片机P2口通过连线与JP14相接,从而控制发光二极管的阴极。 当P2端口输出1时(二极管阴极呈现高电平),发光二极管不能导通,不发光;输出0时发光。,2.1 单片机时序简介,时钟周期 概念:单片机在工作时,由 内部振荡器产生 或由 外部直接输入的 送至 内部控制逻辑单元 的 时钟信号 称为时钟周期 时钟周期的大小是时钟信号频率(常用fosc表示)的倒数 若时钟频率为12MHz,即fosc=12MHz,则时钟周期=1/(12*106) 状态周期 概念:一个 状态周期S 由2个 时钟周期 构成 机器周期 一个 机器周期 由 6个状态周期 或者说由 12个时钟周期 构成,2.1 单片机时序简介,机器周期 机器周期是单片机的基本操作周期 每个机器周期包含S1、S2、S66个状态,每个状态包含2拍P1和P2,每一拍为一个时钟周期(振荡周期)。因此,一个机器周期包含12个时钟周期。依次可表示为S1P1、S1P2、S2P1、S2P2、S6P1、S6P2。,2.1 单片机时序简介,指令周期 概念:CPU取出一条指令到该指令执行结束后所需要的时间 指令周期是以 机器周期 为单位来衡量时间的长短 不同指令,其指令周期不尽相同 MCS-51系列单片机中,大多数指令的指令周期由一个机器周期或两个机器周期组成,只有乘法、除法指令须要4机器周期指令。,单机器周期指令的时序,单字节单机器周期指令,双字节单机器周期指令,双机器周期指令的时序,单字节、双机器周期指令的时序,2.2 单片机外部引脚简介(以40引脚为例),2.2 单片机外部引脚简介,40个引脚按功能分为3类: 电源和时钟引脚:Vcc,GND,XTAL1,XTAL2 编程控制引脚:RST, , , (只要求了解这些引脚即可) I/O端口引脚:P0,P1,P2,P3(必须掌握),电源引脚 VCC(40脚):接+5 V电源正端。 GND(20脚):接电源地端。,时钟引脚 XTAL1(19脚):内部振荡电路的输入端 XTAL2(18脚):内部震荡电路的输出端 8051时钟通常采取片内时钟振荡方式:两个引脚需要外接石英晶体和振荡电容(该电容取值一般在10pF30pF之间),2.2 单片机外部引脚简介-电源和时钟引脚,RST(9脚):RST即为RESET。 当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。 单片机复位后,从0000H地址处读取第一条指令并开始执行 (29脚):外部程序存储器的读选通信号,低电平有效。 在对 外部程序存储器进行读操作 时,每个周期出现两次信号,连线时与外部ROM的OE引脚相连 在读取外部的RAM时,该引脚不会有输出 单片机内部已经有足够大的ROM,通常不需要外扩程序存储器,因此该引脚通常不使用,2.2 单片机外部引脚简介编程控制引脚,注:该页ppt内容此时仅需了解,ALE/PROG(30脚):地址锁存信号输出端 当外接存储器(ROM或RAM)时,ALE的输出用于锁存地址的低8位,一般ALE接锁存器的EN端 当没有外部存储器时,ALE端可用于脉冲信号输出,且频率是石英振荡频率的1/6。 在烧写EPROM时,该引脚用作编程脉冲PROG的输入端,(31脚):访问程序存储器控制信号 当该引脚接低电平时,对ROM的读操作限定于对外部程序存储器访问(内部的失效) 当该引脚接高电平时,对ROM的读操作首先从内部ROM开始,内部访问完毕后才访问外部ROM(内部ROM没有的编织部分),2.2 单片机外部引脚简介编程控制引脚,注:该页ppt内容此时仅需了解,P0口(3932脚):P0.0P0.7统称为P0口。 P0口的每一位端口都可以 单独控制 输入或者输出 P0口作为I/O口使用时,必须外接上拉电阻(一般选择10K左右)。 P1口(18脚):P1.0P1.7统称为P1口。 P1口的每一位端口都可以 单独控制 输入或者输出 P1口内部自带上拉电阻,使用时不需要外接 P2口(2128脚):P2.0P2.7统称为P2口 同P1口 P3口(1017脚):P3.0P3.7统称为P3口 P3口作为普通端口使用时,同P1口 P3口还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。 P0P3口都是准双向口 端口在作为 输入使用 前,必须先向该口写1(即输出1),然后在执行读取操作,才能获取正确结果 端口输出可以直接进行,2.2 单片机外部引脚简介I/O端口引脚,2.2 单片机外部引脚简介I/O端口引脚,2.2 单片机外部引脚简介I/O端口引脚,强调 51单片机中4个8位的并行I/O接口P0,P1,P2,P3:分别对应着1个特殊功能寄存器,这些寄存器分别称之为P0,P1,P2,P3口寄存器 通过特殊功能寄存器的读写完成对端口的操作 每个端口既可以数据输入,也可以数据输出 每个端口既可以 整体8位一起 操作,也可以 按位 操作。,2.3 C51语言简介,在C51语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。 用C语言编写单片机应用程序与标准的C语言程序也有相应的区别 C语言编写单片机应用程序时,需根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言程序不需要考虑这些问题; C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言有一定的区别。 其它的语法规则、程序结构及程序设计方法等与标准的C语言程序设计相同。,2.3 C51语言简介,2.3.1 C51中常用数据类型(基本类型),2.3 C51语言简介,2.3.1 C51中常用数据类型(扩充类型),bit:位变量声明 例如:bit flag=0; /声明一个变量flag,只占据一个二进制位 sbit:特殊功能位声明,即声明一个特殊功能寄存器中的某一位 例如:sbit EA=IE7; /EA是IE寄存器中的最高一位,该定义之后,可直接用EA对此位操作: EA=1 或者EA=0;,2.3 C51语言简介,2.3.1 C51中常用数据类型(扩充类型),sfr:8位特殊功能寄存器声明(P19) 例如:sfr P0=0x80; /P0是P0端口寄存器,它在存储器中的地址是0x80,此定义之后,可以通过该变量符号对P0端口直接操作(即告知编译器,程序要操作的是地址为0x80地址处的寄存器)。当然,我们可以定义其它的名字。 换种角度:通过sfr关键词,让keil编译器在单片机与人之间搭建一条沟通的渠道,我们对P0符号操作,单片机虽不知道P0是什么,但是它知道他的内部地址0x80是什么,从而完成操作。 sfr16:16位特殊功能寄存器声明,2.3 C51语言简介,2.3.2 C51中常用库函数 reg51.h :特殊功能寄存器和特殊功能位的声明 absacc.h:绝对地址的声明(系统扩展一章时才用到) math.h:定义常用数学运算的,2.4 输入/输出端口编程实践,2.4.1 keil软件的使用(详见教材P274) 2.4.2 USB ISP下载线的使用 首先插入USB ISP下载线,安装驱动(在16上网下载) 将 “配套软件” 中的 progisp.exe 发送到 桌面快捷方式 双击运行 progisp.exe ,“选择芯片” 中选择AT89S52 将ISP下载线接头插入电路板 点击按钮“调入Flash”,选择要运行程序的 .hex 文件 点击按钮 “自动” 开始下载程序 电路板复位,运行程序,2.4 输入/输出端口编程实践,2.4.3 端口基本输入/输出操作 端口输出操作(以P1口为例) 位操作: P10=1; /从P1.0口输出数据1 或者: sbit P1.1=P11; P1.1=1; P1端口整体操作: P1=0x55;/通过P1口输出数据0x55,2.4 输入/输出端口编程实践,2.4.3 端口基本输入输出操作 端口输入操作(以P1口为例) 位操作: bit temp; P10=1;/必须先让该端口输出1, temp=P10; /再从该端口输入数据,赋值给变量temp P1端口整体操作: unsigned char temp; P1=0xFF; temp=P1;,2.4 输入/输出端口编程实践,2.4.4 实践项目:流水灯 硬件连线:使单片机的P1、P2或者P3端口与发光二极管相连(以P2口为例) 电路原理分析,单片机P2口通过连线与JP14相接,从而控制发光二极管的阴极。 当P2端口输出1时(二极管阴极呈现高电平),发光二极管不能导通,不发光;输出0时发光。,2.4 输入/输出端口编程实践,2.4.4 实践项目:流水灯 软件流程分析 点亮一个发光二极管,并延迟一段时间,然后选中下一个点亮,如此循环。,流水灯参考代码一 #include sbit led1=P20; sbit led2=P21; sbit led3=P22; sbit led4=P23; sbit led5=P24; sbit led6=P25; sbit led7=P26; sbit led8=P27; void delayms(unsigned int i);/*延时函数*/ main() while(1) led1=0; delayms(100); led1=1; led2=0; delayms(100); led2=1; led3=0; delayms(100); led3=1; led4=0; delayms(100); led4=1; led5=0; delayms(100); led5=1; led6=0; delayms(100); led6=1; led7=0; delayms(100); led7=1; led8=0; delayms(100); led8=1; led1=0; delayms(100); void delayms(unsigned int i)/延迟函数 unsigned int j; for(;i0;i-) for(j=100;j0;j-); ,流水灯参考代码二 #include void delayms(unsigned int i);/*延时函数*/ main() unsigned char temp=0xfe;/只有1位为0,即只有一个二极管点亮 while(1) /单片机主程序肯定是一个死循环 P2=temp; /将数据从P2口输出,控制只有一个二极管点亮 delayms(1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东珠海高新技术产业开发区党政办公室招聘合同制职员2人考试参考题库及答案解析
- 生物多样性保护与恢复研究-洞察及研究
- 2025贵州遵义市赤水市政府专职消防员(直属中心站队员)补招及补充考试参考题库及答案解析
- 2025年河北承德市市直事业单位卫生类公开选聘工作人员59名考试参考题库及答案解析
- 技术总监劳动合同范本与条款说明
- 智能运输系统与绿色认证-洞察及研究
- 稀土设备耐磨涂层-洞察及研究
- 代理报税业务合同范本及说明
- 注意缺陷干预策略-洞察及研究
- 卡组资源分配策略-洞察及研究
- 2024广东省产业园区发展白皮书-部分1
- 2025年国家网络安全宣传周网络安全知识考核试题
- 2025四川蜀道建筑科技有限公司招聘16人备考练习题库及答案解析
- 2025-2030中国教育领域的虚拟现实技术行业发展战略与应用趋势预测报告
- 2025广西现代物流集团第三次招聘109人笔试备考试题及答案解析
- 2025年中职历史考试题及答案
- 图书出口管理办法
- 高三后期班级管理课件
- 廉政教育进课堂大学
- GB/T 45777-2025水泥中石膏掺量评估方法
- 电气火灾防治课件
评论
0/150
提交评论