第一篇:C8051f020 IO配置小结
C8051f020 I/O配置小结
020的每个I/O口引脚都可以被配置为推挽或漏极开路输出。同时引入了数字交叉开关,允许将内部数字系统资源映射到P0、P1、P2和P3的端口引脚。通过设置交叉开关寄存器可将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。必须在访问这些外设的I/O之前配置和允许交叉开关。注意的问题:
1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。2.没有被分配到的引脚作为一般的数字通用I/O口。3.P1口还可以用作ADC1的模拟输入。
4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的输出状态。
5.EMIF(外部存储器接口)是用于CPU与片外XRAM之间的数据传输通道,通过寄存器EMI0CF和EMI0CN选择和管理端口实现数据的传输。
6.为了能访问片外存储器空间,必须设置EMI0CN寄存器的内容为片外存储器的空间页地址。7.如果把外部存储器接口(EMIF)设置在高端口则首先要把EMI0CF的PRTSEL位设置为1,选择高端口,同时选择地址的复用或非复用方式,在把XBR的外部寄存器的EMIFLE位设置为0。8.复用方式配置:在复用方式下,数据总线和地址总线的第8位共用相同的引脚(AD0~AD7)。在该方式下,要用一个外部锁存器(如74HC373或相同功能的锁存器)保持RAM地址的低8位。外部锁存器由ALE(地址锁存使能)信号控制,ALE信号由外部存储器接口逻辑驱动。9.在总线复用时,需要把地址数据复用端口配置为漏极开路。
10.ALE高/低脉宽占1个SYSCLK周期,地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期,EMIF工作在地址/数据复用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF的步骤是:先将EMIF选到低端口或高端口;然后选择复用方式或非复用方式;再选择存储器的模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器);然后设置EMI0TC;最后通过寄存器PnMDOUT和P74OUT选择所期望的相关端口的输出方式。如: void PORT_Init(void){ XBR2 = 0x40;/*使能交叉开关和弱上拉*/ P74OUT |= 0xff;/*使能P4~P7推挽输出*/ EMI0CF |= 0x2c;/*EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉宽占1个SYSCLK周期*/ EMI0TC |= 0x6c;/*地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期*/ P3MDOUT |= 0xdf;/*使能P3.5推挽输出*/ } 11.避免高端口处于“浮空”状态,以避免因输入浮空为无效逻辑电平而导致不必要的功率消耗,为此应采取如下措施的任何一种:a.将XBR2.7位设置为逻辑0选择弱上拉状态
R/W R/W R/W R/W R/W R/W R/W R/W 复位值 WEAKPUD XBARE-T4EXE T4E UART1E EMIFLE CNVSTE 00000000 位7 位6 位5 位4 位3 位2 位1 位0 SFR地址
位7 WEAKPUD 弱上拉禁止位 0 弱上拉全局允许 1 弱上拉全局禁止
位6 XBARE 交叉开关允许位 0 交叉开关禁止端口0 1 2 和3 的所有引脚被强制为输入方式 1 交叉开关允许 位5 未用读0 写=忽略 位4 T4EXE T4EX 输入允许位 0 T4EX 不连到端口引脚 1 T4EX 连到端口引脚 位3 T4E T4 输入允许位 0 T4 不连到端口引脚 1 T4 连到端口引脚
位2 UART1E UART1 I/O 允许位 0 UART1 I/O 不连到端口引脚 1 UART1 TX 和RX 连到两个端口引脚 位1 EMIFLE 外部存储器接口低端口允许位
0 P0.7 P0.6 和P0.5 的功能由交叉开关或端口锁存器决定 1 如果EMI0CF.4 = 0 外部存储器接口为复用方式
则P0.7(/WR)P0.6(/RD)和P0.5(/ALE)被交叉开关跳过它们的输出 状态由端口锁存器和外部存储器接口决定 如果EMI0CF.4 = 1 外部存储器接口为非复用方式
则P0.7(/WR)和P0.6(/RD)被交叉开关跳过它们的输出状态由端口锁 存器和外部存储器接口决定
位0 CNVSTE 外部转换启动输入允许位 0 CNVSTR 不连到端口引脚 1 CNVSTR 连到端口引脚;
b.令P74OUT=0xFF,将高端口输出方式配置为推拉方式(P74OUT为高端口输出方式寄存器); c.向高端口数据寄存器P4、P5、P6和P7写0。12.配置端口引脚的输出方式
每个端口引脚的输出方式都可被配置为漏极开路或推挽方式。在推挽方式下向端口数据寄存器中的相应位写逻辑0 将使端口引脚被驱动到GND 写逻辑1 将使端口引脚被驱动到VDD,在漏极开路方式下向端口数据寄存器中的相应位写逻辑0 将使端口引脚被驱动到GND 写逻辑1 将使端口引脚处于高阻状态,当系统中不同器件的端口引脚有共享连接。即多个输出连接到同一个物理线时(例如SMBus 连接中的SDA 信号),使用漏极开路方式可以防止不同器件之间的冲突。(推挽方式在有些书中称为推拉方式)
转载-关于开漏、推挽方式2008-01-27 17:53漏级开路即高阻状态,适用于输入/输出,其可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻或使用如LCX245等电平转换芯片。有些朋友,尤其是未学过此方面知识的朋友,在实际工作中将I/O口设置为漏开,并想输出高电平,但向口线上写1后对方并未认出高电平,但用万用表测量引脚确有电压,这种认为是不对的,对于高阻状态来说,测量电压是无意义的,正确的方法应是外加上拉电阻,上拉电阻的阻值=上拉电压/芯片引脚最大灌(拉)电流。
推挽方式可完全独立产生高低电平,推挽方式为低阻,这样,才能保证口线上不分走电压或分走极小的电压(可忽略),保证输出与电源相同的高电平,推挽适用于输出而不适用于输入,因为若对推挽(低阻)加高电平后,I=U/R,I会很大,将造成口的烧毁。对与C8051F的很多型号片子,将I/O口设置为推挽方式的做法为:PnMDOUT=0xff,Pn=0x00,这样设置I/O口为推挽,并输出低电平(可降低功耗)将I/O口设置为漏开方式的做法为:PnMDOUT=0x00,Pn=0x11,这样设置I/O口为漏开。
如果学过三极管放大电路一定知道,前置单管放大器和功放末级放大电路的区别。单片机内部的逻辑经过内部的逻辑运算后需要输出到外面,外面的器件可能需要较大的电流才能推动,因此在单片机的输出端口必须有一个驱动电路。
这种驱动电路有两种形式: 其中的一种是采用一只N型三极管(npn或n沟道),以npn三极管为例,就是e接地,b接内部的逻辑运算,c引出,b受内部驱动可以控制三极管是否导通但如果三极管的c极一直悬空,尽管b极上发生高低变化,c极上也不会有高低变化,因此在这种条件下必须在外部提供一个电阻,电阻的一端接c(引出脚)另一端接电源,这样当三极管的b有高电压是三极管导通,c电压为低,当b为低电压时三极管不通,c极在电阻的拉动下为高电压,这种驱动电路有个特点:低电压是三极管驱动的,高电压是电阻驱动的(上下不对称),三极管导通时的ec内阻很小,因此可以提供很大的电流,可以直接驱动led甚至继电器,但电阻的驱动是有限的,最大高电平输出电流=(vcc-Vh)/r;
另一种是互补推挽输出,采用2只晶体管,一只在上一只在下,上面的一只是n型,下面为p型(以三极管为例),两只管子的连接为:npn(上)的c连vcc,pnp(下)的c接地,两只管子的ee,bb相连,其中ee作为输出(引出脚),bb接内部逻辑,这个电路通常用于功率放大点路的末级(音响),当bb接高电压时npn管导通输出高电压,由于三极管的ec电阻很小,因此输出的高电压有很强的驱动能力,当bb接低电压时npn截至,pnp导通,由于三极管的ec电阻很小因此输出的低电压有很强的驱动能力,简单的例子,9013导通时ec电阻不到10欧,以Vh=2.5v,vcc=5v计算,高电平输出电流最大=250MA,短路电流500ma,这个计算同时告诉我们采用推挽输出时一定要小心千万不要出现外部电路短路的可能,否则肯定烧毁芯片,特别是外部驱动三极管时别忘了在三极管的基极加限流电阻。推挽输出电路的形式很多,有些单片机上下都采用n型管,但内部逻辑提供互补输出,以上的说明仅仅为了说明推挽的原理,为了更深的理解可以参考功率放大电路。
推挽方式可完全独立产生高低电平,推挽方式为低阻,这样,才能保证口线上不分走电压或分走极小的电压(可忽略),保证输出与电源相同的高电平,推挽适用于输出而不适用于输入,因为若对推挽(低阻)加高电平后,I=U/R,I会很大,将造成口的烧毁。
对与C8051F的很多型号片子,将I/O口设置为推挽方式的做法为:PnMDOUT=0xff,Pn=0x00,这样设置I/O口为推挽,并输出低电平(可降低功耗)将I/O口设置为漏开方式的做法为:PnMDOUT=0x00,Pn=0x11,这样设置I/O口为漏开。
推挽输出0的时候和开漏特性一样,就是1的时候可以当作直接接VCC.推挽输出的驱动能力相当强,因为输出1就等于接到了VCC.而同时推挽输出的IO也需要注意不要直接接到地,否则一旦输出1,就等于VCC通过内部的场效应管直接到地了,这时候IO端发热就很大,时间长就就拜拜了.你看到DX32实验板上,按键部分都是串了个300欧才到地的,就是为了避免IO误操作,使这些输入变成推挽输出1而做的保护.以此为设计依据,一般情况下,所有的IO都尽量避免直接到地,即使这个IO你是打算用来做输入的.
第二篇:北方常规植物配置小结
北方常规植物配置小结
作上木的树种有:银杏、白蜡、臭椿、合欢、槐树、栾树、刺槐、悬铃木、元宝枫、柿树、杜仲、流苏、旱柳、山桃、晚樱、毛白杨、白榆、皂荚、桧柏、侧柏、白皮松、雪松、油松、华山松、玉兰、洋白蜡等。
作中木在林下较阴的条件下生长的植物有:鸡麻、连翘、小花溲疏、溲疏、大花溲疏、天目琼花、红瑞木、蓝荆子、金银木、珍珠梅、柳叶绣线菊、棣棠、四照花,大叶黄杨、粗榧等。在较疏的林下或全日照条件下生长的中木有:矮紫杉、紫荆、小叶黄杨、猬实、太平花、紫叶小檗、圆锥绣球、珍珠梅等。
作下层地被的植物有:阔叶土麦冬、崂峪苔草、土麦冬、垂盆草、络石、大花萱草、玉簪、紫萼、二月兰、紫花地丁、地锦等。
适合应用的植物群落模式:
(1)毛白杨——元宝枫+碧桃+山楂——榆叶梅+金银花+紫枝忍冬+白皮松(幼)——玉簪+大花萱草
(2)银杏+合欢——金银木+小叶女贞——品种月季——早熟禾
(3)国槐+桧柏——裂叶丁香+天目琼花——崂峪苔草
(4)毛白杨+栾树+云杉——珍珠梅+金银木——崂峪苔草
(5)臭椿+元宝枫——榆叶梅+太平花+连翘+白丁香——美国地锦+崂峪苔草
(6)毛白杨+桧柏——天目琼花+金银木——紫花地丁+阔叶土麦冬
(7)华山松+馒头柳+西府海棠——紫丁香+紫珠+连翘——崂峪苔草+早熟禾
(8)国槐+白皮松——花石榴+金叶女贞+太平花——崂峪苔草
(9)大叶白蜡+馒头柳+桧柏——麻叶锈线菊+连翘+丁香——宽叶麦冬
(10)悬铃木+银杏+桧柏——胶东卫矛+棣棠+金银木——扶芳藤+崂峪苔草
(11)垂柳+栾树+桧柏——棣棠+紫薇+海州常山——崂峪苔草+玉簪
(12)垂柳——白皮松+西府海棠——腊梅+丁香+平枝栒子——崂峪苔草
(13)国槐——红花锦带+珍珠梅——扶芳藤+紫花地丁
(14)侧柏——太平花+金银木——紫花地丁+二月兰
(15)栾树——天目琼花——铁线莲
(16)悬铃木+华山松+臭椿——紫叶李+木槿+红叶桃——宽叶麦冬
(17)国槐+云杉+栾树——山楂+小叶女贞+粉团蔷薇——美国地锦+金银花+崂峪苔草
(18)银杏+合欢+白皮松+栾树——金银木+天目琼花+忍冬=紫叶小檗——金银花+金叶女贞
(19)华山松+馒头柳+绒毛白蜡+西府海棠——紫丁香+连翘+紫珠——金银花+大花萱草+崂峪苔草
(20)油松+元宝枫——珍珠梅+锦带花+迎春——冷季型混播草(黑麦草+高羊毛+早熟禾)
第三篇:C8051F020的PCA配置小结
C8051F020 PCA配置小结
PCA(可编程计数器阵列Programmable Counter Aaray)由高字节(PCA0L)和低字节(PCA0L)组成。在读PCA0L 的同时自动锁存PCA0H 的值,先读PCA0L 寄存器将使PCA0H 的值得到保持
(在读PCA0L 的同时),直到用户读PCA0H 寄存器为止。读PCA0H 或PCA0L 不影响计数器工 作。PCA0MD 寄存器中的CPS2-CPS0 位用于选择PCA 计数器/定时器的时基信号。CPS2 CPS1 CPS0 时间基准
0 0 0 系统时钟的12 分频 0 0 1 系统时钟的4 分频 0 1 0 定时器0 溢出
0 1 1 ECI 负跳变(最大速率 = 系统时钟频率/4)1 0 0 系统时钟
0 1 外部振荡源8 分频(与系统时钟同步)1.工作原理:当计数/定时器溢出时,PCA0MD中的计数器溢出标志(CF)被置为1,并产生中断 请求(如果CF 中断被允许)。将PCA0MD 中ECF 位设置为逻辑1 即可允许CF 标志产生中断请
求。当CPU 转向中断服务程序时,CF 位不能被硬件自动清除,必须用软件清0。(注意:要
使CF 中断得到响应,必须先总体允许PCA0 中断。通过将EA 位(IE.7)和EPCA0(EIE1.3)设置为逻辑1 来总体允许PCA0 中断。清除PCA0MD寄存器中的CIDL 位将允许PCA 在微控制
器内核处于等待方式时继续正常工作。2.PCA0CN:PCA控制寄存器
R/W R/W R/W R/W R/W R/W R/W R/W 复位值
CF CR--CPS2 CPS1 CPS0 ECF 00000000 位7 位6 位5 位4 位3 位2 位1 位0 SFR地址 0xD9 位7: CIDL: PCA0 计数器/定时器等待控制 规定CPU 等待方式下的PCA0 工作方式
0: 当系统控制器处于等待方式时,PCA0 继续正常工作 1: 当系统控制器处于等待方式时,PCA0 停止工作 位6-4 :未用读=000b 写=忽略
位3-1: CPS2-CPS0 PCA0 计数器/定时器脉冲选择 位0: ECF: PCA 计数器/定时器溢出中断允许 该位是PCA0 计数器/定时器溢出CF 中断的屏蔽位 0: 禁止CF 中断
1: 当CF(PCA0CN.7)置位时允许PCA0 计数器/定时器溢出中断请求 PCA0CPMn:PCA捕捉/比较寄存器
PWM16n ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn 00000000 位7 位6 位5 位4 位3 位2 位1 位0 SFR地址
0xDA-0xDE PCA0CPMn 地址 PCA0CPM0 0xDA(n=0)PCA0CPM1 0xDB(n=1)PCA0CPM2 0xDC(n=2)PCA0CPM3 0xDD(n=3)PCA0CPM4 0xDE(n=4)位7: PWM16n: 16 位脉冲宽度调制允许
当脉冲宽度调制方式被允许时(PWMn = 1),该位选择16 位方式 0: 选择8 位PWM 1: 选择16 位PWM 位6: ECOMn: 比较器功能允许
该位允许禁止PCA0 模块n 的比较器功能 0: 禁止 1: 允许
位5: CAPPn: 正沿捕捉功能允许
该位允许禁止PCA0 模块n 的正边沿捕捉 0: 禁止 1: 允许
位4: CAPNn 负沿捕捉功能允许
该位允许禁止PCA0 模块n 的负边沿捕捉 0: 禁止 1: 允许 位3: MATn 匹配功能允许
该位允许/禁止PCA0 模块n 的匹配功能.如果被允许,当PCA0 计数器与一 个模块的捕捉比较寄存器匹配时,PCA0MD 寄存器中的CCFn 位置位 0 :禁止 1: 允许
位2: TOGn 电平切换功能允许
该位允许/禁止PCA0 模块n 的电平切换功能.如果被允许,当PCA0 计数器 与一个模块的捕捉/比较寄存器匹配时,CEXn 引脚的逻辑电平切换.如果 PWMn 位也被置为逻辑1, 则模块工作在频率输出方式 0: 禁止 1: 允许
位1: PWMn 脉宽调制方式允许
该位允许/禁止PCA0 模块的PWM 功能.如果被允许,CEXn 引脚输出脉冲 宽度调制信号.如果PWM16n 为逻辑0, 使用8 位PWM 方式;如果PWM16n 为逻辑1, 使用16 位方式;如果TOGn 位也被置为逻辑1 ,则模块工作 在频率输出方式 0: 禁止 1: 允许
位0: ECCFn 捕捉比较标志中断允许
该位设置捕捉比较标志CCFn 的中断屏蔽 0: 禁止CCFn 中断
1: 当CCFn 位被置1 时允许捕捉比较标志的中断请求 3.捕捉/比较模块的工作方式:
边沿触发捕捉、软件定时器、高速输出、频率输出、8位脉宽调制器和16位脉宽调制器
第四篇:Maven pom文件常用配置小结
Maven pom文件常用配置小结
什么是POM Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
一个完整的pom.xml文件,放置在项目的根目录下。
…
…
…
…
…
… 基本设置
maven的协作相关属性
war 1.groupId : 组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录。
2.artifactId : 项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录。
3.version : 版本号,例如:1.0,在M2_REPOorg/codehaus/mojo/my-project/1.0目录。
4.packaging : 打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par POM之间的关系
目录下,将是:主要用于POM文件的复用。
依赖关系:依赖关系列表(dependency list)是POM的重要部分。
1.groupId , artifactId , version : 2.scope : compile(default),provided,runtime,test,system 3.exclusions 继承关系:继承其他pom.xml配置的机制。比如父pom.xml:
[...]
maven的属性,是值的占位符,类似EL,类似ant的属性,比如${X},可用于pom文件任何赋值的位置。有以下分类:
1.env.X:操作系统环境变量,比如${env.PATH} 2.project.x3.settings.x::
pom
文
件文
中件的中
属的性属,性引,用
比比方
如如式
:::
settings.xml
:
在pom
文
件
中
可
以
:
构建有两种build标签:
…
build中的主要标签:Resources和Plugins。Resources:用于排除或包含某些资源文件
第五篇:TestLink的安装与配置小结-JIRA[范文模版]
TestLink的安装与配置小结-JIRA
发布时间: 2009-11-30 16:01
作者: forgetitit
来源: 51Testing软件测试博客
字体: 小
中
大
| 上一篇 下一篇 | 打印
| 我要投稿
TestLink的汉化:
1)打开testlink下cfg文件夹下的config.inc.php文件
查找$g_default_language = 'en_GB';
修改为
$g_default_language = 'zh_CN';
则可以解决登录界面汉化的问题。
2)登录后,在菜单栏中的Personal中更改admin默认的语言,选择“Chinese silmpified”。
3)此时,界面会有些乱码,是因为汉化不彻底。解决方法是:替换testlinklocalezh_CN目录下的strings.txt
4)
至此,里面日期还会有乱码,需要修改testlink下cfg文件夹下的const.inc.php文件,修改方法如下:
打开 testlinkconst.inc.php文件
查找'zh_CN'。有两处为时间格式,内有方框,分别改为:
'zh_CN' => “%Y-%m-%d”
'zh_CN' => “%Y-%m-%d %H:%M:%S”
注:保存为ANSI格式。
TestLink与jira的集成
testlink是基于PHP,MySQL的系统。通过修改testlink的配置可以和JIRA集成.主要涉及修改两个文件: cfgjira.cfg.php和config.inc.php
1)修改
/** [Bug Tracking systems] */
设置$g_interface_bugs='JIRA';
2)修改< testlink installation directory>/cfg/
//Set the bug tracking system Interface to JIRA 3.1.1
设置jira的database的ip(最好用mysql,mssql没有连上)
define('BUG_TRACK_DB_HOST', '
设置jira的database name
define('BUG_TRACK_DB_NAME', '
登录jira数据库的用户名
define('BUG_TRACK_DB_USER', '
登录jira数据库的密码
define('BUG_TRACK_DB_PASS', '
显示bug的超链
define('BUG_TRACK_HREF', “
设置数据库类型(mysql,msql 等等)
define('BUG_TRACK_DB_TYPE', 'mysql');
添加bug的超链
define('BUG_TRACK_ENTER_BUG_HREF',“