论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 中国论文网 >> 工科论文 >> 电力电气论文 >> 正文 会员中心
 通信学论文   交通运输论文   工业设计论文   环境工程论文   电力电气论文   水利工程论文   材料工程论文   建筑工程论文   化学工程论文
 机械工程论文   电子信息工程论文   建筑期刊   工科综合论文   汽车制造
数控直流稳压电源论

                       作者:谢明亮 马学强 苏向阳

  论文关键词: 直流稳压电源 单片机 数字控制

  论文摘要:本系统以直流电压源为核心,at89s52单片机为主控制器,通过键盘来设置直流电源的输出电压,设置步进等级可达0.1v,输出电压范围为0—9.9v,最大电流为330ma,并可由液晶屏显示实际输出电压值。系统有过流保护电路,当输出电流过大时功率管自动截至,而且有红色指示灯发出警报。本系统由单片机程控输出数字信号,经过d/a转换器(ad0832)输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电压。实际测试结果表明,本系统实际应用于需要高稳定度小功率恒压源的领域。

  keywords: regulated power supply of direct current; single2ch ip m icrocomputer, digital control


  abstract:this system to dc voltage source as the core, mainly at89s52 scm, through the keyboard controller to install dc power supply output voltage, setting stepping class can reach.01v output voltage, the range of 0-9.9 v, the maximum current 330ma for, and can show the actual pipe by digital output voltage values. this system consists of microcontroller program output digital signal, through d/a converter (ad0832) output analog amplifier, through isolating amplifier output power, control of base, with the power to change the passive tube voltage output of different voltage. test results show that this system application in need of high stability of small power constant-voltage source fields.

  1 引言

  几乎所有的电子设备都需要稳定的直流电源,因此直流稳压电源的应用非常的广泛。Www.11665.cOm 直流稳压电源的电路形式有很多种,有串联型、开关型、集成电路、稳压管直流稳压电源等等。在电子设备中,直流稳压电源的故障率是最高的(长期工作在大电流和大电压下,电子元器件很容易损坏)但在直流稳压电源中,通过整流、滤波电路所获得的直流电源的电压往往是不稳定的。输出电压在电网电压波动或负载电流变化时也会随之有所改变。电子设备电源电压的不稳定,将会引起很多问题。设计出质量优良的直流稳压电源,才能满足各种电子线路的要求。因此,直流稳压电源的研究就颇为重要。目前产生直流稳压电源的方法大致分为两种:一种是模拟方法,另一种是数字方法。前者的电路均采用模拟电路控制,而后者则是通过数字电路进行自动控制。直流稳压电源朝着数字化方向发展。因此对于数控恒压源的研究是必要的。随着科学技术飞速发展,对电源可靠性、输出精度和稳定性要求越来越高,利用d/ a 转换器的高分辨率和单片机的自动检测技术设计程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且可以任意设定输出电压或电流,所有功能由面板上的键盘控制单片机实现,给电路实验带来极大的方便,提高了工作效率。

  2 系统方案论证与比较

  方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用cpld等可编程逻辑器件。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。

  方案二:采用at89s52单片机作为整机的控制单元,通过改变dac0832的输入数字量来改变输出电压值,从而使输出功率管的基极电压发生变化,间接地改变输出电压的大小。为了能够使系统具备检测实际输出电压值的大小,可以将输出电压经过adc0832进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。此系统比较灵活,采用软件方法来解决数据的预置以及电压的步进控制,使系统硬件更加简洁,各类功能易于实现,能很好地满足题目的要求。

  比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,能达到题目的设计要求,因此采用方案二来实现。

  3 总体方案框图

  系统总体方案框图如图1所示:


                     图1  系统原理框图


  4 系统部分功能设计

  4.1 稳压输出部分

  4.1.1 稳压输出原理与电路

  这部分将数控部分送来的电压控制字转换成稳定电压输出。d/a转换部分的输出电压作为稳压输出电路的参考电压。稳压输出电路的输出与参考电压成比例。稳压输出电路采用的是串联式反馈稳压电路(如图2),在电路中,q1—tip122为调整管,u6a—lm358 为比较放大器,r19、r22组成反馈网络。d/a转换电路的输出电压daout接到 u6a 的同向端,稳压电源的输出经r19、r22组成的取样电路分压后送到运放u6a的反向端,经运放比较放大后,驱动调整管q1。路平衡时,d/a电路的输出电压 与取样后的电压 相等。

  稳压输出部分的过流保护电路由r21和q2组成。设 为保护动作电流,则当电源输出电流i增加到 时,r21上的压降 *r21使得q2管导通,分掉了q1上的基极电流,使输出i不再增加,起到了过流保护作用。

               图2   稳压输出部分


  4.1.2 稳压输出部分仿真图


                   图3   稳压电路仿真图


  一般的直流稳压电源是用可变电阻来实现输出电压的调节,那么要在直流稳压电源的基础上实现数字控制的话,实际上很简单,我们只要将可变电阻换成数字控制部分来代替,就能实现数控恒压源这一课题。所以,首先要做的,就是选择合适的稳压输出电路并对其可行性进行了仿真。如图9,很容易就验证了此稳压输出电路的可靠。

  4.2数字控制部分

  4.2.1 单片机部分

               图4  单片机控制部分


  控制部分是系统整机协调工作和智能化管理的核心部分,采用at89s52单片机实现控制功能是其关键,采用单片机不但方便监控,并且大大减少硬件设计。


  4.2.2 d/a转换部分

  系统设置d/a转换接口,采用8位模数转换器dac0832。其电路如图5.

             图5  d/a转换部分


  d/a转换部分的输出电压作为稳压输出电路的参考电压。稳压输出电路的输出与参考电压成比例。8位字长的d/a转换器具有256种状态。当电压控制字从0,1,2,……到256时,电源输出电压为0.0,0.06,……15.0。

  其时序图如图6:

             图6 dac0832数模转换时序图


  clk为时钟端,data为输入数据,load为输入控制信号。

  每路电压输出值的计算:

          

  ref为参考电压,data为输入8位的比特数据;

  我们这里用的ref=5v;


  4.2.3 a/d转换部分

  a/d转换部分我们采用美国国家半导体公司生产的一种8 位分辨率、双通道a/d转换芯片adc0832。其电路图如图7所示:

图7  a/d转换部分


  adc0832 是美国国家半导体公司生产的一种8 位分辨率、双通道a/d转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用adc0832 可是使我们了解a/d转换器的原理,有助于我们单片机技术水平的提高。

  4.2.3.1 adc0832 具有以下特点:

  · 8位分辨率;

  · 双通道a/d转换;

  · 输入输出电平与ttl/cmos相兼容;

  · 5v电源供电时输入电压在0~5v之间;

  · 工作频率为250khz,转换时间为32μs;

  · 一般功耗仅为15mw;

  · 8p、14p—dip(双列直插)、picc 多种封装;

  · 商用级芯片温宽为0°c to +70°c,工业级芯片温宽为−40°c to +85°c;


  4.2.3.2 芯片接口说明:

  · cs_ 片选使能,低电平芯片使能。

  · ch0 模拟输入通道0,或作为in+/-使用。

  · ch1 模拟输入通道1,或作为in+/-使用。

  · gnd 芯片参考0 电位(地)。

  · di 数据信号输入,选择通道控制。

  · do 数据信号输出,转换数据输出。

  · clk 芯片时钟输入。

  · vcc/ref 电源输入及参考电压输入(复用)。

    adc0832 为8位分辨率a/d转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5v之间。芯片转换时间仅为32μs,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过di 数据输入端,可以轻易的实现通道功能的选择。


  4.2.3.3  单片机对adc0832 的控制原理:

  正常情况下adc0832 与单片机的接口应为4条数据线,分别是cs、clk、do、di。但由于do端与di端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将do和di 并联在一根数据线上使用。当adc0832未工作时其cs输入端应为高电平,此时芯片禁用,clk 和do/di 的电平可任意。当要进行a/d转换时,须先将cs使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端clk 输入时钟脉冲,do/di端则使用di端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前di端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前di端应输入2 位数据用于选择通道功能。其时序图如图8.

         

                图8   adc0832时序表

  如图所示,当此2 位数据为“1”、“0”时,只对ch0 进行单通道转换。当2位数据为“1”、“1”时,只对ch1进行单通道转换。当2 位数据为“0”、“0”时,将ch0作为正输入端in+,ch1作为负输入端in-进行输入。当2 位数据为“0”、“1”时,将ch0作为负输入端in-,ch1 作为正输入端in+进行输入。到第3 个脉冲的下沉之后di端的输入电平就失去输入作用,此后do/di端则开始利用数据输出do进行转换数据的读取。从第4个脉冲下沉开始由do端输出转换数据最高位data7,随后每一个脉冲下沉do端输出下一位数据。直到第11个脉冲时发出最低位数据data0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出datd0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次a/d转换的结束。最后将cs置高电平禁用芯片,直接将转换后的数据进行处理就可以了。


  4.2.4 键盘部分

  由于要实现人机对话,要显示0—9.9v的电压值,我们自制3*4按键的键盘来完成整个系统控制。电路原理如图9所示。

                  图9  键盘与显示电路图


  按键的具体意义如下:


1

2

3

4

5

6

7

8

9

0

*

enter

 

 

 

 

 

 

  4.2.5显示部分

  本方案采用ym12864型lcd,可直接显示4*8个汉字,界面友好,支持串并行两种连接方式,其电路连接如图10所示:

                         图10   lcd12864与单片机连接图

  ym12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ascii字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字。 也可完成图形显示。

  4.2.5.1 串行接口

  *注释1:如在实际应用中仅使用串口通讯模式,可将psb接固定低电平,也可以将模块上的j8和“gnd”用焊锡短接。

  *注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。   

  *注释3:如背光和模块共用一个电源,可以将模块上的ja、jk用焊锡短接。

  4.2.5.2 并行接口

管脚号

管脚名称

电平

管脚功能描述

1

vss

0v

电源地

2

vcc

3.0+5v

电源正

3

v0

-

对比度(亮度)调整

4

rs(cs)

h/l

rs=“h”,表示db7——db0为显示数据

rs=“l”,表示db7——db0为显示指令数据

5

r/w(sid)

h/l

r/w=“h”,e=“h”,数据被读到db7——db0

r/w=“l”,e=“h→l”, db7——db0的数据被写到ir或dr

6

e(sclk)

h/l

使能信号

7

db0

h/l

三态数据线

8

db1

h/l

三态数据线

9

db2

h/l

三态数据线

10

db3

h/l

三态数据线

11

db4

h/l

三态数据线

12

db5

h/l

三态数据线

13

db6

h/l

三态数据线

14

db7

h/l

三态数据线

15

psb

h/l

h:8位或4位并口方式,l:串口方式(见注释1)

16

nc

-

空脚

17

/reset

h/l

复位端,低电平有效(见注释2)

18

vout

-

lcd驱动电压输出端

19

a

vdd

背光源正端(+5v)(见注释3)

20

k

vss

背光源负端(见注释3)

  *注释1:如在实际应用中仅使用并口通讯模式,可将psb接固定高电平,也可以将模块上的j8和“vcc”用焊锡短接。

  *注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。   

  *注释3:如背光和模块共用一个电源,可以将模块上的ja、jk用焊锡短接。

  5 总电路软件实现流程图

       图10 总流程图


  程序见后面附录。


  6 电源测试结果

  6.1电压测试

预置电压(v)

显示电压(v)

测量电压(v)

1

1.05

1.05

1.2

1.10

1.17

1.4

1.35

1.38

1.6

1.55

1.61

1.8

1.75

1.78

2

1.95

2.00

2.6

2.55

2.60

3

3.00

3.03

3.7

3.70

3.68

5

5.00

5.01

7

7.00

6.97

8

8.10

8.06

9

8.75

8.75

9.7

9.65

9.63


  6.2 性能测试

性能指标

测量条件

测量结果

测量仪表

全程输出电压

0-9.9v

dm-311型数字万用表

负载电流

=5v, =25

206ma

过流保护

330ma

  用单片机控制电源时,输出直流0-9.9v,液晶屏显示清晰正确,误差较小,完美的实现了数控恒压源这一课题。

  但在功能上还不够强大,没有显示预置电压等等,还可以进一步得到提高。

参考文献

[1]康华光    电子技术基础   高等教育出版社

[2]串联型直流稳压电源的仿真分析    广西师范学院学报 第21卷第2期

[3]用单片机制作的直流稳压可调电源   电子世界  2005年第11期

[4]刘华毅,李霞,徐景德  电力电子技术   第35卷第六期2001年12月

[5]陈小忠、黄宁、赵小侠  单片机接口技术实用子程序  人民邮电出版社


附录

附录1:系统总体电路图

附录2:系统总程序


;***************************************************

;           项目名称:数控恒压源

;      设计者:谢明亮,马学强,苏向阳

;本程序是设计的一个数控恒压源,先用一个3*4的键盘输入

;所用的电压,再通过dac0832输出电压。再采用一个adc08

;32将电压读回单片机,单片机再采用一片lcd串口显示出来。

;***************************************************

;以下接口定义根据硬件连线更改

adcs     bit   p2.5         ;使能接口

adclk    bit   p2.4         ;时钟接口

addo     bit   p2.3         ;数据输出接口(复用)

addi     bit   p2.3         ;数据输入接口

cs       bit   p3.0         ;h=data,l=com

sid      bit   p3.1         ;h=read,l=write

sclk     bit   p3.6         ;

keybuf   equ   30h

com      equ   41h          ;控制字暂存单元

dat      equ   42h          ;显示数据暂存单元

coder    equ   43h          ;字符代码暂存单元

addr     equ   44h          ;地址暂存单元

org 0

ljmp    start

org 3

ljmp    keyscan

org 30h

start:mov sp,#90h

      lcall del_40ms

      lcall ini

      mov 70h,#00h

      mov 71h,#00h

      mov 34h,#02              ;装入通道功能选择数据值

      setb  it0

      setb  ex0

      mov   p1,#0fh            ;将p1口低4位设为输入,高4位清零

      setb  ea

      mov  keybuf,#00h         ;起初输出0v电压

      mov r2,#01h              ;置送数时送数空间不同的标志位。

      clr a

      mov 24h,a                ;清零24h,25h,31h,32h,33h。

      mov 25h,a

      mov 31h,a

      mov 32h,#05h

      mov 33h,#00h

      mov   addr,#80h

      mov   dptr,#wel_1

     mov   40h,#16

      lcall w_line

      mov   addr,#90h

      mov   dptr,#wel_2

      mov   40h,#9

      lcall w_line

      mov   addr,#95h

      mov   dptr,#wel_3 

      lcall w_line1

      mov   addr,#88h

      mov   dptr,#wel_4

      mov   40h,#16

      lcall w_line

      mov   addr,#98h

      mov   dptr,#wel_5

      mov   40h,#16

      lcall w_line

      lcall del_1500ms

loop: lcall light                ;调显读数与示子程序

      sjmp  loop

;****************************************************

;键盘扫描程序

;键码存在keybuf单元,格式为数字0-9和.号,还有enter键

;****************************************************

keyscan:push    psw

          push  acc

          push  dph

          push  dpl

          clr   rs1

          setb  rs0              ;选择1区工作寄存器

          lcall delay

          mov   a,p1

          cpl   a

          anl   a,#0fh

          jz    finish

          mov   dptr,#tab1

          mov   p1,#0efh         ;扫描第一行

          lcall  delay

          mov   p1,#0efh

          mov   a,p1

          cpl    a

          anl  a,#0fh

          jz        k1               ;第一行没键按下,则扫描第二行

          sjmp  kend

k1: mov p1,#0dfh                 ;扫描第二行

    lcall  delay

    mov p1,#0dfh

    mov a,p1

    cpl a

    anl a,#0fh

    jz  k2                       ;第二行没键按下,则扫描第三行

    add a,#5

    sjmp    kend

k2: mov p1,#0bfh                 ;扫描第三行

    lcall  delay

    mov p1,#0bfh

    mov a,p1

    cpl a

    anl a,#0fh

    jz  k3                       ;第三行没键按下,则扫描第四行

    add a,#10

    sjmp    kend

k3: mov p1,#7fh                  ;扫描第四行

    lcall  delay

    mov p1,#7fh

    mov a,p1

    cpl a

    anl a,#0fh

    jz  finish                   ;第四行没键按下,则返回

    add a,#15

kend:movc   a,@a+dptr

    mov keybuf,a;

    mov    33h,#01h              ;置有中断标志

    sjmp    finish

finish:mov  p1,#0fh              ;为下一次扫描作准备

    pop dpl

    pop dph

    pop acc

    pop psw

    reti

tab1:db 00h,01h,02h,00h,03h;,00h,00h,00h,33h

     db 00h,04h,05h,00h,06h;,00h,00h,00h,00h

     db 00h,07h,08h,00h,09h;,00h,00h,00h,0ah

     db 00h,0ah,00h,00h,0bh;,00h,00h,00h,46h

;**************************

;lcd的初始化子程序

;**************************

ini:

    mov   com,#30h       ;功能设定,基本指令

    lcall wcom

    mov   com,#30h       ;基本指令,8-bit模式,基本指令

    lcall wcom

    mov   com,#0ch       ;显示开,游标关,反白关

    lcall wcom

    mov   com,#01h       ;清除显示

    lcall wcom

    mov   com,#06h       ;进入设定点,游标7右移,画面不移动

    lcall wcom

    ret

w_line:

    mov   com,addr

    lcall wcom

    mov   r4,40h         ;连续写入n/2个中文或者n个西文字符

w_l1:

    mov   a,#00h

    movc  a,@a+dptr

    mov   coder,a

    lcall wcode

    inc   dptr

    djnz  r4,w_l1

    ret

w_line1:

    mov   com,addr

    lcall wcom 

w_l11:  

    mov   a,70h

    anl   a,#0fh

    movc  a,@a+dptr

    mov   coder,a

    lcall wcode

    mov   a,#0bh

    movc  a,@a+dptr

    mov   coder,a

    lcall wcode

    mov   a,71h

    swap  a

    anl   a,#0fh

    movc  a,@a+dptr

    mov   coder,a

    lcall wcode

    mov   a,71h

    anl   a,#0fh

    movc  a,@a+dptr

    mov   coder,a

    lcall wcode 

    mov   a,#0ah

    movc  a,@a+dptr

    mov   coder,a

    lcall wcode

    ;djnz  r4,w_l1

    ret


wcom:

    lcall stwc

    mov   a,com

    lcall w4_d         ;送入高四位指令

    lcall w4_0         ;连续送入四个0

    lcall w4_d         ;送入高四位指令

    lcall w4_0         ;连续送入四个0

    clr   cs

    lcall del_2ms

    ret

wcode:

    lcall stwd

    mov   a,coder

    lcall w4_d

    lcall w4_0

    lcall w4_d

    lcall w4_0

    clr   cs

    lcall del_2ms

    ret

 

stwc:

    setb  cs

    setb  sid

    mov   r3,#5         ;连续送入5个"1",起始

stwc1: setb  sclk

    clr   sclk

    djnz  r3,stwc1

    clr   sid

    mov   r3,#3

stwc2:

    setb  sclk          ;rw=0,rs=0,第八位"0"

    clr   sclk

    djnz  r3,stwc2

    ret

 

stwd:

    setb  cs

    setb  sid

    mov   r3,#5         ;连续送入5个"1",起始

stwd1:

    setb  sclk

    clr   sclk

    djnz  r3,stwd1

    clr   sid           ;rw=0

    setb  sclk

    clr   sclk

    setb  sid           ;rs=1

    setb  sclk

    clr   sclk

    clr   sid           ;第八位"0"

    setb  sclk

    clr   sclk

    ret

 

w4_d:

    mov   r3,#4

w4_d1:

    rlc   a

    mov   sid,c

    setb  sclk

    clr   sclk

    djnz  r3,w4_d1

    ret

 

w4_0:

    mov   r3,#4

w4_01:

    clr   sid

    setb  sclk

    clr   sclk

    djnz  r3,w4_01

    ret

;********************

;2ms延时

;********************

del_2ms:

    mov   r0,#2

d1:

    mov   r1,#200

d2:

    nop

    nop

    nop

    djnz  r1,d2

    djnz  r0,d1

    ret

;********************

;40ms延时

;******************** 

del_40ms:

    mov    r5,#20

d3:

    lcall  del_2ms

    djnz   r5,d3

    ret

 ;********************

;200ms延时

;********************

del_200ms:

    mov    r5,#100

d4:

    lcall  del_2ms

    djnz   r5,d4

    ret

;********************

;500ms延时

;******************** 

del_500ms:

    mov    r5,#250

d5:

    lcall  del_2ms

    djnz   r5,d5

    ret

;********************

;1500ms延时

;********************

del_1500ms:

    lcall  del_500ms

    lcall  del_500ms

    lcall  del_500ms

    ret

 


;*************************************

;用adc0832读数并送数给显示的子程序,

;并将键盘的按键数送给dac0832让其输出。

;*************************************

;==== adc0832读数据子程序====

light:setb     addi       ;初始化通道选择

     nop

     nop

     clr       adcs        ;拉低/cs端

     nop

     nop

     setb     adclk        ;拉高clk端

     nop

     nop

     clr       adclk       ;拉低clk端,形成下降沿

     mov       a,34h

     mov      c,acc.1      ;确定取值通道选择

     mov       addi,c

     nop

     nop

     setb     adclk        ;拉高clk端

     nop

     nop

     clr       adclk       ;拉低clk端,形成下降沿2

     mov       a,34h

     mov      c,acc.0      ;确定取值通道选择

     mov       addi,c

     nop

     nop

     setb     adclk        ;拉高clk端

     nop

     nop

     clr       adclk       ;拉低clk端,形成下降沿3

     setb     addi

     nop

     nop

     mov      r7,#8        ;准备送下后8个时钟脉冲

ad_1:

     mov      c,addo       ;接收数据

     mov       acc.0,c

     rl        a           ;左移一次

     setb     adclk

     nop

     nop

     clr       adclk       ;形成一次时钟脉冲

     nop

     nop

     djnz      r7,ad_1     ;循环8次

     mov      c,addo       ;接收数据

     mov       acc.0,c

     mov      b,a

     mov      r7,#8

ad_13:

     mov      c,addo       ;接收数据

     mov       acc.0,c

     rr        a           ;右移一次

     setb     adclk

     nop

     nop

     clr       adclk       ;形成一次时钟脉冲

     nop

     nop

     djnz      r7,ad_13    ;循环8次

     mov      r7,#8 

     cjne      a,b,light   ;数据校验

    mov a,b                 

     mov dptr,#tab5        ;

     movc a,@a+dptr        ;

     mov 72h,a             ;将高位送72h单元

     mov a,b                  

     mov dptr,#tab6        ;

     movc a,@a+dptr        ;

     mov 73h,a             ;降低为送73h单元

     setb     adcs         ;拉高/cs端

     clr       adclk       ;拉低clk端

     setb     addo         ;拉高数据端,回到初始状态

;========送数给显示子程序段========

    mov   70h,72h

    mov   71h,73h

    mov   addr,#95h

    mov   dptr,#wel_3 

    lcall w_line1

;=======送数给adc0832的子程序========

 mov a,33h            ;判断有没有中断,

    jz  l7                ;没有中断就转。

    mov 33h,#00h          ;清中断标志

l2:   mov a,30h           ;

      cjne a,#0ah,l3      ;判断是否为点号,不为点号就转。

      jmp l7              ;为点好就保持原来送数。

l3:cjne a,#0bh,l4         ;判断是否为enter键,不为就转。

   mov 32h,24h

   mov 31h,25h            ;

l9:mov 24h,#00h           ;

   mov 25h,#00h           ;

   mov r2,#01h            ;置送数时送数空间不同的标志位。

l7:   mov a,32h           ;将键盘的两数相与,查表,然后送数。

      swap a              ;

      orl a, 31h              ;

      mov dptr,#tab4      ;

      movc a,@a+dptr      ;

     clr p2.0

      mov p0,a

      ljmp l6             ;

l4:cjne r2,#01h,l5        ;将键盘的第一位数送给24h

    mov a,30h             ;

    mov 24h,a             ;

    dec r2                ;清零送数时送数空间不同的标志位。

    jmp l7                ;

l5:mov a,30h              ;将键盘的第二位数送给25h

   mov 25h,a              ;

   mov r2,#01h            ;置送数时送数空间不同的标志位。

   jmp l7                 ;                                                                                                                               

l6:ret

;十六进制数转换成为2进制bcd码的码表。

;       0   1   2   3   4   5   6   7   8  9

tab5:db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h;0

     db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h

     db 01h,01h,01h,01h,01h,01h,01h,01h,01h,01h;1

     db 01h,01h,01h,01h,01h,01h,01h,01h,01h,01h

     db 02h,02h,02h,02h,02h,02h,02h,02h,02h,02h;2

     db 02h,02h,02h,02h,02h,02h,02h,02h,02h,02h

     db 03h,03h,03h,03h,03h,03h,03h,03h,03h,03h;3

     db 03h,03h,03h,03h,03h,03h,03h,03h,03h,03h

     db 04h,04h,04h,04h,04h,04h,04h,04h,04h,04h;4

     db 04h,04h,04h,04h,04h,04h,04h,04h,04h,04h

     db 05h,05h,05h,05h,05h,05h,05h,05h,05h,05h;5

     db 05h,05h,05h,05h,05h,05h,05h,05h,05h,05h

     db 06h,06h,06h,06h,06h,06h,06h,06h,06h,06h;6

     db 06h,06h,06h,06h,06h,06h,06h,06h,06h,06h

     db 07h,07h,07h,07h,07h,07h,07h,07h,07h,07h;7

     db 07h,07h,07h,07h,07h,07h,07h,07h,07h,07h

     db 08h,08h,08h,08h,08h,08h,08h,08h,08h,08h;8

     db 08h,08h,08h,08h,08h,08h,08h,08h,08h,08h

     db 09h,09h,09h,09h,09h,09h,09h,09h,09h,09h;9

     db 09h,09h,09h,09h,09h,09h,09h,09h,09h,09h

     db 10h,10h,10h,10h,10h,10h,10h,10h,10h,10h;10

     db 10h,10h,10h,10h,10h,10h,10h,10h,10h,10h

     db 11h,11h,11h,11h,11h,11h,11h,11h,11h,11h;11

     db 11h,11h,11h,11h,11h,11h,11h,11h,11h,11h

     db 12h,12h,12h,12h,12h,12h,12h,12h,12h,12h;12

     db 12h,12h,12h,12h,12h,12h,12h,12h,12h,12h

tab6:db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;0

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;1

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;2

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;3

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;4

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;5

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;6

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;7

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;8

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;9

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;1, , 0

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;11

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     db 00h,05h,10h,15h,20h,25h,30h,35h,40h,45h;12

     db 50h,55h,60h,65h,70h,75h,80h,85h,90h,95h

     ;  数模转换的代码

        ;0    1    2    3   4    5    6    7   8    9    a    b    c    d    e    f

tab4:db 00h, 02h, 04h, 06h, 08h, 0ah, 0ch, 0eh, 10h, 12h, 00h, 00h, 00h, 00h, 00h, 00h ;

     db 14h, 16h, 18h, 1ah, 1ch, 1eh, 20h, 22h, 24h, 26h, 00h, 00h, 00h, 00h, 00h, 00h

     db 28h, 2ah, 2ch, 2eh, 30h, 32h, 34h, 36h, 38h, 3ah, 00h, 00h, 00h, 00h, 00h, 00h

     db 3ch, 3eh, 40h, 42h, 44h, 46h, 48h, 4ah, 4ch, 4eh, 00h, 00h, 00h, 00h, 00h, 00h

     db 50h, 52h, 54h, 56h, 58h, 5ah, 5ch, 5eh, 60h, 62h, 00h, 00h, 00h, 00h, 00h, 00h

     db 64h, 66h, 68h, 6ah, 6ch, 6eh, 70h, 72h, 74h, 76h, 00h, 00h, 00h, 00h, 00h, 00h

     db 78h, 7ah, 7ch, 7eh, 80h, 82h, 84h, 86h, 88h, 8ah, 00h, 00h, 00h, 00h, 00h, 00h

     db 8ch, 8eh, 90h, 92h, 94h, 96h, 98h, 9ah, 9ch, 9eh, 00h, 00h, 00h, 00h, 00h, 00h

     db 0a0h, 0a2h, 0a4h, 0a6h, 0a8h, 0aah, 0ach, 0aeh, 0b0h, 0b2h, 00h, 00h, 00h, 00h, 00h, 00h

     db 0b5h, 0b6h, 0b8h, 0bah, 0bch, 0beh, 0c0h, 0c2h, 0c4h, 0c6h, 00h, 00h, 00h, 00h, 00h, 00h

     db 0c8h, 0cah, 0cch, 0ceh, 0d0h, 0d2h, 0d4h, 0d6h, 0d8h, 0dah, 00h, 00h, 00h, 00h, 00h, 00h

     db 0dch, 0deh, 0e0h, 0e2h, 0e4h, 0e6h, 0e8h, 0eah, 0ech, 0eeh, 00h, 00h, 00h, 00h, 00h, 00h

     db 0f0h, 0f2h, 0f4h, 0f6h, 0f8h, 0fah, 0fch, 0feh

;********************

;10ms延时子程序

;********************  

delay:mov 50h,#10

loop1:mov r6,#250

loop2:nop

      nop

      djnz r6,loop2

      dec  50h

      djnz 50h,loop1

      ret

wel_1:

    db "作品:",0cah,0fdh,"控恒压源"

wel_2:

    db "输出电压:"

wel_3:

    db "0123456789v."

wel_4:

    db "制作者:谢明亮," 

wel_5:

    db "马学强,苏向阳。"

end

  • 上一篇工学论文:
  • 下一篇工学论文:
  •  作者:谢明亮 马学强 苏向阳  论文关键词: 直流稳压电源 单片机 [标签: 直流稳压电源 ]
    姓 名: *
    E-mail:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    发表评论请遵守中国各项有关法律法规,评论内容只代表网友个人观点,与本网站立场无关。
    基于对接现代制造业需求的深化数控专业人才…
    RTSPARMILL数控加工中心A轴故障的分析与排除
    浅析数控机床的应用与技巧
    浅谈CAD/CAM软件在数控激光切割机中的运用
    三维软件在数控机床设计与制造领域的应用与…
    浅谈国内外数控系统发展现状研究
    数控机床故障诊断及排除方法
    谈立式数控车床的工作循环及设计
    论经济型数控车床典型故障诊断与维修
    试论经济型数控车床典型故障诊断与维修
    浅谈有关数控机床的几点思考
    浅谈立式数控车床的工作循环及设计
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    Copyright 2006-2013 © 毕业论文网 All rights reserved 

     [中国免费论文网]  版权所有