传感器技术课程设计模板1.docx
- 文档编号:26390699
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:19
- 大小:453.86KB
传感器技术课程设计模板1.docx
《传感器技术课程设计模板1.docx》由会员分享,可在线阅读,更多相关《传感器技术课程设计模板1.docx(19页珍藏版)》请在冰豆网上搜索。
传感器技术课程设计模板1
成绩评定:
传感器技术
课程设计
题目基于传感器的单片机无线通信系统
院系电子工程学院
专业自动化
姓名杨长晋
班级电A1331
学号12号
指导教师蔡苗苗
2016年5月
目录
一、实训目的1
二、设计要求1
三、实验设备1
四、实训内容2
单片机2
PCB制版12
电路原理图及PCB图13
ESP8266WiFi使用15
实训,总结17
一、实训目的
1.掌握keil软件的使用及单片机程序的编写
2.了解PCB(单片机最小系统)的制作及封装
3.清楚ESP8266模块配置
4.了解基于传感器的单片机无线通信系统的原理
5.复习利用Keil51软件对程序进行编译
二、设计要求
1.提供完整的程序和原理图(硬件接法)
2.PCB提供详细的操作步骤
3.ESP8266与PC机数据通信操作步骤
4.单片机控制ESP8266单片机串口程序:
(Datesheet+SCH)
Datesheet:
SCON98HSM0SM1SM2RENTB8RB8TIRI(0x50)
方式2:
01010000
SBUF99H--SBUF=0x30;temp=SBUF;
IE(EAES)EA=1;ES=1;
波特率:
配置T1,晶振:
11.059M
9600-->TH1=0xFD;TL1=0xFD;
使用定时功能,方式2
ET1=0;(TCON)TR1=1;
TMODGATEC/TM1M0GATECTM1MO(0x20)
三、实验设备
产品:
硬件,软件,结构
嵌入式
硬件:
1.模电和数电(时序图)--->微电子(IC)
2.信号系统和通信原理(了解)
3.PLC单片机(程序)
4.ARM
软件:
1.语言(汇编(X86,51,ARM),C,[C++,JAVA,C#])。
2.数据结构和算法(BAT-算法)ACM。
3.操作系统(进程管理和内存管理)。
4.数据库和网络原理。
5.Dex软件和keil。
C+单片机+PCB+传感器
四、实训内容
单片机
开发板使用:
1.usb线连接PC机(供电使用)
2.usb转串口驱动安装(CH340)
[ISP-开发板USB转串口CH340驱动]
3.打开开发板电源开关
4.下载程序:
PC机端打开PZ-ISP.exe
芯片类型选择STC90C5XX系列
低速下载
打开要下载的文件(xxx.hex)
单片机的软件使用操作步骤
1.工程建立:
1>.project--new(保存工程名为test)
2>.选择cpu类型-atmel-at89c51
3>.不添加启动代码到工程(no)
4>.file-new(保存为main.c文件)
5>.添加main.c文件到工程中
6>.写代码到main.c
7>.编译代码
8>.options---output----creathexfile(勾选)
9>.重新编译代码
烧写程序到单片机
1>.安装ch340驱动(usb转串口)
2>.PZ-ISP软件
3>.芯片类型(STC90系列)
低速下载
4>.打开下载文件(test.hex)
5>.下载
程序原理图
程序的编写
#include
//--定义使用的IO口--//
#defineGPIO_DIGP0
#defineGPIO_PLACEP1
#defineGPIO_TRAFFICP2
sbitRED10=P2^0;//上人行道红灯
sbitGREEN10=P2^1;//上人行道绿灯
sbitRED11=P2^2;
sbitYELLOW11=P2^3;
sbitGREEN11=P2^4;
sbitRED00=P3^0;//右人行道红灯
sbitGREEN00=P3^1;//右人行道绿灯
sbitRED01=P2^5;
sbitYELLOW01=P2^6;
sbitGREEN01=P2^7;
//--定义全局变量--//
unsignedcharcodeDIG_PLACE[8]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制查表的方法控制
unsignedcharcodeDIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
unsignedcharDisplayData[8];
//用来存放要显示的8位数的值
unsignedcharTime,Second;//用来存放定时时间
//--声明全局函数--//
voidDigDisplay();//动态显示函数
voidTimer0Cofig(void);
voidmain(void)
{
Second=1;
Timer0Cofig();
while
(1)
{
if(Second==70)
{
Second=1;
}
//--宝田路通行,30秒--//
if(Second<31)
{
DisplayData[0]=0x00;
DisplayData[1]=0x00;
DisplayData[2]=DIG_CODE[(30-Second)%100/10];
DisplayData[3]=DIG_CODE[(30-Second)%10];
DisplayData[4]=0x00;
DisplayData[5]=0x00;
DisplayData[6]=DisplayData[2];
DisplayData[7]=DisplayData[3];
DigDisplay();
//--宝田路通行--//
GPIO_TRAFFIC=0xFF;//将所有的灯熄灭
RED00=1;
GREEN00=1;
GREEN11=0;//宝田路绿灯亮
GREEN10=0;//宝田路人行道绿灯亮
RED01=0;//前进路红灯亮
RED00=0;//前进路人行道红灯亮
}
//--黄灯等待切换状态,5秒--//
elseif(Second<36)
{
DisplayData[0]=0x00;
DisplayData[1]=0x00;
DisplayData[2]=DIG_CODE[(35-Second)%100/10];
DisplayData[3]=DIG_CODE[(35-Second)%10];
DisplayData[4]=0x00;
DisplayData[5]=0x00;
DisplayData[6]=DisplayData[2];
DisplayData[7]=DisplayData[3];
DigDisplay();
//--黄灯阶段--//
GPIO_TRAFFIC=0xFF;//将所有的灯熄灭
RED00=1;
GREEN00=1;
YELLOW11=0;//宝田路黄灯亮
RED10=0;//宝田路人行道红灯亮
YELLOW01=0;//前进路红灯亮
RED00=0;//前进路人行道红灯亮
}
//--前进路通行--//
elseif(Second<66)
{
DisplayData[0]=0x00;
DisplayData[1]=0x00;
DisplayData[2]=DIG_CODE[(65-Second)%100/10];
DisplayData[3]=DIG_CODE[(65-Second)%10];
DisplayData[4]=0x00;
DisplayData[5]=0x00;
DisplayData[6]=DisplayData[2];
DisplayData[7]=DisplayData[3];
DigDisplay();
//--黄灯阶段--//
GPIO_TRAFFIC=0xFF;//将所有的灯熄灭
RED00=1;
GREEN00=1;
RED11=0;//宝田路红灯亮
RED10=0;//宝田路人行道红灯亮
GREEN01=0;//前进路绿灯亮
GREEN00=0;//前进路人行道绿灯亮
}
//--黄灯等待切换状态,5秒--//
else
{
DisplayData[0]=0x00;
DisplayData[1]=0x00;
DisplayData[2]=DIG_CODE[(70-Second)%100/10];
DisplayData[3]=DIG_CODE[(70-Second)%10];
DisplayData[4]=0x00;
DisplayData[5]=0x00;
DisplayData[6]=DisplayData[2];
DisplayData[7]=DisplayData[3];
DigDisplay();
//--黄灯阶段--//
GPIO_TRAFFIC=0xFF;//将所有的灯熄灭
RED00=1;
GREEN00=1;
YELLOW11=0;//宝田路黄灯亮
RED10=0;//宝田路人行道红灯亮
YELLOW01=0;//前进路红灯亮
RED00=0;//前进路人行道红灯亮
}
}
}
voidDigDisplay()
{
unsignedchari;
unsignedintj;
for(i=0;i<8;i++)
{
GPIO_PLACE=DIG_PLACE[i];//发送位选
GPIO_DIG=DisplayData[i];//发送段码
j=10;//扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}
voidTimer0Cofig(void)
{
TMOD=0x01;//定时器0选择工作方式1
TH0=0x3C;//设置初始值,定时50MS
TL0=0xB0;
EA=1;//打开总中断
ET0=1;//打开定时器0中断
TR0=1;//启动定时器0
}
voidTimer0()interrupt1
{
TH0=0x3C;//设置初始值
TL0=0xB0;
Time++;
if(Time==20)
{
Second++;
Time=0;
}
}
PCB制版
PCB:
制作封装,布局,布线
概念:
1.原理图符号:
指的是原理图设计中的元器件,为了区别于元器件实物,特叫做原理图符号。
2.元器件封装:
指的是PCB电路板设计中的元器件,为了区别于元器件实物,特叫做元器件封装
3.焊盘:
主要用于安装元器件的引脚,并通过它与电路板上其他的导电图件连接。
制作封装:
安装元器件引脚的焊盘(信号层)
元器件外形(丝印层)
必要的注释(丝印层)
【TopLayer】:
顶层信号层
【BottomLayer】:
底层信号层
【Mechanical1】:
机械层
【TopOverlay】:
顶层丝印层
【BottomOverlay】:
底层丝印层
【KeepOutLayer】:
禁止布线层
【MultiLayer】:
多面层(过孔)
操作步骤:
1.常用操作
左键:
选择右键(按住不放):
移动,放大和缩小pguppgdn
Tab[双击](大多数属性操作)space(旋转元件)
快捷键:
在菜单栏中首字母(Edit)
放置器件placepart(P+P)
放置Net(P+N)
封装Footprint(基准点)单位(英制)
snap:
捕获栅格的使用
2.建立工程:
保存文件到工作目录(注意保存)
file--new--project-PCBporject
addnewtoproject->SCHPCBSCHlibPCBlib
3.系统自带的原理图符号
Connetctors.IntLib
Devices.IntLib
手工制作原理图符号(STC89C51)
4.原理图(单片机最小系统)R?
C?
U?
5.制作封装(STC89C51)
6.绘制PCB(布局和布线->DRC)
改变图纸大小:
Design→DocumentOptions(文档选项)
更改图纸信息:
Design→DocumentOptions→parameters
一次性编号:
Tools→AnnotateSchematic
布线规则设置:
Design→Rules→Routing→Width
原理图导入PCB
Design→UpdatePcbDocument
生成BOM
Report→BillOfMaterials
全局修改
findsimilarobjects
定位元器件:
T(tools)→c(crossprobe)[clear]
打开和隐藏层次关系:
ctrl+D
控制pcb板子大小
Design→boardshape→redefineboardshape
电器规则检查:
tool→DRC
改变光标形状
DXP→preferences→PCB→General
cursortype→Larger90
电路原理图及PCB图
ESP8266WiFi使用
1,连接线
2,安装PL2303驱动
3,打开ESP8266-Pc调试工具-SSCOM
4,串口号选择PL2303的COM口(查看设备管理器)
5,波特率设置[默认](115200,8,1,None),打开串口
6,参考手册测试模块
AT-EspressifAT指令集_AIThinkerMod_v021.pdf
每条指令可以分四种命令
测试命令AT+
查询命令AT+
设备命令AT+
执行命令AT+
不是每条AT命令都具备这四种命令
使用双引号表示字符串,输入以回车换行结尾\r\n
基础命令:
1,AT测试AT启动
2,AT+RST重启模块
3,AT+GMR查看版本信息
4,AT+UART设置串口配置
AT+UART=9600,8,1,0,0
Wifi功能AT指令
1,AT+CWMODE选择WiFi应用模式
2,AT+CWJAP加入AP
3,AT+CWLAP列出当前可用AP
4,AT+CWQAP退出与AP的连接
5,AT+CWSAP设置AP模式下的参数
AT+CWSAP="ESP8266-gigi","1234567890",5,3
6,AT+CWLIF查看已连接
7,AT+CWDHCP设置DHCP
8,AT+CWAUTOCONN设置STA开机自动连接到Wifi
9,AT+CIPSTAMAC设置STA的MAC地址
10,AT+CIPAPMAC设置AP的MAC地址
11,AT+CIPSTA设置STA的IP地址
12,AT+CIPAP设置AP的IP地址
TCP/IP的AT命令
1,AT+CIPSTATUS获得连接状态
2,AT+CIPSTART建立TCP连接和注册UDP端口
3,AT+CIPSEND发送数据
4,AT+CIPCLOSE关闭TCP和UDP
5,AT+CIFSR获取本地IP地址
6,AT+CIPMUX启动多连接
7,AT+CIPSERVER配置为服务器
8,AT+CIPMODE设置配块传输模式
9,AT+CIPSTO设置服务器超时时间
10,AT+PINGPing命令
应用场景:
1,多连接server
"AT+CWMODE=2\r\n"
"AT+CWSAP='ESP8266-gigi','01234567',11,0\r\n"
"AT+RST\r\n"
"AT+CIPMUX=1\r\n"
"AT+CIPSERVER=1,5000\r\n"
"AT+CIPSEND=\r\n"//接收和发送数据
2,单连接client
3,透传
ESP-01模组尺寸平⾯面图
最结果图
实训,总结
通过此次实训让我对keil烧写软件的使用有更深的了解。
该软件设计采用C51编程语言,完成了单片机初始化、行列式键盘的扫描、键值的处理及液晶显示驱动程序的编写。
本设计的外围接口采用了插接式的连接方式,提高了系统的适用性。
并且使我懂得了理论与实际相联合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相联合起来,才能够真正的学会了实际操作的能力。
同时经过这次的实训,我发现,pcb制版在我们专业里有着举足轻重的作用,很多地方都会用到,因此,熟练操作是很必要的。
画原理图,封装,pcb布局布线,这都是我们自动化专业要熟练掌握的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传感器 技术 课程设计 模板