欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    嵌入式系统课程设计报告.doc

    • 资源ID:14477941       资源大小:1,011KB        全文页数:26页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式系统课程设计报告.doc

    1、.成绩 学 生 课 程 实 践 能 力 考 查题目:温度按键设定、显示、报警系统设计课程名称:嵌入式系统开发 专业班级: 学生学号: 学生姓名: 考查地点: 考查时长: 4小时 所属院部: 指导教师: 2017 2018学年 第 2 学期 金陵科技学院教务.2017-2018学年 第2学期 嵌入式系统开发实践能力考核班 级姓名学号课程名称嵌入式系统开发课程编号0806504151授课时间2018年2月26日- 2018年5月4日周学时4学分2简要评语(从完成情况、是否具备独立开发能力、是否独立完成、编程熟练程度等角度评价。)任课教师签名: 日期: 温度按键设定、显示、报警系统设计要求:1、读取

    2、DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。2、通过按键可以设置环境温度的上限和下限,WK_UP键按下调节上限,再按下调节下限,再按下调节上限KEY1按下加1;KEY0按下减1,根据上限和下限判断当前温度有没有超出范围。3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报警方式)4、串口波特率一律用9600bps。 液晶显示的信息: STM32 testname: xxxxxxxxxMaximum is 32C,Minimum is 26 CThe temperature is 29 C,now!(xxxxx是自己的名字拼

    3、音)目录:第一章. 系统要求 1.1设计要求 1.2设计方案第二章. 硬件设计2.1开发板原理图2.2 DS18B20模块2.3按键模块2.4 LCD显示模块 2.5 LED 模块第三章. 软件设计3.1程序流程图3.2程序部分代码3.2.1主函数 、main.c3.2.2 LED 函数led.c3.2.3温度代码 s18b20.c3.2.4键盘代码key.c第四章.实物效果图第五章.课程总结 第一章. 设计要求及方案1.1设计要求1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。2、通过按键可以设置环境温度的上限和下限,WK_UP键按下调节上限,再按下调

    4、节下限,再按下调节上限KEY1按下加1;KEY0按下减1,根据上限和下限判断当前温度有没有超出范围。3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报警方式)4、串口波特率一律用9600bps。 液晶显示的信息: STM32 testname: xxxxxxxxxMaximum is 32C,Minimum is 26 CThe temperature is 29 C,now!(xxxxx是自己的名字拼音)1.2设计方案本次课程设计的要求是使用STM32F103设计一个温度测控系统,ALIENTEK MiniSTM32 V3 版开发板选择的是 STM32F

    5、103RCT6 作为 MCU,它拥有的资源 包括:48KB SRAM、256KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、2 个 DMA 控制器(共 12 个通道)、3 个 SPI、2 个 IIC、5 个串口、1 个 USB、1 个 CAN、3 个 12 位 ADC、1 个 12 位 DAC、1 个 SDIO 接口及 51 个通用 IO 口。在本课程中使用了以下部分来完成课程设计的要求:1.应用DS18B20进行温度的检测。2.应用按键模块进行外部的上下限数值设定。3.应用LED的闪烁进行报警。4.应用LCD显示实时温度、上下限等信息。第二章. 硬件设计2.2 DS1

    6、8B20设计2.3按键模块ALIENTEK MiniSTM32 开发板总共有 3 个按键,其原理图如下: 2.4 LCD显示模块 2.5 LED 模块其中 PWR 是开发板电源指示灯,为蓝色。LED0 和 LED1 分别接在 PA8 和 PD2 上,PA8还可以通过 TIM1 的通道 1 的 PWM 输出来控制 DS0 的亮度。为了方便大家判断,我们选择了 DS0 为红色,DS1 为绿色的 LED 灯。 第三章. 软件设计3.1程序流程图温度显示及报警模块 按键设定模块3.2程序部分代码3.2.1主函数 、main.c#include led.h#include delay.h#include

    7、 sys.h#include usart.h#include lcd.h#include ds18b20.h#include key.h#include #include #include int temp_low = 22;int temp_high = 32;int zanshi_low=0;int zanshi_hign=0;void TIM3_Int_Init(u16 arr,u16 psc) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphC

    8、lockCmd(RCC_APB1Periph_TIM3, ENABLE); /时钟使能TIM_TimeBaseStructure.TIM_Period = arr; /设置在下一个更新事件装入活动的自动重装载寄存器周期的值 计数到5000为500msTIM_TimeBaseStructure.TIM_Prescaler =psc; /设置用来作为TIMx时钟频率除数的预分频值 10Khz的计数频率 TIM_TimeBaseStructure.TIM_ClockDivision = 0; /设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_Counte

    9、rMode = TIM_CounterMode_Up; /TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位 TIM_ITConfig( /使能或者失能指定的TIM中断TIM3, /TIM2TIM_IT_Update ,ENABLE /使能);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; /TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPr

    10、iority = 0; /先占优先级0级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; /从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /IRQ通道被使能NVIC_Init(&NVIC_InitStructure); /根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM_Cmd(TIM3, ENABLE); /使能TIMx外设 u8 flag=0; int main(void) u8 t = 0; u8 shuzu20;u8 keyvalue=0;u8

    11、gaibianshui=0; short temperature; delay_init(); /延时函数初始化 uart_init(9600); /串口初始化为9600NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);/ 设置中断优先级分组2 LED_Init(); /初始化与LED连接的硬件接口TIM3_Int_Init(9999,7199);/10Khz的计数频率,计数到5000为500ms LCD_Init(); POINT_COLOR = RED; /设置字体为红色 LCD_ShowString(0, 50, 200, 16, 16, ST

    12、M32 test);LCD_ShowString(0, 70, 200, 16, 16, name: zhang qi qi ); /LCD_ShowString(0,90,200,16,16,Max 32 C Min 26 C); memset(shuzu, 0, 20); sprintf(shuzu, Max is %2d C,Min is %2d C, temp_high, temp_low); LCD_ShowString(0, 90, 200, 16, 16, shuzu); while (DS18B20_Init() /DS18B20初始化 LCD_ShowString(0, 13

    13、0, 200, 16, 16, DS18B20 Error); delay_ms(200); LCD_Fill(0, 130, 239, 130 + 16, WHITE); delay_ms(200); POINT_COLOR = BLUE; /设置字体为蓝色 LCD_ShowString(0, 110, 260, 16, 16, The temperature is: . C now );LCD_ShowChar(0+25*8,110,16,0);LCD_ShowChar(0+29*8,110,!,16,0); while (1) POINT_COLOR = BLUE; /设置字体为蓝色 i

    14、f (t % 10 = 0) /每100ms读取一次 t = 0; temperature = DS18B20_Get_Temp(); if (temperature 0) LCD_ShowChar(0 + 40, 150, -, 16, 0); /显示负号 temperature = -temperature; /转为正数 else LCD_ShowChar(0 + 40, 150, , 16, 0); /去掉负号memset(shuzu, 0, 20);sprintf(shuzu, The temperature is:%3d.%1dC, temperature / 10, tempera

    15、ture % 10);LCD_ShowString(0, 110, 200, 16, 16, shuzu); delay_ms(10);/判断温度zanshi_low=temp_low*10;zanshi_hign=temp_high*10;if(temperaturezanshi_hign)if(temperaturezanshi_hign)flag=2;printf(chaoshangxian); elseflag=0;LED0=1; /正常情况灯不亮 LED1=1;/获取温度时间控制t t+;/浏览开关KEY_Init();delay_ms(10);keyvalue=KEY_Scan(0

    16、);if(keyvalue!=0)if(keyvalue=3)gaibianshui=(gaibianshui+1)%3;if(gaibianshui=1) /改变上限if(keyvalue=2) /key1按下temp_high+;memset(shuzu, 0, 20);sprintf(shuzu, Max is %2d C,Min is %2d C, temp_high, temp_low);LCD_ShowString(0, 90, 200, 16, 16, shuzu);if(keyvalue=1) /key0按下temp_high-;memset(shuzu, 0, 20);spr

    17、intf(shuzu, Max is %2d C,Min is %2d C, temp_high, temp_low);LCD_ShowString(0, 90, 200, 16, 16, shuzu);if(gaibianshui=2) /改变上限if(keyvalue=2) /key1按下temp_low+;memset(shuzu, 0, 20);sprintf(shuzu, Max is %2d C,Min is %2d C, temp_high, temp_low);LCD_ShowString(0, 90, 200, 16, 16, shuzu);if(keyvalue=1) /k

    18、ey0按下temp_low-;memset(shuzu, 0, 20);sprintf(shuzu, Max is %2d C,Min is %2d C, temp_high, temp_low);LCD_ShowString(0, 90, 200, 16, 16, shuzu);keyvalue=0; void TIM3_IRQHandler(void) /TIM3中断if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) /检查指定的TIM中断发生与否:TIM 中断源 TIM_ClearITPendingBit(TIM3, TIM_IT_Upd

    19、ate ); /清除TIMx的中断待处理位:TIM 中断源 /温度不正常处理灯if(flag=1)LED0 = !LED0;if(flag=2)LED1 = !LED1;3.2.2 LED 函数led.c#include led.hvoid LED_Init(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); /使能PA,PD端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_

    20、8; /LED0-PA.8 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); /根据设定参数初始化GPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_8); /PA.8 输出高 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; /LED1-PD.2 端口配置, 推挽输出

    21、GPIO_Init(GPIOD, &GPIO_InitStructure); /推挽输出 ,IO口速度为50MHz GPIO_SetBits(GPIOD,GPIO_Pin_2); /PD.2 输出高 3.2.3温度代码 s18b20.c#include ds18b20.h#include delay.hvoid DS18B20_Rst(void) DS18B20_IO_OUT(); /SET PA0 OUTPUT DS18B20_DQ_OUT=0; /拉低DQ delay_us(750); /拉低750us DS18B20_DQ_OUT=1; /DQ=1 delay_us(15); /15US

    22、/等待DS18B20的回应/返回1:未检测到DS18B20的存在/返回0:存在u8 DS18B20_Check(void) u8 retry=0;DS18B20_IO_IN();/SET PA0 INPUT while (DS18B20_DQ_IN&retry=200)return 1;else retry=0; while (!DS18B20_DQ_IN&retry=240)return 1; return 0;/从DS18B20读取一个位/返回值:1/0u8 DS18B20_Read_Bit(void) / read one bit u8 data;DS18B20_IO_OUT();/SE

    23、T PA0 OUTPUT DS18B20_DQ_OUT=0; delay_us(2); DS18B20_DQ_OUT=1; DS18B20_IO_IN();/SET PA0 INPUTdelay_us(12);if(DS18B20_DQ_IN)data=1; else data=0; delay_us(50); return data;/从DS18B20读取一个字节/返回值:读到的数据u8 DS18B20_Read_Byte(void) / read one byte u8 i,j,dat; dat=0;for (i=1;i=8;i+) j=DS18B20_Read_Bit(); dat=(j1); return dat;/写一个字节到DS18B20/dat:要写入的字节void DS18B20_Write_Byte(u8 dat) u8 j; u8 testb;DS18B20_IO_OUT();/SET PA0 OUTPUT; for (j=1;j1; if (testb) DS18B20_DQ_OUT=0;/ Write 1 delay_us(2); DS18B20_DQ_OUT=


    注意事项

    本文(嵌入式系统课程设计报告.doc)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开