教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

杭州电子科技大学电子系统综合设计报告

来源:网络收集 时间:2026-08-25
导读: 姓名:学号:学院:专业:序号: 课程报告 杭州电子科技大学课程设计报告 一、系统框图 1.1系统框图 按键 USART 模拟量输入 USB MCU LED 图1 PL2303 PC 二、STM32端软件流程图及关键代码 2.1 下位机软件流程图 上电 初始化 复位按键 N Y PC USART 数据处理按

姓名:学号:学院:专业:序号:

课程报告

杭州电子科技大学课程设计报告

一、系统框图

1.1系统框图

按键 USART 模拟量输入 USB MCU LED 图1

PL2303 PC 二、STM32端软件流程图及关键代码

2.1 下位机软件流程图

上电 初始化

复位按键 N Y PC USART 数据处理&反馈信息 AD&按键 LED

图2

第1页

杭州电子科技大学课程设计报告

2.2 关键代码

2.2.1单片机系统往PC机发送信息并在PC机上显示

(1)扫描法识别并发送按键信息

if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) == 0) { }

void USART1_Puts(u8 *str) {

while(*str) }

{

USART_SendData(USART1, *str++);

while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //等待发送完成 } while(1) { }

if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) == 1)

{ }

USART1_Puts(\//发送的字符为K2 break;

//K2松开

//K2按下

(2)发送按键信息函数

注:此处以K2键为例,K3的设置类似于K2。当按键被按下时,PA8为低电平,此处的if语句检测到K2被按下;然后执行while中的if语句,此时若K2键被松开则PA8为高电平,从而检测出了K2键被按下并松开,即可将K2的被按下的信息发送给PC机,在PC机界面上显示出K2。

2.2.2PC机控制输出信息点亮LED灯

USART1_Gets();

switch(data) { }

第2页

case '0': case '1': case 'K': case 'L':

GPIO_WriteBit(GPIOA, GPIO_Pin_0,(BitAction)0);break; GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)0);break; GPIO_Write(GPIOA, 0XFF); break; GPIO_Write(GPIOA, 0X00);break;

//接收字符

//设置GPIOA的0-15的端口位

default : break;

杭州电子科技大学课程设计报告

根据PC机接收到的字符,利用while语句判断,并使改编号的LED低电平发光或高电平变暗。例如,在满足case0条件时,GPIO端口中的PA0口电平为低电平,此时LED0将发光;当接收到的字符为F时,GPIO都将被置为高电平,也即是LED将全部熄灭。

2.2.3 AD转换代码

void displayADV(void) {

temp=(float)AD_value*(3.3/4096);

}

tableADV[0]=(int)temp+'0'; tableADV[1]='.';

tableADV[2]=((int)(temp*10))+'0'; tableADV[3]=((int)(temp*100))+'0';

//4096=2^12,即AD的分辨率12位

//模拟转数字显示

ADC的分辨率为12位,而通过串口输入的模拟量AD_value最大值为3.3V,则将其转换为数字量为AD_value*(3.3/4096)。然后,再将其余各位字符表示出来放入tableADV[]字符串,就将模拟量转换成了数字量。

2.3.4 发送AD转换后的数字量

while(tableADV[i]!='\\0')

{

USART_SendData(USART1, tableADV[i]); //通过USART1发送tableADV[i]数据 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){}

//字符发送完毕

}

i++;

//循环逐字输出,到结束字'\\0'

三、PC端软件流程图及关键代码

3.1 上位机关键代码 3.1.1添加额外初始化

// TODO: Add extra initialization here

if (!port.OpenPort(\

return FALSE;

//设置波特率为9600,数据位8位 第3页

//修改接口名称,此时应根据每台电脑上的接口来配置

if (!port.ConfigurePort(9600, 8, 0, 0, 0))

杭州电子科技大学课程设计报告

return TRUE; // return TRUE unless you set the focus to a control

return FALSE;

//设置通信延时

return FALSE;

//设置计时器1,间隔为100ms,使用On Timer函

if(!(port.SetCommunicationTimeouts(0,100,0,0,0))) SetTimer(1, 100, NULL);

3.1.2 根据发送数据使LED发光

voidCCOMTESTDlg::OnButtonSend() {

}

UpdateData(TRUE); inti;

for (i = 0; i

//将接收的发送数据写入到端口,从而使LED发光

3.1.3全亮按键函数定义

voidCCOMTESTDlg::OnButton5() {

}

port.WriteByte('L');//按下全亮按键时,接收到的字符为L,此时所有PA口为低,LED发光

3.2 STM32端程序串口通信协议解析的工作流程图

MCU 发送指令传到上位机str数组 上位机str数组 判定指令长度 大于13位 判定前三位 为6Md 灯状态读取指令 大于9不大于13 其它情况 判定前三位 为6MR AD状态读取指令 其它情况 上位机无操作 上位机显示AD 上位机显 示灯状态 第4页 杭州电子科技大学课程设计报告

四、课程设计改进建议

4.1 建议

像这种类似的课程设计,不应该放在短学期里,而应该给予更高的重视。这种课程才是更能提高学生能力的好课,远比学习理论课给人的感觉要好很多。但是,总感觉学校好像不太重视,也感觉大学在这方面训练的还不够。

第5页

…… 此处隐藏:782字,全部文档内容请下载后查看。喜欢就下载吧 ……
杭州电子科技大学电子系统综合设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/404511.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)