简介:
在HT49C30-1/HT49R30A-1 中有8 个双向的输入/输出口(PA 口,8 位),6 个输入口(PB 口);HT49C50-1/HT49R50A-1 中有12 个双向的输入/输出口(PA 口,8 位;PC 口,4 位),8 个输入口(PB 口);HT49C70-1/HT49R70A-1 中有16 个双向的输入/输出口(PA 口,8 位;PC 口,8 位),8 个输入口(PB 口)PA、PB、PC 分别对应RAM 中地址[12H] 、[14H] 、[16H] 。掩膜时可选择PA、PC 口的结构(NMOS 或CMOS),及该口是否具有上拉电阻(具体介绍看使用手册)。
若PA、PC 口结构NMOS 时,在读取数据之前,必须向相关位写“1”以关闭场效应管NMOS 使其作为一个输入口。也就是说,要先执行指令SET [m].i 以关闭相关的NMOS,然后才能用MOV A,[m] 来读取稳定的数据。
图1 输入输出口
一些指令称为读-修改-写指令,该指令先读取引脚的值,而且是将八位引脚的状态全部读取,进行相应的位操作后,重写回锁存器中。这样,有些位的锁存器会因为该操作而改变原来的状态,致使再次输出时产生错误。例如,指令“SET [m].i”、“CLR [m].i”、“CPL[m]”、“CPLA[m] ”就是先将数据读取至CPU 中,然后进行定义的操作(位操作)后,再将结果写回锁存器或是累加器中。所以口在输入状态时执行此类指令,可能会使内部锁存的状态改变,需要加以注意。
输入输出口应用程序举例
1.掩膜选择:pa.0"pa.3 选择CMOS 结构,带上拉电阻;
硬件要求:pa.0"pa.3 接LED;pa.4"pa.7 接开关
电路图:
图2 电路图
程序说明:
如上图所示,pa.0"pa.3 作为输出,pa.4"pa.7 作为输入,利用程序将pa.4"pa.7 口上的开关数读入单片机,经过高4 位与低4 位互换,再向pa.0"pa.3 输出pa.4"pa.7 的开关状态,使LED 的发光次序与pa.4"pa.7 上的开关设置相符。 [page]
2.掩膜选择:PC口选为CMOS并带上拉电阻
硬件连接:PA.7与PA.0口相连接程序说明:本程序的目的要说明在执行读-修改-写指令时发生的特殊情况。
程序说明:
执行以上程序,我们会发现PA.0和PA.7引脚的值始终为0,但实际上PA.0和PA.7 内部锁存器的值是变化的,参见程序注释。
如果用单步调试,我们就能观察到“Read—Modify—Write”的过程。当程序执行完(2)时,将连接PA.0和PA.7的导线断开,则执行完下一条语句后PA.0引脚的值会变为1。
加上(3)语句,如果在执行完(2)时断开连接,则最后结果为PA.0=1、PA.7=1;如果在执行完(3)时断开连接,则最后结果为PA.0=0、Pa.7=1。在使用过程中因注意以上区别所以某个口当为NMOS结构,要作为输入口时,一定要先向该口写“1”,再读入该口的输入状态,
并且读口状态的操作一定要紧接在写“1”操作之后,避免因执行“Read—Modify—Write”指令而发生错误。
关键字:MCU 输入 输出口
引用地址:
MCU 中输入/输出口的使用
推荐阅读最新更新时间:2024-03-16 13:59
单片机计数器计数脉冲检测汇编程序
4位数码管用2个573接到p0口,位选p2 段选P0口,电路详见单片机开发板的原理图: 点这里 采用定时器来记录脉冲 并用数码管输出 以下是源代码: ;********51hei单片机 计数脉冲检测汇编程序,数码管显示脉冲的的次数 ********************************** ORG 0000H JMP MAIN ORG 000BH JMP TT0 ORG 001BH JMP TT1 MOV 23H,#300 MOV 20H,#00H MOV SP,70H ;============================
[单片机]
瑞萨与OTI合推银行用非接触支付解决方案
致力于移动、汽车和PC/AV(音视频)的半导体系统解决方案供应商瑞萨科技公司(Renesas Technology Corp.),与基于微处理器的非接触智能卡解决方案供应商On Track Innovations Ltd(OTI)联合宣布,他们为美国非接触支付市场开发了一种安全的非接触微控制器解决方案。新的安全支付解决方案已获得MasterCard PayPass 3.3规范,以及符合非接触卡标准的Visa 2.0.2 A&C V3.0规范的认证。该解决方案将首先供应美国银行,以及全球发行行业标准非接触卡的银行。 瑞萨科技提供基于其AE系列智能卡控制器技术的非接触微控制器,OTI提供操作系统和应用软件,包括嵌入技术的
[单片机]
VC++用ActiveX控件与单片机串行通信
在单片机应用系统中,经常需要通过RS-232串行口与微机进行通信。目前在各种操作系统中,Microsoft的Windows较为常见,而且大多为Windows95/98等32位平台。以往在Windows平台上的串行通信多使用其提供的API函数来实现,这种方法使用起来需要许多底层设置,因而较为繁琐,并且难以理解。Microsoft推出的ActiveX技术提供了另外一种实现串行通信的方法。这种方法不仅相对较为简单,而且非常实用。尤其是Visual C++这种可视化面向对象的编程环境中,可以真正把串口看作一个对象,编程时只需简单的设置,理解起来也很容易。下面详细讨论Microsoft提供的串行通信ActiveX控件的使用方法。该控件的相
[单片机]
单片机学习之十八:串行通讯程序:单片机发送
一、实验现象: 每次按下k0按键,由单片机向电脑发送数据62。 二、实验目的 掌握单片机串行通讯的概念、特点 掌握串行通讯波特率的计算方法 掌握max232接口芯片的连接方法 掌握方式1串口通讯的简单程序编写 三、实验任务分析: 在这个实验里面,我们来学习编写一个单片机和PC机之间的通讯程序。首先我们来学习一些和串行通讯有关的理论知识。 通讯的基本方式分为并行通讯和串行通讯。由于MCS-51系列单片机有一个异步全双工(全双工:指的是数据可以同时进行双向的传送)的串行口,所以我们只研究串行通讯的问题。这里有个新概念-异步,下面我们简单的给大家解释一下。 (一)、异步通讯的概
[单片机]
89C51单片机中文简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称 单片机 。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器 的单片机。单片机的 可 擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多 功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机 为很多嵌入式控制系统提供了一种灵活性
[单片机]
单片机测试系统的数据存储和管理
引言 在自动化测试领域里,单片机测试系统凭借其成熟的应用体系,简单的系统结构以及优良的性价比得到了越来越广泛的应用。近年来,随着新的测试对象不断出现,以及测试手段的不断发展,测试系统的功能越来越完善,各种应用场合对测试系统的要求也日益提高。现在的大多数测试系统不仅要完成工业现场的实时测控任务,同时还要进一步实现对测试数据的实时处理和保存。以往在一般的单片机测试系统中,信息的存储量并不大,系统只须用较少的资源就能实现数据的存储。但是随着存储芯片技术的不断发展,适用于单片机系统的存储芯片已经可以在掉电保护的情况下保存上百KB甚至几MB的数据;同样,目前的单片机测试系统也面临动辄处理并保存上千条乃至近万条测试数据的问题。这对一般的缺少
[应用]
51单片机用nrf905头文件
简介:本文提供一个51单片机用nrf905头文件的代码。 #define nRFMainDev //主设备 //#define SysWaitTime 20//0.5*20=10S不压键停止闪烁 #define SysWaitTime 6//0.5*20=3S不压键停止闪烁 #define SysPushKeyTime 150//长压键150 * 20mS = 3。0S #define T2_5mS -921.6*5//5ms 12MHz /*------------------------------------------------ AT89S5X --------------------------------------
[单片机]
STM32单片机特性解析
STM32单片机 由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、 低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名。其强大的功能主要表现在: 特性 1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周
[单片机]