OC8051软件编程说明

1、复位

  复位通过复位引脚RST输入,复位必须达到两个周期的高电平才能将系统复位。复位后,PC指针为0000H,因此0000H即为复位向量入口,复位后从此处开始运行程序。复位后P口(P0,P1,P2,P3)被设置为FFH,堆栈指针值为07H,其他特殊功能寄存器的初值均为00H,内部RAM的值不受复位影响,复位后,其值不确定。

2、寄存器列表

  图1为OC8051的寄存器列表:

 

图1 OC8051寄存器列表

  下面依次说明几个特殊功能寄存器功能。

  PSW(程序状态字)

  CY PSW.7  :  进位标志

  AC PSW.6  :  辅助进位标志

  F0 PSW.5  :  用户可用作通用标志

  RS1 RS0 (PSW.4 PSW.3)  :  寄存器组选择

        00  :寄存器组0  地址范围00-07H

        01  :寄存器组1  08-0FH

        10  :寄存器组2  10-17H  

        11  :寄存器组3  18-1FH

  OV  PSW.2  :  溢出标志

  -   PSW.1  :  用户定义标志

  P   PSW.0  :  奇偶标志

  

  IE(中断使能)

  

  EA  :   总中断使能,EA=0;所有的中断都不会被响应,EA=1,中断由各中断的独立使能位控制。

  ET1  :  定时器1中断使能

  EX1  :  外部中断1使能  

  ET0  :  定时器0中断使能

  EX0  :  外部中断0使能

  IP(中断优先级)

  

  前面提到过,OC8051支持两级中断优先级,设为0:对应的中断为低优先级,设为1:对应的中断为高优先级。

  PT1  :  定时器1中断优先级设置

  PX1  :  外部中断1中断优先级设置

  PT0  :  定时器0中断优先级设置

  PX0  :  外部中断优先级设置

  

  TCON(定时/计数器控制寄存器)

  

  TF1  :  定时器1溢出标志,硬件置位,软件清0

  TR1  :  定时器1运行控制,1:启动定时/计数器

  TF0  :  定时器0溢出标志,硬件置位,软件清0

  TR0  :  定时器0运行控制,1:启动定时/计数器

  IE1  :  外部中断1沿标志,检测到外部中断沿,硬件置1,中断响应后,由硬件清0

  IT1  :  外部中断1类型控制,1:下降沿触发;0:低电平触发

  IE0  :  外部中断0沿标志,检测到外部中断沿,硬件置1,中断响应后,由硬件清0

  IT0  :  外部中断0类型控制,1:下降沿触发;0:低电平触发

  TMOD(定时/计数器模式控制寄存器)

  高4bit控制定时器1,低4bit控制定时器0.

  GATE  :  GATE=0,定时器的运行由TRx位(TCON寄存器)控制,GATE=1,由外部引脚INTx控制,INTx为1时,才能运行。

  C/T  :  定时/计数模式选择,计数模式下,对Tx输入引脚进行计数。

  M1 MO  :  模式选择

    00  :13bit定时器模式

    01  :16bit定时计数模式

    10  :8bit自动重载定时计数模式

    11  :两个独立的8bit定时计数模式,TL0占用Timer0控制线和中断线,TH0占用Timer1控制线和中断线;(此时原定时器1不能被使用,因为其控制线和中断线被占用)

3、P口的第二功能说明

  下图显示了P3口的第二功能说明:

  

  第2部分多次提到的INTx和Tx即此次的INT0,INT1,T0,T1引脚。另外P0和P2口还用作访问外部程序存储器,P0表示低8位地址,P2表示高8位地址,如果地址线小于8根,P2也可以不用做寻址;P0口还用作外部程序存储器返回的数据输入口。

时间: 2024-10-08 03:00:35

OC8051软件编程说明的相关文章

.NET Compact Framework的软件编程开发工具包

LEADTOOLS Mobile Imaging控件是一款针对微软.NET Compact Framework的软件编程开发工具包:采用它,开发者能在个人数字助理(PDA)及移动电话等设备应用设计中使用LEADTOOLS的图象处理功能. 产品特征: 文件格式支持- 支持常见的各种标准图像格式读.写和转换,包括JPEG.JPEG2000.LEAD CMP,.LEAD CMW.TIFF(可以是未压缩的.采用RLE压缩.采用LZW压缩.采用传真(CCITT/G3/G4)压缩).及GIF.PNG.BMP

关于PIC单片机18系列超低功耗软件编程的关键点

最近做了个PIC超低功耗的项目,对功耗要求非常高.之前也看到网上一些文章,写得很好,但实现测试下来还是不行的. 这里总结一下,给同行分享一下,软件编程上要注意以下几点, 1,不用的模块要关闭 这里的模块,不光是enable位,而是PMD 2,不用的IO口要置成输出 这里和网上其它文章说的输入不一样,实测下来我这边是输出待机电流更低 3,内部稳压一定要关闭 这里千万要注意:一定要选择通过"controlled by REGSLP bit",否则单片机SLEEP后就死了,再也不能烧写了,这

零基础如何自学软件编程

随着科技的发展,越来越多的人学习软件编程.有人甚至辞职到培训机构去学习软件编程,也有人害怕是浪费时间,最后工作也没了,也没有学好软件编程.所以在看到网上说软件编程是可以自学的,就想一边工作一边自学软件编程.那么小编就来说说,自学软件编程有什么好的方法.2017零基础如何自学软件编程 1. 零基础能学软件编程吗? 很多人在看到it行业的发展前景一片大好,就想也转行去it行业,但是有很多都在担心同一个问题,就是零基础可以学软件编程吗?其实零基础是可以学软件编程的,也没有谁是天生就会的,不会就学,是可

《大道至简—软件编程者的思想》观后感

在读这本书之前我就上网查了一下"大道至简"是什么意思,为什么这本书用它来作为书名前伸.所谓"大道至简"在中华道家哲学,是指大道理(指基本原理.方法和规律)是极其简单的,简单到一两句话就能说明白,所谓"真传一句话,假传万卷书".所以秉着这个观点在读这本书之前就有种想法,这本书应该就是把一些复杂问题简单化.真正具有软件编程者就是应该把复杂的东西简单化. 说实话看这类辩证论的文章确实比较累,但是作者写的语言很轻快,比较易懂,很多观点都会用一些生动的例子

软件编程入门自学

软件编程是目前行业里最热门的职业,也是现在人才缺口最大的职业.许多人都想转行到软件编程,在软件编程行业好好打拼,但是培训机构的学费却也是个难题,所以很多人都选择自学,想通过自学软件编程进入这行.软件编程入门自学 1. 什么是软件编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程.编程分为硬件编程和软件编程. 2. 软件编程入门 学习软件编程首先要学编程语言,选择一个自己感兴趣的编程语言才是学习软件编程的首要条件.软件编程语言常见的有Java.C++.C

电脑小白自学软件编程-.Net语法基础之循环语句,纯技巧干货

写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的人.当然因为技术的连贯性,推荐按照顺序查看. 上次课程:电脑小白学习软件开发-C#的选择语句.异常捕获,进攻程序员 课程总目录:因头条无法自定义目录,大家关注:“做全栈攻城狮”微信公众号.回复“.net目录”,即可获取.微信公众号也包含大量学习教程,等你来~ 本系列教程进行学习的是C#语法.具体开发

http://www.jb51.net/list/list_233_2.htm(导航: 首页 >> 软件编程 >> Android)

日期:2015-04-24理解Android中Activity的方法回调 日期:2015-04-24Android获取手机通讯录.sim卡联系人及调用拨号界面方法 日期:2015-04-24Android中通过MediaStore获取音乐文件信息方法 日期:2015-04-24Android中让按钮拥有返回键功能的方法及重写返回键功能 日期:2015-04-24Android开发学习路线的七大阶段 日期:2015-04-24Android开发自学路线图 日期:2015-04-24Android开

作者签名赠书,免费学习软件编程

一本书=? ++ 活动说明 本活动起止时间为4月1日至4月30日,活动期间转发本链接,阅读量排名前十的QQ网友将免费获得价值89元的<31天学会CRM项目开发>一本.如何参加活动?划到最后面,输入您的QQ号,单击"我要报名",然后分享到您的朋友圈.QQ号是领取赠书的唯一凭证.活动最终解释权归举办方所有. 核心导读 程序员职业发展建议 如何修炼成为优秀的程序员 企业工作场景及信息系统介绍 需求调研和分析方法 如何书写信息系统商业和技术解决方案 Win Form编程基础 C#编

华为软件编程规范和范例

目  录 1 排版 6 2 注释 11 3 标识符命名 18 4 可读性 20 5 变量.结构 22 6 函数.过程 28 7 可测性 36 8 程序效率 40 9 质量保证 44 10 代码编辑.编译.审查 50 11 代码测试.维护 52 12 宏 53 1 排版 ¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个. 说明:对于由开发工具自动生成的代码可以有不一致. ¹1-2:相对独立的程序块之间.变量说明之后必须加空行. 示例:如下例子不符合规范. if (!valid_ni(ni))