- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C51程序设计》大作业
设计题目: 数据采集系统
班 级:
学 号:
姓 名:
成 绩:
2011年11月
1 设计任务
利用C8051F系列单片机设计一个多路信号采集系统。要求:
能实现8路模拟信号(电压)的间隔性显示;
8路显示的信号范围:
两路为0-1V;两路为0-5V;两路为0-15V;两路为0-30V;
按键选择显示单独一路的信号(电压值);
2硬件分析
利用C8051F410单片机作为控制核心。C8051F410器件是完全集成的低功耗混合信号片上系统型MCU。下面列出一些主要特性: 高速、流水线结构的8051兼容的微控制器核(可达50MIPS), 全速、非侵入式的在系统调试接口(片内),真12位200 ksps的24通道ADC,带模拟多路器,两个12位电流输出DAC ,高精度可编程的24.5MHz内部振荡器,达32KB的片内FLASH存储器,2304字节片内RAM,硬件实现的SMBus/ I2C、增强型UART和增强型SPI串行接口,个通用的16位定时器,具有6个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列(PCA),硬件实时时钟(smaRTClock),
工作电压可低至1V,带64字节电池后备RAM和后备稳压器 ,片内上电复位、VDD监视器和温度传感器,多达24个端口I/O 等。 C8051F410还具有片内上电复位、VDD监视器、看门狗定时器和时钟振荡器的C8051F41x器件是真正能独立工作的片上系统。FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以节省功耗。片内Silicon Labs二线(C2)开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用C2进行调试时,所有的模拟和数字外设都可全功能运行。两个C2接口引脚可以与用户功能共享,使在系统调试功能不占用封装引脚。每个器件都可在工业温度范围(-40℃到+85℃)内用2.0V ~ 2.75V的电压工C8051F410单片机片上系统单片机片上系统单片机片上系统单片机片上系统 按键R分度号与S分度号相比除热电动势大15%左右,其它?硬件课程设计说明书 6 作(使用片内稳压器时电源电压可达5.25V)。C8051F410为32脚LQFP封装。下图为C8051F410的最小系统电路图。
本程序中,用到F系列单片机自带的AD转换功能,可实现12位的数字、模拟信号的转换。
3电路原理图
4系统流程图
5 源程序
#include C8051F410.h
#includestdio.h
#include math.h
void PCA_Init()
{
PCA0MD = ~0x40;
PCA0MD = 0x00;
}
void ADC_Init()
{
ADC0MX = 0x07;
ADC0CN = 0x80;
ADC0TK = 0xF7;
}
void Voltage_Reference_Init()
{
REF0CN = 0x1A;
}
void Port_IO_Init()
{
P1MDIN = 0xFE;
P1MDOUT = 0x80;
P2MDOUT = 0xFF;
P2MDIN = 0xF7;
P2SKIP = 0x08;
P0MDIN = 0x7F;
P0SKIP = 0x80;
XBR1 = 0x40;
}
void Oscillator_Init()
{
OSCICN = 0x85;
}
void Timer_Init()
{
TMOD = 0x11;
}
void Interrupts_Init()
{
IE = 0x8A;
}
void Init_Device(void)
{
PCA_Init();
ADC_Init();
Voltage_Reference_Init();
Port_IO_Init();
Oscillator_Init();
Interrupts_Init();
Timer_Init();
}
#define uint unsigned int //0
文档评论(0)