从51跳cortex-m0学习2——程序详解
跳cortex-m0——思想转变》之后又一入门级文章,在此不敢请老鸟们过目。不过要是老鸟们低头瞅了一眼,发现错误,还请教育之,那更是感激不尽。
与Cortex在某些操作方式上的异同,让自己对Cortex有了更深一步的了解,所以在此分享,以期对我们这些“51菜”在学习Cortex上有所帮助,文中有不对之处,还请大虾们指正。
正文
与新唐操作方式
)、在51上,我们向外写数据主要是通过P0,P1,P2,P3口,且在每个端口上分别有8个引脚。(在这里我们用端口代表P1等,用引脚代表P1^0等);而新唐上,我们主要通过PA,PB,PC向外发送数据,且在每个端口上有16个引脚。这些引脚即可以按字节/双字输出,也可以按位输出。(2的四个并行口都是双向的,其中,P0口为漏极开路驱动,P1,P2,P3口有内部上拉电阻驱动,是准双向口。而Cortex上引脚上是有个弱上拉电阻的,且其I/O类型可由软件独立地配置(即用户通过设置相应的寄存器来选择引脚是 输入、输出、开漏还是准双向)。我们在使用51是,当需要用到漏极开路模式(即不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候)时,就将器件接到P0口,用到准双向模式(用做输入时被拉高,低则要靠外部电路拉低)时,器件接P1,P2,P3一样,许多I/0口都具有第二,第三功能,但是二者的控制方式有很大不同。我们在使用51时,虽然也面对引脚的第二功能,但是我们在使用第二功能时,并不需要过多的设置,只需在某个时刻的输出数据,我们编程人员自己知道他是数据还是地址即可,相应的操作我们可以在对应的时刻通过其他引脚控制片选来实现数据的流向。但是由于在新唐中,一个引脚的功能可能有多种,且未必只是地址/数据这样简单,还有一些是外部功能引脚,所以,我们在使用相应的引脚功能时,还要设置相应的寄存器。比如:我们要是用PA.15来输出PWM信号,只要向寄存器GPA_MFP中的第15位写入1,寄存器PA15_I2SMCLK中写入0即可使PA.15输出PWM信号。寄存器如下图:
从51跳cortex-m0学习2——程序详解的更多相关文章
- [转]iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
转载地址:http://blog.csdn.net/totogo2010/article/details/7682433 iOS学习之UINavigationController详解与使用(一)添加U ...
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. ...
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...
- [转]iOS学习之UINavigationController详解与使用(三)ToolBar
转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...
- Linux开机启动程序详解
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
- Linux开机启动程序详解[转]
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- 跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码
跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码 第一步:插入QQ摄像头,安装好驱动(有的可能免驱动) 第二步:打开HDevelop,点击助手-打开新的Image Acquisitio ...
- Linux如何实现开机启动程序详解(转)
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
随机推荐
- css position 属性 (absolute 和fixed 区别)
在css3中,position的属性值有:inherit, static, relative ,absolute, fixed. inherit 是继承父元素的position属性值,IE不支持. s ...
- 日期选择器——java
转载:http://zgdeng.iteye.com/blog/1405650 代码如下: import java.awt.BasicStroke; import java.awt.BorderLay ...
- Android学习笔记_点九绘图与软键盘和事件传递
最近项目里遇到的几个小问题,以前只是用吗没有深入看过,现在总结到一起,防止以后这种小问题占用太多时间.还是通过网上别人总结的很多博客学习了,挑选出最易懂明了的. 还有leader很小的问题都不放过,亲 ...
- 常用Json
一般Json是页面与页面之间传递使用. Json用途 1 后台与前台数据交互,并且数据较复杂,如果数据单一,直接传递字符串,然后在前台用js分割就行. 2 webservice和html ...
- 利用for循环求1-100之间的奇数和 and 0-100的偶数和
为了方便自己计算,以下代码只求1-10的奇数和 and 0-10的偶数和 1-10的奇数从1开始分别为1.3.5.7.9 代码如下 /* Name:循环语句得出奇数.偶数并相加求和 Copyright ...
- GridView分页功能的实现
当GridView中显示的记录很多的时候,可以通过GridView的分页功能来分页显示这些记录.如果GridView是直接绑定数据库,则很简单:将"启动分页"打勾即可. 如果是用代 ...
- 剑指offer——stack与queue的互相实现
我们知道,stack和queue是C++中常见的container.下面,我们来探究下如何以stack来实现queue,以及如何用queue来实现stack. 首先,先了解下stack与queue的基 ...
- java 文件处理
package javax.org.path; import java.math.BigDecimal; /** * @Author:jilongliang * @Date :2013-6-18 * ...
- adb server is out of date. killing... ADB server didn't ACK * failed to star
The connection to adb is down, and a severe error has occured. [-- :: - HelloOPone] You must restart ...
- 解决libc.so.6: version `GLIBC_2.14' not found问题, 升级glibc,glibc-2.15
0.以下在系统CentOS 6.3 x86_64上操作 1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的g ...
