电子实训作业一

发布 2022-09-09 00:19:28 阅读 4978

at89s52单片机电源设计。

一:设计要求。

1)输出电压:范围0~+9.9v,精度0.01v;

2)输出电流:0~1a;精度1ma;

3)输出电压、电流值及设置的输出电压、电流。

值可视;4)输出电压、电流的增减可通过面板进行。

设置;(5)过流过压保护作用。

二:系统设计。

采用at89s52单片机作为整机的控制单元,经过整流滤波后,一路电压经过7805稳压得到一个+5v电压,该电压作为单片机的工作电源,另外一路电压直接作为开关变换电路的输入电压。单片机根据键盘输入值和取样值之间的差值,修改脉冲占空比,并输出控制功率开关管,以便得到期望的输出电压值,并根据模/数转换器所采样的电压和键盘输入比较,根据差值调用pid算法再次修改脉宽使输出电压稳定。通过adc0832进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。

此系统比较灵活,采用软件方法来解决数据的预置以及电压的步进控制,使系统硬件更加简洁,各类功能易于实现,能很好地满足题目的要求。

三:单元电路的设计。

1. 稳压直流。

基于lm7805ct三端稳压器,输出直流+5v给单片机、a/d转换提供工作电压。

2. 采样电路。

电流采样:靠近接地端为1k欧姆。

电压采样。3. a/d转换电路。

4. 显示电路。

四:原理图。

五:程序设计。

1. 软件流程。

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit cs=p3^0;//对adc0832进行位定义

sbit di=p3^2;

sbit do=p3^2;

sbit clk=p3^1;

uchar readad[2];

void adc0832(unsigned char channel);

void adc0832(uchar channel)//对0832的操作:首先进行传输数据前的定义,严格按照时序,

//其次开始传数据,如果达到了8位,从新开始传

uchar i=0; /最后开始收数据 ,不管是传数据还是收数据,都要有一个完整的时钟脉冲

uchar j;//对数据值的定义 //数据每次只能传输一位

uint dat=0传数据是从最高位开始将寄存器的数据发送完,接着从低位开始发,比较2次发送的数据是否一样

uchar ndat=0; /如果一样则接收如果不一样则淘汰

if(channel==0)channel=2; if(channel==1)channel=3;

di=1;

nop_()

nop_()

cs=0; /拉低cs端

nop_()

nop_()

clk=1; /拉高clk

nop_()

nop_()

clk=0; /拉低clk形成下降沿1

nop_()

_nop_()

clk=1;

di=channel&0x1;

nop_()

nop_()

clk=0; /形成下降沿2

nop_()

_nop_()

clk=1;

di=(channel>>1)&0x1;

nop_()

nop_()

clk=0; /形成下降沿3

di=1; /控制指令结束

nop_()

nop_()

dat=0; /将dat初始化

for(i=0;i<8;i++)从高位开始发数据

dat|=do;//接收数据

clk=1;

nopnop_()

clk=0;

_nopnop_()形成一次时钟脉冲,数据传一位

dat<<=1;//将所收到的数据进行左移一位

if(dat==7) /如果所收到的数据达到了8位。

dat|=do;//接着收数据

for(i=0;i<8;i++)从低位开始发数据

j=0; j=j|do;//或者是j|=do...开始收数据

clk=1;

nop_()

nop_()

clk=0; /形成一次时钟脉冲

nop_()

nop_()

j=j<<7;

ndat=ndat|j;

if(j<7)

ndat>>=1;//得到的这位数据向左移7位

cs=1;

clk=0;

do=1; /回到初始状态

readad[0]=dat;

readad[1]=ndat;

#include #define reg0 xbyte[0x0000]//通过宏定义将液晶的初始化设置,写指令,写数据

#define reg1 xbyte[0x0001]//读指令,读数据代替,可以直接调用

#define reg2 xbyte[0x0002]

#define reg3 xbyte[0x0003] uchar bdata busyflag;

uchar dat,datn,count;

uchar word1[16]=;

code uchar word2[16]=;

code uchar word3[16]=;

sbit busyflag_7=busyflag^7; /液晶的初始化//

void busy() do

busyflag=reg1;

while(busyflag_7);

void wrc( uchar wcon)

busy();检测液晶是否处于工作状态

reg0=wcon; /写指令

void wrd(uchar wdat)

busy();

reg2=wdat;//写数据

void rdd()/读数据

busy();

dat=reg3;

void lcdint() 液晶的初始化指令。

电子实训作业文件

目录。实训安排。电子产品装配实训安排表1 基础技能。基本技能焊接工艺作业文件2 综合技能。项目组装任务分配表。任务一电子产品组装认识6 任务二元器件检测8 任务三元器件插装与焊接13 任务四调试与故障排除17 任务五整机调试报告20 任务六实训总结与体会23 实训评分24 实训规章制度。1 不迟到 ...

电子实训心得体会

电子实训是我进入大学以来的第二次实训,对于实训的大体框架有一定的了解和认知。但电子实训对我来说可谓是一个全新的领域,从来没有过这么近距离接触它的机会。因此,对于这次实训我充满了向往。带着无限的遐想和十足的激情,我开始走进了它。实训开始了,没有想象中那样紧锣密鼓,第一个整天全部用来查资料。这下使同学们...

电子实训心得体会

学院 机电工程学院。班级 机械116 学号 2011090304 姓名 王小文。一 光阴荏苒,岁月如梭,一个月的时光就这样匆匆从指间流逝。从开始接触电工电子实习,到自己制作网球状音响,一个月来受益匪浅 收获颇丰。电工电子实习的主要目的是培养学生的动手能力。对一些常用的电子设备有一个初步的了解,能够自...