温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
基于
CPLD
单片机
IO
扩展
研究
基于基于 CPLDCPLD 的单片机的单片机 I/OI/O 口扩展研究口扩展研究 向兵 赵红军 摘要:单片机的应用在日常生活中已逐渐普及,大至家用电器,小至儿童玩具。在高等教育中,尤其是电子信息专业方面,单片机知识也是必不可少的一门课程。在使用单片机的同时,不但要求对理论知识的掌握,也需要在实际应用中得心应手,游刃有余。最基本的莫过于单片机的端口操作,其中 I/O 口的电平控制给我们日常生活带来了极大方便。在使用的过程中,低端单片机由于 I/O口数量不足导致部分功能无法实现,我们常使用数字集成芯片进行扩展,如74LS 系列移位寄存器,但是这种集成芯片也会由于引脚数量限制而无法确保单片机端口的充分扩展。所以,在此我们采用复杂可编程逻辑器件 CPLD(Complex Programmable Logic Device)进行扩展研究,选取 EPM1270T144 结合 AT89C51 芯片进行设计,可根据实际需求扩展对应数量的端口。关键词:单片机;I/0 口;扩展;CPLD 一、AT89C51 端口使用 在使用单片机进行电路开发时,我们肯定会用到其中 32 个输入输出引脚,在程序中对其电平进行控制便能实现外围电路的相应功能。例如,控制 8*8LED 点阵屏时,我们将其中 16 个引脚分别接至点阵的行和列,便可让点阵屏显示相应内容。控制 16*16 点阵时,将单片机所有 IO 口分为两组,即 2*16,便可实现控制。但是如果点阵屏太大,如 32*32 点阵,则徐 64 个 IO 口,这样,只靠一片AT89C51 单片机是无法直接实现功能控制,所以,我们选择复杂可编程逻辑器件 EPM1270 进行端口扩展。二、EPM1270T144 EPM1270 是 Altera 公司旗下 MAX系列产品,内部包含 1270 个逻辑单元,外部144 个引脚,根据使用情况来讲,排除下载端口及时钟引脚,此芯片可用作普通 I/O 口的数量高达 115(24 个电源接口+4 个下载接口+1 个时钟引脚)。EPM1270 采用 JTAG 编程方式,对应引脚编号为 33-36。因 CPLD 无内部时钟,需要外部晶振提供脉冲信号作为其处理节拍标准,在选择时钟引脚时,可使用引脚编号为 18,20,89,91 任一引脚作为时钟信号输入端,在此我们使用有源晶振频率为 11.0592MHz 作为时钟基准。三、译码扩展 EPM120 为复杂可编程逻辑器件,其通用 I/O 口均可设置为双向或单向端口。在此,以 2-4 译码为例,即使用单片机两个 I/O 口扩展为 4 路 I/O 口。我们使用AT89C51D 的 P1.0,P1.1 引脚作为待扩展引脚,将其连接至 EPM1270 编号 21,22 引脚,通过编号 130-133 引脚输出扩展信号。此译码原理与二进制译码原理相同,也可进行 3-8 译码或 4-16 译码扩展。本文扩展输出的 4 个 I/O 口连接 4路 LED 进行控制。四、软件设计 我们通过 AT89C51 两路引脚控制 4 路 LED 工作状态,按照 2-4 译码原理,两路输入可形成 4 种状态,分别对应 4 路输出引脚的电平,并在某一时刻单独点亮单个 LED,若进行动态扫描,则可使显示效果类似于静态多路显示。单片机P1.0,P1.1 四种工作状态 00,01,10,11 对应扩展输出工作状态分别为 0001,0010,0100,1000。在此,我们以第三种情况为例,将单片机 P1.1-1.0 引脚电平设置为 10,则通过 P1=0X02 即可实现,此后译码工作由 EPM1270 完成。由于P1.1-1.0 引脚信号作为 EPM1270 输入,则需将 EPM1270 的 20,21 引脚设为输入端口,其设置代码如下:moduleblock1(P10,P11,LED0,LED1,LED2,LED3);input P10,P11;/定义 21,22 为输入引脚 output LED0,LED1,LED2,LED3;/定义 130-133 为输出引脚 reg LED0,LED1,LED2,LED3;/将输出引脚设置为寄存器类型变量 由于 EPM1270 输出信号是由 21,22 引脚的输入信号决定,所以逻辑上属于组合逻辑,只要 21,22 引脚电平产生变化,则 130-133 引脚电平会随之变化,因此,EPM1270 程序设计如下:always (P10 or P11)begin if(p11,p10=2b00)begin LED3,LED2,LED1,LED0=4b0001;End else if(p11,p10=2b01)begin LED3,LED2,LED1,LED0=4b0010;End else if(p11,p10=2b10)begin LED3,LED2,LED1,LED0=4b0100;end else if(p11,p10=2b11)begin LED3,LED2,LED1,LED0 pin,打开 Pin Planner 进行引脚分配,将 P10,P11 引脚分别配置到 EPM1270 的第 21,22 引脚即,将 LED0,LED1,LED2,LED3 分別分配至 EPM1270 的 130-133 引脚即可。五、小结 本文通过复杂可编程逻辑器件 EPM1270 对单片机 I/O 口进行扩展,其优越的可编程性能可充分满足单片机应用中的端口需求,译码原理清晰,程序设计简单方便。但是对于追求低成本的电路系统而言,EPM1270 价格偏高,焊接技术要求过硬,对于普通开发者来讲,在需求度不是很高的情况下仍建议采用数字集成芯片进行设计。参考文献:1沈莉丽等.FPGA/CPLD 设计与实践教程M.中国电力出版社.2017.02 2王静霞.单片机基础与应用M.高等教育出版社.2016.3 3王金明.数字系统设计与 verilog HDLM.电子工业出版社.2019.01 4赵勇等.单片机原理与接口技术M.电子科技大学出版社.2016.12 5刘春龙等.CPLD 应用技术实用教程M.机械工业出版社.2012.06 作者简介:向兵(1990-),男,汉,四川南充人,助教,硕士研究生,从事单片机原理与应用、电子产品分析与制作等课程研究及项目开发。赵红军(1980-),男,汉,四川南充人,副教授,在读博士,从事电力系统设计与研究。