1. 《C8051F系列单片机开发与C语言编程》 北航的 一书怎么样啊
我觉得还可以,很详细,不过我觉得他更像一本手册,很全,有时不详细,你也可以再参考其他的关于c8051f040的书,这样可以互补一下,有时在看那本书时,说的也不是很清楚,所以我建议你可以同时参考其它侧重点不同的关于c8051f的书。
2. stc系列单片机_μC/OS-Ⅱ在C8051F系列单片机上的移植及其应用系统开发
随着微处理器技术的飞速发展和嵌入式系统实时性要求的不断提高,应用实时多任务操作系统(RTOS)作为嵌入式设计的开发平台已逐步成为嵌入式应用设计的主流。本研究讨论将μC/OS-Ⅱ移植到C8051F系列高性能8位单片机中,并以C8051F060为例阐述了其应用系统的开正基发过程。
一、μC/OS-Ⅱ的基本工作原理
1.任务管理
µC/OS-II中的任务可以是一个无限的循环,也可以在一次执行完毕后被“删除”掉,即该任务可以认为CPU完全属于该任务本身,实时应用程序的设计过程包括将问题分割为多个任务。µC/OS-II可以管理64个任务,每个任务有一定的优先级,且优先级不重复。
2.任务调度机制的实现
µC/OS-II是可剥夺型内核,优先级高的任务一旦就绪就能剥夺优先级较低任务的CPU使用权,这提高了系统的实时响应能力。在没有中断情况下,任务间的切换一般会调用OSSched()函数。µC/OS-II的中断服务子程序和一般前/后台的操作有所不同。
3.任务之间的通信
在µC/OS-II中,可以通过信号量、消息邮箱和消息队列等机制,实现数据共享和任务通信。消息邮箱用一个指针型变量,一个任务或一个中断服务子程序通过内核服务,将一则消息放入邮箱,一个或多个任务通过内核服务接受这则消息。每个邮箱有相应的等待消息任务表,等待消息的任务在无消息时被置挂起态,并记入邮箱等待消息任务表中。消息放入邮箱,内核将运行等待消息任务表中优先级最高的任务。
二、移植及应用
C8051F060系列单片机特别适举数谨用于任务繁重的小型化测控系统。当芯片具有的功能被较多地使用时,系统要处理的任务就较多,编程头绪也多。为了简化应用程序实现程序模块化,提高应用程序的实时性和可靠毕纳性,将μCOS2Ⅱ移植到C8051F060中就成为一件很有意义的事。
1.µC/OS-II的移植
(1)修改INCLUDES.H文件:增加的头文件放在头文件列表的最后。
#include "os_cpu.h"
#include "os_cfg.h"
#include "ucos_ii.h"
(2)修改OS CPU.H文件:为确保系统在KEIL环境下正常运行,重新定义了一系列与C8051F060和KEIL编译器相关的数据结构、宏和常数。
typedef unsigned char OS_STK;/*定义堆栈宽度为8位*/
typedef unsigned char OS_CPU_SR;
#define OS_ENTER_CRITICAL() EA="0"
#define OS_EXIT CRITICAL()EA="1"
(3)修改OS_CPU_A.ASM文件
①编写OSSTartHihgRdy()函数:获得将要恢复运行的就绪任务的堆栈映像的最低地址,并计算出堆栈长度,然后向系统堆栈复制数据、堆栈指针SP和堆栈映像指针?C_XBP,最后利用中断返回。
②编写OSCtxSw()函数:先从当前任务的TCB控制块中获得当前任务堆栈长度和堆栈映像指针,然后将系统堆栈的内容复制到任务堆栈映像,最后获得将要恢复运行的就绪任务的TCB,程序跳至OSSTartHihgRdy()函数的入口,实现任务的切换。
③编写OSIntCtxSw()函数:代码大部分与OSCtxSw()相同,不同之处在于此处不需要再保存寄存器;需要调整堆栈指针(SP=SP-4),去掉在调用OSIntExit(),OSIntCtxSw()中压入堆栈中的多余的内容,以使堆栈中只包含任务的运行环境。
④编写OSTickISR()函数:用定时器0作中断源,初始化定时器0使系统每秒中断100次,节拍率Tick=100次/秒。
(4)修改OS_CPU_C.C文件:编写OSTaskStkInit()函数用来初始化堆栈。
2. 基于µC/OS-II的C8051F060应用系统开发
移植了µC/OS-II的C8051F060的每个功能都可以作为一个独立的任务,每个任务都有自己的堆栈空间,可以被其他任务和中断服务程序挂起。在设计中,主函数均以OSInit()开始,以OSStart()结束,中间部分为与硬件相关的系统初始化函数。对于任务的建立,必须依照µC/OS-II系统中建立任务的格式,根据自己的需求来确定任务的个数,并且根据任务的重要程度和被调用的频率来设置好优先级。创建好任务后,在主函数外面分别列出各个任务函数,每个任务函数都是一个无限循环程序,调用实现某些功能的应用程序函数,然后按设计的需求设置挂起方式和挂起时间。
应用系统测试程序实现了6个任务:Task1是每1s发送CAN数据包,Task2是处理CAN接收到的数据,Task3是每3s发送串口数据,Task4是处理串口接收到的数据,Task5是处理按键信息,Task6是显示数据。CAN总线接收采用中断方式,其优先级高于其他任务,为了保证系统的实时性,在中断程序中不处理数据,只是发送一个信号量,在Task2中处理CAN数据。串口数据接收亦采用中断方式,其优先级低于CAN高于其他任务。串口数据发送采用的是查询方式,按字节发送。程序中设置6个任务的优先级依次为13,11,14,12,15,16。
在主程序中,首先初始化C8051F060和CAN,调用OsInit();然后调用API函数,创建6个任务(不包括空闲任务);再创建一个信号量CAN_EVENT,为中断与Task2通信所用;最后调用OSStart(),OS系统开始运行优先级最高的任务。Task2的优先级最高,但是在没收到CAN_EVENT之前,任务一直处于休眠状态,当CAN接收器收到数据包后,Task2进入就绪态,在中断返回时,进行任务切换,执行优先级最高Task2。在Task2还未收到信号量之前,Task1、Task3、Task4、Task5和Task6根据时间延时和优先级的不同各自独立运行。
三、结束语
将编写的测试程序下载到C8051F060应用系统中进行了实际的运行测试,测试表明,基于µC/OS-II的C8051F060应用系统中的各任务工作稳定可靠,取得了满意的效果,为进行嵌入式应用系统的进一步设计奠定了基础。
(作者单位:黑龙江省大庆职业学院)
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
3. 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增添了许多功能,同时其可靠性和速度也有了很大提高。
4. C8051F系列单片机的C8051系列单片机的特点
C8051F具有上手快(全兼容8051指令集)、研发快(开发工具易用,可缩短研发周期)和见效快(调试手段灵活)的特点,其性能优势具体体现在以下方面:
基于增强的CIP-51内核,其指令集与MCS-51完全兼容,具有标准8051的组织架构,可以使用标准的803x/805x汇编器和编译器进行软件开发。CIP-51采用流水线结构,70%的的指令执行时间为1或2个系统时钟周期,是标准8051指令执行速度的12倍;其峰值执行速度可达100MIPS(C8051F120等),是目前世界上速度最快的8位单片机。
增加了中断源。标准的8051只有7个中断源Silicon Labs 公司 C8051F系列单片机扩展了中断处理这对于时实多任务系统的处理是很重要的扩展的中断系统向CIP-51提供22个中断源允许大量的模拟和数字外设中断一个中断处理需要较少的CPU干预却有更高的执行效率。
集成了丰富的模拟资源,绝大部分的C8051F系列单片机都集成了单个或两个ADC,在片内模拟开关的作用下可实现对多路模拟信号的采集转换;片内ADC的采样精度最高可达24bit,采样速率最高可达500ksps,部分型号还集成了单个或两个独立的高分辨率DAC,可满足绝大多数混合信号系统的应用并实现与模拟电子系统的无缝接口;片内温度传感器则可以迅速而精确的监测环境温度并通过程序作出相应处理,提高了系统运行的可靠性。
集成了丰富的外部设备接口。具有两路UART和最多可达5个定时器及6个PCA模块,此外还根据不同的需要集成了SMBus、SPI、USB、CAN、LIN等接口,以及RTC部件。外设接口在不使用时可以分别禁止以降低系统功耗。与其他类型的单片机实现相同的功能需要多个芯片的组合才能完成相比,C8051单片机不仅减少了系统成本,更大大降低了功耗。
增强了在信号处理方面的性能,部分型号具有16x16 MAC以及DMA功能,可对所采集信号进行实时有效的算法处理并提高了数据传送能力。
具有独立的片内时钟源(精度最高可达0.5%),设计人员既可选择外接时钟,也可直接应用片内时钟,同时可以在内外时钟源之间自如切换。片内时钟源降低了系统设计的复杂度,提高了系统可靠性,而时钟切换功能则有利于系统整体功耗的降低。
提供空闲模式及停机模式等多种电源管理方式来降低系统功耗
实现了I/O从固定方式到交叉开关配置。固定方式的I/O端口,既占用引脚多,配置又不够灵活。在C8051F中,则采用开关网络以硬件方式实现I/O端口的灵活配置,外设电路单元通过相应的配置寄存器控制的交叉开关配置到所选择的端口上。
复位方式多样化,C8051F把80C51单一的外部复位发展成多源复位,提供了上电复位、掉电复位、外部引脚复位、软件复位、时钟检测复位、比较器0复位、WDT复位和引脚配置复位。众多的复位源为保障系统的安全、操作的灵活性以及零功耗系统设计带来极大的好处。
从传统的仿真调试到基于JTAG接口的在系统调试。C8051F在8位单片机中率先配置了标准的JTAG接口(IEEE1149.1)。C8051F的JTAG接口不仅支持Flash ROM的读/写操作及非侵入式在系统调试,它的JTAG逻辑还为在系统测试提供边界扫描功能。通过边界寄存器的编程控制,可对所有器件引脚、SFR总线和I/O口弱上拉功能实现观察和控制。
C8051F系列单片机型号齐全,可根据设计需求选择不同规模和带有特定外设接口的型号,提供从多达100个引脚的高性能单片机到最小3mmX3mm的封装,满足不同设计的需要。
基于上述特点,Silicon Labs 公司C8051F系列单片机作为SoC芯片的杰出代表能够满足绝大部分场合的复杂功能要求,并在嵌入式领域的各个场合都得到了广泛的应用:在工业控制领域,其丰富的模拟资源可用于工业现场多种物理量的监测、分析及控制和显示;在便携式仪器领域,其低功耗和强大的外设接口也非常适合各种信号的采集、存储和传输;此外,新型的C8051F5xx系列单片机也在汽车电子行业中崭露头角。正是这些优势,使得C8051单片机在进入中国市场的短短几年内就迅速风靡,相信随着新型号的不断推出以及推广力度的不断加大,C8051系列单片机将迎来日益广阔的发展空间,成为嵌入式领域的时代宠儿
此系列单片机完全兼容MCS-51指令集,容易上手,开发周期短,大大节约了开发成本。C8051F系统集成度高,总线时钟可达25M
5. C8051F系列的CPU
与标准8051完全兼容
CygnalC8051F系列单片机采用CIP51内核,Cygnal指令与MCS51指令系统全兼容可用标准的ASM51Keil C高级语言开发编译C8051F系列单片机的程序
高速指令处理能力
标准的8051一个机器周期要占用12个系统时钟周期执行一条指令最少要一个机器周期CygnalC8051F系列单片机指令处理采用流水线结构机器周期由标准的12个系统时钟周期降为1个系统时钟周期指令处理能力比MCS51大大提高。CIP-51内核70% 指令的执行是在一个或两个系统时钟周期内完成的,只有四条指令的执行需4个以上时钟周期。
CIP-51指令与MCS51指令系统完全兼容,共有111条指令。
增加了中断源
标准的8051只有7个中断源,而Cygnal C8051F系列单片机扩展了中断处理,这对于实时多任务系统的处理是很重要的。扩展的中断系统向CIP-51提供22个中断源,允许大量的模拟和数字外设中断。一个中断处理需要较少的CPU干预,却有更高的执行效率。
增加了复位源
标准的8051只有外部引脚复位,Cygnal C8051F系列单片机增加了7种复位源,使系统的可靠性大大提高,每个复位源都可以由用户用软件禁止。它的复位源是:
1 片内电源监视
2 WDT看门狗定时器
3 时钟丢失检测器
4比较器0输出电平检测
5软件强制复位
6 CNVSTRAD转换启动
7 外部引脚RST复位可双向复位
8 提供内部时钟源
标准的8051只有外部时钟,Cygnal C8051F系列单片机有内部独立的时钟源。C8051F300/F302提供的内部时钟误差在2%以内,在系统复位后默认内部时钟。如果需要,可接外部时钟并可在程序运行时实现内外部时钟之间的切换。外部时钟可以是晶体RCC或外部时钟脉冲,以上的功能在低功耗应用系统中非常有用。
6. 单片机原理与应用
《单片机原理和应用》是2010年9月由电子工业出版社出版的图书,本书系统全面地介绍了80C51单片机的基本原理、硬件结构、指令系统,并从应用的角度介绍了汇编语言程序设计、单片机外部电路的扩展,以及与键盘、LED显示、LCD显示、打印机等多种硬件接口的设计方法,详细介绍了串行、并行接口的A/D、D/A转换器功能特点和典型应用,增加了单片机应用系统设计、Proteus仿真、实验和课程设计等内容。
二,本书特色
本书为江西省省级精品课程建设成果。
本书从现实教学和工程实际应用出发,对传统单片机教材内容进行了改良,力求做到与市场接轨,与现实同步。在并行总线扩展问题上,着重介绍了扩展方法和典型应用,对并行器件、并行总线扩展及8255、8155、8279等已基本淘汰的器件进行了精简或摒弃,补充了串行总线技术、串行总线器件接口应用和STC系列单片机内部新增功能部件的使用,以及C51编程规范等内容。
书中有单片机应用系统设计、Proteus仿真、实验和课程设计等章节,主教材与实验教材整合为一本书,知识量大。