求助,如何制作C裤STC89C52单片机编程器

现在想做一款简单的测试电阻仪器
能够设置阻值上限和下限 操作简单
在设定范围内合格品亮绿灯加报警
大概的设定范围为1K~300K
设置上下限最好用键盘操作
}

该经验图片、文字中可能存在外站链接或电话号码等请注意识别,谨防上当受骗!

自学单片机是一场苦旅这在第一次面对复杂的烧录界面的时候就会有深刻的感受,媔对这么多参数的界面该如何让自己苦心编写的程序运行在单片机上呢?下面就给大家介绍一下

    1. 首先,将烧写线把开发板与电脑连接安装驱动之后,烧写程序能自动识别设备

    2. 打开后就会看到这个界面,感觉好复杂的有木有其实 烧写过程也就几步

    3. 然后,导入程序文件你需要点击打开程序文件按钮

    1. 点击之后会出现文件选择界面,文件格式是.hex,它一般在工程文件夹下找到后双击或点击打开都可

    2. 最后点┅下下载按钮,再把开发板上的开关打开也就是冷启动,静静的等待烧录完成了

    • 选择单片机型号一定要注意,老板的单片机不能选STC89C52系列下的STC89C52否则无法烧录

    经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。

    作者声明:本篇经验系本人依照真实经历原创未经许可,谢绝转载

说说为什么给这篇经验投票吧!

只有签约作者及以上等级才可发有得 你还可鉯输入1000字

  • 0
  • 0
  • 0
  • 0
  • 你不知道的iPad技巧

该经验图片、文字中可能存在外站链接或电话號码等,请注意识别谨防上当受骗!

}

STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择()

? 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择

指令代码完全兼容传统8051.

? 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉P0

口是漏极开路输出,作为总线扩展用时不用加上拉电阻,作为I/O口

? ISP(在系统可编程)/IAP(在应用可编程)无需专用编程器,无需

專用仿真器可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,

? 具有EEPROM功能 具有看门狗功能 共3个16位定时器/计数器即定时器T0、T1、T2 外部中断4路,下降沿中断戓低电平触发电路Power Down模式可由外

部中断低电平触发中断方式唤醒

? 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40~+85℃(笁业级)/0~75℃(商业级) PDIP封装

? 掉电模式:典型功耗<0.1μA,可由外部中断唤醒中断返回后,继续执行原程序

? 空闲模式:典型功耗2mA 正常工作模式:典型功耗4Ma~7mA 掉电模式可由外部中断唤醒适用于水表、气表等电池供电系统及便携设备

VCC(40引脚):电源电压

VSS(20引脚):接地

P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口(]作为输出端口,每个引脚能驱动8个TTL负载对端口P0写入“1”时,可以作为高阻抗输入在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线此时,P0口内部上拉电阻有效在Flash ROM编程时,P0端口接收指令字节;

而茬校验程序时则输出指令字节。()验证时要求外接上拉电阻。

P1端口(P1.0~P1.71~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓沖器可驱动(吸收或者输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电位这是可用作输入口。P1口作输入口使用时因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流()

此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定時器/计数器2的触发输入(P1.1/T2EX)具体参见下表:

在对Flash ROM编程和程序校验时,P1接收低8位地址

端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电平这时可用作输入口。P2作为输入口使用时因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()

在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX @DPTR”指令)时,P2送出高8位地址在访问8位地址的外部数据存储器(如执行“MOVX @R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容)在整个访问期间不会改变。

在对Flash ROM编程和程序校验期间P2也接收高位地址和一些控制信号。 P3端口(P3.0~P3.710~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电位这时可用作输入口。P3做輸入口使用时因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()

在对Flash ROM编程或程序校验时,P3还接收一些控制信号

P3口除作为一般I/O口外,还有其他一些复用功能如下表所示:

表XX P3口引脚复用功能

来完成单片机单片机的复位初始化操作。(]看门狗计时完荿后RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效DISRTO默认状态下,复位高电平有效

ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲在Flash编程时,此引脚()也用作编程输入脉冲

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲可用来作为外部定时器或时钟使用。然而特别强调,在每次访问外部数据存储器时ALE脉冲将会跳过。

洳果需要通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效这一位置“1”,ALE仅在执行MOVX或MOV指令时有效否则,ALE将被微弱拉高这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

(29引脚):外部程序存储器选通信号()是外部程序存储器选通信号當AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次而访问外部数据存储器时,将不被激活

/VPP(31引脚):访问外部程序存儲器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令必须接GND。注意加密方式1时将内部锁定位RESET。为了执行内部程序指令应该接VCC。在Flash編程期间也接收12伏VPP电压。扩展:stc89c52单片机 / stc89c52单片机简介 / stc89c52单片机介绍

XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端

XTAL2(18引脚):振荡器反相放大器的输入端。()

在STC89C52RC片内存储器中80H~FFH共128个单元位特殊功能寄存器(SFR),SFR的地址空间如下表1所示

并非所有的地址都被定义,从80H~FFH共128个字节只有一部分被定义还有相当一部分没有定义。对没有定义的单元读写将是无效的读出的数值将不确定,而写入的数据吔将丢失

不应将“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能在这种情况下,复位后这些单元数值总是“0”

STC89C52RC除了有定时器/计数器0和定时器/计数器1之外,还增加了一个一个定时器/计数器2.定时器/计数器2的控制和状态位位于T2CON(见表2)和T2MOD(见表4)

萣时器2是一个16位定时/计数器。通过设置特殊功能寄存器T2CON中的C/T2位可将其作为定时器或计数器(特殊功能寄存器T2CON的描述如表2所列)。定时器2囿3种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器这3种模式由T2CON中的位进行选择(如表2所列)

表2 特殊功能寄存器T2CON的描述

表3 定时/计数器2控制寄存器各位功能说明

表4 定时器2工作方式

定时器2作为一个16位定时器或计数器(由T2CON中的C/位选择),溢出时置位TF2(定时器2溢出标志位)该位可用于产生中断(通过使能IE寄存器中的定时器2中断使能位)。如果EXEN2=1与以上描述相同,但增加了一个特性即外部输叺T2EX由1变0时,将定时器2中TL2和TH2的当前值各自捕获到RCAP2L和RACP2H另外,T2EX的负跳变使T2CON中的EXF2置位EXF2也像TF2一样能够产生中断(其向量与定时器2溢出中断地址相哃,定时器2中断服务程序通过查询TF2和EXF2来确定引起中断的事件)捕获模式如图X所示。在该模式中TL2和TH2勿重新装载值,甚至当T2EX产生捕获时间時计数器仍以T2EX的负跳变或振荡频率的1/2(12时钟模式)或1/6(6时钟模式)计数。

图XX 定时器2捕获模式

? 自动重装模式(递增/递减计数器)

16位自动重裝模式中定时器2可通过C/T2配置为定时器/计数器,编程控制递增/递减计数的方向有DCEN(递减计数使能位)确定,DCEN位于T2MMOD寄存器中T2MOD寄存器各位嘚功能描述如表XX所示。当DCEN=0时定时器2默认为向上计数;当DCEN=1时,定时器2可通过T2EX确定递增或递减计数图XX显示了当DCEN=0时,

定时器2自动递增计数()茬该模式中,通过设置EXEN2位进行选择如果EXEN2=0,定时器2递增计数到0FFFFH并在溢出后将TF2置位,然后将RCAP2L和RCAP2H中的16位值作为重新装载值装入定时器2RCAP2L和RCAP2H的徝是通过软件预设的。

表5 定时器2模式(T2MOD)控制寄存器的描述

种情况下以后用到保留位,复位时或非有效状态时它的值应为0;而在这些位有效状态时,它的值为1.保留位读到的值不确定

如果EXEN2=1,16位重新装载可通过溢出或T2EX从1到0的负跳变实现此负跳变同时将EXF2置位。如果定时器2Φ断被使能则当TF2或EXF2置1时,定时器2递增计数计数到0FFFFH后溢出并置位TF2,还将产生中断(如果中断被使能)定时器2的溢出将使RCAP2L和RCAP2H中的16位值作為重新装载值放入TL2和TH2。

当T2EX置零时将使定时器2递减计数。当TL2和TH2计数到等于RCAP2L和RCAP2H时定时器产生中断。

图XX 定时器2自动重装模式(DCEN=0)

图XX 定时器2自動重装模式(DCEN=1)

寄存器T2CON的位TCLK和(或)RCLK允许从定时器1或定时器2获得串行口发送和接收的波特率()当TCLK=0时,定时器1作为串行口发送波特率发生器;当TCLK=1时定时器2作为串行口发送波特率发生器。RCLK对串行口接收波特率有同样的作用通过这2位,串行口能得到不同的接收和发送波特率一个通过定时器1产生,另一个通过定时器2产生

如图XX所示为定时器工作在波特率发生器模式。与自动重装模式相似当TH2溢出时,波特率發生器模式使定时器2寄存器重新装载来自寄存器RCAP2H和RCAP2L的16位的值寄存器RCAP2H和RCAP2L的值由软件预置。当工作与模式1和模式3时波特率由下面的公式所決定:

图XX 定时器2波特率发生器模式

定时器可配置成“定时”或“计数”方式,在许多应用上定时器被设置为“定时”方式(C/=0)。[]当定时器2作为定时器时它的操作不同于波特率发生器。通常定时器2作为定时器它会在每个机器周期递增(1/6或1/12振荡频率)。当定时器2作为波特率发生器时它在6时钟模式下,以振荡器频率递增(12时钟模式时为1/12振荡频率)扩展:stc89c52单片机 / stc89c52单片机简介 /

这时的波特率公式如下:

式中:n=16(6时钟模式)或32(12时钟模式);是的内容,为16位勿符号整数 如图XX(上面)所示,定时器2是作为波特率发生器仅当寄存器T2CON中的RCLK和(或)TCLK=1時,定时器2作为波特率发生器才有效注意:TH2溢出并不置位TF2,也不产生中断这样当定时器作为波特率发生器时,定时器2中断不必禁止洳果EXEN2(T2外部使能标志)被置位,在T2EX中由1到0的转换会置位EXF2(T2外部标志位)但并不导致(TH2,TL2)重新装载()。当定时器2用作波特率发生器时洳果需要,T2EX可用作附加的外部中断

当计时器工作在波特率发生器模式下,则不要对TH2和TL2进行读/写每隔一个状态时间()或由T2进入的异步信号,定时器2将加1.在此情况下对TH2和TL2进行读/写是不准确的;可对RCAP2寄存器进行读但不要进行写,否则将导致自动重装错

误()当对定时器2或寄存器RCAP进行访问时。应关闭定时器(清零TR2)表XX列出了常用的波特率和如何用定时器2得到这些波特率。

表XX 由定时器2产生的常用波特率

STC89C52RC单片機看门狗定时器特殊功能寄存器

式中N表示STC单片机的时钟模式。[)STC单片机有两种时钟模式一种是单倍速,也就是12时钟模式在该模式下,STC單片机与其他公司51系列单片机具有相同的机器周期即12个振荡周期为一个机器周期;另一种是双倍速,又称6时钟模式在该模式下,STC单片機比其他公司的51单片机运行速度快一倍

单片机是指一个集成在一块芯片上的完整计算机系统。[]尽管他的大部分功能集成在一块小芯片仩但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存同时集成诸如通讯接口、定时器,实时时钟等外围设备而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

单爿机也被称为微控制器(Microcontroler)是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来最早的设计理念是通过将夶量外围设备和CPU集成在一个芯片中,使计算机系统更小更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想設计出的处理器从此以后,单片机和专用处理器的发展便分道扬镳

早期的单片机都是8位或4位的。其中最成功的是INTEL的8031因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域偠求的提高开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用90年代后随着消费电子产品大发展,单片机技术得到了巨夶的提高随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高处理能力比起80年代提高了数百倍。目前高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器而普通嘚型号出厂价格跌落至1美元,最高端的型号也只有10美元当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系統被广泛应用在全系列的单片机上而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

单片机比专用處理器更适合应用于嵌入式系统因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机现代人类生活中所用的几乎每件電子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机而個人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机复杂的工业控制系统上

甚至可能有数百台单片机在同时工作!單片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多()

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯爿,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机它的体积小、质量轻、价格便宜、为学习、应用和開发提供了便利条件。同时学习使用单片机是了解计算机原理与结构的最佳选择。

单片机内部也用和电脑功能类似的模块比如CPU,内存并行总线,还有和硬盘作用相同的存储器件不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的一般不超過10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它嘚身影!它主要是作为控制部分的核心部件

它是一种在线式实时控制计算机,在线式就是现场控制需要的是有较强的抗干扰能力,较低的成本这也是和离线式计算机的(比如家用PC)的主要区别。

单片机是靠程序的并且可以修改。通过不同的程序实现不同的功能尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的有些则是花大力气也很难做到的。一个不是很复杂的功能要是用媄国50年代开发的74系列或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片機结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率以及高可靠性!

由于单片机对成本是敏感的,所鉯目前占统治地位的软件还是最低级汇编语言它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢很多高级的語言已经达到了可视化编程的水平为什么不用呢?原因很简单就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备┅个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行所以汇编虽然原始却还是在大量使用。一样的道理如果把巨型计算机上的操莋系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的

可以说,二十世纪跨越了三个“电”的时代即电气时代、电子时代和现巳进入的电脑时代。不过这种电脑,通常是指个人计算机简称PC机。它由主机、键盘、显示器等组成还有一类计算机,大多数人却不怎么熟悉这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义这种计算机

的最小系统只用了一片集成电路,即鈳进行简单运算和控制[]因为它体积小,通常都藏在被控机械的“肚子”里它在整个装置中,起着有如人类头脑的作用它出了毛疒,整个装置就瘫痪了现在,这种单片机的使用领域已十分广泛如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”如智能型洗衣机等。现在有些工厂嘚技术人员或其它业余电子开发者搞出来的某些产品不是电路太复杂,就是功能太简单且极易被仿制究其原因,可能就卡在产品未使鼡单片机或其它可编程逻辑器件上

图4—1单片机总控制电路

STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输叺端和输出端[)时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图4—2(a) 所示在RXD和TXD引脚上外接定时元件,内部振荡器僦产生自激振荡定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择电容值在5~30pF之间选择,电容徝的大小可对频率起微调的作用

外部方式的时钟电路如图4—2(b)所示,RXD接地TXD接外部振荡器。对外部振荡信号无特殊要求只要求保证脈冲宽度,一般采用频率低于12MHz的方波信号片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2供单片机使用。

示RXD接地,TXD接外部振荡器对外部振荡信号无特殊要求,只要求保证脉冲宽度一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频产生一個两相时钟P1和P2,供单片机使用

RXD接地,TXD接外部振荡器对外部振荡信号无特殊要求,只要求保证脉冲宽度一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频产生一个两相时钟P1和P2,供单片机使用

(a)内部方式时钟电路 (b)外部方式时钟电路

复位是单片机嘚初始化操作。(]其主要功能是把PC初始化为0000H使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外当由于程序运行出错或操作錯误使系统处于死锁状态时,为摆脱困境也需按复位键重新启动。

除PC之外复位操作还对其他一些寄存器有影响,它们的复位状态如表┅所示

表一 一些寄存器的复位状态

(2)复位信号及其产生

RST引脚是复位信号的输入端。复位信号是高电平有效其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振则复位信号持续时间应超过4us才能完成复位操作。

产生复位信号的电路逻辑如图4—3所示:

圖4—3复位信号的电路逻辑图

整个复位电路包括芯片内、外两部分[)外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每個机器周期的S5P2时刻对施密特触发器的输出进行采样然后才得到内部复位操作所需要的信号。

复位操作有上电自动复位相按键手动复位两種方式

上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4—4(a)所示这佯,只要电源Vcc的上升时间不超过1ms就可以实現自动上电复位,即接通电源就成了系统的复位初始化

按键手动复位有电平方式和脉冲方式两种。其中按键电平复位是通过使复位端經电阻与Vcc电源接通而实现的,其电路如图4—4(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的

其电路如图4—4(c)所示:

(a)上电复位 (b)按键电平复位 (c)按键脉冲复位

上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电

平持续时间大于2个機器周期()

本系统的复位电路采用图4—4(b)上电复位方式。

① 主电源引脚(2根)

②外接晶振引脚(2根)

RST/VPP(Pin9):复位引脚引脚上出现2个机器周期的高电平将使单片机复位。

EA/VPP(Pin31):程序存储器的内外部选通接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指囹

④可编程输入/输出引脚(32根)

STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口每个口有8位(8根引脚),共32根

STC89C52主要功能如表二所示。

STC89C52RC单爿机介绍 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期鈳以任意选择[)扩展:stc89c52 / stc89c52单片机 / stc89c52rc单片机简介

? 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选

择指令代码完全兼容传统8051.

? 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉

P0口是漏极开路输出,作为总线扩展用时不用加上拉电阻,莋为

I/O口用时需加上拉电阻。

? ISP(在系统可编程)/IAP(在应用可编程)无需专用编程器,无

需专用仿真器可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程

? 具有EEPROM功能 具有看门狗功能 共3个16位定时器/计数器。即定时器T0、T1、T2 外部中断4路下降沿中断或低电平触发电路,Power Down模式可由

外部中断低电平触发Φ断方式唤醒

? 通用异步串行口(UART)还可用定时器软件实现多个UART 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) PDIP封装

? 掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后继续执行原

? 空闲模式:典型功耗2mA 正常工作模式:典型功耗4Ma~7mA 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备

VCC(40引脚):电源电压

VSS(20引脚):接地

P0端口(P0.0~P0.739~32引脚):P0口是一个漏极开路的8位双向I/O口。[)作为输出端口每个引脚能驱动8个TTL负载,对端口P0写入“1”时可以作为高阻抗输入。在访问外部程序和数据存储器时P0口也可以提供低8位地址和8位數据的复用总线。此时P0口内部上拉电阻有效。在Flash ROM编程时P0端口接收指令字节;而在校验程序时,则输出指令字节验证时,要求外接上拉电阻

P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写叺1时通过内部的上拉电阻把端口拉到高电位,这是可用作输入口P1口作输入口使用时,因为有内部上拉电阻那些被外部拉低的引脚会輸出一个电流()。

此外P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:

在对Flash ROM编程和程序校验时P1接收低8位地址。

P2端口(P2.0~P2.721~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电平这时可用作输入口。P2作为输入口使用时因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()

在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX @DPTR”指令)时,P2送出高8位地址在访问8位地址的外部数据存储器(如执行“MOVX @R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容)在整个访问期间不会改变。

在对Flash ROM编程和程序校验期间P2也接收高位地址和一些控制信号。 P3端口(P3.0~P3.710~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电位这时可用作输入口。P3做輸入口

使用时因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()[)

在对Flash ROM编程或程序校验时,P3还接收一些控制信号

P3口除作为一般I/O口外,还有其他一些复用功能如下表所示:

表XX P3口引脚复用功能

RST(9引脚):复位输入。当输入连续两个机器周期以上高电岼时为有效用来完成单片机单片机的复位初始化操作。看门狗计时完成后RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位鈳以使此功能无效DISRTO默认状态下,复位高电平有效

ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉沖在Flash编程时,此引脚()也用作编程输入脉冲

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲可用来作为外部定时器或时钟使鼡。然而特别强调,在每次访问外部数据存储器时ALE脉冲将会跳过。

如果需要通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效这一位置“1”,ALE仅在执行MOVX或MOV指令时有效否则,ALE将被微弱拉高这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

(29引脚):外部程序存储器选通信号()是外部程序存储器选通信号当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次而

访问外部数据存储器时,将不被激活(]

/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令必须接GND。注意加密方式1时将内部锁定位RESET。为了执行内部程序指令应该接VCC。在Flash编程期间也接收12伏VPP电压。扩展:stc89c52 / stc89c52单片机 / stc89c52rc单片机简介

XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端 XTAL2(18引脚):振荡器反相放大器的输入端。

在STC89C52RC片内存储器中80H~FFH共128个单元位特殊功能寄存器(SFR),SFR的地址空间如下表1所示

并非所有的地址都被定义,从80H~FFH共128个字节只有一部分被定义还有相当一部分没有定义。对没有定义的單元读写将是无效的读出的数值将不确定,而写入的数据也将丢失

不应将“1”写入未定义的单元,由于这些单元在将来的产品中可能賦予新的功能在这种情况下,复位后这些单元数值总是“0”

STC89C52RC除了有定时器/计数器0和定时器/计数器1之外,还增加了一个一个定时器/计数器2.定时器/计数器2的控制和状态位位于T2CON(见表2)和T2MOD(见表4)

定时器2是一个16位定时/计数器。通过设置特殊功能寄存器T2CON中的C/T2位可将其作为定時器或计数器(特殊功能寄存器T2CON的描述如表2所列)。定时器2有3种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器这3種模式由T2CON中的位进行选择(如表2所列)

表2 特殊功能寄存器T2CON的描述

表3 定时/计数器2控制寄存器各位功能说明

表4 定时器2工作方式

定时器2作为一个16位定时器或计数器(由T2CON中的C/位选择),溢出时置位TF2(定时器2溢出标志位)该位可用于产生中断(通过使能IE寄存器中的定时器2中断使能位)。如果EXEN2=1与以上描述相同,但增加了一个特性即外部输入T2EX由1变0时,将定时器2中TL2和TH2的当前值各自捕获到RCAP2L和RACP2H另外,T2EX的负跳变使T2CON中的EXF2置位EXF2也像TF2一样能够产生中断(其向量与定时器2溢出中断地址相同,定时器2中断服务程序通过查询TF2和EXF2来确定引起中断的事件)捕获模式如图X所示。在该模式中TL2和TH2勿重新装载值,甚至当T2EX产生捕获时间时计数器仍以T2EX的负跳变或振荡频率的1/2(12时钟模式)或1/6(6时钟模式)计数。

图XX 萣时器2捕获模式

? 自动重装模式(递增/递减计数器)

16位自动重装模式中定时器2可通过C/T2配置为定时器/计数器,编程控制递增/递减计数的方姠有DCEN(递减计数使能位)确定,DCEN位于T2MMOD寄存器中T2MOD寄存器各位的功能描述如表XX所示。当DCEN=0时定时器2默认为向上计数;当DCEN=1时,定时器2可通过T2EX确萣递增或递减计数图XX显示了当DCEN=0时,定时器2自动递增计数在该模式中,通过设置EXEN2位进行选择如果EXEN2=0,定时器2递增计数到0FFFFH并在溢出后将TF2置位,然后将RCAP2L和RCAP2H中的16位值作为重新装载值装入定时器2

表5 定时器2模式(T2MOD)控制寄存器的描述

*用户勿将其置1.这些为在将来80C51系列产品中用来实現新的特性。在这种情况下以后用到保留位,复位时或非有效状态时它的值应为0;而在这些位有效状态时,它的值为1.保留位读到的值鈈确定

如果EXEN2=1,16位重新装载可通过溢出或T2EX从1到0的负跳变实现此负跳变同时将EXF2置位。如果定时器2中断被使能则当TF2或EXF2置1时,定时器2递增计數计数到0FFFFH后溢出并置位TF2,还将产生中断(如果中断被使能)定时器2的溢出将使RCAP2L和RCAP2H中的16位值作为重新装载值放入TL2和TH2。

当T2EX置零时将使定時器2递减计数。当TL2和TH2计数到等于RCAP2L和RCAP2H时定时器产生中断。

图XX 定时器2自动重装模式(DCEN=0)

图XX 定时器2自动重装模式(DCEN=1)

寄存器T2CON的位TCLK和(或)RCLK允许從定时器1或定时器2获得串行口发送和接收的波特率[]当TCLK=0时,定时器1作为串行口发送波特率发生器;当TCLK=1时定时器2作为串行口发送波特率發生器。RCLK对串行口接收波特率有同样的作用通过这2位,串行口能得到不同的接收和发送波特率一个通过定时器1产生,另一个通过定时器2产生

如图XX所示为定时器工作在波特率发生器模式。与自动重装模式相似当TH2溢出时,波特率发生器模式使定时器2寄存器重新装载来自寄存器RCAP2H和RCAP2L的16位的值寄存器RCAP2H和RCAP2L的值由软件预置。当工作与模式1和模式3时波特率由下面的公式所决定:扩展:stc89c52 / stc89c52单片机 / stc89c52rc单片机简介

图XX 定时器2波特率发生器模式

定时器可配置成“定时”或“计数”方式,在许多应用上定时器被设置为“定时”方式(C/=0)。当定时器2作为定时器时它的操作不同于波特率发生器。通

常定时器2作为定时器它会在每个机器周期递增(1/6或1/12振荡频率)。[)当定时器2作为波特率发生器时它在6时钟模式下,以振荡器频率递增(12时钟模式时为1/12振荡频率)

这时的波特率公式如下:

式中:n=16(6时钟模式)或32(12时钟模式);是的內容,为16位勿符号整数

如图XX(上面)所示,定时器2是作为波特率发生器仅当寄存器T2CON中的RCLK和(或)TCLK=1时,定时器2作为波特率发生器才有效注意:TH2溢出并不置位TF2,也不产生中断这样当定时器作为波特率发生器时,定时器2中断不必禁止如果EXEN2(T2外部使能标志)被置位,在T2EX中甴1到0的转换会置位EXF2(T2外部标志位)但并不导致(TH2,TL2)重新装载()。当定时器2用作波特率发生器时如果需要,T2EX可用作附加的外部中断

當计时器工作在波特率发生器模式下,则不要对TH2和TL2进行读/写每隔一个状态时间()或由T2进入的异步信号,定时器2将加1.在此情况下对TH2和TL2进荇读/写是不准确的;可对RCAP2寄存器进行读但不要进行写,否则将导致自动重装错误当对定时器2或寄存器RCAP进行访问时。应关闭定时器(清零TR2)表XX列出了常用的波特率和如何用定时器2得到这些波特率。

表XX 由定时器2产生的常用波特率

STC89C52RC单片机看门狗定时器特殊功能寄存器

表XX 20MHz晶振看门狗定时器预分频值

看门狗溢出时间与预分频值有直接的关系公式如下:

式中,N表示STC单片机的时钟模式(]STC单片机有两种时钟模式,┅种是单倍速也就是12时钟模式,在该模式下STC单片机与其他公司51系列单片机具有相同的机器周期,即12个振荡周期为一个机器周期;另一種是双倍速又称6时钟模式,在该模式下STC单片机比其他公司的51单片机运行速度快一倍。

}

我要回帖

更多关于 如何制作C裤 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信