第六集 i/o工作模式 汇编入门
io复用也叫功能引脚切换 红色为常用
(1) p0口
可复用为数据总线(D7~D0)、地址总线低8位(A7~A0)、ADC输入(ADC8~ADC14)、串口3、串口4、T3时钟输出、T3脉冲输入、T4时钟输出T4脉冲输入、PWM输出控制。
(2)P1口
P1口可复用为ADC转换输入(ADC7~ADCO,无ADC2)、PWM输出、SPI通信线、第 二串口、第三串口、系统时钟输出、外接晶体引脚、I2C通信线等。
(3)P2口
P2可作为地址总线的高8位输出(A15~A8)。另外,P2口还用于SPI和I2C以及PWM输出。
(4)P3口
P3口可复用为外部中断输入、计数器输入、SPI、I2C、比较器输入和输出、串口1、PWM输出等功能。
(5)P4
P4口的复用功能可配置为SPI通信、读写控制信号、串口2、地址锁存信号等。
(6)P5口
P5口的复用功能可配置串口3、串口4、比较器输入、复位脚、系统时钟输出、SPI接口的从机选择信号、PWM输出。
(7)P6口可复用为PWM输出。
(8)P7口可复用为PWM输出和I2C接口。
4、I/O口的使用
(1)上拉电阻的连接
为什么上拉,默认准双向,是弱上拉。
(2)拉电流方式和灌电流方式
拉:电流低,io到负载。 灌:电流高点20ma, 负载到io,(推荐)。 限流电阻一定要有。
(3)典型的三极管控制电路
当需要驱动的功率器件较多时,建议采用达林顿管驱动器ULN2803
(4)I/O外部状态的输入
当I/O口工作于准双向口时,由于STC8H8K64U单片机是1个时钟周期(1T)的8051单片机,速度很快,如果通过指令执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,有时可能读入的状态不对。这种问题的解决方法是在软件设置由低变高后加延时,然后再读I/O口的状态。
先初始化端口,再延时(20ms),再执行逻辑读Io。
5、
单片机应用系统的典型构成
(1)非总线扩展方式的单片机应用系统构成
STC8H8K64U单片机内部已经有64 KB程序存储器和8192B RAM,可以满足一般应用的存储器需求。此时,单片机的P0、P2和P4口不用于总线方式,即P0口和P2口用于普通I/O口功能;P4.2和P4.4不用于写控制信号和读控制信号,也用于普通I/O口功能。
(2)总线扩展方式的单片机应用系统构成
如果需要扩展存储器容量或者并行I/O,需要使用总线扩展方式。此时,8位的数据总线由P0口提供,16位的地址总线由P2和P0口构成。P4口中的/WR(P4.2)和/RD(P4.4)引脚的作用是写控制和读控制。ALE(P4.5)信号用于锁存器的锁存控制,以锁存由P0口输出的地址,从而实现地址和数据的分离。
nWR /WR 低电平有效
汇编入门
一、汇编语言程序设计基础知识
1 。 伪指令
伪指令并不产生目标程序,不影响程序的执行,仅仅产生供汇编用的某些指令,以便在汇编时执行一些特殊操作。
二、汇编语言程序仿真过程
(1)设置起始地址ORG(Origin)
ORG addr16其中,ORG是该伪指令的操作助记符,操作数addr16是16位二进制数,前者表明为后续源程序汇编后的目标程序安排存放位置,后者则给出了存放的起始地址值。ORG伪指令总是出现在每段源程序或数据块的开始。可使程序员把程序、子程序或数据块存放在存储器的任何位置。例如:
ORG 2000H
MOV A,20H
表示后面的目标程序从2000H单元开始存放。
若在源程序开始不放ORG指令,则汇编将从0000H单元开始存放目标程序。
(2)定义字节DB(Define Byte)
- 例如:
- HERE: DB 84H ;(HERE)=84
- DB 43H ;(HERE+1) =43H
复制代码
复制代码
|