当前位置:文档之家› C8051F020单片机

C8051F020单片机

C8051F020单片机
C8051F020单片机

Cygnal出的一种混合信号系统级单片机。片内含CIP-51的CPU内核,它的指令系统与MCS-51完全兼容。其中的C8051F020单片机含有64kB片内Flash程序存储器,4352B的RAM、8个I/O端口共64根I/O口线、一个12位A/D转换器和一个8位A/D转换器以及一个双12位D/A转换器、2个比较器、5个16位通用定时器、5个捕捉/比较模块的可编程计数/定时器阵列、看门狗定时器、VDD监视器和温度传感器等部分。C8051F020单片机支持双时钟,其工作电压范围为2.7~3.6V(端口I/O,RST和JTAG引脚的耐压为5V)。与以前的51系列单片机相比,C8051F020增添了许多功能,同时其可靠性和速度也有了很大提高。

C8051Fxxx 系列单片机是完全集成的混合信号系统级芯片,具有与8051 兼容的微控制器

内核,与MCS-51 指令集完全兼容。除了具有标准8052 的数字外设部件之外,片内还集成了

数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。参见表1.1 的产品选择

指南可快速查看每个MCU 的特性。

表1.1 C8051Fxxx 产品选择指南

MIPS(峰值)

FLASH 存储器(字节)

RAM(字节)

外部存储器接口

SMBus/12C

SPI

UART

定时器(16 位)

可编程计数器阵列

内部振荡器精度(±%)

数字端口I/O

ADC 分辨率(位)

ADC 最大速度(ksps)

ADC 输入

电压基准

温度传感器

DAC 分辨率(位)

DAC 输出(位)

电压比较器

备注:C8051F02X 系列单片机片内还集成有一个8 位,500ksps,8 输入(与P1 口复用)ADC。

— 2 —

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-51TM 内核

C8051Fxxx 系列器件使用Cygnal 的专利CIP-51 微控制器内核。CIP-51 与MCS-51TM 指

令集完全兼容,可以使用标准803x/805x 的汇编器和编译器进行软件开发。CIP-51 内核具有

标准8052 的所有外设部件,包括3 个16 位的计数器/定时器、一个全双工UART、256 字节

内部RAM 空间、128 字节特殊功能寄存器(SFR)地址空间及4 个8 位的I/O 端口。CIP-51

还另外有增加的模拟和数字外设或功能部件。

CIP-51 采用流水线结构,与标准的8051 结构相比指令执行速度有很大的提高。在一个

标准的8051 中,除MUL 和DIV 以外所有指令都需要12 或24 个系统时钟周期。而对于CIP-51

内核,70%的指令的执行时间为1 或2 个系统时钟周期,只有4 条指令的执行时间大于4 个

系统时钟周期。

CIP-51 共有111 条指令。下表列出了指令条数与执行时所需的系统时钟周期数的关系。

执行周期数1 2 2/3 3 3/4 4 4/5 5 8

指令数26 50 5 16 7 3 1 2 1

CIP-51 工作在最大系统时钟频率25MHz 时,它的峰值速度达到25MIPS。

C8051Fxxx 系列MCU 在与标准8051 相比,在CPU 内核的内部和外部有几项关键性的

改进,提高了整体性能,更易于在最终应用中使用。

扩展的中断系统向CIP-51 提供22(C8051F3xx 为12)个中断源(标准8051 只有7 个中

断源),允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU 干

预,却有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。

MCU 可有多达7 个复位源:一个片内VDD 监视器、一个看门狗定时器、一个时钟丢失

检测器、一个由比较器0 提供的电压检测器、一个强制软件复位、CNVSTR 引脚及/RST 引

脚。/RST 引脚是双向的,可接受外部复位或将内部产生的上电复位信号输出到/RST 引脚。

除了VDD 监视器和复位输入引脚以外,每个复位源都可以由用户用软件禁止。MCU 内部有一个能独立工作的时钟发生器,在复位后被默认为系统时钟。如有需要,

时钟源可以在运行时切换到外部振荡器。外部振荡器可以使用晶体、陶瓷谐振器、电容、RC

或外部时钟源产生系统时钟。这种时钟切换功能在低功耗系统中是非常有用的,它允许MCU

从一个低频率(节电)外部晶体源运行,当需要时再周期性地切换到高速(可达16MHz)的

内部振荡器。

1.2 存储器

CIP-51 有标准8052 的程序和数据地址配置。它包括256 字节的数据RAM,其中高128

字节为两个地址空间。用间接寻址访问通用RAM 的高128 字节,用直接寻址访问128 字节

的SFR 地址空间。数据RAM 的低128 字节可用直接或间接寻址方式访问。前32 个字节为4

个通用工作寄存器区,接下来的16 字节既可以按字节寻址也可以按位寻址。

某些器件中还另有位于外部数据存储器地址空间的1K- 4K 字节的RAM 块。这个RAM

— 4 —

块可以在整个64k 外部数据存储器地址空间中被寻址。

C8051F02x 中有可用于访问外部数据存储器的外部存储器接口(EMIF)。这个片内外部

数据存储器地址空间可以只映射到片内存储器、只映射到片外存储器、或两者的组合(4K 以

下的地址指向片内,4K 以上的地址指向EMIF)。EMIF 可以被配置为地址/数据线复用方式

或非复用方式。

MCU 的程序存储器为8K- 64K 字节的FLASH。该存储器以512 字节为一个扇区,可以

在系统编程,且不需在片外提供编程电压。

1.3 JTAG 调试和边界扫描

C8051Fxxx 具有片内JTAG 和调试电路,通过4 脚JTAG 接口并使用安装在最终应用系

统中的器件就可以进行非侵入式、全速的在系统调试(C8051F3xx 具有片内C2 调试电路,

通过2 脚C2 接口并使用安装在最终应用系统中的器件就可以进行非侵入式、全速的在系统

调试)。该JTAG 接口完全符合IEEE 1149.1 标准(C8051F2xx 的JTAG 接口没有边界扫描功

能),为生产和测试提供完全的边界扫描功能。

Cygnal 的调试系统支持观察和修改存储器和寄存器,支持断点、观察点、堆栈指示器和

单步执行。调试时不需要额外的目标RAM、程序存储器、定时器或通信通道,并且所有的

模拟和数字外设都正常工作。当MCU 单步执行或遇到断点而停止运行时,所有的外设(ADC

除外)都停止运行,以保持同步。

对于开发和调试嵌入式应用来说,该系统的调试功能比采用标准MCU 仿真器要优越得

多。标准的MCU 仿真器要使用在板仿真芯片和目标电缆,还需要在应用板上有MCU 的插

座。Cygnal 的调试环境既便于使用又能保证精确模拟外设的性能。

1.4 可编程数字I/O 和交叉开关

C8051Fxxx具有标准8051兼容的I/O端口。有的端口在某些器件中没有引出脚,没有引出

脚的端口可用作通用寄存器。I/O端口的工作情况与标准8051相似,但有一些改进。

每个端口I/O引脚都可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”

可以被禁止,这为低功耗应用提供了进一步节电的能力。

可能最突出的改进是引入了数字交叉开关(C8051F2xx除外)。这是一个大的数字开关网

络,允许将内部数字系统资源分配给端口I/O引脚。与具有标准复用数字I/O的微控制器不同,

这种结构可支持所有的功能组合。可通过设置交叉开关控制寄存器将片内的计数器/定时器、

串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其它数字信号配

置为出现在端口I/O引脚。这就允许用户根据自己的特定应用选择通用端口I/O 和所需数字资源

的组合。

1.5 可编程计数器阵列

除了通用计数器/定时器之外,C8051F00x/01x/02x MCU还有一个片内可编程计数器/定时

器阵列(PCA)。PCA包括一个专用的16位计数器/定时器时间基准和5

(C8051F3xx为3)个可

编程的捕捉/比较模块。时间基准的时钟可以是下面的六个时钟源之一:系统时钟/12、系统时

— 5 —

钟/4、定时器0溢出、外部时钟输入(ECI)、系统时钟和外部振荡源频率/8(C8051F00x/01x

没有后两个时钟源)。

每个捕捉/比较模块都有4或6种工作方式:边沿触发捕捉、软件定时器、高速输出、8位

脉冲宽度调制器、频率输出、16位脉冲宽度调制器(C8051F00x/01x没有后两种工作方式)。

PCA捕捉/比较模块的I/O和外部时钟输入可以通过数字交叉开关连到MCU的端口I/O引脚。

1.6 串行端口

C8051Fxxx系列MCU内部有一个全双工UART、SPI总线和SMBus/I2C总线。每种串行总线

都完全用硬件实现,都能向CIP-51产生中断,因此很少需要CPU的干预。这些串行总线不“共

享”定时器、中断或端口I/O,所以可以使用任何一个或全部同时使用。C8051F02x 系列MCU

内部还有第二个UART,这是一个增强型全双工UART,具有硬件地址识别和错误检测功能。

1.7 模数转换器

除了C8051F230/1/6之外,其它C8051Fxx器件内部都有一个ADC子系统,由逐次逼近型

ADC、多通道模拟输入选择器和可编程增益放大器(F018/19没有可编程增益放大器)组成。

ADC工作在100ksps的最大采样速率时可提供真正的8位、10位或12位精度。ADC完全由CIP-51

通过特殊功能寄存器控制,系统控制器可以关断ADC以节省功耗。

C8051F00x/01x/02x还有一个15ppm的电压基准和内部温度传感器,并且8个外部输入通道

的每一对都可被配置为两个单端输入或一个差分输入。

可编程增益放大器接在模拟多路选择器之后,增益可以用软件设置,从0.5到16以2的整

数次幂递增。当不同ADC输入通道之间输入的电压信号范围差距较大或需要放大一个具有较

大直流偏移的信号时(在差分方式,DAC可用于提供直流偏移),这个放大环节是非常有用的。

A/D转换可以有4种启动方式:软件命令、定时器2溢出、定时器3溢出或外部信号输入。

这种灵活性允许用软件事件、硬件信号触发转换或进行连续转换。一次转换完成后可以产生

一个中断,或者用软件查询一个状态位来判断转换结束。在转换完成后,转换结果数据字被

锁存到特殊功能寄存器中。对于10位或12位ADC,可以用软件控制结果数据字为左对齐或右

对齐格式。

ADC数据比较寄存器可被配置为当ADC数据位于一个规定的窗口之内时向控制器申请中

断。ADC可以用后台方式监视一个关键电压,当转换数据位于规定的窗口之内时才向控制器

申请中断。

除了12位的ADC子系统ADC0之外,C8051F02x还有一个8位ADC子系统,即ADC1,它有

一个8通道输入多路选择器和可编程增益放大器。该ADC工作在500ksps的最大采样速率时可

提供真正的8位精度。ADC1的电压基准可以在模拟电源电压(AV+)和外部VREF引脚之间选

择。用户软件可以将ADC1置于关断状态以节省功耗。ADC1的可编程增益放大器的增益可以

被编程为0.5、1、2或4。ADC1也有灵活的转换控制机制,允许用软件命令、定时器溢出或外

部信号输入启动ADC1转换;用软件命令可以使ADC1与ADC0同步转换。— 6 —

1.8 数模转换器

C8051F00x/01x/02x(F018/19除外)内部有两个12位电压输出DAC,MCU 可以将任何一

个DAC置于低功耗关断方式。C8051F02x的DAC有灵活的输出更新机制,允许用软件命令和

定时器2、定时器3及定时器4的溢出信号更新DAC输出。DAC在作为比较器的参考电压或为

ADC差分输入提供偏移电压时非常有用。

1.9 比较器

大多数C8051Fxxx MCU 内部都有两个比较器CP0 和CP1 (在

F002/007/012/017300/301/302/303中没有第二个比较器CP1),MCU可以将任何一个比较器置于

低功耗关断方式。

可以用软件设置比较器的回差电压。每个比较器都能在上升沿或下降沿产生中断,或在

两个边沿都产生中断,比较器的输出状态可以用软件查询。比较器中断能将MCU 从等待方式

唤醒。可通过设置交叉开关或端口MUX将比较器的输出接到端口I/O引脚。

c8051f020端口配置说明

C8051F的每个I/O口引脚都可以被配置为推挽或漏极开路输出。同时引入了数字交叉开关,允许将内部数字系统资源映射到P0、P1、P2和P3 的端口引脚。通过设置交叉开关寄存器可将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。必须在访问这些外设的I/O之前配置和允许交叉开关。 注意的问题: 1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。 2.没有被分配到的引脚作为一般的数字通用I/O口。 口还可以用作ADC1的模拟输入。 ~P3MDOUT用于控制I/O端口每一位的输出状态。 (外部存储器接口)是用于CPU与片外XRAM之间的数据传输通道,通过寄存器EMI0CF和EMI0CN 选择和管理端口实现数据的传输。 6.为了能访问片外存储器空间,必须设置EMI0CN寄存器的内容为片外存储器的空间页地址。 7.如果把外部存储器接口(EMIF)设置在高端口则首先要把EMI0CF的PRTSEL位设置为1,选择高端口,同时选择地址的复用或非复用方式,在把XBR的外部寄存器的EMIFLE位设置为0。 8.复用方式配置:在复用方式下,数据总线和地址总线的第8位共用相同的引脚(AD0~AD7)。在该方式下,要用一个外部锁存器(如74HC373或相同功能的锁存器)保持RAM地址的低8位。外部锁存器由ALE(地址锁存使能)信号控制,ALE信号由外部存储器接口逻辑驱动。 9.在总线复用时,需要把地址数据复用端口配置为漏极开路。 高/低脉宽占1个SYSCLK周期,地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK 周期,EMIF工作在地址/数据复用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF的步骤是:先将EMIF选到低端口或高端口;然后选择复用方式或非复用方式;再选择存储器的模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器);然后设置EMI0TC;最后通过寄存器PnMDOUT和P74OUT选择所期望的相关端口的输出方式。如: void PORT_Init (void) { XBR2 = 0x40; /*使能交叉开关和弱上拉*/ P74OUT |= 0xff; /*使能P4~P7推挽输出*/

单片机C语言(非常通俗易懂)

单片机C语言(非常通俗易懂) (一) 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使

C8051F020与80C51单片机的异同点

C8051F020与80C51单片机的异同点 1 引言 80C51系列单片机及其衍生产品在我国乃至全世界范围获得了非常广泛的应用。单片机领域的大部分工作人员都熟悉80C51单片机,各大专院校都采用80C51系列单片机作为教学模型。随着单片机的不断发展,市场上出现了很多高速、高性能的新型单片机,基于标准8051内核的单片机正面临着退出市场的境地。为此,一些半导体公司开始对传统8051内核进行大的构造,主要就是提高速度与增加片内模拟与数字外设,以期大幅度提高单片机的整体性能。其中美国Cygnal公司推出的C8051F系列单片机把80C51系列单片机从MCU时代推向SoC时代,使得以8051为内核的单片机上了一个新的台阶。 C8051F系列单片机就是完全集成的混合信号系统级芯片,具有与8051兼容的CIP-51微控制器内核,采用流水线结构,单周期指令运行速度就是8051的12倍,全指令集运行速度就是原来的9、5倍。熟悉NCS-51系列单片机的工程技术人员可以很容易地掌握C8051F的应用技术并能进行软件的移植。但就是不能将8051的程序完全照搬的应用于C8051F单片机中,这就是因为两者的内部资源存在较大的差异,必须经过加工才能予以使用。其中C8051F020以其功能较全面,应用较广泛的特点成为C8051F的代表性产品,其性能价格比在目前应用领域也极具竞争力。C8051F020的内部电路包括CIP-51微控制器内核及RAM、ROM、I/O口、定时/计数器、ADC、DAC、PCA、SPI与SMBus等部件,即把计算机的基本组成单元以及模拟与数字外设集成在一个芯片上,构成一个完整的片上系统(SoC)。本文将介绍C8051F020单片机与80C51的异同点(主要就是不同之处)及初学者编程时应该注意的问题,并给出经过Cygnal开发工具IDE调试环境软件验证的源程序。 2 相同点 C8051F020单片机与80C51系列单片机的指令系统完全一样。掌握80C51单片机的人员可以很容易地接受C8051F020的应用技术并能完成相应软件的移植。 3 主要硬件不同点 3、1 运行速度 C8051F020的指令运行速度就是一般80C51系列单片机的10倍以上。因为其CIP-51中采用了流水线处理结构,已经没有了机器周期时序,指令执行的最小时序单位为系统时钟,大部分指令只要1~2个系统周期即可完成。又由于其时钟系统比80C51的更加完善,有多个时钟源,且时钟源可编程,时钟频率范围为0~25 MHz,当CIP-5l工作在最大系统时钟频率25 MHz时,它的峰值速度可以达到25 MI/s,C8051F020已进入了8位高速单片机行列。 3、2 I/O端口的配置方式 C8051F020拥有8个8位的I/O端口,大量减少了外部连线与器件扩展,有利于提高可靠性与抗干扰能力。其中低4个I/O端口除可作为一般的通用I/O端口外,还可作为其她功能模块的输入或输出引脚,它就是通过交叉开关配置寄存器XBR0、XBR1、XBR2(各位名称及格式如表1所示)选择并控制的,它们控制优先权译码选择开关电路如图1所示,可将片内的计数器/定时器、串行总线、硬件中断、比较器输出及其它的数字信号配置为在端口I/O引脚出现,这样用户可以根据自己的特定需要选择所需的数字资源与通用I/O口。数字交叉开关就是一个比较大的数字开关网路,这在所有80C51系列单片机上就是一个空白。另外P1MDIN用于选择P1的输入方式就是模拟输入还就是数字输入,复位值为11111111B,即默认为数字输入方式。而80C51单片机的I/O引脚就是固定分配的,即占用引脚多,配置又不够灵活。

51单片机C语言入门教程详细解说

单片机c语言入门 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使

C8051F020实验指导书

单片机实验指导书 目录 第一章:实验设备简介 (1) 1.1 系统实验设备的组成 (1) 1.2 Silicon Labs C8051F 单片机开发工具简介 (1) 1.3 DICE-C8051F嵌入式实验/开发系统简介 (3) 第二章集成开发环境KEIL C软件使用指南 (7) 2.1 KEIL C软件具体使用说明 (7) 第三章实验指导 (19) 3.1 C8051F 单片机I/O 口交叉开关设置 (19) 3.2 数字I/O端口实验 (21) 3.3 定时器实验 (23) 3.4 外部中断实验 (25) 3.5 键盘显示实验 (27) 3.6 六位动态LED数码管显示实验 (29) 3.7 RS3232串口通讯实验 (31) 3.8 综合设计 (33)

使用特别说明: (1) 每次实验前,请仔细阅读实验指导,连线完毕,检查无误后,方可打 开电源。即连线时必须在断电状态下。 (2) 程序运行过程中,不要关闭电源,如果要断电,必须停止运行程序, 并且退出程序调试状态,否则会引起KEIL C软件非正常退出,甚至引起DICE-EC5仿真器工作异常。 (3) 如出现上述(2)的的误操作,引起DICE-EC5仿真器工作异常,可对 DICE-EC5仿真器进行复位。(在光盘中找到文件夹“USB Reset”中的“USB Debug Adapter Firmware Reset”文件,双击运行,在弹出的对话框中点击“Update firmware”按钮,在提示成功后,点击“OK” 按钮,退出复位程序。DICE-EC5仿真器即可正常工作。在下一次调试、下载程序时会提示“Do you want to update serial adapter now? ”,点击“确定”即可。 第一章:实验设备简介 1.1 系统实验设备的组成 DICE-C8051F嵌入式实验/开发系统由C8051F020 CPU 板、DICE-EC5仿真器和系统实验板三部分组成,应用该设备可进行片上系统单片机较典型应用的实验,请参见以下介绍。 1.2 Silicon Labs C8051F 单片机开发工具简介 1.2.1 开发工具概述 Silicon Labs 的开发工具实质上就是计算机IDE 调试环境软件及计算机USB 到C8051F 单片机JTAG 口的协议转换器(DICE-EC5)的组合。Silicon Labs C8051F 系列所有的单片机片内均设计有调试电路,该调试电路通过边界扫描方式获取单片机片内信息,通过4 线的JTAG接口与开发工具连接以便于进行对单片机在片编程调试。DICE-C8051F嵌入式实验/开发系统中的C8051F020 CPU 板上的单片机为C8051F 系列中的F020。 仿真器(DICE-EC5)一端与计算机相连,另一端与C8051F 单片机JTAG 口相连,应用Keil 的uVision2 调试环境就可以进行非侵入式、全速的在系统

C8051F020实验

目 录 说明 (3) MT020学习开发板/MT-UDA仿真器说明 (4) 一 C8051F020/120单片机学习开发板(MT020)简介 (5) 1.1 MT020单片机学习开发板特色 (5) 1.2 MT020与国内同类产品比较 (5) 1.3 MT020与同类产品实物图比较 (7) 二 电路原理图 (8) 2.1 MT020电路原理图 (8) 2.2 MT020学习开发板TopLayer图 (13) 三 快速运行第一个程序 (15) 3.1 Keil C51 的安装 (15) 3.1.1 系统要求 (15) 3.1.2 软件的安装 (15) 3.2 MT-UDA调试仿真器驱动程序的安装 (17) 3.3 μVision2 集成开发环境 (18) 3.3.1 μVision2 集成工具 (18) 3.3.2 菜单栏命令、工具栏和快捷方式 (18) 3.4 Keil C51使用及与仿真器连调 (23) 3.4.1 创建第一个Keil C51 应用程序 (23) 3.4.2 程序文件的编译、链接 (29) 3.4.3 程序调试 (32) 四 MT020学习开发板基础实验 (37) 4.1 I/O口控制实验(蜂鸣器驱动实验) (37) 4.2 精确延时程序实现 (38) 4.3 数码管显示实验 (39) 4.4 键盘扫描实验 (40) 4.5 中断按键实验 (41) 4.6 软件模拟I2C总线实验(EEPROM AT24C01) (42) 4.7 利用SMBUS实现基于I2C器件操作实验(读写EEPROM AT24C01) (43) 4.8 字符型液晶1602显示实验 (44) 4.9 图型液晶12864显示实验 (45) 4.10 串口通信实验 (46) 4.11 数字温度传感器DS18B20实验 (47) 4.12 ADC0片上温度采集实验 (48) 4.13 ADC0电压采集实验 (49) 4.14 DAC0输出正弦实验 (50) 4.15 DAC0输出DTMF信号实验 (51) 4.16 比较器(CP)实验 (52) 4.17 硬件SPI接口控制跑马灯实验 (53) 4.18 用PCA硬件单元实现PWM实验 (54)

c8051f020中文资料

关于C8051F020系统概述 C8051F020 器件是完全集成的混合信号系统级 MCU 芯片,具有 64 个数字I/O 引脚(C8051F020)。下面列出了一些主要特性;有关某一产品的具体特性参见表 1.1; 1. 高速、流水线结构的 8051 兼容的 CIP-51 内核(可达 25MIPS) 2. 全速、非侵入式的在系统调试接口(片内) 3. 真正 12 位(C8051F020)、 100 ksps 的8 通道 ADC,带 PGA和模拟多路开关 4. 真正 8 位 500 ksps的 ADC,带 PGA和 8 通道模拟多路开关 5. 两个 12 位 DAC,具有可编程数据更新方式 6. 64K字节可在系统编程的 FLASH存储器 7. 4352(4096+256)字节的片内 RAM 8. 可寻址 64K字节地址空间的外部数据存储器接口 9. 硬件实现的 SPI、SMBus/ I2C 和两个 UART 串行接口 10. 5 个通用的 16 位定时器 11. 具有 5 个捕捉/比较模块的可编程计数器/定时器阵列 12. 片内看门狗定时器、VDD监视器和温度传感器 具有片内 VDD 监视器、看门狗定时器和时钟振荡器的 C8051F020是真正能独立工作的片上系统。所有模拟和数字外设均可由用户固件使能/禁止和配置。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新 8051 固件。 片内 JTAG调试电路允许使用安装在最终应用系统上的产品 MCU进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用 JTAG调试时,所有的模拟和数字外设都可全功能运行。 每个 MCU都可在工业温度范围(-45℃到+85℃)内用 2.7V-3.6V的电压工作。端口 I/O、/RST 和 JTAG 引脚都容许 5V 的输入信号电压。C8051F020 为100 脚 TQFP 封装见图 1.1)。

单片机C语言项目式教程课后题解大学期末复习资料

思考与讨论题 1-1什么是单片机?它与一般微型计算机在结构上何区别? 答: 单片微型计算机简称为单片机(Single Chip Computer),又称为微控制器(MCU即Micro-Controller Unit)。它是在一块芯片上集成了中央处理器(CPU)、存储器(RAM、ROM)、定时器/计数器、中断控制、各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等为一体的器件。 微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。 单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。 1-2 单片机的发展大致可分为几个阶段?各阶段的单片机功能特点是什么?

答: 1976年9月Intel公司推出MCS-48单片机,8位机 1978年下半年Motorola公司推出M6800系列单片机,增加了串口功能 1982年Mostek公司和Intel公司先后又推出了性能更高的16位机 思考与讨论题 2-1 串行在线仿真系统中单片机与PC机的通信线怎样连接? 答: 设计好单片机产品硬件,作一根通信线,一般是买一根标准串口通信线,一端(A端)9芯插头与PC机相连,另一端(B 端)的插头不用,直接将三根线分别与单片机的串口和地相连(A端的2脚与单片机的P3.0连;A端的3脚与单片机的P3.1连;A端的5脚与单片机的地连;A端的7脚与A端的8脚短接;A端的4脚与A端的6脚短接)。 2-2 在线仿真与软件仿真的主要区别在哪里?

!单片机C语言简明教程

本文由xianguogao贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C语言程序设计 语言程序设计 1.0 1.1 1.2 1.3 为什么要学习C语言? § 计算机学的许多知识都具有相通性,因 而,不断追赶时髦技术而忽略基本功的 做法是徒劳无意的.我们最多需要"精 通 "三种语言,最佳拍档是汇编,C, C++(或JAVA),很显然,如果你"精 通"了这三种语言,其它语言你应该是 可以很快"熟悉"的,否则你就没有 "精通 "它们. § C语言是嵌入式开发的主要语言 1.0 1.1 1.2 1.3 初级入门教材 1. 《C程序设计语言》(The C Programming Language,第2版 新版) Brain W. Kernighan 和 Dennis.M.Ritchie 著 2. 《C Primer Plus(第五版)中文版》 Stephen Prata著,云巅工作室 译 3. 《C和指针》(Pointers on C) (美)Kenneth A. Reek著 徐波译 4. 《C语言程序设计》 谭浩强 著 清华大学出版社 1.0 1.1 1.2 1.3 C语言进阶书籍 《C陷阱与缺陷》(C Traps and Pitfalls)Andrew Koenig 著 《C专家编程》 (美) Peter Van Der Linden著 徐波译 《C语言编程常见问题解答》(C Programming : Just the Faqs ) Paul S.R. Chisholm 等著 《C/C++嵌入式系统编程》(Programming Embedded Systems in C and C++) 作者:Michael Barr 《高质量程序设计指南:C++/C语言 》林锐, 韩永 泉编著 把这几本书吃透,足 以使你成为C语言高手 了 西电本科硕士,浙大博士, 著名网文:大学十年 购书方法 §互动出版社(china-pub) §网址:www.china-pub.com §好处: 搜索同类型书,版本全面,经常会有意外收获 有购书网友的心得,评论,可未读先知 有一定价格优惠 信誉较好,可靠 上机调试方法 1. IAR C编译器 EW430 3.41A软件 2. Dev C++软件 Dev-C++ 是一个 C++ 开发工具.它包括多页面窗 口,工程编辑器,在工程编辑器中集合了编辑 器,编译器,连接程序和执行程序.它也提供 高亮度语法显示的,以减少编辑错误. 一些重要的学习论坛 1. 2. 3. 4. 5. http://www.mcu-china.com/ 南航魏小龙主页 http://www.microcontrol.cn/bbs/Boards.asp

单片机C语言变量定义

单片机C语言变量定义 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

单片机教程,51单片机C语言学习 第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: [存储种类] 数据类型[存储器类型] 变量名表在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEILuVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二AT89C51特殊功能寄存器列表

表6-1 存储器类型 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE 所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。 SMALL存储模式把所有函数变量和局部数据段放在8051系统的内部数据存储区这使访问数据非常快,但SMALL存储模式的地址空间受限。在写小型的应用程序时,变量和数据放在data内部数据存储器中是很好的因为访问速度快,但在较大的应用程序中data区最好只存放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。 COMPACT存储模式中所有的函数和程序变量和局部数据段定位在8051系统的外部数据存储区。外部数据存储区可有最多256字节(一页),在本模式中外部数据存储区的短地址用@R0/R1。 LARGE存储模式所有函数和过程的变量和局部数据段都定位在8051系统的外部数据区外部数据区最多可有64KB,这要求用DPTR数据指针访问数据。

51单片机及C语言入门教程

51单片机 及C语言入门教程 注:排成16开版式,是为了方便自已打印阅读。请不要用于非法用途。 2007.12.20

51单片机及C语言入门教程 第一课 建立您的第一个C项目 使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了) 安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让我们一起来建立一个小程序项目吧。或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。 首先当然是运行KEIL51软件。怎么打开?噢,天!那你要从头学电脑了。呵呵,开个玩笑,这个问题我想读者们也不会提的了:P。运行几秒后,出现如图1-1的屏幕。 图1-1启动时的屏幕

接着按下面的步骤建立您的第一个项目: (1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2。接着弹出一个标准Windows文件对话窗口,如图1-3,这个东东想必大家是见了N次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。 图1-2New Project菜单 图1-3文件窗口 (2)选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。此时屏幕如图1-4

C8051F020端口配置

C8051F020的端口配置 C8051F系列单片机有4~8个输入输出端口,每个端口有8个引脚,这些端口有如下特点: 1、这些引脚都可以用作通用I/O端口 2、它的P0~P3口的每个管脚都通过独立编程还能作为特殊功能的输入或输出,即同一个引脚可以作为片上不同外围功能模块的信号输入输出端口。 3、端口可以通过软件设置改变引脚的输入输出状态配置。如:弱上拉输入、推拉输出、开漏输出等。 根据端口特点,端口配置过程分为以下几步: 1、配置交叉开关(功能选择开关) 交叉开关寄存器共有四个分别是XBAR0、XBAR1、XBAR2、XBAR3。通过对这四个寄存器进行配置,使IO引脚同单片机的数字和模拟片上外围设备进行连接。 2、配置外部存储器接口 外部存储器接口(External Memory Interface,EMIF)用于CPU与片上和片外XRAM之间的数据传输通道,通过寄存器EMIOCF和EMIOCN选择和管理端口P0~P3或端口P4~P7实现数据传播。 配置这两个寄存器用以选择端口是否为复用方式(数据与地址线复用)、寄存器工作模式选择及外部存储器页选择。 3、配置IO端口的输入输出模式 输入模式分为模拟量输入和数字量输入。用寄存器PnMDIN配置n=0、1、2、3。 输出模式分为推拉(推挽)式和漏极开路式。用寄存器PnMDOUT配置 4、禁止模拟输入引脚的输出驱动 配置模拟输入时P口并没有把输出驱动电路完全关闭,所以不管是哪种输入,推荐的做法是:将相应的输入口的输出模式配置成开漏,并将其输出寄存器置“1”,使其为高阻态,以减少串扰。 5、启动交叉开关 单片机刚上电时,因为XBAR2的复位值为0,因而端口P0~P3的输出驱动器被禁止,在XBARE(XBAR2.6)位被设置为逻辑“1”之前,可防止对交叉开关(功能选择)寄存器和其他寄存器写入时,在端口引脚上产生争用。 正确配置交叉开关后,通过将XBARE设置为逻辑“1”,使功能选择开关有效。 至此配置完成 C8051f020 I/O配置小结 020的每个I/O口引脚都可以被配置为推挽或漏极开路输出。同时引入了数字交叉开关,允许将内部数字系统资源映射到P0、P1、P2和P3的端口引脚。通过设置交叉开关寄存器可将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。必须在访问这些外设的I/O之前配置和允许交叉开关。 注意的问题: 1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。 2.没有被分配到的引脚作为一般的数字通用I/O口。 3.P1口还可以用作ADC1的模拟输入。 4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的输出状态。

C8051F020单片机说明

C8051F020开发板 说明书 V1.0.0 2012年3月22日

目录 第一章 概述 (1) 第二章 开发板简介 (2) 2.1 开发板原理框图 (2) 2.2 开发板实物图 (2) 2.2.1 本开发板的外扩展资源和扩展接口 (2) 2.2.2 本开发板的平面图 (3) 第三章 开发板硬件电路说明 (4) 3.1 硬件电路简介 (4) 3.2 电源电路 (4) 3.3单片机复位电路 (4) 3.4 ZLG7289电路原理图 (5) 3.5 LED电路原理图 (6) 3.6 LCD接口电路 (7) 第四章 开发板注意事项 (8) 4.1注意事项 (8) 4.2开发板跳线使用方法 (8)

第一章 概述 本说明书是C8051F020开发板的硬件使用说明书,详细描述了020开发板的硬件构成、原理,以及它的使用方法。 开发板用USB JTAG对C8051F020芯片进行编程,C8051F020有64个I/O而我们开发板通过排针引出了其中的44个I/O口,板上有标识(也可查看原理图或PCB图)。引出来的I/O口可以供用户配置。

第二章 开发板简介 2.1 开发板原理框图 本开发板主要用到了C8051F020芯片(内置A/D D/A和比较器等)和周立功的ZLG7289芯片,020芯片通过SPI方式和ZLG7289完成数据传递,ZLG7289控制按键和数码管显示。原理框图如下: 图2-1 开发板原理框图 2.2 开发板实物图 2.2.1 本开发板的外扩展资源和扩展接口 部分接口说明: JTAG接口:本板卡和USB Debug Adaptor仿真器连接,通过本 接口用户可实现在线仿真。 LCD接口: 本板液晶用MzL05-12864 AD/DA接口:本板的AD/DA接口都来自020内置的AD/DA 另外的外扩资源和接口如下图所示:

C语言作单片机初级教程

C语言作单片机初级教 程

51单片机C语言学习杂记 学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事。在众多单片机中51 架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。51 的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多。综合以上C 语言的优点,我在学习时选择了C 语言。以后的教程也只是我在学习过程中的一些学习笔记和随笔,在这里加以整理和修改,希望和大家一起分享,一起交流,一起学习,一起进步。 *注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,有望各位大侠高手指点错误提出建议。 明浩2003-3-30 第一课建立您的第一个C项目 使用C 语言肯定要使用到C 编译器,以便把写好的C 程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一, 它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易 学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51 应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51 软件,要使用KEIL51 软件,必需先要安装它。KEIL51 是一个 商业的软件,对于我们这些普通爱好者可以到KEIL 中国代理周立功公司的网站上下载一份能编译2K 的DEMO 版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方 法和普通软件相当这里就不做介绍了) 安装好后,您是不是迫不及待的想建立自己的第一个C 程序项目呢下面就让我们一 起来建立一个小程序项目吧。或许您手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL 软件仿真看到程序运行的结果。 首先当然是运行KEIL51 软件。怎么打开噢,天!那您要从头学电脑了。呵呵,开个 玩笑,这个问题我想读者们也不会提的了:P。运行几秒后,出现如图1-1 的屏幕。 图1-1 启动时的屏幕

单片机C语言项目式教程综合题含答案

百度文库 六、综合题 1.现有8031单片机、74LS373锁存器、1片2764EPROM和2片6116RAM,请使用他们组成一个单片机系统,要求: (1)画出硬件电路连线图,并标注主要引脚; (2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。 解:(1)电路图如下所示: (2)2764的地址为C000H-DFFFH; 第一个6116的地址为A000H-A7FFH; 第二个6116的地址为6000H-67FFH; 事实上,由于采用的是线选法,导致了地址不连续,地址空间利用不充分。建议在实际工作中要具体情况具体分析。在两种地址分配中选一种较好的来应用。

U 4 74L S 373 347813141718 1 11 256912151619 D 0D 1D 2D 3D 4D 5D 6D 7O C G Q 0Q 1Q 2Q 3Q 4Q 5Q 6Q 7 U 2 8031 31 393837363534333221 2223242526272817162930 E A /V P P 0.0 P 0.1P 0.2P 0.3P 0.4P 0.5P 0.6P 0.7P 2.0 P 2.1P 2.2P 2.3P 2.4P 2.5P 2.6P 2.7R D W R P S E N A L E /P U 5 H M 6116 876543212322191820219 10111314151617A 0A 1A 2A 3A 4A 5A 6A 7A 8A 9A 10C S O E W E D 0D 1D 2D 3D 4D 5D 6D 7U 3 2764 109876543252421232202227111 12131516171819A 0A 1A 2A 3A 4A 5A 6A 7A 8A 9A 10A 11A 12C E O E P G M V P P O 0 O 1O 2O 3O 4O 5O 6O 7U 6 H M 6116 876543212322191820219 10111314151617A 0A 1A 2A 3A 4A 5A 6A 7A 8A 9A 10C S O E W E D 0 D 1D 2D 3D 4D 5D 6D 7

单片机c语言教程

第一课建立你的第一个KeilC51项目 随着单片机技术的不断发展,以单片机C语言为主流的高级语言也不断被更多的单片机爱好者和工程师所喜爱。使用C51肯定要使用到编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不一样公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软 VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。本站提供的单片机c语言教程都是基于keilc51的。 下面结合8051介绍单片机C语言的优越性: ·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序; ·不懂得单片机的指令集,也能够编写完美的单片机程序; ·不同函数的数据实行覆盖,有效利用片上有限的RAM空间; ·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址; ·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性; ·提供small、compact、large等编译模式,以适应片上存储器的大小; ·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办; ·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏 ·提供常用的标准函数库,以供用户直接使用; ·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉; ·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。 ·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发; 以上简单介绍了 KEILC51 软件,要使用KEILC51软件,必需先要安装它,这也是学习单片机编程语言所要求的第一步――建立学习环境。 本站提供无限制版的keil c51下载(此处)(安装的方法在压缩包内有详细说明,这里就不做介绍了)

自己写的C8051F020程序

#include "c8051f020.h" #include "delay.h" #include "config.h" #include "ADC1DAC0.h" #include "ctypedef.h" #include "lcd_chinese.h" #include "7279.h" #include "ADC0.h" #include #include unsigned char KeyCode; bit Key_flag; /**********************键盘中断***********************************/ void keyint_fun(void) interrupt 19 { P3IF &= 0x3f; KeyCode = read_display(); Key_flag = 1; } void main(void) { unsigned int temp = 0; WDTCN = 0xde; //关看门狗 WDTCN = 0xad; //在上一个写入后四个系统周期内写入有效SYSCLK_Init(); //初始化系统时钟 PORT_Init(); //初始化IO口 lcd_Init(); DAC0_Init(); ADC0_Init(); ADC1_Init(); AMX1SL = 0x00; P1MDIN = 0xfe; while(1) { temp = ADC1_read(); temp<<=4; // display_int(temp,0,0); // Delay1us(10); DAC0(temp); } }

C8051F020例程

/***************************************************************************** 本测试程序用来测试板上所以I/O连接状况外接LED共阳数码管实验时将跳线帽接至+3V *****************************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void PORT_Init (void) { XBR2 = 0x40; /*使能交叉开关*/ P0MDOUT =0xff; P1MDOUT =0xff; P2MDOUT =0xff; P3MDOUT =0xff; P74OUT =0xff; } /*******************************/ void delay(uint z) { uint x,y; for(x=0;x

相关主题
文本预览
相关文档 最新文档