单片机io口扩展多用设计方案探究

单片机io口扩展多用设计方案探究

ID:20560080

大小:47.42 KB

页数:7页

时间:2018-10-13

单片机io口扩展多用设计方案探究_第1页
单片机io口扩展多用设计方案探究_第2页
单片机io口扩展多用设计方案探究_第3页
单片机io口扩展多用设计方案探究_第4页
单片机io口扩展多用设计方案探究_第5页
资源描述:

《单片机io口扩展多用设计方案探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单片机10口扩展多用设计方案探宄摘要随着经济与科技的迅速发展,单片机凭借着体积小、低电压、稳定性强、性价比高被越来越多的用户采用,本文针对单片机的输入输出口扩展问题提出了自己的观点,采用了模拟开关芯片CD4066,分析并设计了可实用的电路系统,使单片机10口在并联共用的情况下,在各项目间进行可控切换。【关键词】单片机10口多用CD4066芯片1设计背景概况单片机凭借其体积小、低电压,低功耗、性价比高等诸多优势,在现代家用及工业上被越来越多的用户使用。在使用过程中,许多用户也发现了单片机的部分缺点,最典型的缺点是:输入输出(10)端口有限。因

2、此如何增加和有效利用单片机的端口成为应用系统设计中的重要环节。在需要大量的单片机10口复用时,比如制作一个大型的工业控制系统,在这个系统中,各分系统可独立选择性操作,每个分系统都占用了大部分的单片机端口,此时就需要将单片机端口智能扩展,将单片机的现有10端口用于不同的外部设备。在这种情况下,单片机10口扩展多用设计方案探宄摘要随着经济与科技的迅速发展,单片机凭借着体积小、低电压、稳定性强、性价比高被越来越多的用户采用,本文针对单片机的输入输出口扩展问题提出了自己的观点,采用了模拟开关芯片CD4066,分析并设计了可实用的电路系统,使单片机1

3、0口在并联共用的情况下,在各项目间进行可控切换。【关键词】单片机10口多用CD4066芯片1设计背景概况单片机凭借其体积小、低电压,低功耗、性价比高等诸多优势,在现代家用及工业上被越来越多的用户使用。在使用过程中,许多用户也发现了单片机的部分缺点,最典型的缺点是:输入输出(10)端口有限。因此如何增加和有效利用单片机的端口成为应用系统设计中的重要环节。在需要大量的单片机10口复用时,比如制作一个大型的工业控制系统,在这个系统中,各分系统可独立选择性操作,每个分系统都占用了大部分的单片机端口,此时就需要将单片机端口智能扩展,将单片机的现有10

4、端口用于不同的外部设备。在这种情况下,很多人使用的是跳线法(外部设置),这种方法缺点诸多,比如路线的接触不可靠性、需要人为干预的不智能性。针对以上情况,本文从实际出发,提出了新型的单片机10口多用设计方案,以期能解决以上问题。2设计思路2.1主要硬件介绍2.1.1单片机选择PIC单片机是一种用来开发和控制外围设备的可编程集成电路。是由美国Microchip公司推出的PIC单片机系列产品,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业发展的新趋势。而本文采用的PIC16F877A单片机一共有40个引脚,其

5、中包含33个10口。2.1.2扩展芯片选择CD4066是四路双向模拟开关,主要用作模拟或数字信号的多路传输。CD4066芯片的每个封装内部都有4个相互独立的模拟开关,每一个模拟开关都有独立的输入、输出、控制三个端子,其中输入端和输出端是可以相互调换。当控制端加高电平时,输入与输出两端导通;当控制端加低电平时输入与输出两端截止。模拟开关导通时,导通电阻只有几十欧姆,对于数字信号来说,这个电阻值几乎可以忽略;模拟开关截止时,呈现很高的阻抗,几乎可以看成开路。模拟开关可传输数字信号和模拟信号。2.2设计框

6、2)设计框2)说明:单片机选择的是PIC

7、16F877A,其中有10口33个,用其中的一个10口用来由外设(外设可以是按键,也可以是相应的传感器)来确定执行哪个项目的功能(可多选,即在10口不冲突的情况下,同时多个项目同时执行),并由项目控制组来导通相应项目的4066芯片组,使其与外围控制电路与单片机

8、0口数字信号导通,并由单片机控制外围电路,实现其功能。2.3部分电路原理图(图3)在原理图中,项目选择部分采用的是按键选择(可在程序中依靠按键的次数来实现),项目控制部分采用的是串行输入并行输出的74HC595来进行扩展控制,采用串连多个74HC595可扩展到无限多个项目控制口当相应

9、的端口输出高电平,就导通了相应的CD4066,实现外设与单片机10口的数字信号导通。3部分程序代码^includeCONFIG(0x3B31);voidinit();voiddelay(ucharx);Voidprj_num一function(num);VoidControlprj_num();Voidmovecode_595(ucharnum);voidmain(void)//-…主函数{init();while(1){Controlprj_num();movecode_595(prj_num);prj_num—function(num)

10、;}}voidinit()//——单片机端口出始化函数{TRISA=0X01;TRISB=0;TRISOO;TRISD=0;TRISE=0;PORTA=0;PORTB=0;POR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。