C8051f单片机的PCA模块介绍

C8051f单片机的PCA模块介绍
C8051f单片机的PCA模块介绍

C8051f单片机的PCA模块

PCA(可编程计数器阵列Programmable Counter Array)可编程计数器阵列(PCA0)提供增强的定时器功能,与标准8051计数器/定时器相比,它需要较少的CPU干预。由高字节(PCA0H)和低字节(PCA0L)组成。在读PCA0L 的同时自动锁存PCA0H 的值,先读PCA0L 寄存器将使PCA0H 的值得到保持(在读PCA0L 的同时),直到用户读PCA0H 寄存器为止。读PCA0H 或PCA0L 不影响计数器工作。PCA0MD 寄存器中的CPS2-CPS0 位用于选择PCA 计数器/定时器的时基信号。

CPS2 CPS1 CPS0 时间基准

0 0 0 系统时钟的12 分频

0 0 1 系统时钟的4 分频

0 1 0 定时器0 溢出

0 1 1 ECI 负跳变(最大速率= 系统时钟频率/4)

1 0 0 系统时钟

1 0 1 外部振荡源8 分频(与系统时钟同步)

1.工作原理:当计数/定时器溢出时,PCA0MD中的计数器溢出标志(CF)被置为1,并产生中断请求(如果CF 中断被允许)。将PCA0MD 中ECF 位设置为逻辑1 即可允许CF 标志产生中断请求。当CPU 转向中断服务程序时,CF 位不能被硬件自动清除,必须用软件清0。(注意:要使CF 中断得到响应,必须先总体允许PCA0 中断。通过将EA 位(IE.7 )和EPCA0 (EIE1.3 )设置为

逻辑1 来总体允许PCA0 中断。清除PCA0MD寄存器中的CIDL 位将允许PCA 在微控制器内核处于等待方式时继续正常工作。

位7:CF:PCA 计数器/定时器溢出标志

当PCA0 计数器/定时器从0xFFFF 到0x0000 溢出时由硬件置位。在计数器/

定时器溢出(CF)中断被允许时,该位置1 将导致CPU 转向CF 中断服务

程序。该位不能由硬件自动清0,必须用软件清0

位6:CR:PCA0 计数器/定时器运行控制

该位允许禁止PCA0 计数器定时器

0:禁止PCA0 计数器定时器

1:允许PCA0 计数器定时器

位5:未用读=0b 写=忽略

位4:CCF4 PCA0 模块4 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时,该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 必须用软件

清0

位3:CCF3:PCA0 模块3 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

位2:CCF2:PCA0 模块2 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

位1:CCF1:PCA0 模块1 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

位0:CCF0:PCA0 模块0 捕捉/比较标志

在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1

将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件

清0

PCA0MD:PCA发生选择寄存器

CIDL - - - CPS2 CPS1 CPS0 ECF 00000000

位7 位6 位5 位4 位3 位2 位1 位0 SFR地址

0xD9

位7:CIDL:PCA0 计数器/定时器等待控制

规定CPU 等待方式下的PCA0 工作方式

0:当系统控制器处于等待方式时,PCA0 继续正常工作

1:当系统控制器处于等待方式时,PCA0 停止工作

位6-4 :未用读=000b 写=忽略

位3-1:CPS2-CPS0 PCA0 计数器/定时器脉冲选择

位0:ECF:PCA 计数器/定时器溢出中断允许

该位是PCA0 计数器/定时器溢出CF 中断的屏蔽位

0:禁止CF 中断

1:当CF(PCA0CN.7) 置位时允许PCA0 计数器/定时器溢出中断请求

PCA0CPMn 地址PCA0CPM0 0xDA(n=0)

PCA0CPM1 0xDB(n=1)

PCA0CPM2 0xDC(n=2)

PCA0CPM3 0xDD(n=3)

PCA0CPM4 0xDE(n=4)

位7:PWM16n:16 位脉冲宽度调制允许

当脉冲宽度调制方式被允许时(PWMn = 1),该位选择16 位方式

0:选择8 位PWM

1:选择16 位PWM

位6:ECOMn:比较器功能允许

该位允许禁止PCA0 模块n 的比较器功能

0:禁止1:允许

位5:CAPPn:正沿捕捉功能允许

该位允许禁止PCA0 模块n 的正边沿捕捉

0:禁止1:允许

位4:CAPNn 负沿捕捉功能允许

该位允许禁止PCA0 模块n 的负边沿捕捉

0:禁止1:允许

位3:MATn 匹配功能允许

该位允许/禁止PCA0 模块n 的匹配功能.如果被允许,当PCA0 计数器与一

个模块的捕捉比较寄存器匹配时,PCA0MD 寄存器中的CCFn 位置位

0 :禁止

1: 允许

位2: TOGn 电平切换功能允许

该位允许/禁止PCA0 模块n 的电平切换功能.如果被允许,当PCA0 计数器

与一个模块的捕捉/比较寄存器匹配时,CEXn 引脚的逻辑电平

切换.如果

PWMn 位也被置为逻辑1, 则模块工作在频率输出方式

0: 禁止

1: 允许

位1: PWMn 脉宽调制方式允许

该位允许/禁止PCA0 模块的PWM 功能.如果被允许,CEXn 引脚输出脉冲

宽度调制信号.如果PWM16n 为逻辑0, 使用8 位PWM 方式;如果PWM16n

为逻辑1, 使用16 位方式;如果TOGn 位也被置为逻辑1 ,则模块工作

在频率输出方式

0: 禁止

1: 允许

位0: ECCFn 捕捉比较标志中断允许

该位设置捕捉比较标志CCFn 的中断屏蔽

0: 禁止CCFn 中断

1: 当CCFn 位被置1 时允许捕捉比较标志的中断请求

3.捕捉/比较模块的工作方式:

边沿触发捕捉、软件定时器、高速输出、频率输出、8位脉宽调制器和16位脉宽调制器

C8051F021单片机实验指导

提要:实验项目 1、单片机的IO编程 实验1 IO开关量输入实验 实验2 IO输出驱动继电器(或光电隔离器)实验 实验3 IO输入/输出------半导体温度传感器DS18B20实验2、单片机的中断系统 实验1 外部外部中断----脉冲计数实验 3、单片机的定时器/计数器 实验1 计数器实验 实验2 秒时钟发生器实验 4、单片机的串口特点和编程 实验1 P C机串口通讯实验 实验2 R S485通讯实验 5、存储器 实验1 RAM存储器读写实验 6、PWM发生器 实验1 PWM发生器(模拟)实验 实验1 PWM发生器(内部)实验 7、WDG看门狗 实验1 外扩WDG(MAX813)实验 实验2 WDG(内部)实验

8、SPI总线 实验1 SPI(模拟)实验-----TLC2543 AD转换实验 实验2 SPI(模拟)实验-----TLV5616 DA转换实验 9、I2C总线 实验1 I2C(模拟)实验-----AT24C01读写实验 实验2 I2C(内部)实验-----AT24C01读写实验 10、综合实验 实验1 HD7279LED数码管显示实验 实验2 HD7279键盘实验 实验3 外部中断---电机转速显示实验 11、步进电机正反转实验 12、TFT液晶显示彩色条纹实验 13、16X16LED点阵显示汉字实验 一、单片机的IO编程 实验1 IO开关量输入实验 目的:学习单片机读取IO引脚状态的的方法。 内容:编程读取IO引脚状态。 设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。 编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。 步骤: 1、将CPU板正确安放在CPU接口插座上, 2、连线:用导线将试验箱上MCU部分的IO1--- IO8分别连接到SWITCH 的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。

C8051F020单片机初始化程序和编译步骤

C8051F020单片机初始化程序和编译步骤 2011-02-15 12:20:06| 分类:默认分类 | 标签: |字号大中小订阅 C8051F020编程步骤 一、编程步骤: 1、看门狗设置 2、系统初始化 3、端口初始化 4、对应功能初始化(如:串口,定时器,I2C,SPI,PCA, DAC/ADC,中断等等) 5、功能函数或中断函数(如需要)6、包含的头 文件 7、项目说明 二、对应功能初始化要点: 1、Uart:(1)串口工作模式由SCON设定(2)定时器工作方式设定TMOD (3)波特率TH载入值设定 (4)启动TR1 (5)时钟基准 CKCON (6)波特率加倍设定 PCON(7)开中断使 能TI 2、Time:(1)工作方式设定TMOD (2)定时器时钟基准CKCON (3)启动/停止TCON设定TRn 3、Interrupt:(1)中断允许IE (2)触发方式设定(上下沿,电平)(3)对应控制位允许设定,如ES串口 允许 C8051F020单片机初始化程序 ; $INCLUDE (C8051F020.inc) https://www.360docs.net/doc/ad6749773.html,/ C8051F020单片机功能强大,初始化也比较繁杂,为了便于初始化各功能模块,我们编了此程序 可看着“说明”初始化。 ORG SYS_INIT ;※▲◆●◎★☆△ ;◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ;■-- <1> --电源管理 ; PCON ; POWER CONTROL ;■-- <2> --系统时钟和振荡器 ; OSCXCN ; EXTERNAL OSCILLATOR CONTROL ; OSCICN ; INTERNAL OSCILLATOR CONTROL ;■-- <3> --复位及看门狗管理 ; RSTSRC ; RESET SOURCE ; WDTCN ; WATCHDOG TIMER CONTROL ;■-- <4> --FLASH存储器编程和安全管理 ; FLSCL ; FLASH MEMORY TIMING PRESCALER ; PSCTL ; PROGRAM STORE R/W CONTROL ; FLACL ; FLASH ACESS LIMIT ;■-- <5> --中断控制 ; IE ; INTERRUPT ENABLE ; EIE1 ; EXTERNAL INTERRUPT ENABLE 1

C8051Fxx单片机开发工具及调试技术

关于开发工具及调试的技术问答 1、问:C8051FXX系列单片机的开发工具是不是串行适配器(PC机串口和JTAG协议转换适配)相同而目标版不同? 答:开发套件中串行适配器(核心部件)是通用的,只是目标版不同。只要您购买一套开发套件,就可以开发全系列单片机,只要将集成开发环境软件升级就可以了。为了加快您的开发进程,您只要购买带有相关型号单片机的目标板就可以了。 2、问:C8051F单片机是怎样调试用户系统的? 答:C8051F单片机是用开发套件来调试用户系统的。单片机开发套件包括开发软件IDE(集成开发环境),ML-EC3至PC机USB口和单片机JTAG接口的协议转换模块和一个目标板(板上有 C8051FMCU)。IDE中集成编译器,汇编器和连接器,支持汇编语言和C语言(第三方支持);ML-EC3是从USB口到JTAG协议的转换模块。 目标板上带有一块相应的C8051FMCU和一些简单的外围电路构成一个最小单片机系统,并将所有引脚连接到插座。C8051F单片机内集成了一个以JTAG协议为基础的调试电路,这样在调试您的系统时,不需要专用仿真芯片、目标仿真头及目标RAM等。您在IDE上编译生成程序代码后,通过ML-EC3(连接到计算机USB口和JTAG接口)将代码下载到用户系统板的C8051FMCU的Flash存储器中,然后您就可以调试您的目标系了。 3、问:可以用KeiluVision2IDE调试全系列C8051F单片机应用系统吗?

答:可以。但必须安装动态链接库。该驱动程序可以在我公司的网站上下载。 4、问:如何将绝对目标代码转换成hex格式文件? 答:第一,可以使用KEILC,在编译时直接生成。 第二,使用OH51(DOS命令)将目标文件转换成hex格式的文件。 Oh5Linputfile〔hexfile〕 第三,在IDE环境中生成HEX文件 ﹙1﹚.在TOOL菜单中选择ADDREMOVEUSERTOOL ﹙2﹚.点击ADD按钮,增加一个MENUTEXT(名称可以任何输入) ﹙3﹚.在TOOLS里选择OH51.EXE文件(此文件在KEIL的BIN目录中有,必须将此文件放在项目所在目录) ﹙4﹚.在ARGUMENTS里输入文件名或项目名 ﹙5﹚.在DIROF里输入HEX文件的保存目录 5、问:Silabs IDE中带有4K代码限制版的KeilC51,那么如何将无限制版的KeilC51嵌入到Silabs IDE中呢? 答:先将您完全版的KeilC51安装到您的PC机中;然后进入Silabs IDE界面,选择Project-﹥TOOLChainIntegration弹出对话框,单击Browse按钮,更换A51.EXE和BL51.EXE的路径(换成“Keil安装目录”/c51/bin)即可。 6、问:程序代码加密后,IDE不能与目标系统连接怎么办?

51单片机教程

原作:平凡的单片机

1、何谓单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。 天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。为什么会这样呢?功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。既然如此,单片机的功能肯定不强,干吗要学它呢?话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,还在不断的发展中。 2、MCS51单片机和8051、8031、89C51等的关系我们平常老是讲8051,又有什么8031,现在又有89C51,它们之间究竟是什么关系? MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL 公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL 公司开发生产的。以后我们将用89C51来完成一系列的实验。 一、单片机的外部结构 拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA引脚:EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢?单片机上除了刚才用掉的5个引脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻) 按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。

c8051f单片机教程

内容:西安科技大学科技创新实验班C8051F单片机教程之一 作者:苗瑞 日期:2009-12-8 网站:https://www.360docs.net/doc/ad6749773.html,/bbs 一、认识C8051F并与51比较 本节主要是让初学C8051F单片机的学员有个感性的认识,着重强调理论方面的知识,并通过与51单片机的比较,让大家能有更深刻的体会。 1、C8051F单片机简介 C8051Fxxx 系列单片机是完全集成的混合信号系统级芯片,具有与8051 兼容的微控制器内核,与MCS-51 指令集完全兼容。除了具有标准8052 的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件 MCU 中的外设或功能部件包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/ I2C、UART、SPI、可编程计数器/定时器阵列(PCA)、定时器、数字I/O 端口、电源监视器、看门狗定时器(WDT)和时钟振荡器等。所有器件都有内置的FLASH 程序存储器和256 字节的内部RAM,有些器件内部还有位于外部数据存储器空间的RAM,即XRAM。 C8051Fxxx 单片机采用流水线结构,机器周期由标准的12 个系统时钟周期降为1 个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。 C8051Fxxx 单片机是真正能独立工作的片上系统(SOC)。每个MCU 都能有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。 FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。应用程序可以使用MOVC 和MOVX 指令对FLASH 进行读或改写,每次读或写一个字节。这一特性允许将程序存储器用于非易失性数据存储以及在软件控制下更新程序代码。片内 JTAG 调试支持功能允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用JTAG 调试时,所有的模拟和数字外设都可全功能运行。每个 MCU 都可在工业温度范围(-45℃到+85℃)内用2.7V-3.6V(F018/019 为2.8V-3.6V)的电压工作。 端口I/O、/RST 和JTAG 引脚都容许5V 的输入信号电压。 1.1、CIP-51内核

C8051F单片机-Silicon Laboratories IDE的详细使用步骤

C8051F软件使用流程(Silicon IDE) 按照步骤操作即可,有图示 注:建立Silicon IDE工程必须首先安装Silicon IDE软件 1、如下图所示,点击"Project -> New Project"后会弹出新建工程窗口 2、如下图所示,在Select Device项目栏中选择相应的单片机型号(这里以 "C8051F320"为例),在Project name项目栏中填写项目名称(这里以"test"为例),在Location项目栏中选择需要保存的路径,这里需要 注意一点,保存的路径中最好不要出现中文,否则编译的时候有可能会出错

在Project项目栏中可以选择是否需要加载源程序,"Blank Project"代表不加载源程序,"ASM Source Project"代表加载汇编源程序,"C Source Project"代表加载C源程序(这里以选择"Blank Project" 为例),填写完成后点OK 3、如下图所示,点击"File -> New File"后会弹出新建项目窗口

4、如下图所示,在左边选择需要新建项目的类型(这里以选择新建C文件为例),在File name项目栏 中填写新建项目的名字(这里以"test"为例),在Location项目栏中选择工程文件所在的目录, 把下面的两个勾打上,填写完成后点击OK,这样就把该项目文件加载到新建工程当中

5、这样就新建好一个工程并且有工程文件,在下面空白区域可编写代码 6、在Silicon IDE中集成Keil软件 注:编译或仿真工程必须安装Silicon IDE以及Keil软件,在本示例中,软件是安装在默认路径下 (1)、如下图所示,点击"Project -> Tool Chain Integration"后会弹出设置编译环境窗口

c8051f系列单片机选型表

C8051F单片机选型表 Number MIPS (peak) Flash Memory (bytes) RAM (bytes) Ext Mem I/F Digital Port I/O Pins Serial Buses Timers (16- bit) PCA Chnls Internal Osc ADC1 ADC2 D C8051F005 25 32KB 2304 - 32 UART, SMBus, SPI 4 5 ±20%12-bit, 8ch., 100ksps - 1 2 C8051F015 25 32KB 2304 - 32 UART, SMBus, SPI 4 5 ±20%10-bit, 8ch., 100ksps - 1 2 C8051F020 25 64KB 4352 Y 64 2 UARTs, SMBus, SPI 5 5 ±20% 12-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F021 25 64KB 4352 Y 32 2 UARTs, SMBus, SPI 5 5 ±20% 12-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F022 25 64KB 4352 Y 64 2 UARTs, SMBus, SPI 5 5 ±20% 10-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F023 25 64KB 4352 Y 32 2 UARTs, SMBus, SPI 5 5 ±20% 10-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F040 25 64KB 4352 Y 64 CAN2.0B, 2 UARTs, SMBus, SPI 5 6 ±2% 12-bit, 13ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F060 25 64KB 4352 Y 59 CAN2.0B, 2 UARTs, SMBus, SPI 5 6 ±2% 16-bit, 2ch., 1Msps 10-bit, 8ch., 200ksps 1 2 C8051F064 25 64KB 4352 Y 59 2 UARTs, SMBus, SPI 5 6 ±2% 16-bit, 2ch., 1Msps - - C8051F120 100 128KB 8448 Y 64 2 UARTs, SMBus, SPI 5 6 ±2% 12-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F124 50 128KB 8448 Y 64 2 UARTs, SMBus, SPI 5 6 ±2% 12-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F126 50 128KB 8448 Y 64 2 UARTs, SMBus, SPI 5 6 ±2% 10-bit, 8ch., 100ksps 8-bit, 8ch., 500ksps 1 2 C8051F130 100 128KB 8448 Y 64 2 UARTs, SMBus, SPI 5 6 ±2% 10-bit, 8ch., 100ksps - - C8051F206 25 8KB 1280 - 32 UART, SPI 3 - ±20%12-bit, 32ch., 100ksps - - C8051F230 25 8KB 256 - 32 UART, SPI 3 - ±20%- - -C8051F236 25 8KB 1280 - 32 UART, SPI 3 - ±20%- - - C8051F300 25 8KB 256 - 8 UART, SMBus 3 3 ±2%8-bit, 8ch., 500ksps - - C8051F304 25 4KB 256 - 8 UART, SMBus 3 3 ±20%- - -C8051F305 25 2KB 256 - 8 UART, SMBus 3 3 ±20%- - - C8051F310 25 16KB 1280 - 29 UART, SMBus, SPI 4 5 ±2%10-bit, 21ch., 200ksps - - C8051F314 25 8KB 1280 - 29 UART, SMBus, SPI 4 5 ±2%- -C8051F315 25 8KB 1280 - 25 UART, SMBus, SPI 4 5 ±2%- - C8051F320 25 16KB 2304 - 25 USB 2.0, UART, SMBus, SPI 4 5 ±1.5% 10-bit, 17ch., 200ksps - - C8051F326 25 16KB 1536 - 15 USB 2.0, UART, SMBus, SPI 2 - ±1.5%- - - C8051F327 25 16KB 1536 - 15 USB 2.0, UART, SMBus, SPI 2 - ±1.5%- - - C8051F330 25 8KB 768 - 17 UART, SMBus, SPI 4 3 ±2%10-bit, 16ch., 200ksps - 1 1

51单片机经典教程

单片机经典教程 目录
第一课 第二课 第三课 第四课 第五课 第六课 第七课 第八课 第九课 第十课 第十一课 第十二课 第十三课 第十四课 第十五课 第十六课 第十七课 第十八课 第十九课 第二十课 第二十一课 第二十二课 第二十三课 第二十四课 单片机的概述 单片机的硬件结构与开发过程 单片机的内部结构 一 半导体存储器 单片机的内部结构 二 工作寄存器 单片机的内部结构 三 时序与时钟 单片机的内部结构 四 并行口 单片机的内部结构 五 数据与地址 单片机的内部结构 六 特殊功能存储器 单片机的工作方式 单片机的寻址 单片机的指令 一 数据传递类指令 单片机的指令 二 数据传递类指令 单片机的指令 三 算术逻辑运算类指令 单片机的指令 四 控制转移类指令 单片机的指令 五 位及位操作指令 单片机的程序设计方法 单片机的定时 计数器 单片机的中断系统 单片机的定时/中断实验 一 单片机的定时/中断实验 二 键盘接口及编程方法 一 独立式按键 键盘接口及编程方法 二 矩阵式按键 单片机显示器接口及编程方法 数码管的静态扫描与编程方法 6 9 11 15 18 20 24 27 29 32 35 38 42 47 51 55 64 68 73 78 81 87 90 94
4

第一课 单片机的概述
因为我们的主要课程是单片机的应用 本来不想讲解单片机的历史与发展 这话说现状更确切 些 但为了兼顾大多数朋友 我还是简单的介绍一下这方面的相关知识 一 单片机的由来 单片机 专业名称—Micro Controller Unit(微控制器件) 它是由大名鼎鼎的 INTEL 公司发明的 最早的系列是 MCS-48 后来有了 MCS-51 我们经常说的 51 系列单片机就是 MCS-51 micro controller system 它是一种 8 位的单片机 8 位是什么意思 我们以后再讲 后来 INTEL 公司把它的核心技术转让给了世界上很多的小公司 不过 再小也有几个亿的销售/ 年哦 所以世界上就有许多公司生产 51 系列兼容单片机 比如飞利浦的 87LPC 系列 华邦的 W78 系列 达拉斯的 DS87 系列 现代的 GSM97 系列等等 目前在我国比较流行的就是美国 ATMEL 公司的 89C51 它是一种带 Flash ROM 的单片机 至于什么是 Flash ROM 我在这儿先不作介绍 等以后大家学到相 关的知识时自然就会明白 我们的讲座就是以该型号的单片机来作实验的 讲到这里 也许有的人会 问 我平时在各种书上看到全是讲解 8031 8051 等型号的单片机 它们又有什么不同呢 其实它们同 属于一个系列 只是 89C51 的单片机更新型一点(事实上,89C51 目前正在用 89S51 代替 我们的实验系 统采用就是 89S52 的 兼容 89C52) 这里随便说一下 目前国内的单片机教材都是以 8051 为蓝本的 尽管其内核也是 51 系列的 但毕竟 8051 的单片机已经属于淘汰产品 在市场上也很少见到了 所以由 此感叹 国内的高等教育是如此的跟不上时代的发展需要 这话可能会引起很多人的不满,所以大家别 说是我讲的哦 二 主要单片机的分类 接着上面的话题 再给大家介绍一下我们经常在各种刊物上看到的 AVR 系列和 PIC 系列单片机是 怎么回事 以便让大家对单片机的发展有一个较全面的认识 在没有学习单片机之前 这是一个令很多 初学者非常困惑的问题 这么多的单片机我该先学哪一种呢 AVR 系列单片机也是 ATMEL 公司生产的一种 8 位单片机 它采用的是一种叫 RISC 精简指令集单 片机 的结构 所以它的技术和 51 系列有所不同 开发设备也和 51 系列是不通用的 它的一条指令的 运行速度可以达到纳秒级 即每秒 1000000000 次 是 8 位单片机中的高端产品 由于它的出色性能 目前应用范围越来越广 大有取代 51 系列的趋势 所以学完了 51 系列的 看来必须学会 AVR 的才行 可叹知识爆炸 人生苦短 说完了 AVR 的 再来说说另一种--PIC 系列单片机 它是美国 MICROCHIP 公 司 唉 又是老美 叫微芯公司的生产的另一种 8 位单片机 它采用的也是 RISC 的指令集 它的指令 系统和开发工具与 51 系列更是不同 但由于它的低价格和出色性能 目前国内使用的人越来越多 国 内也有很多的公司在推广它 不过它的影响力远没有 51 系列的大 所以作为初学者 51 系列当然是首 选 以上几种只是比较多见的系列 其实世界上还有许多的公司生产各种各样的单片机 比如 MOTOROLA 的 MC68H 系列 老牌的单片机 TI 的 MSP430C 系列 极低功耗的单片机 德国的西门子 SIEMENS 等等 它们都有各自的结构体系 并不与 51 系列兼容 为了不搞大家的脑筋 这里就不介绍了 等大 家入了门以后自己去研究它吧 我们还是回来了解一下 51 系列单片机到底是个什么东西 它有那些部 分组成 请接着往下看 三 单片机的结构及组成 单片机到底是一种什么 DD 它究竟能做什么呢 其实它就是一种能进行数学和逻辑运算 根据不 同使用对象完成不同控制任务的面向控制而设计的集成电路 此话好象有点绕口 没关系 大家都应该 知道我们经常使用的电脑吧 在电脑上 我们可以用不同的软件在相同的硬件上实现不同的工作 比如 我们用 WORD 可以打字 用 PROTEL 可以设计图纸等等 单片机其实也是如此 同样的芯片可以根据我们 不同的要求做出截然不同的产品 只不过电脑是面向应用的 而单片机是面向控制的 比如控制一个指
6

C8051F系列单片机的发展和应用

C8051F系列单片机的发展和应用 摘要:C8051F系列单片机的推出,使单片机进入SoC ( System on Chip )时代。C8051F系列单片机功能强大,能够作为嵌入式系统的主控制器,具有上手快(全兼容8051指令集)、研发快(开发工具易用,可缩短研发周期)和见效快(调试手段灵活)等特点,使得C8051F系列单片机得到广泛的应用。本文首先对C8051F 系列单片机做了大概的介绍,之后详细分析说明了它的原理机制,介绍了C8051F 系列单片机的特点,阐述了它的发展和应用。 关键词:C8051F SoC 发展应用 前言 在嵌入式系统低端的单片机领域, 80C51系列一直扮演着一个重要角色,近年来,由于80C51的速度低(每一条指令至少需要12个时钟周期) ,功耗高(几毫安到几十毫安) ,功能少(不能直接处理模拟信号)等等, 80C51系列单片机似乎已经走道了尽头,然而当前CYGNAL公司推出的C8051F系列单片机又将80C51兼容单片机推上了8位机的先进行列,使80C51系列从MCU时代进入到了SoC ( System on Chip )时代。 SoC是随着半导体生产技术的不断发展而产生的新概念,它是集成度越来越高和对嵌入式控制技术可靠性越来越高的产物[1]。SoC是指片上系统或系统级芯片, SoC的完整定义为:在同一个芯片上集成了控制部件(微处理器,存储器)和执行部件( I/O接口,微型开关,微机械) ,能够自成体系,独立工作的芯片。因此, C8051F系列单片机功能强大,能够作为嵌入式系统的主控制器。本文主要介绍了C8051F系列单片机的特点,以及它的发展和应用。 一 C8051F系列单片机简介 C8051F系列单片机是完全集成的混合信号系统级芯片,具有与8051兼容的CIP-51微控制器内核,采用流水线结构,单周期指令运

C8051F学习笔记1:C8051F最小系统

C8051F学习笔记1:C8051F最小系统 C8051F是Silicon Laboratories公司推出的增强型51单片机,当然功能很强大,我觉得最吸引人的要算峰值能指令运行达到25MIPS(Million Instruction s Per Second(每秒百万条指令)),即与8051相比,在相同时钟下单周期指令运行速度为原来的12倍;整个指令集平均运行速度为原来8051的9.5倍,使8051兼容机系列进入了8位高速单片机行列。 哈哈,下面开始一步步教你制作C8051F的最小系统: 要进行C8051F开发无非要有这些东西:下载线+最小系统开发板+编译软件。 下载线: 这个可以自己制作,网上也有这方面的电路图,为了省事,我是在淘宝上买的,卖家东西很好,是自己开发的USB口下载线,同时也是一个仿真器(C8051 F USB口的JTAG/C2下载线U-EC5仿真器)

https://www.360docs.net/doc/ad6749773.html,/microgo/blog/item/7ecfc86377bcb4dbe7113afa.html 卖家还把教程、软件、例程和在官网下的应用笔记刻成光盘,这样就省去了我学习C8051F的很多时间 C8051F最小系统 我没有买开发板,是在万用板上焊接的。C8051F有很多型号,有些还有1 00多个管脚,这很费事,所以我选用C8051F320,管脚少,LQFP32封装,只有32个管脚,管脚间距也大,1.27mm。在中发买那种有贴片焊盘的万用板。 C8051F选型 https://www.360docs.net/doc/ad6749773.html,/xxzn/xxzn.asp C8051F开发板参考电路图 https://www.360docs.net/doc/ad6749773.html,/pcb/1.htm C8051F最小系统构成 3.3V电源+低电平复位+JTAG/C2+(晶振)

在KEIL4环境下开发C8051F系列的单片机

在KEIL4环境下开发C8051F系列的单片机: 在安装完KIEL4以后还需要安装C8051F_uVision.exe(由Silicon laboratory公司提供的AGDI,在其官网上下载); 此AGDI提供以下三个方面的功能: 1:提供最新的C8051F系列单片机的器件数据库 2:提供通过ECX系列或其他兼容在线调试器提供调试接口 3:提供对C8051F系列单片机的FLASH接口 安装Sic8051F_uVision.exe文件需在Keil安装目录中有TOOLS.INI文件,其内容主要如下: [UV4] ORGANIZATION="sdstar" NAME="Hua_ming", "Yu" EMAIL="sy.m@https://www.360docs.net/doc/ad6749773.html," BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN) [C51] PATH="C:\Program Files\keil\C51\" VERSION=V9.01 TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver") TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger") TDRV2=BIN\SIC8051F.DLL ("SILICON LABS C8051Fxxx Driver") RTOS0=Dummy.DLL("Dummy") RTOS1=RTXTINY.DLL ("RTX-51 Tiny") RTOS2=RTX51.DLL ("RTX-51 Full") LIC0=UJ512-98S0H-ZGW7Q-NWPHT-8IHFH-6658M 其中TDRV0~2 为8051的驱动程序,在安装好Sic8051F_uVision.exe文件后就会在Keil安装目录下生成SIC8051F.DLL文件,安装完毕后,任意打开C51的一个工程(如LED开发工程开Source Code\LED_Flow\project),

用纯C语言实现C8051F单片机的在线程序更新

用纯C语言实现C8051F单片机的在线程序更新 1 概述 C8051F单片机是由Silicon Laboratories 公司出品的混合信号系统级芯片(SOC),具有与MCS-51指令集完全兼容的高速CIP-51内核;峰值速率可达100MIPS;在一个芯片内集成了构 成一个单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其他功能部件;具有大容量的可在系统(ISP)和在应用(IAP)编程的FLASH存储器。 Keil C51作为当今最通用的C51编程IDE。。。。。 C8051F每个MCU 都有一个片内符合IEEE 1149.1 规范的JTAG 接口和逻辑,提供生产和在系 统测试所需要的边界扫描功能,支持闪存的读和写操作以及非侵入式在系统调试。对于MCU 的程序更新,最方便的办法是使用JTAG进行程序下载,但是这需要使用专用的编程器,这在 产品售出后进行更新几乎是不可能的。 2 整体思路 在线更新程序采用串口进行程序更新,分为主程序部分和bootloader部分,整体思路为: 1) 在MCU复位时由主程序部分向上层PC发送握手信号,并等待回复; 2) 如果上层PC收到握手信号则发送握手确认信号; 3) 如果MCU在一段时间内(一般为200ms)没有收到握手确认信号则进入主程序。 4) 如果MCU收到握手确认信号,则发送确认信号用以告诉PC可以进行程序更新。同 时MCU进入BootLoader程序准备接收更新数据 5) PC发送准备更新信号; 6) MCU清除FLASH,发送确认信号,准备接收数据。 7) PC发送一帧数据,然后等待确认; 8) MCU将收到的数据写入FLASH,然后发送确认帧; 9) PC在收到确认帧后回到第七步直到数据全部发送完毕; 10) MCU收完全部数据并写入FLASH并发送确认帧后,将写入FLASH的全部数据分帧一 次性发送给PC; 11) PC对收到的数据进行校验; 12) 如果校验失败则回到第五步重新进行程序更新; 13) 如果校验正确则更新完成; 3 程序定位与绝对地址调用 在BootLoader程序中需要删除主程序部分的Flash,而BootLoader程序则必须在整个程序运行过程中都存在,因此必须将两部分程序进行分别定位。由于主程序中需要用到中断,而中断向量表必须放在程序空间的低地址,所以一般将主程序放在由0地址起始的位置(预设情况也是如此),将BootLoader程序放在高地址。本人程序中,主程序大概为20K Byte,在给其一定余量后决定将BootLoader程序放在40K起始的位置,即0xA000开始的地方。 程序的分块有两种方法: 1. 使用连接程序(link)命令将BootLoader程序中的所有函数进行绝对定位。但 是这种办法存在很大弊端,Keil C51在对程序进行优化过程中会对程序中的公用模块进行调用,比如BootLoader程序中只是简单的一个对数组变量的赋值,就有可能调用主程序中相类

51单片机教程(从原理开始基于汇编)及单片机C语言教程

51单片机教程(从原理开始基于汇编)及单片机C语言教程 1.单片机可以做什么? 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。小到电话,玩具,手机,各类刷卡机,电脑键盘,彩电,冰箱,空调,电磁炉,大到汽车,工业自动控制,机器人,导弹导航装置,甚至是美国的火星车,这些设备里面都含有一个或者多个单片机。单片机的数量不仅远超过PC机,甚至比人类的数量还要多。因此,单片机的学习、开发与应用将造就一大批软硬件工程师。2. 学习单片机需要哪些基本条件? 模拟电路,数字电路基础,对C语言或汇编语言有一定的了解。当然,这些也可以在学习过程中掌握。对此这套教程均有讲解. 硬件条件的话:电脑一台,实验开发平台一套。3、单片机的结构 一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片机。单片机是一种

控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。不,价格并不高,从1元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。为什么会这样呢?功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。既然如此,单片机的功能肯定不强,干吗要学它呢?话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高 的性能,一个控制电冰箱温度的计算机难道要动用一台台式电脑不成?应用的关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,还在不断的发展中。4、MCS51单片机和8051、8031、89C51等的关系 我们平常老是讲8051,又有什么8031,现在又有89C51,89s51它们之间究竟是什么关系? MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列

51单片机教程

目录 上册
第一课 第二课 第三课 第四课 第五课 第六课 第七课 第八课 第九课 第十课 第十一课 第十二课 第十三课 第十四课 第十五课 第十六课 第十七课 第十八课 第十九课 第二十课 第二十一课 第二十二课 第二十三课 第二十四课 单片机的概述 单片机的硬件结构与开发过程 单片机的内部结构 一 半导体存储器 单片机的内部结构 二 工作寄存器 单片机的内部结构 三 时序与时钟 单片机的内部结构 四 并行口 单片机的内部结构 五 数据与地址 单片机的内部结构 六 特殊功能存储器 单片机的工作方式 单片机的寻址 单片机的指令 一 数据传递类指令 单片机的指令 二 数据传递类指令 单片机的指令 三 算术逻辑运算类指令 单片机的指令 四 控制转移类指令 单片机的指令 五 位及位操作指令 单片机的程序设计方法 单片机的定时 计数器 单片机的中断系统 单片机的定时/中断实验 一 单片机的定时/中断实验 二 键盘接口及编程方法 一 独立式按键 键盘接口及编程方法 二 矩阵式按键 单片机显示器接口及编程方法 数码管的静态扫描与编程方法 6 9 11 15 18 20 24 27 29 32 35 38 42 47 51 55 64 68 73 78 81 87 90 94
4

下册
第二十五课 第二十六课 第二十七课 第二十八课 第二十九课 第三十课 第三十一课 第三十二课 第三十三课 第三十四课 第三十五课 第三十六课 第三十七课 第三十八课 第三十八课 第三十九课 第四十课 第四十一课 第四十二课 第四十三课 第四十四课 第四十五课 第四十六课 第四十七课 第四十八课 程序存储器的扩展及编程方法 一 程序存储器的扩展及编程方法 二 数据存储器的扩展及编程方法 一 数据存储器的扩展及编程方法 二 I2C 总线原理及编程方法 串行接口的原理及编程方法 一 串行接口的原理及编程方法 二 多机通讯的原理及编程方法 一 多机通讯的原理及编程方法 二 定时/计数器的扩展及编程方法 中断的扩展及编程方法 D/A 转换的原理及编程方法 一 D/A 转换的原理及编程方法 二 A/D 转换的原理及编程方法 一 A/D 转换的原理及编程方法 二 看门狗原理和单片机的可靠性设计 键盘的扩展及编程方法 显示器的扩展及编程方法 单片机专用键显芯片的设计方法及编程原理 实时时钟的原理及编程方法 一 实时时钟的原理及编程方法 二 单片机汉字显示系统的原理 单片机汉字点阵屏的实验 液晶显示器的原理和编程方法 一 液晶显示器的原理和编程方法 二 2 6 8 12 16 20 25 28 32 36 41 45 50 54 58 62 66 70 75 79 83 86 91 94 96
5

51单片机教程详细解析(经典收藏)

51单片机教程配套学习板 HJ-1G 助学小店https://www.360docs.net/doc/ad6749773.html,/自学单片机课程第1页共61页 baidu

原作:平凡的单片机 (感谢原作者的无私共享精神) 慧净网上收集的资料,全部免费共享,没有版权 可以用于配套学习的单片机学习板HJ-3G 单片机教程第一课:单片机概述 1、何谓单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM (程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。 天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚

强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。既然如此,单片机的功能肯定不强,干吗要学它呢?话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,还在不断的发展中。 2、MCS51单片机和8051、8031、89C51等的关系我们平常老是讲8051,又有什么8031,现在又有89C51,它们之间究竟是什么关系?MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL 公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL 公司开发生产的。以后我们将用89C51来完成一系列的实验。 单片机教程第二课:单片机的内部、外部结构(一) 一、单片机的外部结构 拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA引脚:EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢?单片机上除了刚才用掉的5个引脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻) 按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。

相关文档
最新文档