0 引言
大多单片机设计中都需要很多的引脚来实现各种各样的输入检测和输出显示或控制功能。这在引脚数不能再增加的前提下。常常会显得引脚数不够。所以能否把芯片的固有资源发挥到极致,往往是决定此系统性价比的关键。本文借鉴软件操作系统的分时复用原理,来把任务分成多个时间片,在不同的时间片执行不同的任务。从而实现了较少I/O口的多功能控制。
1 EM78P156N单片机的主要功能
EM78P156N是台湾义隆公司推出的8位单片机,图1所示是该芯片的引脚排列图。该器件的主要功能如下:
◇工作电压:2.5~5.5 V;
◇工作温度范围:-40℃~85℃;
◇工作频率在晶振模式时的范围为:DC~20MHz(5V)、DC~8MHz(3V)和DC~4MHz(2.5V);而在外部RC振荡时的频率范围为:DC~4MHz (5V),DC~4 MHz(3V)和DC~4MHz(2.5V);
◇低功耗:工作在5V/4MHz时工作电流小于2mA,工作在3V/32kHz时的工作电流20μA,工作在休眠模式时的工作电流1μA;
◇带有1K×13B程序空间;
◇具有双向I/O口;
◇有5级堆栈深度;
◇有8个可编程上拉脚,7个可编程下拉脚,8个可编程横漏极开路输入脚,2个可编程R-op-tion脚。
2 硬件电路的总体设计
本设计中控制电路的MCU部分如图2所示。图2中的单片机采用外部RC振荡,振荡频率为4MHz。其中LED1~LED6和按键K2、K3共用了P61~P65五个I/O口。在该电路设计时,要注意按键按下时不能影响LED的正常点亮,所以在I/O口与按键之间串了一个2kΩ的电阻,这样即使按住按键不放。LED也能正常点亮。每一路LED灯的点亮须由两个I/O口同时控制,一路置高、一路置低,使LED产生正向压降才能点亮。而其余的I/O口则作为正常的输入、输出控制。
3 程序流程
本文以按键输入、LED输出为例,按键K2控制第一组LED1~3做跑马灯变化,按键K3控制第二组LED4~6做跑马灯变化,第一组与第二组灯中每次只能同时亮一个。这里的复用实际上是利用人眼的视觉暂留功能,实际LED是闪烁的,只是人眼分辨不出来而已。每组灯点亮的周期为20ms,按键检测占用的时间为10μs左右,在这么短的时间内,人眼不可能察觉到LED的变化。所以在实际电路设计中,显示和按键等人机接口部分的功能最容易实现分时复用。点亮LED1与LED4的I/O口的工作波形如图3所示。将按键检测的值送到keybuf中,并做20 ms的延时比较检测,主要是为了增加按键检测的可靠性。其程序逻辑如图4所示。
这里需要注意的是,在作为按键检测的时候,P6.2、P6.3、P6.4必须输出高电平,或者作为输入口打开内部上拉(如图3中的P6.2)。这样可以避免LED在这时被点亮形成鬼影,而影响整个系统的显示效果。当然也可以将LED驱动换成带三极管驱动的继电器。但因为继电器的吸合或断开需要几毫秒的响应过程,而按键检测所需的10μs时间绝对不足以让继电器发生状态跳变。
[page]
4 程序介绍
下面给出本系统的显示部分子程序:
下面是系统中的按键扫描部分子程序:
5 结束语
利用本文所介绍的方法复用后就能节省大量的I/O引脚。但设计时需要考虑输入和输出的隔离,而不能相互影响,并且即使输出对象允许在人眼无法察觉的情况下出现瞬间跳变,也不能不影响输出控制的效果。
关键字:单片机 EM78P156 IO口复用
引用地址:
单片机EM78P156的I/O口复用技巧
推荐阅读最新更新时间:2024-03-16 13:29
一款基于8098单片机的SPWM变频调速系统设计
目前,高性能的交流调速系统的研究和开发引起各国学者的高度重视,并得到越来越深入的研究。而所选用微处理器、功率器件及产生PWM波的方法是影响交流调整系统性能好坏的直接因素。本文研究了一种以 8098 单片机 为控制器、以智能功率模块IPM为开关器件的变频调速系统,此控制系统硬件电路的标准化程度高,制作成本低,且不受器件温度漂移的影响:其控制软件能够进行逻辑判断和复杂运算,可以实现不同于一般线性调节的最优化、自适应、非线性、智能化等控制规律,而且更改起来灵活方便。 正弦波脉宽调制(SPWM)技术 1、SPWM控制技术原理 由于PWM变换器具有功率因数高、可同时实现变频变压及抵制谐波的特点,因此在交流传动及其他能量变换系统中得到广泛
[电源管理]
51单片机C语言学习笔记2: 51单片机编程下载方式
编译完程序,要下载,当然离不开编程器。当时候上课的书上也没讲到下载的办法,做试验也只是在试验箱上下载完事。要自己弄的话,要怎么才能玩得转呢?在网上查了一下,要玩转单片机,要具备三样东西:51芯片+编程器+仿真器,当然仿真器是不必要的。记得我的第一台编程器是TOP851,可以花了300多大洋,当时还是自费的。记得我自己买的第一颗51单片机芯片是正宗的Intel 8051,可以TOP851不支持Intel的51芯片,可郁闷啦,连51单片机的鼻祖也不支持,可想而知后来的人都过了河拆了桥J 后来又再买了一块芯片:AT89C51,当时候还有点疑惑,我学的是8051啊,可是这是89C51啊?书上没讲这芯片,怎么办呢?现在想想可知多么可笑,但这
[单片机]
PIC中档单片机汇编指令详解(5)
位操作指令详述 BCF 数据寄存器指定位清0 语法形式:BCF f,b 操作数:f为数据寄存器的低7位地址(0x00~0x7F) B为数据位编号(0~7) 执行时间:一个指令周期 执行过程:使数据寄存器f的的b位清0 状态标志影响:无 说明:该指令可对任何数据寄存器的任意一个位置清0,常用于标志位的设定和清除,或者把某一管脚置成低电平。 指令范例:BCF STATUS,C ;进位(借位)标志C清0 BCF PORTD,7 ;PORTD的第7位输出低电平 BSF 数据寄存器的指定位b置1 语法形式:BSF f,b 操作数:f为数据寄存器的低7位地址(0x00~0x7F) b为数据位编号(0~7) 执行时间:
[单片机]
基于单片机和L297/L298芯片的步进电机控制驱动器设计
1 引言
步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。步进电动机把电脉冲信号变换成角位移以控制转子转动的微特电机。在自动控制装置中作为执行 元件 。每输入一个脉冲信号,步进电动机前进一步,故又称脉冲电动机。步进电动机多用于数字式 计算机 的外部设备,以及打印机、绘图机和磁盘等装置。 在数字控制系统中具有精度高,运行可靠。如采用位置检测和速度反馈,亦可实现闭环控制。步进电动机已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业 自动化 生产线、印刷设备等中亦有应用。
2 工
[电源管理]
基于PIC单片机的智能IC卡燃气表电控系统设计
摘要: 给出了一种PIC单片机为核心的智能IC卡燃气表电控系统的设计,介绍了该系统的控制模式、电控系统的硬件电路构成、系统软件设计及其实际应用情况。
关键词: PIC单片机 智能IC卡燃气表 电控系统
智能IC卡燃气表是一种根据用户IC卡购气量实现自动计量计费、自动控制用气的民用高技术产品,具有传统人工抄表收费式燃气表无可比拟的优越性。当前,随着国家“金卡工程”的深入开展 和开发大西北“西气东输”计划的正式启动,智能IC卡燃气表已 呈现出十分广阔的应用前景。本文介绍了该产品的核心技术--基于PIC单片机
[应用]
MSP430单片机命名规则
TI MSP430命名规则
[单片机]
单片机小白学习之路(十二)---直流电机的控制
目标:直流电机的控制 1.直流电机简介 直流电机是指能将直流电能转换成机械能的旋转电机。 相关参数: 轴长:8mm 轴径:2mm 电压:1-6v 参考电流:0.35-0.4A 3v转速:17000-18000转每分钟 直流电机 2.模块电路 直流电机模块 TC1117芯片构造与TC1508一样,那就来看看TC1508的 引脚 INA, INB与INC,IND是两组输入端OUTA,OUTB与OUTC,OUTD是两组输出端 真值表 INA和INB都输入低电平时,电机是待命状态 INA高,INB低时,电机是前进,顺时针 INA低,INB高时,电机是后退,逆时针 INA和INB都输入高电平时,电机是刹车的状态,就是
[单片机]
飞利浦90纳米ARM9微控制器提供高计算性能和低功耗
飞利浦电子公司日前宣布开始供应业界第一个ARM9核心的90纳米微控制器LPC3180。飞利浦这一全新的32位MCU不仅提供高效能和低功耗,也是唯一提供矢量浮点协处理器和整合的USB On-The-Go,以及在低至0.9V电压的超低功耗模式下运行能力的ARM9微控制器。飞利浦LPC3180的最高速度可达208MHz,是许多高精度应用的理想选择,例如销售点(POS)设备、医疗及工业装置、全球定位系统(GPS)和机器人等。 飞利浦半导体微控制器产品线产品创新总监Ata Khan表示:“藉由先进的90纳米工艺技术的优势,飞利浦能够开发具有高计算性能并针对低功耗运行最优化的最先进的ARM9 MCU。LPC3180推出之后,即使是低成本的电
[嵌入式]