11.3.2推挽输出
强推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的
强上拉。推挽模式一般用于需要更大驱动电流的情况。
用推挽输出的时候,假如外界把它拉低,那么2个电平就冲突打架,有可能把下图中的管子烧坏:
I/O口设置不能乱来:
当对方是高阻输入的时候,没有电流流过,你就用强推挽
当对方是强推挽输出的时候,你就高阻输入。
高阻输入,有内部上拉电阻
看下图:
有线间电容,要时间充电后才能反应出高电平,0.0X个微秒后再读
才能读到高电平,这和早期的STC89c52是不同的,因为上电的时候,STC89c52大约在1V的时候
准双向口的弱上拉的管子就启动了,状态一直是高阻输入。
现在工作频率高,电容的效果明显,初始化的时候,最好等个10ms,这样就稳妥。
其实,别看我们使用Keil μVision 好多年了,突然发现很多设置,我们都没有动过
根本不知道它的功能和意义,所以何老师这个第六集,我其实是看了3遍的,主要是关注以前
从来没有关心过的地方:
1 关于Keil 的帮助文档:
先看A251:汇编语言的编写规则,汇编控制命令的写法等
接着是C251:
C251,也就是说在MS-251指令集架构--就是STC32G系列的MCU上怎么用C语言
这里的C包含2部分:
1 通用的C
2 包含STC32系列架构的对C语言的补充和扩展(包括限制)
这里何老师会用反汇编的方式,来看机器语言怎么表示
接着看L251:
C251还可以研究数据结构怎样表示
而L251主要是连接,其实主要讲连接器的原理,分析
对编译结果进行连接所产生的输出文件。
这些其实和学STM32差不多,都要看一下,才能更好的理解从底层到结果的细节
其实STC已经在Keil μVision 里做了好多扩展
语法和通用的C相比,要多学一点点
Keil uVision软件的文档,要认真阅读
在STC251 上跑C语言的时候,有很多例子,这些例子反汇编后
你能发现不只是通用的C,还有针对STC-251的结构一些扩展
看重点:“KeilμVision5集成开发环境和调试器是整个Keil开发工具链的中心,它们提供了大量的特性以帮助程序开发人员快速完成嵌入式应用的开发
μVision5提供了建立模式(Build Mode),用于创建应用程序以及调试模式(Debug Mode),用于调试应用程序通过pVision5集成的仿真器或者实际的硬件系统,设计者对应用程序进行调试
比如:通过STC提供的下载工具STC-ISP和USB下载电缆,设计者可以在实际系统上通过Keil集成开发环境对应用程序进行在线调试。”
你反汇编一下,可以把C语言和底层的硬件结合起来,建立起一定的关联。
这里我发现何老师用的Keil μVision 和我使用的好像都是5.60
那么我们同样的C源程序,反汇编怎么会有区别?
所以有点迷茫......
Keil μVision 的下载安装,相信很多同学和我一样,毕竟是从STC89C52开始跟STC的,就没必要
详细记录何老师的过程了,此处省略100字...........
安装完成后,会产生以下目录:
其中ASM子目录中有这些文件:
主要是一些头文件和例子
仔细看就和51单片机一样,定义了寄存器地址
用记事本打开看看:
定义了一些端口名称,地址。
还可以看懂STC的扩展:
建议用STC的头文件,扩展的太好用了!