- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[嵌入式课程设计报告
课程设计(综合实验)报告
( 2013 -- 2014 年度第 1 学期)
名 称:
题 目:
院 系:
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
成 绩:
日期: 年 月 日
课程设计1.本实验使用实验教学系统的CPU板显示读出的数据。 2. 在PC机并口和实验箱的CPU板上的JTAG接口之间,连接SDT调试电缆。 3. 接入电源线缆,给系统上电。4. 打开SDT开发环境,对代码进行编译调试,编译通过后,首先启动JTAG 驱动程序,之后运行SDT的调试环境,装载实验程序。
二、设计正文
2.1.具体(实现功能)硬件参数
EDA实验室用实验开发板:1个蜂鸣器、八个七段数码管(用来显示双通道AD采样值)、两个电位器调节输入的电压值。
PC操作系统WINXP,ARM SDT2.5集成开发环境。
2.2.设计思想(理想状态下)
a、控制系统控制算法模型的建立(ASM图的建立):
2.4.程序代码
说明:本课设基于μC/OSII操作系统中仅一个任务实现所有功能,无需考虑多任务之间调度的配合,但也有执行效率高,占用CPU资源少的特点。
#include config.h
#define TASK_STK_SIZE 64
OS_STK TaskStartStk[TASK_STK_SIZE]; //初始化
#define ZLG7290 0x70 /* 定义器件地址 */
#define Glitter_COM 0x70
#define CAT24WC02 0xA0 /* 定义从要地址,忽略通用地址 */
#define BEEPCON 0 /* P0.7引脚控制B1,低电平蜂鸣 */
void TaskStart(void *data);
uint32 ADC_Data;
uint8 jishu;
uint8 pd;
uint8 count=0;
/****************************************************************************
* 名称:I2C_Init()
* 功能:主模式I2C初始化,包括初始化其中断为向量IRQ中断。
* 入口参数:fi2c 初始化I2C总线速率,最大值为400K
* 出口参数:无
****************************************************************************/
void I2C_Init(uint32 fi2c)
{ if(fi2c400000) fi2c = 400000;
PINSEL0 = (PINSEL00xFFFFFF0F) | 0x50; // 设置I2C控制口有效
I2SCLH = (Fpclk/fi2c + 1) / 2; // 设置I2C时钟为fi2c
I2SCLL = (Fpclk/fi2c) / 2;
I2CONCLR = 0x2C;
I2CONSET = 0x40; // 使能主I2C
/* 设置I2C中断允许 */
VICIntSelect = 0 // 设置所有通道为IRQ中断
VICVectCntl0 = 0x29; // I2C通道分配到IRQ slot 0,即优先级最高
VICVectAddr0 = (int)IRQ_I2C; // 设置I2C中断向量地址
VICIntEnable = 0x0200; // 使能I2C中断
}
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart();
return 0;
}
文档评论(0)