pcb生产实习报告单片机温度报警Word下载.docx
- 文档编号:17611836
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:15
- 大小:539.83KB
pcb生产实习报告单片机温度报警Word下载.docx
《pcb生产实习报告单片机温度报警Word下载.docx》由会员分享,可在线阅读,更多相关《pcb生产实习报告单片机温度报警Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
一个简单的音响电路;
RS232串行接口;
1602字符型LCD插座;
继电器试验电路;
带有标准ISP插座,可用下载线对AT89S5X单片机编程;
去掉笨重的变压器采用USB供电;
全部资源都引出的多功能扩展接口;
所有的资源全部都可以使用跳线选择,方便明了;
主芯片安装位留有足够位置,既可以安装芯片插座,也可以安装ZIF插座;
有扩展接口,可方便地扩展其他串行接口芯片。
使用这块实验板可以进行流水灯,计数器等基本编程练习,与PC机进行串行通讯等目前较为流行的技术。
51多功能实验板综合测试程序
综合测试程序是为了检测您焊接的实验板是否正确,有效帮助您找到问题,使得更加充分的利用该实验板.综合测试程序包括:
流水灯、LED数码管显示演示、继电器演示、按键处理测试。
二、硬件结构
1.发光二极管
单片机的P1端口接了8个发光二极管,这些发光二极管的负极接到P0端口各引脚,而正极则通过一个220欧姆的排阻接到正电源端,发光二极管亮的条件是P1口相应的引脚为低电平,即如果P1口某引脚输出为0,相应的灯亮,如果输出为1,相应的灯灭。
注意:
进行流水灯实验,需要将跳线led用短路冒进行短路
2.数码管
单片机的P1口和P2口的部份引脚构成了4位LED数码管驱动电路,这里LED数码管采用了共阳型,共阳型数码管的笔段(即对应abcdefgh)引脚是二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了PNP型三极管S8550作为片选端的驱动,共使用4只三极管,所有三极管的发射极连在一起,接到正电源端,基极则通过四个1K的限流电阻分别接~,集电极分别向4只数码管供电。
进行数码显示实验,需要将跳线SEG跳线用短路冒短路
3.串行接口
串行通讯功能是目前单片机应用中经常要用到的功能,80C51系列单片机和引脚的第二功能是串行口RXD与TXD,其内部的串行接口电路具有全双工异步通讯功能,但是单片机输出的信号是TTL电平,为获得电平匹配,实验板上扩充了一片MAX232芯片,利用该芯片进行电平转换,该芯片内部有电荷泵,只要单一的5V电源供电即可自行产生RS232所需的高电压,使用方便。
在进行串行口和电脑通讯时,要讲RXD和TXD跳线用短路冒短路
P3口的~接了K1~K4共4个按钮开关,用作键盘
5.音响接口
电路板上的三极管驱动一个有源蜂鸣器,构成一个简单的音响电路,该电路利用单片机
的脚引脚作为音源,经三极管放大后发声。
在进行音响实验时,要讲SPEAKER跳线用短路冒进行短路。
三、使用
1.电源提供
本板需外接电源。
外接电源有两种方法,如果你手边已有5V稳压电源,那么可以通过
左上角用汉字标有“电源”的VCC和GND的两排排针向实验板供电,极性已在板上标出,写有“VCC”的接正电源,另一端GND接负电源。
第二种方式直接使用USB电源供电,轻巧方便。
2.复位电路
复位操作是为了让单片机把当前的所有工作停止,程序从头开始进行工作。
当单片机工作异常,也就是我们所说的程序跑飞,或者你所实现的功能需要复位操作,那么板子中间位置用汉字标有“复位电路”,下面有个标号为“RESET”按键,按下该按键,单片机就复位了。
3.ISP功能的使用
标号为ISP下载口的插座为ISP下载插座,此接口为标准ATMELISP下载线定义。
将下载电缆与实验板正确连接
4.仿真功能的使用
使用本板提供的仿真模块,可以直接用串口与Keil联机,使用Mon51提供的单步、过程单步、设置断点等调试方法进行程序的调试。
四、51多功能实验板综合测试程序使用方法
此测试程序把所以板上资源都集成在一起,目的是为了测试自己焊机的实验板是否正确,更充分的发挥本实验板的功能,同时激发独自开发自己的功能,本程序主要的功能包括流水灯、LED数码管显示演示、继电器演示、按键处理测试。
采用了键盘输入命令的方式,并通过1602液晶显示模块实时显示当前所进行的试验和程序状态。
将实验板光盘中,打开“51多功能实验板综合测试程序”文件夹,打开“51board_test_pro”文件夹,将里面的“”文件通过下载线下载到单片机中。
到此,就可以通过KEY1到KEY2两个按键来向单片机输入命令,按不同的按钮可以演示不同的程序。
在执行相应程序的时候,确定已经将所有的跳线用短路冒短路,当按下KEY1,单片机会自动执行LED流水灯程序,当按下KEY2,单片机会自动执行数码光显示、继电器吸和操作和蜂鸣器发生试验,程序执行效果是继电器跟着数码管上的数字增加而一下一下的吸和,同时蜂鸣器不断鸣叫。
实验程序题目:
通过C语言编程的温度报警实验程序如下
#include<
>
#include"
"
#defineDataPortP1
#definewxP3
#defineOVERTEMP30
sbitLATCH1=P2^2;
sbitLATCH2=P2^3;
sbitspk=P2^0;
voiddelay(intt)
{intx,y;
for(x=0;
x<
t;
x++)
for(y=0;
y<
255;
y++)
;
}
bitReadTempFlag;
unsignedcharcodedofly_DuanMa[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//显示段码值0~9
unsignedcharcodedofly_WeiMa[]={0xef,0xdf,0xbf,0x7f};
//分别对应相应的数码管点亮,即位码
unsignedcharTempData[8];
//存储显示值的全局变量
voidDisplay(unsignedcharFirstBit,unsignedcharNum);
//数码管显示函数
voidInit_Timer0(void);
//定时器初始化
voidmain(void)
{
unsignedintTempH,TempL,temp;
Init_Timer0();
while
(1)//主循环
{
if(ReadTempFlag==1)
{
ReadTempFlag=0;
temp=ReadTemperature();
TempH=temp>
4;
TempL=temp&
0x0F;
TempL=TempL*6/10;
//小数近似处理
if(TempH>
OVERTEMP)//如果超温则提示
{
ET1=1;
ET0=0;
DataPort=0xff;
wx=0xff;
delay(100);
ET0=1;
}
else
ET1=0;
ET0=1;
if(TempH/100==0)
TempData[0]=0;
else
TempData[0]=dofly_DuanMa[TempH/100];
//十位温度
if((TempH/100==0)&
&
((TempH%100)/10==0))//消隐
TempData[0]=dofly_DuanMa[(TempH%100)/10];
TempData[1]=dofly_DuanMa[(TempH%100)%10]&
0x7f;
//个位温度,带小数点
TempData[2]=dofly_DuanMa[TempL];
TempData[3]=0xc6;
//显示C符号
}
}
voidDisplay(unsignedcharFirstBit,unsignedcharNum)
staticunsignedchari=0;
DataPort=0;
wx=dofly_WeiMa[i+FirstBit];
//取位码
;
DataPort=TempData[i];
//取显示数据,段码
i++;
if(i==Num)
i=0;
voidInit_Timer0(void)
TMOD=0x11;
EA=1;
//总中断打开
ET0=1;
//定时器中断打开
TR0=1;
IT0=1;
ET1=0;
TR1=1;
//定时器开关打开
voidTimer0_isr(void)interrupt1
staticunsignedintnum;
TH0=(65536-2000)/256;
//重新赋值2ms
TL0=(65536-2000)%256;
Display(0,4);
//调用数码管扫描
num++;
if(num==300)
num=0;
ReadTempFlag=1;
//读标志位置1
voidTimer1_isr(void)interrupt3
TH1=(65536-800)/256;
TL1=(65536-800)%256;
spk=!
spk;
/*------------------------------------------------
uS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下T=tx2+5uS
------------------------------------------------*/
voidDelayUs2x(unsignedchart)
while(--t);
mS延时函数,含有输入参数unsignedchart,无返回值
0~255这里使用晶振12M,精确延时请使用汇编
voidDelayMs(unsignedchart)
while(t--)
//大致延时1mS
DelayUs2x(245);
#include"
18b20初始化
bitInit_DS18B20(void)
bitdat=0;
DQ=1;
//DQ复位
DelayUs2x(5);
//稍做延时
DQ=0;
//单片机将DQ拉低
DelayUs2x(200);
//精确延时大于480us小于960us
//拉高总线
DelayUs2x(50);
//15~60us后接收60-240us的存在脉冲
dat=DQ;
//如果x=0则初始化成功,x=1则初始化失败
DelayUs2x(25);
//稍作延时返回
returndat;
读取一个字节
unsignedcharReadOneChar(void)
unsignedchari=0;
unsignedchardat=0;
for(i=8;
i>
0;
i--)
//给脉冲信号
dat>
=1;
if(DQ)
dat|=0x80;
return(dat);
写入一个字节
voidWriteOneChar(unsignedchardat)
unsignedchari=0;
for(i=8;
i>
i--)
DQ=dat&
0x01;
DelayUs2x(25);
读取温度
unsignedintReadTemperature(void)
unsignedchara=0;
unsignedintb=0;
unsignedintt=0;
Init_DS18B20();
WriteOneChar(0xCC);
//跳过读序号列号的操作
WriteOneChar(0x44);
//启动温度转换
DelayMs(10);
//跳过读序号列号的操作
WriteOneChar(0xBE);
//读取温度寄存器等(共可读9个寄存器)前两个就是温度
a=ReadOneChar();
//低位
b=ReadOneChar();
//高位
b<
<
=8;
t=a+b;
return(t);
实习收获
在这次生产实习中,我感受颇深,收获颇多,使我见到了很多课本上没有的元件,增长了学科知识,也是第一次把课本知识与实践生产联系起来。
不仅锻炼了动手,动脑能力,同时也对自己的专业有了更深层的了解。
在焊接时由于元件的细小,需要调整好几次才能放对位置,这使我锻炼了自己的耐心,以前总认为把每科知识学好就行,可是现在我深刻意识到知识的连贯性,要真正掌握一门科学知识,需要把所学知识都统一起来,不仅要做到心灵还要做到手巧。
我们专业是搞控制的,这就需要我们不仅要有理论知识,更要有丰富的经验。
这次实习就给我们提供了宝贵的机会,以后我会更加努力的学习科学知识,不断充实自己。
这次不仅学到了科学知识,对自己的动手能力是个很大的锻炼。
实践出真知,纵观古今,所有发明创造无一不是在实践中得到检验的。
没有足够的动手能力,就奢谈在未来的科研尤其是实验研究中有所成就。
在实习中,我锻炼了自己动手技巧,提高了自己解决问题的能力,还培养了自己对科学和工作一丝不苟的态度,对以后的学习、工作和生活都大有裨益。
实习使我的理论落实到了实际中,为以后投入社会作了简单的铺垫,并且使我感受到学习上的不足,今后的学习生活中要更加努力填补知识上的空白,努力创造机会把所学知识用与实践,在实践中改进与创新,争取做到学有所用,用有所新。
学生(签字)
年月日
指导教师评语:
实习成绩
指导教师(签字)年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pcb 生产 实习 报告 单片机 温度 报警