当前位置:文档之家› 基于单片机的稳压电源设计原理说明

基于单片机的稳压电源设计原理说明

基于单片机的稳压电源设计原理说明
基于单片机的稳压电源设计原理说明

4 稳压电源设计

4.1 电路分析

稳压电路见图4-1所示。三极管射极电压是稳压电源的输出电压,可以接用电器或负载,这个电压值通过TLC549(A/D,同TLC548)数据转换后,送往单片机处理并显示。调整按键可以改变输入TLC5615(D/A,同TLC5616)的数据。TLC5615的输出电压通过运算放大器与实际输出取样电压比较,控制三极管的电压输出。稳压电路的电压输出接受单片机检测,同时又受单片机的控制。电路在仿真时,各点的电压都连接有电压表显示。

图 1 稳压电路

4.2 电路模块

一、A/D转换部分

TLC549 对输出电压进行采集,其操作如下:

(1)cs先为高电平。(cs为片选信号,为1时,输入脉i/o clock不起作用);

(2)clock = 0

(3)cs = 0;cs置底电平。同时date_out为高。(=1);

(4)延时1.4us。(setup time,cs low before first clock);

(5)开始转化数据。因为TLC549是8位串行模数转换器。需将8 位数据依次串行输出。期间,clock高低电平转化一次;

(6)8次数据转化之后。cs置1,片选无效。等待17us后读出数据。

二、D/A转换部分

TLC5615为10位D/A转换电路,其原理TLC5615的PDF文件。输出电压= (转换数值/1024)*2*基准电压

三、显示

采用数码管对A/D转换后的数据进行显示,因为TLC549 是8位A/D,程序中需要对转化的数据进行处理后才能在七段数码管上动态显示。TLC549的检测电压值范围为0~5V,A/D转换后数据位0~255,应该显示0~5,并且包含小数点部分。

四、按键操作部分

四个独立的按键主要是对DA 的输入数据进行操作的,ADD按键,SUB 按键这些按键在安下一次松开后便进行加1 的操作,若按键超过一定的时间则增加步长,使其数值能够快速增加,这样就不必要达到一个电压时,一直按几百次。SUB按键也是如此。至于那个预读取按键,主要是用于保存你要常用的电压值,这样一来你就可以在使用此电源时,不必要每次都要按键调整,可以通过读取AT24C04的值进行电压预置,保存按键,是用于保存你长使用的电压值,通过此次的电压值保存,使你可以快速达到你所要求的电压值。4.3 编程思路

程序分为键盘处理、D/A、A/D和存储四个模块。运用扫描法,对键盘进行扫描,有按键就更改输入TLC5615 的数值,ADD按键是对数据进行加以操做,长按的话使步进值增大,实现快加,SUB按键与ADD按键同,预读取按键用于读取AT24C04中预置的数值,保存按键用于保存当前电压值;显示部分主要是对TLC549采集回来的电压进行处理显示,它主要是在定时器0的中断服务程序中显示,100ms刷新显示一次;TLC5615模块,通过对dA的串行数据输入,使其在输出电压时可控,输出电压后经lm324,三极管,加上负载输出电压,输出电压后,用TLC549芯片100ms采集一次,送数码管显示。

4.5 程序清单

主函数:

#include

#include "intrins.h"

#include "AT24C04.h"

#define uchar unsigned char

#define uint unsigned int

uchar code LED[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar code Bit_sel[4] = {0x08,0x04,0x02,0x01 }; //各个数码管对应的位选数据

sbit DIO = P1^0; //数据线

sbit CS = P1^1; //片选

sbit CLK = P1^2; //io口时钟

sbit SCS = P1^4;

sbit SDATA = P1^5;

sbit SCLK = P1^3;

sbit ADD = P3^0;

sbit SUB = P3^1;

sbit Pre_read = P3^2;

sbit Store = P3^3;

uint qian,bai,shi,ge; //用于显示数码管的千,百,十,个等四位的显示

uint val,num; //val 是用于输入DA 的数据,num是用于判断是不是长按的

uint cp; //计数的变量

uchar key_stat;

uchar add_stat,sub_stat;

uchar st_flag,pre_flag;

void delay(uint x) //微妙级是延时函数

{

while(x--)

_nop_();

}

/**********************************************

函数名称:deal

函数作用:处理AD的返回值

函数参数:无

函数返回值:无

**********************************************/

void deal(uint num) //显示程序

{

qian=num/1000; //千,百,十,个处理

bai=num/100%10;

shi=num/10%10;

ge=num%10;

}

/**********************************************

函数名称:TL549_AD()

函数作用:返回AD的返回值

函数参数:无

函数返回值:data_ad

**********************************************/

uint TL549_AD() //TLC549处理

{

uchar i;

uint data_ad = 0;

CS = 1; //初始化,启动

CLK = 0;

CS = 0;

_nop_();

for(i = 0;i < 8;i++) //读取采集数据,读取的是上一次采集数据{

CLK = 1;

if(DIO)data_ad |= 0x01;

CLK = 0;

data_ad = data_ad << 1;

}

CS = 1;

data_ad = data_ad * (500/ 256);

return(data_ad);

}

/********************************************** 函数名称:TLC5615_DA(uint da)

函数作用:TLC5615_DA 将da转换后模拟输出

函数参数:da

函数返回值:无

**********************************************/

void TLC5615_DA(uint da) // TLC5615 的DA 转换函数

{

uchar i;

da<<=6;

SCS=0;

SCLK=0;

for (i=0;i<12;i++)

{

SDATA=(bit)(da&0x8000);

SCLK=1;

da<<=1;

SCLK=0;

}

SCS=1;

SCLK=0;

for (i=0;i<12;i++);

}

/********************************************** 函数名称:key_scan()

函数作用:处理那些独立键盘

函数参数:无

函数返回值:无

**********************************************/

void key_scan()

{

if (ADD == 0) // ADD 按键的键盘处理函数{

delay(10);

if (ADD == 0)

{

add_stat = 1;

num ++;

}

else

{

add_stat = 0;

num = 0;

}

//此处判断是不是长按,长按的话使其步进值加大

if (ADD == 0 && add_stat == 1 && num >= 300)

{

val += 5;

num = 0;

}

if (ADD == 1 && add_stat == 1)

{

val ++;

num = 0;

add_stat = 0;

}

if (val >= 1024)

{

val = 1023;

}

}

if (SUB == 0) //SUB 按键的键盘处理函数{

delay(10);

if (SUB == 0)

{

sub_stat = 1;

num ++;

}

if (SUB == 0 && sub_stat == 1 && num >= 300)

{

val -= 5;

num = 0;

}

if (SUB == 1 && sub_stat == 1)

{

val --;

num = 0;

sub_stat = 0;

}

if (val <= 0)

val = 0;

}

if (Pre_read == 0) //预读数据的键盘处理函数

{

delay(100);

if (Pre_read == 0)

{

pre_flag = 1;

}

if (Pre_read == 1 &&pre_flag == 1 )

{

pre_flag = 0;

val = read_24C04(20); //从AT24C04中的地址20 中读出预存储的数据

}

}

if (Store == 0) //保存数值按键的键盘处理函数

{

delay(100);

if (Store == 0)

{

st_flag = 1;

}

if (Store == 1 && st_flag == 1)

{

st_flag = 0;

write_24C04(20,val); //向AT24C04中的地址20 写入存储的数据

}

}

}

/**********************************************

函数名称:timer0_init (void)

函数作用:初始化定时器0,并设置

函数参数:无

函数返回值:无

**********************************************/

void timer0_init (void) // timer0中断初始化函数{

EA = 0;

TMOD = 0x01;

TR0 = 0;

TL0 = (65536-5000)%256; //设置计数器初值

TH0 = (65536-5000)/256;

PT0 = 1;

ET0 = 1;

EA = 1;

TR0 = 1;

}

/**********************************************

函数名称:main(void)

函数作用:main主函数入口

函数参数:无

函数返回值:无

**********************************************/

void main(void) //主程序

{

timer0_init(); //初始化定时器0

init_24C04(); //初始化A T24C04

while(1)

{

key_scan(); //调用键盘扫描函数

TLC5615_DA(val);//处理键盘发送过来的值

}

}

/**********************************************

函数名称:timer0_isr(void) interrupt 1

函数作用:定时器0,方式1,的中断服务子程序

函数参数:无

函数返回值:无

**********************************************/

void timer0_isr(void) interrupt 1 // timer0中断服务函数

{

//数码管的位选变量TR0 = 0; //停止计数

TL0 = (65536-5000)%256; //重新载入计数器初值

TH0 = (65536-5000)/256;

cp++; //位循环变量加1

if(cp >= 4)

cp = 0;

deal(TL549_AD()); //循环显示1次,j清零

TR0 = 1;

P0=0xff; //与j对应,P2输出数码管的位选信号

switch(cp)

{

case 0: P0 = LED[ge]; break;

case 1: P0 = LED[shi]; break;

case 2: P0 = LED[bai]&0x7f; break;

case 3: P0 = LED[qian]; break;

}

P2 = Bit_sel[cp];

}

AT24C04 的驱动:

#ifndef AT24C04_10_04_07

sbit ATCLK=P1^6;

sbit SDA=P1^7;

sbit a7=ACC^7;

sbit a6=ACC^6;

sbit a5=ACC^5;

sbit a4=ACC^4;

sbit a3=ACC^3;

sbit a2=ACC^2;

sbit a1=ACC^1;

sbit a0=ACC^0;

/*********************

*******24C04的初始化**

**** **************/

void init_24C04()

{

SDA=1;

_nop_();

ATCLK=1;

_nop_();

}

/*********************

****启动24C04*********

*******************/

void start_24C04()

{

SDA=1;

_nop_();

ATCLK=1;

_nop_();

SDA=0;

_nop_();

ATCLK=0;

_nop_();

}

/********************

*****停止24C04*******

*********************/

void stop_24C04()

{

SDA=0;

_nop_();

ATCLK=1;

_nop_();

SDA=1;

_nop_();

}

/*********************

****24C04应答*********

*******************/

void response()

{

unsigned char i;

ATCLK=1;

_nop_();

while((SDA==1)&&(i<250))i++;

ATCLK=0;

_nop_();

}

/********************

*****读取24C04一个字节**

**************************/

unsigned char read_byte()

{

SDA=1;

ATCLK=1;a7=SDA;ATCLK=0;

ATCLK=1;a6=SDA;ATCLK=0;

ATCLK=1;a5=SDA;ATCLK=0;

ATCLK=1;a4=SDA;ATCLK=0;

ATCLK=1;a3=SDA;ATCLK=0;

ATCLK=1;a2=SDA;ATCLK=0;

ATCLK=1;a1=SDA;ATCLK=0;

ATCLK=1;a0=SDA;ATCLK=0;

SDA=1;

ATCLK=0;

return ACC;

}

/*************************

**写入24C04一个字节******

*************************/

void write_byte(unsigned char addr)

{

ACC=addr;

SDA=a7;A TCLK=1;ATCLK=0;

SDA=a6;A TCLK=1;ATCLK=0;

SDA=a5;A TCLK=1;ATCLK=0;

SDA=a4;A TCLK=1;ATCLK=0;

SDA=a3;A TCLK=1;ATCLK=0;

SDA=a2;A TCLK=1;ATCLK=0;

SDA=a1;A TCLK=1;ATCLK=0;

SDA=a0;A TCLK=1;ATCLK=0;

SDA=1;

ATCLK=0;

}

/***********************

**写24C04的数据*******

*****************/

void write_24C04(unsigned char addr,unsigned char dat) {

start_24C04();

write_byte(0xa0);

response();

write_byte(addr);

response();

write_byte(dat);

response();

stop_24C04();

}

/**********************

***读24C04的数据*******

*****************/

unsigned char read_24C04(unsigned char addr) {

unsigned char t;

start_24C04();

write_byte(0xa0);

response();

write_byte(addr);

response();

start_24C04();

write_byte(0xa1);

response();

t=read_byte();

stop_24C04();

return t;

}

#endif

单片机教程详细图解-新华龙单片机学习教程

新华龙单片机学习入门教程基于本人学习单片机的痛苦经历,特编写本教程,以此献给广大的单片机初学者,希望您能从中受益。 单片机老鸟寄语:本教程乃最通俗易懂之单片机教材也,如果您还是看不懂,请千万不要涉足此行,以免误入歧途,耽误您的前程*_* 拿到这本教程您首先就会想,什么是 IAP 教学法?是不是一种什么全新的教学方法?当然不是,我可没有那么大的本事,其实这只是我杜撰的一个新名词,意思就是In Applications Program(在应用中编程),当然这只是针对单片机教学,说法是否正确,还得您说了算。 至于为什么要提这种说法,那我倒想说几句。大家都知道,学习电子技术是一件非常无聊和枯燥的事情,为什么会有这种想法,就是因为我们传统的教学方法只重理论而忽略了实践,要一个人记住那些空洞而有无聊的理论知识实在不是一件容易的事,好在我们总算熬过来了,不管如何,也多多少少的学习了一些电子基础知识。 接下来我们应该进一步掌握些什么知识呢,凡涉足此行的朋友都知道,那就是单片机。不过这可不是一件容易的事,倒不是因为单片机很难学,而实在是我们身边很难找到一本专为单片机入门者而编写的教材。翻一下传统的单片机教材,都好象是为已经懂单片机的人而写的,一般总是以单片机的结构为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(随便说一点:很多书中的实例都是有错误的),很少涉及单片机的基础知识,如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能,几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把它全部掌握了再去做产品开发(当然天才就例外了*_*)。 基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法。 如果您学完了就能成为单片机的入门者,完全可以进行一般产品的开发;下册部分是单片机应用的提高部分,主要学习单片机的系统扩展(比如:ROM 和RAM 存储器的扩展,并行口的扩展,串行口的扩展,A/D 和D/A 与单片机的接口)以及相关开发工具和软件的使用(包括KELL C51 的应用与调试技巧,硬件仿真器的使用)等等,如果您学完了下册部分,那就得恭喜您成为了单片机开发的高手了,不过单片机的技术是在不断的发展和提高的,您也不要太骄傲哦! 为了尽量把最新的单片机知识和应用成果收录进我们的教程,希望您能不吝赐教,共同来努力把我们的教程不断的改进和完善。还是那句题外话,技术是靠不断的积累和交流才会进步的,固封自守只会更加落后。 由于时间和精力的限制,我还是希望在您学习本教程之前,自己先熟悉一点相关的电子技术知识,特别是数字电路基础,这对您学习中碰到的相关概念会有很大的帮助。

基于单片机的智能稳压电源设计

基于单片机的智能稳压电源的设计 摘要 本文介绍了一种基于单片机的智能稳压电源的设计方案,其核心技术是通过单片机控制数模转换来改变其后的稳压模块的输出。该系统由整流滤波初步稳压部分、单片机控制部分、DAC和显示部分组成,该稳压电源能连续步进可调,并且可实时显示,弥补了传统稳压电源的不足。 关键词:单片机,稳压电源,连续步进可调,DAC

Design of Intelligent Power Supply Based on MCU This paper introduces a single-chip microcomputer-based Intelligent Power Supply Design program, its core technology through the MCU to control digital-to-analog converters to change the voltage regulator module subsequent output. The system consists of rectifier filter preliminary regulator of the MCU control of the DAC and display components, the power supply can be continuously adjustable stepper, and can be real-time display, made up for the shortcomings of traditional voltage regulator power supply. Key words:MCU,Regulated Power Supply,Stepping and adjustable row,DAC

单片机原理及应用 设计报告

单片机设计报告 编写:HUBU2015级通信工程xmx 2017年5月23日 一、设计的目的与要求 利用8*8LED点阵动态显示汉字的字样。采用STC89C52单片机作为整个控制搭电路的核心,并编制软件程序,实现汉字的显示。通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。 1、设计一个8*8点阵LED电子显示屏。 2、要求在目测条件下LED显示屏各点亮度均匀、充足,可显示一个“大”字。 二、总体方案设计 2.1 硬件电路的总体设计 1、设计总体框图 硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。 2、工作原理 由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,P1口控制列,通过软件编程,即可实现汉字的显示。

3、元器件清单 2.2系统软件的设计 软件程序主要由开始、初始化、主程序、字库和延时子程序组成。 三、系统硬件电路的具体设计 3.1 时钟电路 STC89C52单片机内部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。STC89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。

内部时钟方式:利用其内部的振荡电路在X1和X2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4所示电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF 左右 3.2 复位电路 单片机在启动运行时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。本设计中采用按键复位电路,上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1选择10KΩ左右的电阻,电容器一般选择10μF。 3.3显示电路的设计 本次设计中采用8*8点阵LED显示器,简称LED点阵板或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种。设计中用到的是“列共阳,行共阴”,即“列用高电平控制,行用低电平控制”。图中画

单片机原理及应用设计(胡辉主编)

第 第第 第6 66 6章 章章 章 单片机的定时器 单片机的定时器单片机的定时器 单片机的定时器/ // /计数器 计数器计数器 计数器 习题 习题习题 习题 1.MCS-51系列的8051单片机内有几个定时/计数器?每个定时/计数器有几种 工作方式?如何选择? 答:MCS-51系列的8051单片机内有2个定时/计数器,即T0和T1,每个都可以编程为定时器或计数器,T0有四种工作方式(方式0—13位、方式1—16位、方 式2-可自动装入初值的8位、方式3-两个8位),T1有三种工作方式(与T0相 同的前三种),通过对TMOD的设置选择,其高四位选择T1,低四位选择T0。2.如果采用的晶振频率为3MHz,定时/计数器TO分别工作在方式0、1和2下,其最大的定时时间各为多少? 答:如果采用的晶振频率为3MHz,机器周期为12×1/(3*106)=4us,由于定时/ 计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256 所以,其最大定时时间分别是:方式0为8192×4us=32.768ms、方式1为65536 ×4us=262.144ms、方式2为256×4us=1024us。 3.定时/计数器TO作为计数器使用时,其计数频率不能超过晶振频率的多少?答:由于定时/计数器TO作为计数器使用时,是对外部引脚输入的脉冲进行计数,CPU在每个机器周期采样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率为fosc,则其采样频率fosc/12,两次采样才能决定一次计数有效,所以计数频率不能超过fosc/24。 4.简单说明定时/计数器在不同工作模式下的特点。 答:方式0为13位的定时/计数器,由THx的8位和TLx的低5位构成、方式1 为16位的定时/计数器,由THx的8位和TLx的8位构成,方式2为8位的定时/ 计数器,TLx为加1计数器,THx为计数初值寄存器。方式3只能用于T0,是将 T0的低8位用作一个独立的定时/计数器,而高8位的TH0用作一个独立的定时

基于单片机的智能稳压电源设计

基于单片机的智能稳压电源设计 摘要 本智能稳压电源利用16位单片机SPCE061A为控制核心,可预置输出电压值并显示在液晶显示模块(LCD)上,通过其内置的A/D输出对PWM进行调制,再控制大功率开关管导通,再经过滤波输出。同时通过采样电路将实际输出值反馈到单片机中构成闭环系统,进行比较、调整,提高了电源的输出精度。输出电压范围为0.01v~10v,而且可以步进调整输出的电压值。 关键词:智能;单片机;PWM调制;稳压电源 Design of Smart Power Supply Based on SCM Wu Renjie (College of Physics Science and Information Engineering, Jishou University, Jishou,Hunan 416000) Abstract The 16 Bit SCM SPCE061A was used as the control unit in this design, the output voltage value can be protested form the keyboard and displayed it on the LCD module .At the same time, its built-in A / D converter moderate the output as pulse width moderation(pwm), and switch on the output, after that output through a filter . At the same time the circuit would sample the actual output value and feedback the output to the SCM’s input system, after comparing and adjusting to improve the output accuracy. Output voltage range from 0.01 v to 10v, it can also stepping adjust the output voltage value. Key words:intelligent;SCM;PWM modulation;power supply 目录

单片机原理及应用课程简介

《传感器原理及应用》课程简介 传感器是获取自然科学领域信息的主要途径和手段。在现代测控系统中,作为关键环节的传感器处于连接被测控对象和测控系统的接口位置,该课程涉及机械、动力、物理、化学、光学、材料、电子、生物、半导体、信息处理等众多学科领域,应用领域十分广泛,与当前多学科交叉融合的趋势相一致,在专业课程体系中起到重要的承上启下作用,从本课程开始奠定工程设计与应用思想、创新实践能力和创新思维能力基础,在现代高素质专业人才培养中所起的重要作用是不言而喻的。通过本课程的学习学生应掌握以下几方面的知识: (1)测量的基本知识。 (2)各种常用传感器的结构,原理,特性及应用。 (3)工程检测中常用的测量电路及工作原理。 (4)传感器的静,动态特性及其标定方法。 《单片机实用系统设计》课程简介 《单片机实用系统设计》是电子科学与技术专业、电子信息工程技术专业和电气自动化技术专业的一门专业课,是现代电子工程领域一门飞速发展的技术,其在教学及产业界的技术推广仍然是当今科学技术发展的热点。学习单片机并掌握其设计应用技术已经成为电子类学生必须掌握的一门技术,也是现代工科学生就业的一个基本条件。它的后续课程是各专业课如:计算机控制、智能化仪器仪表、数控机床、课程设计、毕业设计,一般都要应用到单片机系统的应用。它可以充分体现学生利用自己所掌握的知识解决实际工程问题的能力。单片机知识在电子类专业整个课程体系中处于承上启下的核心地位。 通过本课程的学习,使学生能更深刻地领会和掌握单片机应用系统设计的基本理论、基本知识与基本技能,掌握单片机应用系统各主要资源的设计、单片机C语言编程方法和调试方法,了解单片机在测量、控制等电子技术应用领域的应用。利用所学知识,独立设计电路、布局印刷电路板、设计应用软件和系统软件、亲自焊接元器件、亲自调试系统。培养学生实

基于单片机的稳压电源设计原理说明

4 稳压电源设计 4.1 电路分析 稳压电路见图4-1所示。三极管射极电压是稳压电源的输出电压,可以接用电器或负载,这个电压值通过TLC549(A/D,同TLC548)数据转换后,送往单片机处理并显示。调整按键可以改变输入TLC5615(D/A,同TLC5616)的数据。TLC5615的输出电压通过运算放大器与实际输出取样电压比较,控制三极管的电压输出。稳压电路的电压输出接受单片机检测,同时又受单片机的控制。电路在仿真时,各点的电压都连接有电压表显示。 图 1 稳压电路 4.2 电路模块 一、A/D转换部分 TLC549 对输出电压进行采集,其操作如下: (1)cs先为高电平。(cs为片选信号,为1时,输入脉i/o clock不起作用); (2)clock = 0 (3)cs = 0;cs置底电平。同时date_out为高。(=1); (4)延时1.4us。(setup time,cs low before first clock); (5)开始转化数据。因为TLC549是8位串行模数转换器。需将8 位数据依次串行输出。期间,clock高低电平转化一次; (6)8次数据转化之后。cs置1,片选无效。等待17us后读出数据。 二、D/A转换部分 TLC5615为10位D/A转换电路,其原理TLC5615的PDF文件。输出电压= (转换数值/1024)*2*基准电压

三、显示 采用数码管对A/D转换后的数据进行显示,因为TLC549 是8位A/D,程序中需要对转化的数据进行处理后才能在七段数码管上动态显示。TLC549的检测电压值范围为0~5V,A/D转换后数据位0~255,应该显示0~5,并且包含小数点部分。 四、按键操作部分 四个独立的按键主要是对DA 的输入数据进行操作的,ADD按键,SUB 按键这些按键在安下一次松开后便进行加1 的操作,若按键超过一定的时间则增加步长,使其数值能够快速增加,这样就不必要达到一个电压时,一直按几百次。SUB按键也是如此。至于那个预读取按键,主要是用于保存你要常用的电压值,这样一来你就可以在使用此电源时,不必要每次都要按键调整,可以通过读取AT24C04的值进行电压预置,保存按键,是用于保存你长使用的电压值,通过此次的电压值保存,使你可以快速达到你所要求的电压值。4.3 编程思路 程序分为键盘处理、D/A、A/D和存储四个模块。运用扫描法,对键盘进行扫描,有按键就更改输入TLC5615 的数值,ADD按键是对数据进行加以操做,长按的话使步进值增大,实现快加,SUB按键与ADD按键同,预读取按键用于读取AT24C04中预置的数值,保存按键用于保存当前电压值;显示部分主要是对TLC549采集回来的电压进行处理显示,它主要是在定时器0的中断服务程序中显示,100ms刷新显示一次;TLC5615模块,通过对dA的串行数据输入,使其在输出电压时可控,输出电压后经lm324,三极管,加上负载输出电压,输出电压后,用TLC549芯片100ms采集一次,送数码管显示。 4.5 程序清单 主函数: #include #include "intrins.h" #include "AT24C04.h" #define uchar unsigned char #define uint unsigned int uchar code LED[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code Bit_sel[4] = {0x08,0x04,0x02,0x01 }; //各个数码管对应的位选数据 sbit DIO = P1^0; //数据线 sbit CS = P1^1; //片选 sbit CLK = P1^2; //io口时钟 sbit SCS = P1^4; sbit SDATA = P1^5; sbit SCLK = P1^3; sbit ADD = P3^0; sbit SUB = P3^1; sbit Pre_read = P3^2; sbit Store = P3^3;

基于单片机的数控直流稳压电源

基于单片机的数控直流稳压电源 一、引言 (1)题目要求: 利用LM317三端稳压器,设计制作一个数控稳压电源,要求: 1、输出电压:2-15V,步进0.1V,纹波≤10mV; 2、输出电流0.5A; 3、输出电压值由数码管显示,由“+”、“-”键分别控制输出电压的步进 (2)概况:直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如 1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压源的缺点,具有很高的应用价值。 二、系统设计 (1)方案论证: 方案:采用单片机控制此方案采用 AT89C51单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值。这里主要利用单片机程控输出数字信号,经过 D /A 转换器( DA0832)输出模拟量,然后使用运算放大器把电

流转换成电压,在通过三段稳压器LM317使得输出电压和输出电流达到稳压的目的。 方案论证: 1、输出模块:使用运算放大器做前级的运算放大器,由于运算放大 器具有很大的电源电压抑制比,可以减少输出端的纹波电压。使用LM317做电流稳压器,把电流稳定到0.5A。 2、数控模块:采用AT89C51单片机完成整个数控部分的功能,同 时,AT89C51作为一个智能化的可编程器件,便于系统功能的扩展。 3、显示模块:本来准备使用液晶显示,可是想想我们的层次不够, 液晶现实的额程序不会写,只能退而其次,选择使用单片机通过锁存器控制8段LED数码管直接显示,这样可以精确的显示输出电压。 (2)系统结构: 系统结构设计图如上图所示。该系统主要由单片机最小控制系统、显示电路、独立按键、D/A转换电路、放大电路和稳压电路组成。单片机设定预输出值,并可以通过独立键盘改变单片机的预设值。然后通过DAC0832转化为模拟量,再经过运算放大和稳压稳流电路最后输出预设电压值,通过LED显示能够直观的看到预设值。因为器材原因,我们设计的稳压电源采用的是外部稳压器提供的电源。这样虽然算不上是一个完整的数控直流稳压电源,但是,除了这点,我们设计的电源基本已经复合要求。

《单片机应用设计-基于单片机的433M无线通信系统》廖永斌

课程设计 题目基于单片机的433M无线通信系统学院 专业 班级 姓名 指导教师 2018年 1月 13日

《单片机应用设计》任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于单片机的433M无线通信系统 课程设计目的: 1、熟悉单片机应用系统的硬件设计及软件设计的基本方法; 2、将《单片机原理与应用》理论课的理论知识应用于实际的应用系统中; 3、训练单片机应用技术,锻炼实际动手能力 4、提高正确地撰写论文的基本能力。 课程设计内容和要求 1、完成硬件电路的设计,其中包括单片机和CC1101模块的设计; 2、完成无线通信模块的程序设计与实现,上机运行调试程序,记录实验结果(如图表等), 并对实验结果进行分析和总结; 3、课程设计报告书按学校统一规范来撰写,报告主要包括以下内容:目录、摘要、关键 词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论献等; 4、查阅不少于6篇参考文献。 初始条件: 1、STC89C52和CC1100H模块; 2、先修课程:单片机原理与应用。 时间安排: 第19周,安排设计任务,完成硬件设计; 第20周,完成软件设计、撰写报告,答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (Ⅰ) Abstract (Ⅱ) 1基本原理 (1) 1.1无线通信系统 (1) 1.2芯片简介 (1) 1.2.1单片机STC89C52 (1) 1.2.2 无线通信CC1101芯片 (3) 2方案论证与设计 (5) 2.1无线通信模块选择 (5) 2.2 单片机最小系统选择 (5) 2.3整体方案设计 (6) 3 硬件电路设计 (6) 4软件程序设计 (8) 4.1发送端编程 (8) 4.2接收端编程 (9) 4.3程序调试与下载 (10) 5硬件仿真 (12) 6实物制作与调试 (12) 6.1 STC89C52单片机最小系统 (12) 6.2无线通信模块CC1101 (13) 6.3稳压电路模块 (13) 7心得体会 (15) 8参考文献 (16) 附录 (17)

单片机原理及应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机原理及应用系统设计课后参考答案

0001 0001 0736 0361 JK3Q HDJ3 单片机课后部分参考答案 P59第三章 9、(A)=70H (R0)=58H (40H)=58H (58H)=70H 10、 12、(1) MOV R2,70H (2) MOV A, R1 MOV R2,A (3) MOV DPTR,#1234H MOVX A,@DPTR MOV 70H,A (4) MOV DPTR,#2000H MOV A,#00H MOVC A,@A+DPTR MOV R4,A (5) MOV DPTR,#2000H CLR A MOVC A,@A+DPTR MOV DPTR,#1234H MOVX @DPTR,A 13、XCH A,50H ;(A)=87H (50H)=35H PUSH 50H POP ACC ;(A)=35H MOV A,#12H ;(A)=12H XCHD A,@R1 ;(A)=15H (50H)=32H 15、MOV A,#34H MOV R0,#9AH ADD A,R0 MOV R3,A MOV A,#12H MOV R0,#78H ADDC A,R0 MOV R2,A 16、CLR C MOV A,#78H

MOV R1,#3FH SUBB A,R1 MOV R3,A MOV A,#56H MOV R1,#20H SUBB A,R1 MOV R2,A 17、(1)将(30H)+(31H)的和存于32H单元中,将进位CY存于33H单元中 (2)(30)=35H (31H)=50H (32H)=85H (A)=00H CY=0 (33H)=0 21、(A)=8FH (R0)=25H (25H)=60H P77 第五章 7、SETB EX0 SETB ET1 SETB ES SETB EA SETB PS 11、允许的中断源有:外部0中断、定时器T0中断、外部1中断、串行口中断 优先级(从高到低):外部0中断、串行口中断、定时器T0中断、外部1中断、定时 器T1中断 P87第六章 7、用定时器T1的工作方式1时,定时初值为: (M-X)×T=t (65536-X)×2×10-6=100×10-3 X=15536=3CB0H 8、晶振12MHZ ;选择T0为定时器,工作方式1;选择T1为计数器,工作方式2 T0定时初值X0=65536-10×10-3/10-6 =55536=0D8F0H (TH0)=0D8H (TL0)=0F0H T1计数初值X1=256-100=156=9CH (TH1)=(TL0)=9CH 程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INT ORG 0030H MAIN: SETB P1.1 MOV TMOD , #61H

单片机原理及应用与C51程序设计(第三版)第2章作业

习题 1.MCS-51单片机由哪几个部分组成? 答:MCS-51单片机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。 2.MCS-51的标志寄存器有多少位,各位的含义是什么? 答:MCS-51的标志寄存器PSW有8位; 6 5 D 4 D 3 2 1 0 C 0 R S1 R S0 V 含义如下: C(PSW.7):进位或借位标志位。 AC(PSW.6):辅助进位或借位可标志位。 F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位。 RS1、RS0(PSW.4、PSW.3):寄存器组选择位。可用软件置位或清零,用于从四组工作寄存器中选定当前的工作寄存器组。 OV(PSW.2):溢出标志位。在加法或减法运算时,如运算的结果超出8位二进制数的范围,则OV置1,标志溢出,否则OV清零。 P(PSW.0):奇偶标志位。用于记录指令执行后累加器A中1的个数的奇偶性。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P 清零。 其中PSW.1未定义,可供用户使用。 3.在8051的存储器结构中,内部数据存储器可分为几个区域?各有什么特点? 答:片内数据存储器按功能可以分成以下几个部分:工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包含堆栈区。工作寄存器组区,00H~1FH单元,可用R0~R7等8个寄存器访问;位寻址区,20H~2FH单元,可按位方式访问;一般RAM区,30H~7FH单元;堆栈区,可从08到7F单元;特殊功能寄存器区位于80H~FFH单元。 4.什么是堆栈?说明MCS-51单片机的堆栈处理过程。 答:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。CS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位的。入栈时,SP指针的内容先自动加1,然后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,然后再把SP指针的内容自动减1。 5.简述内部ROM的工作寄存器组情况,系统默认是第几组?

清华大学毕业设计论文—基于51单片机的数控直流稳压电源(含批注)

信息科学与技术学院 电子工程系 2014届毕业论文设计 题目基于51单片机的数控直流稳压电源专业电子工程 学生姓名黄丽 学号 1058402106 指导教师张芳铭 论文字数 完成日期

数控直流稳压电源就是能用数字来控制电源输出电压的大小,而且能使输出的直流电压能保持稳定、精确的直流电压源。本文介绍了利用D/A转换电路、辅助电源电路、去抖电路等组成的数控稳压电源电路,详述了电源的基本电路结构和控制策略。它与传统的稳压电源相比,具有操作方便,电压稳定度高的特点,其结构简单、制作方便、成本低,输出电压在1-10V之间连续可调,其输出电压大小以0.5V步进,输出电压的大小调节是通过“ ”、“-”两个键操作的,而且可以根据实际要求组成具有不同的输出电压值的稳压源电路。该电源控制电路选用89C51单片机控制主电路采用串联调整稳压技术具有线路简单、响应迅速、稳定性好、效率高等特点。 关键词:稳压电源、单片微型机;数控直流、D/A转换;

第一章绪论 (4) 1.1数控直流稳压电源的产生背景 (4) 1.2系统开发的意义 (5) 1.3系统主要功能 (6) 1.4研究中拟解决的主要问题 ........................................... 错误!未定义书签。第二章系统总体方案设计 ....................................................... 错误!未定义书签。 2.1系统概述........................................................................ 错误!未定义书签。 2.2系统整体概述................................................................ 错误!未定义书签。 2.2.1控制部分.............................................................. 错误!未定义书签。 2.2.2显示部分.............................................................. 错误!未定义书签。 2.2.3 键盘接口部分..................................................... 错误!未定义书签。 2.2.4 电源部分............................................................. 错误!未定义书签。 2.2.5 其它电路部分..................................................... 错误!未定义书签。第三章系统硬件电路设计 ....................................................... 错误!未定义书签。 3.1单片机主控电路设计 ................................................... 错误!未定义书签。 3.2显示电路 ....................................................................... 错误!未定义书签。 3.3按键电路 ....................................................................... 错误!未定义书签。 3.4电源电路 ....................................................................... 错误!未定义书签。 3.5系统时钟及复位电路 ................................................... 错误!未定义书签。 3.6系统总电路 ................................................................... 错误!未定义书签。第四章系统软件设计 ............................................................... 错误!未定义书签。 4.1主程序 ........................................................................... 错误!未定义书签。第五章组装与调试 ................................................................... 错误!未定义书签。 5.1硬件电路的布线与焊接................................................ 错误!未定义书签。 5.2电路组装和调试............................................................ 错误!未定义书签。结束语 ......................................................................................... 错误!未定义书签。参考文献 ..................................................................................... 错误!未定义书签。致谢 ........................................................................................... 错误!未定义书签。附录 ........................................................................................... 错误!未定义书签。

【单片机原理与应用】课程教学总体设计

高等职业技术教育 《单片机原理与应用》课程教学总体设计 课程名称:《单片机原理与应用》课程编码:051071 适用专业:电气自动化技术 学时数:84其中:理论教学学时:54课内实训学时:30制定人:审核人: 一、课程基本信息 二、教学设计 (一)学习基础分析 (二)学习目标 (三)教学内容(含作业设计) (四)教学方法 三、考核与评价 (一)考核方式及成绩评定标准 (二)学习效果评价 四、其他 (一)参考教材、讲义、设备、网络等教学 资源 (二)其它需要说明事项 机电工程系 2008年8月18日

一、课程基本信息 1.课程名称:单片机原理与应用 2.课程类别:专业核心课 3.课程编码:051071 4.学时:84学时(理论教学54学时,课内实训30学时) 5.适应专业:电气自动化技术专业、电力系统设备及自动化方向专业 二、教学设计 (一)学习基础分析 高等数学、物理基础知识; 已经掌握电工技术、电子技术、低压电气设备、电机拖动技术、传感器技术、自动控制原理等相关内容与技能。 (二)学习目标 1.正确理解、学会使用MCS-51单片机。 2.理解并掌握MCS-51单片机的硬件结构和原理。 3.熟练使用MCS-51单片机的指令。 4.掌握MCS-51单片机的中断和定时系统。 5. 熟悉MCS-51单片机的系统扩展原理及方法。 6. 能熟练的应用MCS-51单片机指令编写简单的单片机程序。 7. 能跟据控制要求设计单片机控制系统,进行系统软硬件调试。 8.熟悉MCS-51单片机的开发环境。 (三)教学内容(含作业设计) 模块一:公共基础模块 教学内容实训与作业设计 ●微型计算机基础; ●单片机概述; ●计算机的数制与编码;●微型计算机的组成; ●单片机的主要特点; ●数制及其转换; ●作业1:通过搜集各种资料简述你所了解的微型计算机的应用领域; ●作业2:与同学们讨论:同一般的微型计算机相比,单片机具有哪些主要特点?应用在哪里?

基于单片机的直流稳压电源的设计设计

基于单片机的直流稳压电源的设计设计

毕业设计论文 基于单片机的直流稳压电源的设计

摘要 直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的直流稳压电源几乎都是用旋纽开关调节电压,调节精度不高、难控制、体积大、结构复杂,而且经常跳变,使用麻烦。 将单片机数字控制技术融入直流稳压电源的设计中,设计出的数字化直流稳压电源具有数码显示、数字输入调压、电压调节精度高的特点。而且通过软件编程,易于实现功能的扩展。数控电源目前的发展,主要朝着更高的数控精度和分辨率及更好的动态特性;更好的环保性能;智能化与高可靠性;更广泛的应用方向发展。 本设计利用AT89S51作为主控芯片,控制数模转换模块DAC0832的输出电压,通过运算放大器OPA552放大输出。设置四个按键,来实现电压的增减,并带有数码显示模块。可以达到每步0.1V的精度,输出电压范围0~15V,电流可以达到200mA。 关键词:数控电源;AT89S51;DAC0832;OPA552

Abstract Direct current voltage-stabilized power supply is one of the commonly used equipment in electronic technology. It’s widely used in teaching, researching and other fields.Most of the traditional direct current voltage-stabilized power supply use the knob switch to adjust the voltage.It has the trouble of low-precision and difficult to control. The structure is complex and the volume is large. The numerical control technique of single chip microcomputer is adopted in the design of direct current voltage-stabilized power supply for a digitalized.Having numeral display,the direct current power can adjust voltage programmably and differentiate voltage precisely.Moreover,it’s easy to have its function enlarged through the programmer.Numerical control direct current voltage-stabilized power supply mainly toward to high-precision,high-resolution,better dynamic characteristics,better environmental performance,intelligent,high reliability and wider application direction. In this design,using the AT89S51 as main module to control the output voltage of DAC0832. The voltage is magnified by amplifier OPA552. In this system, the step of voltage is control by four keys, and the display module is also designed.The step precision is 0.1V,the output voltage is range from 0V to 15V and the current is up to 200mA. Key words: Numerical control power;AT89S51;DAC0832;OPA552

相关主题
文本预览
相关文档 最新文档