文档库 最新最全的文档下载
当前位置:文档库 › 如何使用P89V51RD2单片机

如何使用P89V51RD2单片机

如何使用P89V51RD2单片机
如何使用P89V51RD2单片机

如何使用P89V51RD2单片机

P89V51RD2器件含有2个内部Flash存储模块,可实现对器件在系统编程(ISP)和在应用中编程(IAP)。模块0有64K字节,用来存放用户代码;模块1有8K字节,用来存放Philips提供的ISP/IAP程序,在出厂时,该程序已被固化到模块1中。在使用P89V51RD2时,只需要将用户代码写入模块0中即可。写入的方法有两种:1)用通用编程器将用户程序烧写到单片机中;2)使用芯片的ISP功能配合下载软件将程序下载到芯片中。以下将重点讲述P89V51RD2这两种写入方法,并简单的介绍它的IAP功能。

1. 在系统编程(ISP)使用方法

ISP功能是指用户在编程时不需要将微控制器从系统中移出。在系统编程特性包含了一系列内部的硬件资源,与内部固件的结合可实现通过串口对P89V51RD2的远程编程。固件由PHILIPS提供并嵌入到每一个芯片当中。ISP功能使用芯片的5个管脚(Vdd、Vss、TxD、RxD、RST),只需要一个小的连接器就可实现通过外部电路使用该特性的应用接口。

用户在搭建硬件电路时,需要引出串口以便和PC机通信。在搭建好硬件电路后,将串口和PC机相连,上电后就可使用ISP功能下载程序了。使用P89V51RD2的ISP功能时,需要配合下载软件Flash Magic一起使用。运行Flash Magic,选择正确的串口、设置波特率、选择芯片P89V51RD2,设置的界面如图1所示。如果在“Device”中找不到“P89V51RD2”单片机,说明Flash Magic的版本过旧,需要下载一个新的版本,安装后即可使用。下载网址为:https://www.wendangku.net/doc/9917897218.html,/software/flashmagic/

图1 Flash Magic界面设置

以上操作完成后,关闭Flash Magic,重新启动。这时会弹出如图2所示的界面,提示用户未进入ISP。这时只需按一下硬件电路的复位键或重新上电即可。

图2 未进ISP模式的错误提示

P89V51RD2进入ISP模式后,就可以下载用户程序到单片机的Flash区了。点击图1的“File”菜单,选择“Open…”,打开指定目录下的用户文件(.HEX文件),在图1界面中的3部分可看到用户文件的路径;点击“ISP”菜单,选择“Erase Flash”,在弹出的小对话框中选择“Erase blocks used by Hex File”擦

除掉适当的空间,点击“Erase”按钮执行擦除指令,擦除的操作界面如图3所示。

图3 擦除界面的设置

擦除完毕后,点击图1中的“Start”按钮,就可将用户代码下载到芯片的Flash中,下载完毕后,按复位键就可运行程序。使用ISP对P89V51RD2在系统编程操作结束。

在使用Flash Magic过程中,经常会弹出图2所示的对话框提示系统没有进入ISP模式,这时只要按一下硬件电路的复位键或重新上电即可。

在实际应用中,有些用户希望对ISP做加密设置保护程序代码不能被随便读出,这时可通过Flash Magic 对ISP进行加密设置。点击“ISP”菜单,选择“Serial Number…”,弹出如图4所示的对话框,该对话框用来设置进入ISP的密码。在“Set Serial Number”框的两个空白栏中,设置密码,点击“Set Serial Number”按钮可以将密码写入。在“Unlock Device”框中,输入事先设置好的密码,点击“Unlock Device”方能进入ISP模式。设置密码有利于保护用户程序的安全,没有密码将不能进入ISP模式,也不能通过编程器读出用户程序。若用户不小心忘掉密码,只能通过使用并行编程器全部擦除的办法擦掉密码。需要注意的是,使用并行编程器对ISP加密不起作用,只能通过设置“Set Serial Number…”的办法对ISP加密。

图4 进入ISP模式密码的设置

2. 通用编程器烧写程序的方法

除了使用ISP功能将用户程序下载到P89V51RD2的Flash中以外,还可以通过编程器将用户代码烧写到芯片中,选择任何一款支持P89V5RD2的编程器均可实现该操作。以下以致远电子公司生产的EasyPRO80为例,讲述使用编程器对P89V51RD2的编程方法。

首先打开EasyPRO80编程器的驱动软件,弹出的对话框如图5所示。

图5 EasyPRO80编程器的驱动软件界面

点击图5中的“选择”按钮,在弹出的对话框中设置芯片类型为“MCU”,芯片选择PHILIPS的“P89V51RD2××”,设置完毕后,点击“配置”按钮,在弹出的对话框中选择时钟设置为12 Clock;点击“文件”菜单,在下拉菜单中选择“装载”,装载所要烧写的目标文件(.HEX格式),弹出图6所示的对话框,在该窗口中,选择调入方式为“正常调入”调入内容选择“同时调入P89V51RD2的固有ISP代码”,

点击确定装载操结束。

图6 调入文件窗口

装载完毕后,点击图5的“编程”按钮,弹出图7所示的对话框,选择程序代码区,设置起始地址和

终止地址,选择“编程前擦除、编程前查空、编程后校验”,点击“编程”按钮,就可以将程序烧写到芯片

中。使用通用编程器Easy PRO80对P89V51RD2编程操作结束。

图7 编程设置对话框

用户在使用P89V51RD2的过程中,可能会出现误操作将PHILIPS固化到模块1中的ISP/IAP代码擦除,或者在使用过程中模块1中的程序丢失,单片机将不能再使用ISP功能和IAP功能,这时可以使用支持该芯片的编程器将PHILIPS提供的P89V51RD2.HEX文件烧写到Flash存储模块1中。以下以Easy PRO80为例,讲述恢复ISP/IAP代码的办法。

打开Easy PRO80编程器的驱动软件如图5所示,点击“选择按钮”,选择P89V51RD2单片机,设置适当的波特率;点“文件”菜单,选择“装载”,装入PHILIPS提供的源代码,弹出如图6所示的对话框,选择调入方式为从任意地址调入(区别于普通程序的调用),缓冲区调入首址为10000H,文件调入首址为00000H,调入内容选择“同时调入P89V51RD2的固有ISP代码”,点击“确定”完成文件的装载。在图5的界面中,点击“编程”按钮,和烧写用户程序的步骤及操作相同,将PHILIPS的ISP/IAP程序烧写到P89V51RD2单片机的模块1中。

3. SoftICE调试功能

P89V51RD2的一个最突出的特点就是带有自调试功能(SoftICE),使用该功能无须将程序下载到单片机中,在Keil μVision2编程环境下用Keil Monitor-51 Driver即可直接调试程序。设置单片机进入SoftICE 模式的方法,点击图1的“ISP”菜单,选择“Enable SoftICE”即可进入SoftICE模式。需要注意的是,一旦设置P89V51RD2进入SoftICE模式后,若用户再想返回为正常芯片,则只能使用并行编程器全片擦除恢复ISP功能。在SoftICE下的详细调试方法参见文档《P89V51RD2新型单片机SoftICE模式调试指南》,https://www.wendangku.net/doc/9917897218.html,。

4. IAP使用方法

P89V51RD2具有在应用中编程(IAP)的特性,用户可以通过调用1FF0H地址的PGM_MTP来实现。调用前,需要设置FCF寄存器的FCF.0(BSEL位)和FCF.1同时为0才能访问IAP程序,在访问结束后,要对FCF.0(BSEL位)置1退出IAP操作。需要注意的是,在调用IAP功能时,调用IAP功能的代码不能放在0000H~1FFFH区。另外,由于调用IAP功能需要在指定寄存器写入特定的参数,使用汇编语言以外的语言将很难实现。

P89V51RD2在IAP的具体功能见《P89V51RD2器件手册》。需要注意的是,除了手册上列出的6个功能外,P89V51RD2还增加了一个“扇区擦除功能”没有列出,调用该功能的输入参数为:“R1=08H,DPH=存储器地址MSB(A15:8),DPL=存储器地址LSB(A7,A6:0=0)”;执行该功能将擦除指定扇区的128字节。

参考文献:《P89V51RD2器件手册》 https://www.wendangku.net/doc/9917897218.html,

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用 实现定时和计数的方法一般有:软件定时、专用电路和可编程定时器/计数器三种方法。软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但会增加CPU 开销。专用硬件电路定时:可以实现请精确 的定时和计数,但参数调节不方波。可编程定时器/计数器:不占用CPU 时间,能与CPU 并行工作,实现精确的定时和计数,又可以通过变成设置其工作方 式和其他参数,使用方便。以下说明仅试用宏晶的STC89C52!!定时器 2:T2MOD,T2CON,TH2,TL2,RC2H,RC2L.T2MOD:0C9H(不可位寻址) 000000T2OEDCENT2OE:定时器输出使能位DECN:向上/向下计数使能位。定时器2 可配制成向上/向下计数器。0:向上计数(模式状态) 1:向下计数(尽量不使用)T2CON:0XC8H(可位寻址) TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2TF2:7 上/下溢出标志位,定时器2 溢出时置位,必须有用软件清零!当RCLK 或TCLK=1 时,TF2 将不会 置位。EXF2:6 定时器2 外部标志,当EXEN2=1 且T2EX 的负跳变产生捕获或重装时,EXF2 置位。定时器2 中断使能时,EXF2=1 将使CPU 从中断向量处执行定时器2 中断子程序。EXF2 位必须用软件清零。在递增/递减计数器 模式(DCEN=1)中,EXF2 位不会引起中断。RCLK:5 接收时钟标志。RCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的接收时钟。RCLK=0 时,将定时器1 的溢出脉冲作为串口模式1 和模式3 的接收时钟。TCLK:4 发送时钟标志位。TCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的发送时钟。TCLK=0 时,将定时器1 的溢出脉冲作为串口模 式1 和模式3 发送时钟。EXEN2:3 定时器2 外部使能标志。当其置位且定时器2 未作为串口时钟时,允许T2EX 的负跳变产生捕获或重装。

STC 单片机下载器使用说明

STC单片机下载器使用说明 介绍: 这是一个USB转TTL电平的串口转换器。它利用USB协议里规定的总线转换功能,把USB转换成串行通信口。因为现在的台式机、笔记本电脑普遍已经不再配备串口,因此在需要串口的时候,可以使用这种转换器。 由于STC单片机可以使用串口下载程序,所以可以使用这种USB转串口模块来给STC的单片机下载程序。 写到此处,我想多说几句题外话,8051内核单片机诞生于1980年左右,由Intel 公司设计,(这家公司各位一定不陌生吧)。当时英特尔公司刚刚起步,走的是开放的、兼容型的路线。所以,intel公司把8051单片机的设计授权给了给了其他半导体厂商,于是众多厂商生产了各种各样的51系列单片机,这些厂商包括: ATMEL公司、WinBond(华邦)公司、 Philips(飞利浦)公司、 LG公司、 NEC(日电)公司、SIEMENS(西门子)公司等。 如今,8051单片机内核的知识产权保护期已过,因此许多国产半导体厂商兴起,如:深圳宏晶(STC)、上海海尔、台湾笙泉、湖南华芯、台湾华邦(芯唐)、台湾中颖、台湾新茂、台湾太欣等等。 我们之所以选用国产STC单片机作为教学用单片机,主要还是考虑到其成本因素。相对来说,STC单片机价格比较便宜,而且芯片功能强大,片内集成了很多功能。此外还要说明的是,给单片机下载程序必须要有下载器(编程器、烧录器),而多数单片机的下载器价格都会在100到200元以上,这对于初学者来说是难以承受的,而STC 单片机烧录程序,仅仅需要串口即可,而即使电脑没有配备串口,购买一个USB转串口也不过15块钱以内,这就大大降低了单片机的学习门槛。 下面就来介绍我们这款STC的单片机下载器——USB转TTL串口模块。USB转串口小板功能:1、简单的串口通信。2 、路由器或者ADSL固件升级。3 、STC单片机、STM32单片机等,烧写程序。4 、硬盘固件升级。5、超级终端里使用。常用串口调试工具。6、各种卫星机升级用。7、GPS串口通信。等...............通用型的 USB转串口小板。可见它的功能不仅仅是给STC单片机下载程序。

51单片机常用子程序汇总

目录 1、通过串口连续发送n个字节的数据 /*************************************************************** 模块功能:通过串口连续发送n个字节的数据 参数说明: s:待发送数据的首地址 n:要发送数据的字节数 ***************************************************************/ void SendD(unsigned char *s,unsigned char n) { unsigned char unX; if(n>0) { ES=0; // 关闭串口中断 for(unX=0;unX #include #define Nop() _nop_() //空指令

sbit SDA=P1^3; sbit SCL=P1^2; bit ACK; void Start_I2c() { SDA=1; Nop(); SCL=1; Nop(); Nop(); Nop(); Nop(); Nop(); SDA=0; Nop(); Nop(); Nop(); Nop(); Nop(); SCL=0; //钳住I2C总线,准备发送或接受数据Nop(); Nop(); } (2)结束总线函数 /*************************************************************** 模块功能:发送I2C总线结束条件 ***************************************************************/ void Stop_I2c() { SDA=0; Nop(); SCL=1; Nop(); Nop(); Nop(); Nop(); Nop(); SDA=1; Nop(); Nop(); Nop(); Nop();

单片机原理keil使用教程

单片机原理k e i l使用教 程 Prepared on 22 November 2020

k e i l教程 Keil 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。下面介绍Keil软件的使用方法,这应该算一个入门教程,进入 Keil 后,屏幕如下图所示。几秒钟后出现编辑界 启动Keil uVision4时的屏幕。 简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。 1) 对于单片机程序来说,每个功能程序,都必须要有一个配套的工程(Project),即使是点亮LED这样简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的Keil软件后,点击:Project-- >New uVision Project...然后会出现一个新建工程的界面,如图2-8所示。 2)因为是第一个实验,所以我们在硬盘上建立了一个实验1 的目录,然后把LED这个工程的路径指定到这里,这样方便今后管理程序,不

同的功能程序放到不同的文件夹下,并且给这个工程起一个名字叫做LED,软件会自动添加扩展名。如图2-9所示。 下次要打开LED这个工程时,可以直接找到文件夹,双击这个.uvproj 文件就可以直接打开了。 图2-9 保存工程 3)保存之后会弹出一个对话框,这个对话框让我们选择单片机型号。因为Keil软件是外国人开发的,所以我们国内的STC89C52RC并没有上榜,但是只要选择同类型号就可以了。Keil 几乎支持所有的51核的单片机,这里还是以大家用的比较多的Atmel 的AT89S51来说明,如下图2-10、图2-11所示,选择AT89S51之后,右边栏是对这个单片机的基本的说明,然后点击确定。 图2-10 选择芯片公司 图2-11 选择具体芯片

4实验四 单片机定时器的使用

姓名:学号:日期: 实验四单片机定时器的使用 一、实验名称:单片机定时器的使用 二、实验目的 1.掌握在Keil环境下建立项目、添加、保存源文件文件、编译源程序的方法; 2.掌握运行、步进、步越、运行到光标处等几种调试程序的方法; 3.掌握在Proteus环境下建立文件原理图的方法; 4.实现Proteus与Keil联调软件仿真。 三、使用仪器设备编号、部件及备件 1.实验室电脑; 2.单片机实验箱。 四、实验过程及数据、现象记录 1.在Proteus环境下建立如下仿真原理图,并保存为文件; 原理图中常用库元件的名称: 无极性电容:CAP 极性电容:CAP-ELEC 单片机:AT89C51 晶体振荡器:CRYSTAL 电阻:RES 按键:BUTTON 发光二极管:红色LED-RED 绿色LED-GREEN 蓝色LED-BLUE 黄色LED-YELLOW 2.在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件; 参考程序如下: ORG 0000H LJMP MAIN ORG H ;定时器T0的入口地址 LJMP TIMER0 MAIN: MOV TMOD,#01H

MOV R0,#05H MOV TH0,# H ;定时器的初值 MOV TL0,# H SETB ;开定时器T0的中断 SETB ;开CPU的中断 SETB ;启动定时器T0 MOV A,#01H LOOP: MOV P1,A RL A CJNE R0,#0,$ MOV R0,#05H SJMP LOOP TIMER0: DEC R0 MOV TH0,# H ;重装初值 MOV TL0,# H ;重装初值 RETI END 将以上程序补充完整,流水时间间隔为250ms。 3.将.HEX文件导入仿真图,运行并观察结果; 4.利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结果。 五、实验数据分析、误差分析、现象分析 现象:实现流水灯,时间间隔250ms,由定时器实现定时250ms。 六、回答思考题 1.定时器由几种工作模式,各种模式的最大定时时间是多少? 2.各种模式下初值怎么计算?

汇编51单片机考试常见试题

一、填空题 1.单片机是把中央处理器、存储器、定时器/计数器以及I/O接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机。 2.除了单片机这一名称之外,单片机还可称为微控制器、嵌入式控制器。 3.计算机的系统总线有地址总线、控制总线和数据总线。 4.80C51单片机基本型内部RAM有 128 个字节单元,这些单元可以分为三个用途不同的区域,一是工作寄存器区、二是位寻址区、三是数据缓冲区。5.8051单片机有2 个16位定时/计数器。 6.单片机存储器的主要功能是存储程序和数据。80C51含4 KB掩膜ROM。7.80C51在物理上有4个独立的存储器空间。 8.通常、单片机上电复位时PC= 0000H,SP= 07H;而工作寄存器则缺省采用第00 组,这组寄存器的地址范围是从00H~ 07H。 9.8051的堆栈是向地址的高端生成的。入栈时SP先加1,再压入数据。10.使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。11.MCS-51特殊功能寄存器只能采用直接寻址方式。 12.汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。 13.半导体存储器的最重要的两个指标是存储容量和存储速度。 14.当PSW4=1,PSW3=0时,工作寄存器Rn,工作在第2组。 15.在8051单片机中,由 2 个振荡(晶振)周期组成1个状态(时钟)周期,由 6个状态周期组成1个机器周期。 16.假定累加器A的内容30H,执行指令:1000H:MOVC A,@A+PC后,把程序存储器1031H单元的内容送累加器A中。 17.MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。 18.内部RAM中,位地址为30H的位,该位所在字节的字节地址为26H。 19.若A中的内容为63H,那么,P标志位的值为0。 20.在基址加变址寻址方式中,以累加器A作变址寄存器,以DPTR或PC作基址寄存器。 21.指令格式是由操作码和操作数所组成,也可能仅由操作码组成。 22.通过堆栈操作实现子程序调用,首先就要把PC的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到PC。 23.MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为64KB。 24.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。 25.假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC 后,把程序存储器1031H单元的内容送入累加器A中。 26.12根地址线可寻址4 KB存储单元。 27.:假定A=55H,R3=0AAH,在执行指令ANL A,R3后,A=00H,R3=0AAH。28.MCS-51的P0口作为输出端口时,每位能驱动8个LSTTL负载。 29.MCS-51有4个并行I/O口,其中P1~P3是准双向口,所以由输出转输入时必须先写入“1”。 30.MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。

单片机简单使用

?void setup() 初始化变量,管脚模式,调用库函数等 ?void loop() 连续执行函数内的语句 数字I/O ?pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为0~13,mode 表示为INPUT或OUTPUT。 ?digitalWrite(pin, value) 数字IO 口输出电平定义函数,pin 表示为0~13,value表示为HIGH 或LOW。比如定义HIGH 可以驱动LED。 ?int digitalRead(pin) 数字IO口读输入电平函数,pin 表示为0~13,value表示为HIGH 或LOW。比如可以读数字传感器。 模拟I/O ?int analogRead(pin) 模拟IO口读函数,pin 表示为0~5 (Arduino Diecimila为0~5,Arduino nano 为0~7)。比如可以读模拟传感器(10 位AD,0~5V 表示为0~1023)。?analogWrite(pin, value) - PWM 数字IO 口PWM 输出函数,Arduino 数字IO 口标注了PWM 的IO 口可使用该函数,pin 表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM 调速或音乐播放。 扩展I/O ?shiftOut(dataPin, clockPin, bitOrder, value) SPI 外部IO 扩展函数,通常使用带SPI 接口的74HC595 做8 个 IO 扩展,dataPin 为数据口,clockPin 为时钟口,bitOrder 为数据传输方向(MSBFIRST 高位在前,LSBFIRST 低位在前),value表示所要传送的数据(0~255),另外还需要一个IO 口做74HC595 的使能控制。 ?unsigned long pulseIn(pin, value) 脉冲长度记录函数,返回时间参数(us),pin 表示为0~13,value为HIGH 或LOW。比如value为HIGH,那么当pin 输入为高电平时,开始计时,当pin 输入为低电平时,停止计时,然后返回该时间。 时间函数Arduino使用教程 ?unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数, 该参数溢出大概需要50 天时间。 ?delay(ms) 延时函数(单位ms)。 ?delayMicroseconds(us) 延时函数(单位us)。 数学函数数学函数数学函数数学函数 ?min(x, y) 求最小值 ?max(x, y) 求最大值 ?abs(x) 计算绝对值 ?constrain(x, a, b) 约束函数,下限a,上限b,x必须在ab 之间才能返回。 ?map(value, fromLow, fromHigh, toLow, toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh 与toHigh 之间。 ?pow(base, exponent) 开方函数,base的exponent 次方。 ?sq(x) 平方 ?sqrt(x) 开根号 三角函数三角函数三角函数三角函数 ?sin(rad) ?cos(rad) ?tan(rad)

STC89C52单片机用户手册

STC89C52RC单片机介绍 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下: 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051. 工作电压:~(5V单片机)/~(3V单片机) 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻。 ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/,TxD/)直接下载用户程序,数秒 即可完成一片 具有EEPROM功能 具有看门狗功能 共3个16位定时器/计数器。即定时器T0、T1、T2 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) PDIP封装 STC89C52RC单片机的工作模式 掉电模式:典型功耗<μA,可由外部中断唤醒,中断返回后,继续执行

原程序 空闲模式:典型功耗2mA 正常工作模式:典型功耗4Ma~7mA 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备 STC89C52RC引脚图 STC89C52RC引脚功能说明 VCC(40引脚):电源电压 VSS(20引脚):接地 P0端口(~,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。

单片机的各种程序

单片机的各种程序 1. 八个灯循环点亮 ORG 0030H START:MOV SP,#5FH MOV R2,#08H MOV A,#0FEH NEXT:MOV P1,A ACALL DELAY RL A DJNZ R2,NEXT MOV R2,#08H MOV A,#7FH NEXT1:MOV P1,A ACALL DELAY RR A DJNZ R2,NEXT1 SJMP START DELAY:MOV R3,#0FFH DEL1:MOV R4,#0FFH DJNZ R4,$ DJNZ R3,DEL1 RET END 2. 查表的例子 org 0000h start: mov dptr,#ledtab movc a,@a+dptr mov p0,a sjmp start ledtab: db:0c0h,0f9h,04h,0b0h,99h,92h,82h,0f8h,80h end https://www.wendangku.net/doc/9917897218.html, 0000H MOV A,#0FEH SHIFT: LCALL FLASH

RL A SJMP SHIFT FLASH: MOV R2,0AH FLASH1:MOV P1,A LCALL DELAY MOV P1,#0FFH LCALL DELAY DJNZ R2,FLASH1 RET DELAY:MOV R5,#200 D1:MOV R6,#123 NOP DJNZ R6,$ DJNZ R5,D1 RET 4.数码显示管显示2015循环 org 0000h start: loop: mov p1,#0c0h lcall DELAY mov p1,#0f9h lcall DELAY mov p1,#0a4h lcall DELAY mov p1,#0b0h lcall DELAY mov p1,#99h lcall DELAY mov p1,#92h lcall DELAY mov p1,#82h lcall DELAY mov p1,#0f8h lcall DELAY mov p1,#80h lcall DELAY

单片机课程设计说明书范文概况

目录 1 绪论 (1) 1.1 概述 (1) 1.2 设计目的 (1) 2 设计任务及内容 (1) 2.1 设计任务 (1) 2.2 设计内容 (1) 3 总体设计及核心器件简介 (2) 3.1 总体设计 (2) 3.2 硬件设计 (2) 3.2.1 硬件系统总体设计 (2) 3.2.2 单片机的选择 (3) 3.2.3 显示电路的选择与设计 (4) 3.2.4 按键电路的选择与设计 (6) 3.2.5 时钟电路的选择与设计 (7) 3.2.6 复位电路的选择与设计 (8) 3.2.7 系统总电路的设计 (10) 3.3 软件设计 (11) 3.3.1 程序设计思想 (11) 3.3.2 系统资源的分配 (11) 3.3.3 主程序设计 (11) 3.3.4 中断程序设计 (12) 4 数字电子秒表的安装与调试 (15) 4.1 软件的仿真与调试 (15) 4.2 硬件的安装与调试 (15) 4.2 汇编程序 (15) 5 设计体会与总结 (21)

1 绪论 1.1 概述 单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。由于单片机功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。 本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有显示直观、读取方便、精度高等优良特点,在计时中应用广泛。 1.2 设计目的 加强对51系列单片机的构造了解及应用,熟悉汇编语言或C语言编程,综合掌握和理解设计各部分的工作原理、设计过程、芯片器件的选择方法、模块化编程等多项知识。 (1)用单片机模拟实现具体应用使个人设计系统能够真正使用; (2)把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼;(3)提高利用已学的知识分析和解决问题的能力; (4)提高动手实践能力。 2 设计任务及内容 2.1 设计任务 结合教材及参考资料,用80C51单片机模拟实现电子秒表的开启,计时,停止并显示时间等功能。 2.2 设计内容 (1)填写设计任务书; (2)进行总体设计,画出设计原理图; (3)用PROTEUS软件画出设计电路图; (4)用Keil软件编写程序; (5)在PROTEUS里模拟并调试程序达到期望功能。

单片机c51的特点与使用

C51的特点与使用(增补内容) C51是一种在MCS—51系列单片机上使用的C语言。相对于汇编语言,C51具有很强的语言表达能力和运算能力,而且可移植性很好。在单片机上用C编写程序,可以有效地提高程序员的工作效率。过去,由于单片机硬件系统运算速度慢,存储器资源少,而实现同样功能的C语言程序,其占用的存储器空间比汇编语言大很多,耗费的时间比汇编语言长很多,使用C语言比较困难。近年来,单片机的运算速度大大提高,存储器的价格大幅降低,而在专业人员的不断努力下,C51编译软件功能增强,使得C51机器码占用的存储器空间缩小,运算速度加快,在单片机系统中使用C51进行程序设计得以实现。 1C51的特点 C51与ANSI C的规范绝大部分是相同的,以下仅对C51的特殊部分进行必要的说明。 1.1新增数据类型 bit:片内RAM位变量。但注意不能定义位指针,也不能定义位数组。 例:bit N3_4; //定义一个片内RAM位变量N3_4 sfr:特殊功能寄存器变量。 例:sfr P0 = 0x80; //定义一个特殊功能寄存器变量P0 sfr16:双字节特殊功能寄存器变量。 sbit:定义特殊功能寄存器中的位变量。 例:sbit EA = 0xAF; //定义一个特殊功能寄存器位变量EA 例:sbit P3_2=P3^2; //定义一个特殊功能寄存器位变量P3_2 1.2新增的数据存储器类型 data:片内RAM直接寻址区(优先使用30H~7FH,可使用00H~7FH)。 例:unsigned char data HJSQ; //在片内RAM中定义一个无符号字节变量HJSQ bdata:片内RAM位寻址区(使用20H~2FH)。 例:bit bdata CXJS; //在片内RAM位寻址区定义一个位变量CXJS idata:片内RAM间接寻址区(优先使用80H~FFH,可使用00H~FFH)。 例:unsigned char idata BUFFER[8]; //在片内RAM间接寻址区定义 //一个数组变量BUFFER xdata:片外RAM的全部空间(使用MOVX @DPTR寻址)。 例:unsigned char xdata * data x; //在片内RAM中定义一个指向 //片外RAM中的无符号字节变量的指针pdata:分页访问的片外RAM的一个页面,即0~255(使用MOVX @Ri寻址)。 code:程序存储器空间。 例:unsigned char code zxb[]={0x77,0x14,0xB3,0xB6,0xD4, //01234 字形表 0xE6,0xE7,0x34,0xF7,0xF6, //56789 0x00,0x80}; // - 如果在定义变量时省略了存储器类型,则按编译模式SMALL、COMPACT或LARGE 确定变量的存储器类型。模式在编译软件中设置。 SMALL:变量定义在片内RAM中。 COMPACT:变量定义在分页片外RAM中(使用MOVX A,@Ri访问)。 LARGE:变量定义在片外RAM中(使用MOVX A,@DPTR访问)。 1.3新增中断服务函数

单片机试验之定时器计数器应用试验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。 . . . . 四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,每计

满100个脉冲,则取反P1.0口线状态。 开始汇编程序开始 ORG 0000H START: LJMP MAIN TMO初始化 ORG 0100H 初始TMOD MAIN: MOV IE, #00H MOV TMOD, #60H计数初值初始计数初值初始化MOV TH1, #9CH MOV TL1, #9CH SETB TR1 中断初始中断初始化LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 启动定时器 AJMP LOOP 启动计数器 END

单片机开发板使用手册

目录 第一章:开发板简介 (3) 1-1.SY_07011开发板的特性简介 (3) 1-2.SY_07011开发板的构成和工作原理 (4) 第二章:开发板使用说明 (5) 2-1.系统操作软件安装 (5) 2-2.开发板键盘设置 (9) 2-3.开发板连接安装 (9) 2-4.运行调试软件 (10) 第三章:开发板用器件资料及说明 (15) 3—1.TIMSP430F1121 (15) 3-2.DTLED-6 (16) 第四章:开发板器件表附件清单 (19) 4—1.调试用源程序 (19) 4-2.原理图....................................................附录插页4-2.包装清单. (30) 第五章:其它51类实验板简介 (32) 5-1.51DEMO I/O板简介 (32) 5-2.A/D89C51数模转换实验板简介 (23) 5-3.流水灯控制器(12路) (34) 5-4.SY0606开发板 (35) 5-5.Atmel_ISP下载线(选配自购件) (37)

5-6.Altera_ISP下载线(选配自购件) (37) 5-7.SY03091开发板 (38) 5-8.MSP430Flash Emulation Tool工具 (39) *********公司其它产品简介见软件盘中电子版文件*********

第一章:MSP430开发板简介 1-1.SY_07011开发板的特性简介 标准的TI的JTAG和BOOTST接口,适用与TI的MSP430 Flash Enulation Tool工具配合使用。 1. 电源适应性强,可随意使用无极性8~15V电源或DC+5V电源 供电。 2. 可用MSP430 Flash Enulation Tool工具一连串的完成编程,调 试,程序的在线烧录(自下载),和设计功能的演示等。 3. 自带3*4标准键盘输入,便于学习者掌握键盘输入和程序编 写。 4. 用串行驱动方式,驱动6位数码管显示,大大节省了单片机 的接口资源(祥见后面“DTLED-6”芯片介绍)。提供数码管字符显示驱动模块的接口,只用三根线就可以驱动6个数码

最经典的51单片机经典流水灯汇编程序

单片机流水灯汇编程序设计 开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。 程序A: ;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮(以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环 ;延时子程序,12M晶振延时约250毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 程序B: ;用移位方式实现流水灯

ajmp main ;跳转到主程序 org 0030h ;主程序起始地址 main: mov a,#0feh ;给A赋值成11111110 loop: mov p1,a ;将A送到P1口,发光二极管低电平点亮 lcall delay ;调用延时子程序 rl a ;累加器A循环左移一位 ajmp loop ;重新送P1显示 delay: mov r3,#20 ;最外层循环二十次 d1: mov r4,#80 ;次外层循环八十次 d2: mov r5,#250 ;最内层循环250次 djnz r5,$ ;总共延时2us*250*80*20=0.8S djnz r4,d2 djnz r3,d1 ret end 51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。 ORG 0 ;程序从0地址开始 START: MOV A,#0FEH ;让ACC的内容为11111110 LOOP: MOV P2,A ;让P2口输出ACC的内容 RR A ;让ACC的内容左移 CALL DELAY ;调用延时子程序 LJMP LOOP ;跳到LOOP处执行 ;0.1秒延时子程序(12MHz晶振)=================== DELAY: MOV R7,#200 ;R7寄存器加载200次数 D1: MOV R6,#250 ;R6寄存器加载250次数 DJNZ R6,$ ;本行执行R6次 DJNZ R7,D1 ;D1循环执行R7次 RET ;返回主程序

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

学习单片机的八个步骤(精)

学习单片机的八个步骤 已有 1526 次阅读2009-09-11 10:06标签: 单片机学习 学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。 定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。 中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。 第四步:与PC机进行RS232通信 单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。 USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,

单片机定时器2的使用

/*----------------------------------------------- 名称:定时器2 内容:通过定时让LED灯闪烁,数据口为:P0口 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sfr T2MOD=0xC9; //定时器2模式控制寄存器地址;可以在头文件中定义 /*------------------------------------------------ 定时器初始化子程序 ------------------------------------------------*/ void T2_init(void) { T2CON=0; //配置定时器2控制寄存器,这里其实不用配置,T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置 T2MOD=0; //配置定时器2工作模式寄存器,这里其实不用配置,T2MOD 上电默认就是0,这里赋值只是为了演示这个寄存器的配置 RCAP2H = (65536-60000)/256;//晶振12M 60ms 16bit 自动重载 RCAP2L = (65536-6000)%256; ET2=1; //打开定时器中断 EA=1; //打开总中断 TR2=1; //打开定时器开关 } /*------------------------------------------------ 主程序 ------------------------------------------------*/ main() { T2_init(); while(1); } /*------------------------------------------------ 定时器中断子程序 ------------------------------------------------*/ void T2_ISR(void) interrupt 5 using 1//定时器2中断 { //自动重装,无需再次赋初值! TF2=0;//!!!注意!!! 定时器2必须由软件对溢出标志位清零,硬件不能清零,这里与定时器0和定时器1不同!!! P0=~P0; }

51单片机开发板使用手册

STU_MAIN单片机开发板使用手册 第一章STU_MAIN 单片机开发板简介 (2) 1.1 单片机开发板概述 (2) 1.2 单片机开发板载资源介绍 (2) 1.3 STU_MAIN 单片机开发板接口说明 (4) 1.4 如何开始学习单片机 (5) 第二章软件使用方法 ......................... . (6) 2.1 KEIL 软件的使用方法 (6) 2.2 STC-ISP 软件的安装与使用 (13) 2.3 使用USB 口下载程序时设置步骤 (18) 第三章STU_MAIN 开发板例程详细介绍 (21) 3.1 准备工作 (21) 3.2 安装STC-ISP下载程序 (21) 3.3 闪烁灯 (22) 3.4 流水灯 (23) 3.5 单键识别 (25) 3.6 利用定时器和蜂鸣器唱歌 (28) 3.7 DS18B20 温度测量显示实验 (31) 3.8 LCD1602 字符液晶显示 (36) 3.9 串口通讯实验 (39) 3.10 基于DS1302的多功能数字钟实验 (41) 3.11 EEPROM X5045 实验 (47)

第一章STU_MAIN 单片机开发板简介 1.1 单片机开发板概述 STU_MAIN 单片机开发板是经过精心设计开发出的多功能MCS-51 单片 机开发平台。该开发板集常用的单片机外围资源、串口调试下载接口于一身,可以让您在最短的时间内,全面的掌握单片机编程技术。该开发板特别适合单片机初学者、电子及通信等专业的课程设计以及电子爱好者自学使用。 STU_MAIN 单片机开发板可作为单片机课程的配套设备,课程从最基本的预备知识开始讲起,非常详细的讲解KEIL 编译器的使用,包括软件仿真、测定时间、单步运行、全速运行、设置断点、调试、硬件仿真调试、变量观察等,整个过程全部用单片机的C 语言讲解,从C 语言的第一个主函数MAIN 讲起,一步步一条条讲解每一个语法、每条指令的意思,即使对单片机一巧不通,对C 语言一无所知,通过本课程的学习也可以让你轻松掌握MCS-51 单片机的C 语言编程。全新的讲课风格,跳过复杂的单片机内部结构知识,首先从单片机的应用讲起,一步步深入到内部结构,让学生彻底掌握其实际应用方法,把MCS-51单片机的所有应用、每个部分都讲解的非常清晰明了,授课教师在教室前面用电脑一条一条写程序,旁边用STU_MAIN 单片机开发板逐个实验的演示,给学生解释每条指令的意思及原理,通过一学期的学习让学生完全掌握单片机的C 语言编程及单片机外围电路设计的思想。以实践为主、学生现场写程序、直接下载到开发板观察现象。 1.2 单片机开发板载资源介绍 一. STU_MAIN单片机开发板(串口直接下载程序) 本开发板以STC 公司生产的STC90C54RD+ 单片机做核心控制芯片,它是 一款性价比非常高的单片机,它完全兼容ATMEL 公司的51/52系列单片机,除此之外它自身还有很多特点,如:无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等。 其次STC 公司的单片机内部资源比起ATMEL 公司的单片机来要丰富的多,它内部有1280 字节的SRAM、8-64K 字节的内部程序存储器、2-8K 字节的ISP 引导码、除P0-P3 口外还多P4 口(PLCC封装)、片内自带8路8位AD(AD 系列)、片内自带EEPROM、片内自带看门狗、双数据指针等。目前STC 公司的单片机在国内市场上的占有率与日俱增,有关STC 单片机更详细资料请查阅相关网站。 STU_MAIN单片机开发板可完全作为各种MCS-51单片机的开发板,用汇编语言或C 语言对其进行编程。当用STC 公司的单片机时,直接用后面介绍的串口线将开发板与计算机串口相连,按照STC 单片机下载操作教程便可下载程序,

相关文档
相关文档 最新文档