pin脚定义_CY8C4146

Pin
1.特性
1.1.快速设置所有引脚参数和驱动模式
1.2.允许PSoC Creator自动放置和路由信号
1.3.允许同时与一个或多个引脚交互
2.一般描述
2.1.Pins组件允许硬件资源连接到物理端口-pin。它通过适当配置的物理IO引脚提供对外部信号的访问。它还允许为一个或多个引脚选择电气特性(例如,驱动模式);
然后PSoC Creator使用这些特性来自动放置和路由组件内的信号。
2.2.(1)引脚可以用于原理图电线连接,软件或两者兼而有之。
要从组件应用程序编程接口(api)访问一个Pins组件,该组件必须是连续的且不可跨越的。这确保了引脚被保证映射到单个物理端口。
跨端口或不连续的组件只能是从原理图或全局逐脚api访问(参见应用程序编程)接口部分的详细信息)。
(2)在Pins组件中为每个引脚创建了#定义,用于全局api。一个引脚组件可以配置成多种类型的组合。为了方便起见,组件目录提供了四个预配置的引脚组件:模拟、数字双向、数字输入和数字输出。
2.3 何时使用引脚组件
当设计必须通过物理IO引脚生成或访问离设备信号时,使用引脚组件。引脚是元器件目录中最常用的元器件。
例如,它们用于连接电位器、按钮、led和外围传感器(如接近检测器和加速度计)。
3.输入/输出连接
本节介绍引脚组件的各种输入和输出连接。
3.1 引脚显示:引脚可以配置成数字输入、数字输出、数字双向和模拟的复杂组合。简单的配置通常显示为单引脚。
更复杂的引脚类型显示为带有边界框的标准组件。
3.2.1 锁定引脚显示:当使用PSoC Creator设计范围资源引脚编辑器将引脚组件分配给物理通用IO (GPIO)或特殊IO (SIO)引脚时,
引脚的工具提示,组件显示特定的引脚分配。如果一个引脚分配被锁定,则显示组件指示分配.
3.2.2 如果引脚组件设置为显示为总线,则该组件的显示不显示任何锁定引脚分配;但是,工具提示仍然显示此信息。
3.3 软件引脚显示:软件引脚不显示任何终端,因为它们只能通过CPU/DMA驱动。为了从引脚读取,应该启用输入缓冲区参数。sync参数没有
对软件引脚的影响
3.3.1 模拟
当设计需要在设备引脚和连接模拟线的内部模拟终端之间连接时,将引脚组件配置为模拟。
当配置为模拟时,终端显示在符号的右侧,连接用模拟线的颜色绘制。
3.3.2.模拟引脚组件也可以支持数字输入或输出连接,或者两者都支持作为双向连接。可以在同一引脚上将数字输出和模拟信号短接在一起。
这在某些应用程序中可能很有用,但不是一般用例,应该谨慎使用。
3.4.1 数字输入:当您的设计需要在设备引脚和内部数字输入终端之间建立连接时,或者引脚的状态被CPU/DMA读取时,可以将引脚组件配置为数字输入。
在所有使用数字输入引脚的情况下,引脚状态是CPU/DMA可读的。此外,如果显示原理图终端(HW连接),则可以路由到原理图中的其他组件
当可见时,终端显示在符号的右侧。连接是用数字线的颜色绘制的,带有一个小的输入缓冲器来显示信号方向。
数字输入引脚组件也可以支持数字输出和模拟连接。
3.4.2 数字输出使能
(1)当使用数字逻辑快速控制引脚输出驱动器而无需CPU干预时,选择数字输出使能。
(2)该终端上的高逻辑电平启用引脚输出驱动器,由“常规”子选项卡

#ifndef __OLED_H__ #define __OLED_H__ #include <REGX52.H> sbit SCL=P1_0; sbit SDA=P1_1; #endif 其中<REGX52.H>为keil5自带的定义库,内容如下 /*-------------------------------------------------------------------------- AT89X52.H Header file for the low voltage Flash Atmel AT89C52 and AT89LV52. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __AT89X52_H__ #define __AT89X52_H__ /*------------------------------------------------ Byte Registers ------------------------------------------------*/ sfr P0 = 0x80; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr P1 = 0x90; sfr SCON = 0x98; sfr SBUF = 0x99; sfr P2 = 0xA0; sfr IE = 0xA8; sfr P3 = 0xB0; sfr IP = 0xB8; sfr T2CON = 0xC8; sfr T2MOD = 0xC9; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2 = 0xCC; sfr TH2 = 0xCD; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; /*------------------------------------------------ P0 Bit Registers ------------------------------------------------*/ sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86; sbit P0_7 = 0x87; /*------------------------------------------------ PCON Bit Values ------------------------------------------------*/ #define IDL_ 0x01 #define STOP_ 0x02 #define PD_ 0x02 /* Alternate definition */ #define GF0_ 0x04 #define GF1_ 0x08 #define SMOD_ 0x80 /*------------------------------------------------ TCON Bit Registers ------------------------------------------------*/ sbit IT0 = 0x88; sbit IE0 = 0x89; sbit IT1 = 0x8A; sbit IE1 = 0x8B; sbit TR0 = 0x8C; sbit TF0 = 0x8D; sbit TR1 = 0x8E; sbit TF1 = 0x8F; /*------------------------------------------------ TMOD Bit Values ------------------------------------------------*/ #define T0_M0_ 0x01 #define T0_M1_ 0x02 #define T0_CT_ 0x04 #define T0_GATE_ 0x08 #define T1_M0_ 0x10 #define T1_M1_ 0x20 #define T1_CT_ 0x40 #define T1_GATE_ 0x80 #define T1_MASK_ 0xF0 #define T0_MASK_ 0x0F /*------------------------------------------------ P1 Bit Registers ------------------------------------------------*/ sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; sbit P1_3 = 0x93; sbit P1_4 = 0x94; sbit P1_5 = 0x95; sbit P1_6 = 0x96; sbit P1_7 = 0x97; sbit T2 = 0x90; /* External input to Timer/Counter 2, clock out */ sbit T2EX = 0x91; /* Timer/Counter 2 capture/reload trigger & dir ctl */ /*------------------------------------------------ SCON Bit Registers ------------------------------------------------*/ sbit RI = 0x98; sbit TI = 0x99; sbit RB8 = 0x9A; sbit TB8 = 0x9B; sbit REN = 0x9C; sbit SM2 = 0x9D; sbit SM1 = 0x9E; sbit SM0 = 0x9F; /*------------------------------------------------ P2 Bit Registers ------------------------------------------------*/ sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7; /*------------------------------------------------ IE Bit Registers ------------------------------------------------*/ sbit EX0 = 0xA8; /* 1=Enable External interrupt 0 */ sbit ET0 = 0xA9; /* 1=Enable Timer 0 interrupt */ sbit EX1 = 0xAA; /* 1=Enable External interrupt 1 */ sbit ET1 = 0xAB; /* 1=Enable Timer 1 interrupt */ sbit ES = 0xAC; /* 1=Enable Serial port interrupt */ sbit ET2 = 0xAD; /* 1=Enable Timer 2 interrupt */ sbit EA = 0xAF; /* 0=Disable all interrupts */ /*------------------------------------------------ P3 Bit Registers (Mnemonics & Ports) ------------------------------------------------*/ sbit P3_0 = 0xB0; sbit P3_1 = 0xB1; sbit P3_2 = 0xB2; sbit P3_3 = 0xB3; sbit P3_4 = 0xB4; sbit P3_5 = 0xB5; sbit P3_6 = 0xB6; sbit P3_7 = 0xB7; sbit RXD = 0xB0; /* Serial data input */ sbit TXD = 0xB1; /* Serial data output */ sbit INT0 = 0xB2; /* External interrupt 0 */ sbit INT1 = 0xB3; /* External interrupt 1 */ sbit T0 = 0xB4; /* Timer 0 external input */ sbit T1 = 0xB5; /* Timer 1 external input */ sbit WR = 0xB6; /* External data memory write strobe */ sbit RD = 0xB7; /* External data memory read strobe */ /*------------------------------------------------ IP Bit Registers ------------------------------------------------*/ sbit PX0 = 0xB8; sbit PT0 = 0xB9; sbit PX1 = 0xBA; sbit PT1 = 0xBB; sbit PS = 0xBC; sbit PT2 = 0xBD; /*------------------------------------------------ T2CON Bit Registers ------------------------------------------------*/ sbit CP_RL2= 0xC8; /* 0=Reload, 1=Capture select */ sbit C_T2 = 0xC9; /* 0=Timer, 1=Counter */ sbit TR2 = 0xCA; /* 0=Stop timer, 1=Start timer */ sbit EXEN2= 0xCB; /* Timer 2 external enable */ sbit TCLK = 0xCC; /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */ sbit RCLK = 0xCD; /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */ sbit EXF2 = 0xCE; /* Timer 2 external flag */ sbit TF2 = 0xCF; /* Timer 2 overflow flag */ /*------------------------------------------------ T2MOD Bit Values ------------------------------------------------*/ #define DCEN_ 0x01 /* 1=Timer 2 can be configured as up/down counter */ #define T2OE_ 0x02 /* Timer 2 output enable */ /*------------------------------------------------ PSW Bit Registers ------------------------------------------------*/ sbit P = 0xD0; sbit F1 = 0xD1; sbit OV = 0xD2; sbit RS0 = 0xD3; sbit RS1 = 0xD4; sbit F0 = 0xD5; sbit AC = 0xD6; sbit CY = 0xD7; /*------------------------------------------------ Interrupt Vectors: Interrupt Address = (Number * 8) + 3 ------------------------------------------------*/ #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */ #define TF0_VECTOR 1 /* 0x0B Timer 0 */ #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ #define TF1_VECTOR 3 /* 0x1B Timer 1 */ #define SIO_VECTOR 4 /* 0x23 Serial port */ #define TF2_VECTOR 5 /* 0x2B Timer 2 */ #define EX2_VECTOR 5 /* 0x2B External Interrupt 2 */ #endif  请你告诉我为什么我会有oled.h(8): error C146: 'P1_0': invalid base address oled.h(9): error C146: 'P1_1': invalid base address oled.c(7): error C202: 'SDA': undefined identifier oled.c(8): error C202: 'SCL': undefined identifier oled.c(9): error C202: 'SDA': undefined identifier oled.c(10): error C202: 'SCL': undefined identifier oled.c(16): error C202: 'SCL': undefined identifier oled.c(17): error C202: 'SDA': undefined identifier oled.c(18): error C202: 'SCL': undefined identifier oled.c(19): error C202: 'SDA': undefined identifier oled.c(31): error C202: 'SDA': undefined identifier 这些错误
最新发布
11-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sumerking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值