东北石油大学电装实习报告Word文件下载.docx
《东北石油大学电装实习报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《东北石油大学电装实习报告Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
![东北石油大学电装实习报告Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/10/7db19297-8241-4c63-9bdc-9098eddcab26/7db19297-8241-4c63-9bdc-9098eddcab261.gif)
根据指令的要求按时间的先后顺序负责向其他各部件发出控制信号,保证各部件协调一致地工作,一步步地完成各种操作。
控制器主要由指令寄存器、译码器、程序计数器和操作控制器等组成。
存储器:
存储器分为内存储器和外存储器,是计算机记忆或暂存数据的部件。
计算机中的全部信息包括最原始的输入数据、经过初步加工的中间数据和最后处理完成后的有用信息都存放在存储器中。
而且指挥计算机运行的各种程序即规定如何对输入数据进行加工处理的一系列指令也存放在存储器中。
输入设备:
输入设备是给计算机输入信息的设备。
它是重要的人机接口负责将输入的信息转化为计算机能识别的二进制代码送入存储器保存。
输出设备:
输出设备是输出计算机处理结果的设备,通常它将结果转化为人们易为识别的形式。
3.弄清单片机的内部结构和工作原理
单片机主要由运算器、控制器和主要寄存器构成。
运算器由运算部件——算术逻辑单元、累加器和寄存器等几部分组成。
算术逻辑单元的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。
。
其主要功能有:
(1)从内存中取出一条指令,并指出下一条指令在内存中的位置。
(2)对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
(3)指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
主要寄存器:
主要寄存器包括累加器A、数据寄存器DR、指令寄存器IR和指令译码器ID、程序计数器PC、地址寄存器AR。
4.了解单片机的分类和发展趋势
单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。
通用型与专用型这是按单片机适用范围来区分的。
例如,80C51是通用型单片机,它不是为某种专门用途设计的;
专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型这是按单片机是否提供并行总线来区分的。
总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
控制型这是按照单片机大致应用的领域进行区分的。
一般而言,工控型寻址范围大,运算能力强;
用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。
单片机的发展主要包括三个阶段,单片微型计算机阶段、微控制器阶段和嵌入式系统阶段。
SCM即单片微型计算机阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
MCU即微控制器阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
SOC嵌入式系统式的独立发展之路就是寻求应用系统在芯片上的最大化解决,因此,专用单片机的发展自然形成了SOC化趋势。
5.了解单片机的应用
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
工业控制、智能仪器、家用电器、网络和通信、设备领域、模块化系统、汽车电子等方面。
此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。
6.学会用汇编语言和C语言编写单片机程序
二、单片机基本原理
1.AT89C51单片机
图1单片机电路
AT89C51主要由CPU、内部数据存储器、内部程序存储器、定时/计数器以及并行I/O口组成。
(1)CPU
CPU是单片机的核心部分,由运算器和控制器构成。
运算器即算术逻辑运算单元,是进行算术或逻辑运算的部件,可实现算术运算和逻辑运算。
操作的结果一般送回累加器ACC,而其状态信息送至程序状态存储器PSW。
控制器是用来控制计算机工作的组件。
控制器接受来自存储器的命令,协调各部件工作,完成指令规定的操作。
(2)内部数据存储器
AT89C51共256B的数据存储器,其中高128B被专用寄存器占用,能作为寄存器供用户使用的只有低128B,用于存放可读写的数据。
(3)内部程序存储器
AT89C51共4KB的Flash程序存储器,用于存放程序、原始数据和表格参数等。
(4)定时/计数器
AT89C51共16个定时/计数器,每个定时/计数器都可以设置成计数方式,用于对外部事件计数;
也可设置成定时方式,并可以根据定时或计数的结果实现对单片机运行的控制。
(5)并行I/O口
AT89C51共4个8位并行I/O口,每个8位的口既可以用作输入口也可以用作输出口,每个口既可以对8位同时读写,也可以单独对每一位操作。
2.数码管电路
图2数码管电路
采用共阳接法,P1和P0口分别控制段和位。
3.按键电路
独立按键共四个由P32到P35控制。
矩阵键盘按键有2个管脚,一个管脚接一个IO口,自定义MCU的IO口其中一个为输入、另一个为输出,在对输出进行翻转后读P3口状态,即输出为0时读一次状态输出为1时读一次状态,如果按键没有按下则两次状态相同且为初始状态,如果按键按下则状态改变。
先进行列判断,然后进行行判断。
图3按键电路
4.LED电路
采用共阳解法当单片机中给低电平时电量LED通过LED的电流大约为百欧级。
图4LED电路
5.晶振电路
X1MC3
12M30P
图5晶振电路
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
单片机晶振的作用是为系统提供基本的时钟信号。
三、硬件调试及程序开发
1.通电前检测
(1)检查芯片的电源和网络节点的标注是否正确,同时也要注意网络节点是否有重叠的现象;
还要注意元件的封装,封装采取的型号、封装的引脚顺序,封住不能采用顶视图,特别是对非插针的封装。
(2)检查元件安装情况,引脚之间是否存在短路情况,连接处有无接触不良;
二极管、三极管、集成器件以及电解电容是否有误等状况。
(3)检查发光二极管、整流二极管和电解电容机型是否对应,以及三极管管脚是否对应等。
2.通电检测
通电后先观察电路是否有异常,如有无冒烟现象、有无异常气味、用手触摸集成电路外封装是否发烫等。
若发现异常,应立即断电,待故障排除后再通电。
3.静态调试
静态调试:
静态调试一般是指在不加输入信号,或只加固定的电平信号的条件下所进行的直流测试,可用万用表测出电路中各点的电位,通过和理论估算值比较,结合电路原理的分析,判断电路直流工作状态是否正常,及时发现电路中已损坏或处于临界工作状态的元器件。
通过更换器件或调整电路参数,使电路直流工作状态符合设计要求。
4.动态调试
动态调试:
动态调试是在静态调试的基础上进行的,在电路的输入端加入合适的信号,按信号的流向,顺序检测各测试点的输出信号,若发现不正常现象,应分析其原因,并排除故障,再进行调试,直到满足要求。
5.程序开发
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitkey3=P3^1;
sbitkey2=P3^2;
sbitkey1=P3^3;
ucharcodetable[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
ucharcodemoshi1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharcodemoshi2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
ucharcodemoshi3[]={0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00};
ucharcodemoshi4[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
ucharcodemoshi5[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
ucharcodemoshi6[]={0x7e,0x3c,0x18,0x00,0x81,0xc3,0xe7,0xff};
ucharmoshi,dingshi;
//模式,定时
ucharshijian,k1;
//时间控制
ucharnum0,num;
voiddelay(uintx)//延时程序
{
uchari;
while(x--);
for(i=0;
i<
120;
i++);
}
voidkeyscan()//键盘扫描
if(key1==0)
{
delay(10);
if(key1==0)//按键1,模式循环
{
moshi++;
if(moshi==7)
moshi=1;
TR0=1;
k1=1;
while(!
key1);
}
}
if(key2==0)//按键2,时间调整
if(key2==0)
shijian++;
if(shijian==15)
shijian=15;
key2);
if(key3==0)//按键3,时间复位
if(key3==0)
shijian--;
if(shijian==1)
shijian=1;
key3);
voiddisplay()//数码管显示
P1=table[moshi];
P2=0xfe;
//从左向右显示
delay
(2);
P1=0XFF;
P2=0XFF;
//数码管不显示
P1=table[dingshi/10];
//十位显示
P2=0xfd;
P1=table[dingshi%10];
//个位显示
voidliushuideng()//流水灯显示
switch(moshi)//模式选择
case1:
P0=moshi1[num];
break;
case2:
P0=moshi2[num];
case3:
P0=moshi3[num];
case4:
P0=moshi4[num];
case5:
P0=moshi5[num];
case6:
P0=moshi6[num];
voiddisp()//显示器
num++;
if(num==8)
num=0;
dingshi--;
if(dingshi==0)
dingshi=shijian;
voidinit()//初始化
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=0;
shijian=5;
dingshi=5;
moshi=0;
P3=P0=0xff;
num=num0=0;
voidmain()
init();
while
(1)
keyscan();
//键盘扫描
display();
//数码管显示
if(k1==1)//模式选择
liushuideng();
//流水灯显示
voidt0_time()interrupt1//中断
num0++;
if(num0==6)
num0=0;
disp();
4、总结及体会
首先,在实习之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。
在做本次实习的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做单片机实习,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
现如今单片机已经渗透到我们生产生活的每一个角落里,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,它们各具特色,互成互补,为单片机的应用提供广阔的天地。
因此学好单片机对我们以后的学习和工作都是有很大帮助的。