本设计:
基于STM32模拟电磁炮设计_STM32F103ZET6(程序+原理图+PCB+论文报告)
原理图:Altium Designer
程序编译器:keil 5
编程语言:C语言
编号C0029

设计说明:
该系统方案主要由 STM32f103zet6单片机最小系统控制电路、储能电路、电压检测电路、电磁炮发射电路、舵机云台、TFT显示屏、虚拟键盘等部分组成。
利用电磁感应原理产生电磁场给弹丸一个磁场力,由液晶屏上的虚拟按键手动输入靶中心与定标点的距离 及与中心轴线的偏离角度,驱动舵机云台调节电磁炮仰角及水平方向,由STM32f103zet6控制器计算弹道,控制器实时测量1500uf 电容充电电压,待电容充电达到计算电压后控制云台到达指定位置,使电容对电磁炮线圈瞬间放电,产生强大的磁场,发射弹丸命中目标。同时可以在液晶屏显示靶子中心坐标位置、仰角信息及电容电压等信息。

原理图:

源程序:

#include “sys.h”
#include “delay.h”
#include “stm32f10x_adc.h”
#include “stm32f10x_rcc.h”
#include “port_init.h”
#include “key.h”
#include “lcd.h”
#include “usart.h”
#include “timer_pwm.h”
#include “24cxx.h”
#include “adc.h”
#include “touch.h”
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}

//清空屏幕并在右上角显示"RST"
void Load_Drow_Dialog(void)
{
LCD_Clear(WHITE); //清屏
POINT_COLOR=BLUE; //设置字体为蓝色
LCD_ShowString(lcddev.width-24,0,200,16,16,“ok”);//显示清屏区域
POINT_COLOR=RED; //设置画笔蓝色
}

//两个数之差的绝对值
//x1,x2:需取差值的两个数
//返回值:|x1-x2|
u16 my_abs(u16 x1,u16 x2)
{
if(x1>x2)return x1-x2;
else return x2-x1;
}

//5个触控点的颜色
const u16 POINT_COLOR_TBL[CT_MAX_TOUCH]={RED,GREEN,BLUE,BROWN,GRED};
//电阻触摸屏测试函数
void rtp_test(void)
{
u8 key;
u8 i=0;
while(1)
{
key=KEY_Scan(0);
tp_dev.scan(0);
if(tp_dev.sta&TP_PRES_DOWN) //触摸屏被按下
{
if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height)
{
if(tp_dev.x[0]>(lcddev.width-24)&&tp_dev.y[0]<16)Load_Drow_Dialog();//清除
else TP_Draw_Big_Point(tp_dev.x[0],tp_dev.y[0],RED); //画图
}
}else delay_ms(10); //没有按键按下的时候
if(keyKEY0_PRES) //KEY0按下,则执行校准程序
{
LCD_Clear(WHITE);//清屏
TP_Adjust(); //屏幕校准
Load_Drow_Dialog();
}
i++;
if(i%200)LED1=!LED1;
}
}
//主函数
int main(void)
{
u16 led0pwmval=50;
u8 dir=1;

delay_init();             //延时函数初始化

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
delay_ms(300) ; //上电缓冲
Adc_Init(); //ADC初始化
delay_ms(300) ; //上电缓冲
port_Init(); //LED端口初始化
delay_ms(300) ; //上电缓冲
LCD_Init(); //液晶屏初始化
delay_ms(300) ; //上电缓冲
KEY_Init();
TIM5_PWM_Init(1999,719); //不分频。PWM频率=100000/2000=50hz 20ms分成2000分2ms占200份 200/180
// protect=0; //断开升压电源
tp_dev.init(); //触摸屏初始化
delay_ms(300) ; //上电缓冲
POINT_COLOR=BLUE;//设置字体为红色 simulated electromagnetic curved cannon
delay_ms(300) ; //上电缓冲
LCD_ShowString(0,0,240,16,16,“Anyang Institute Of Technology”);
LCD_ShowString(0,15,240,16,16,“Electromagnetic Curved Cannon”); //Design of Simulated Electromagnetic Curved Cannon Based on STM32
LCD_ShowString(55,30,200,16,16,“Design by Yibo_Liu”);
LCD_ShowString(10,50,200,16,16,“Input coor:( , )”);
LCD_ShowString(10,70,200,16,16,“Vol set value : V”); //Real value
LCD_ShowString(10,90,200,16,16,“Vol Real value: V”); //Real value
Servo_work(142,150) ; //初始化云台 原来左右是150
virtual_keyboard_init(); //虚拟键盘
while(1)
{
coordinate_transformation() ; //将按键值转换为坐标值,进行计算脉冲宽度和电容电压 子程序
launch_jud(); //准备发射子程序
// Servo_work(150,150) ; //归位
}
}

论文报告:

百度云下载链接:

https://pan.baidu.com/s/1adjxcHvdFvpS4LuL0nWA_A?pwd=chqk

STM32模拟电磁炮设计_STM32F103ZET6(程序+原理图+PCB+论文报告)相关推荐

  1. STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告)

    本设计: 基于STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0021 资料下载 [ ...

  2. STM32老人防跌倒报警GSM短信GPS定位设计(程序+原理图+PCB)

    本设计: 基于STM32老人防跌倒报警GSM短信GPS定位设计(程序+原理图+PCB) 编号C0025 下载链接 C0025 网盘链接 功能描述: 本系统由基于STM32单片机的核心板.ADXL345 ...

  3. STM32音频频谱分析设计方案(程序+原理图+PCB)

    本设计: 基于STM32音频频谱分析设计方案(程序+原理图+PCB) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0030 功能说明: 硬件系统组成=ST ...

  4. 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)

    本设计: 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0019 下载链接 [ ...

  5. 基于51单片机GPS定位系统设LCD12864显示(程序+原理图+PCB+论文)

    资料编号:202 功能介绍: (1).定位功能 GPS通过接收卫星信号,可以准确地定出其所在的位置,位置误差小于10米.利用GPS,在12864上面显示当前位置. (2).查询时间功能 GPS还可以接 ...

  6. 基于51单片机GPS定位公交车自动报站系统(程序+原理图+PCB+论文+全套资料)

    功能介绍: 1.电路设计合理. 2.熟练地使用STC89C52单片机.GPR模块,掌握其原理. 3.可设置播报声音的大小.上行或下行.显示时间等内容 4.采用LCD12864显示时间,位置等信息. 5 ...

  7. STM32物联网智能鱼缸智能家居系统(程序+原理图+PCB+图文教程)

    本设计: 基于STM32物联网智能鱼缸智能家居系统设计方案(程序+原理图+PCB) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0027 功能说明: 1. ...

  8. STM32单片机紫外线强度检测仪器蜂鸣器报警(程序+原理图+PCB)

    本设计: 基于STM32单片机紫外线强度检测仪器蜂鸣器报警(程序+原理图+PCB) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0023 完整下载链接: ...

  9. STM32的智能语音识别的柔光台灯设计(源程序+原理图+PCB+设计说明书+PPT)

    本设计: 基于STM32的智能语音识别的柔光台灯设计(源程序+原理图+PCB+设计说明书+PPT) 原理图:Altium Designer 程序编译器:keil4/keil 5 编程语言:C语言 编号 ...

最新文章

  1. 从0到1,苏宁API网关的演进之路
  2. Android 导致OOM的常见原因
  3. Dancing Link讲解
  4. 【转】IOS制作静态库
  5. 前端学习(2586):如何设计高扩展路由
  6. Android应用程序管理系列(二)——PackageManager 包管理者
  7. Android中的savedInstanceState
  8. vue点击按钮打开下拉菜单_vue 点击弹出下拉菜单 点击其他页面收回菜单
  9. Java实现Base64的编码与解码
  10. 洛谷P4563 [JXOI2018]守卫
  11. android scrollview滚动条初始位置,ScrollView 设置滚动条的位置
  12. mysql 在不同数据库中创建定时同步任务,将每分钟数据转每5分钟统计
  13. 多线程+SOCKET编程实现qq群聊的服务端和客户端
  14. 查询表名所在数据库名
  15. 深度解读《关于防范NFT相关金融风险倡议》透露哪些监管信号与数字藏品新发展之路?
  16. 专题:什么是MD5?
  17. 计算机基础教师期中工作小结,教师个人小结
  18. 刚开始学java ,java代码开头的几行都是什么意思?
  19. CF1244F Chips
  20. 如何遍历一棵二叉树?

热门文章

  1. mcu芯片是指什么芯片
  2. 入门手机第一选择,超高性价比荣耀畅玩7
  3. 几个行业产品思维导图
  4. EDNA实时数据库两种取历史数据值的方式
  5. datagridview列名(中文)与属性名(英文)匹配
  6. ios layer的一些学习
  7. 下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示活动,边的权重表示活动的持续时间,则里程碑(7)在关键路径上,活动GH的松弛时间是(8)。...
  8. 同济大学计算机学院陈震,罗烨 - 师资队伍 - 同济大学软件学院
  9. springboot2.x项目中正确使用logback-spring.xml的方式
  10. 内蒙古计算机软件考试时间,2016年下半年内蒙古计算机软件水平考试报名通知...