单片机的简易数控电源设计分析方案 - 图文

更新时间:2023-12-25 23:01:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

简易数控直流电源

摘要:本实验设计了一个以单片机

89C51为基本控制核心的简易数控直流电源。.

该设计包括直流电源输入及输出两部分,可完成0~15V之间各不同幅值的电压的输出,能够预置数,能够自动扫描输出电压并直接显示到LED数码显示管上,并可扩展输出三角波等波型。其中电压输出部分,既可手动的每按”+””-”键一下进行每0.1V大小的上下调整,也可长按”+””-”键使其自动的递增或者递减,直到需要的数值。预置数时用切换键切换预置个位或小数位,按”+””-”键进行微调。单片机编程部分是基于WAVE6000软件上设计,并在实物上进行仿真。.该系统具有抗干扰性能好,可靠性高,及最终输出电压值与真实显示值精确度较高等优点。

关键词: 89C51, 直流电压输出, 直流电压输入

Abstract: This experiment has designed take monolithic integrated circuit 89C51 as the basic control core simple numerical control direct-current power supply. This design inputs and outputs two parts including the direct-current power

supply, may complete between 0~15V each different peak-to-peak value voltage output, the automatic scan output voltage and directly demonstrated on the LED numerical code display tube, and may expand the output triangle wave, and so on voltage type. voltage output unit, also may manual every time press \key to carry on each 0.1V size about to adjust, also may long press \to cause its automatic to increase progressively or to decrease progressively, until needs the value, carries on the trimming. monolithic integrated circuit programming part is again designs based on WAVE6000 software on, And carries on the test on the material object Debugging, This system has the resistance to interference well, the reliability is high, and finally output voltage value and real demonstration value precision higher merit.

Key word: 89C51, DC voltage output, DC voltage input

1 / 29

目录 1.设计任务及要求 1.1设计任务 1.2设计要求 1.2.1设计要求

1.2.2发挥部分 2.方案比较并确定 2.1设计方案一

2.1.1方案一方框图 2.1.2方案一原理图 2.2.设计方案二

2.2.1.方案二方框图 2.2.2方案二原理图 2.3方案的优缺点及选择 3.硬件部分原理及设计 3.1方案一硬件部分

3.1.1单片机部分 3.1.2数模转换部分 3.1.3放大器部分 3.1.4电源输入部分 3.1.5稳压器部分 3.1.6按键部分

3.1.7数码显示输出部分 3.2方案二硬件部分

3.2.1单片机部分 3.2.2继电器部分 3.2.3电阻网络部分 3.2.4电源输入部分 3.2.5稳压器部分 3.2.6按键部分

3.2.7数码显示输出部分4.软件部分设计 4.1主程序流程图 4.2预置数流程图 5.系统调试测验 5.1系统调试 5.2系统测试

5.2.1系统功能测试

5.2.2系统指标测试 5.2.3系统误差分析 6.总结

7.参考资料 8.附录

2 / 29

一.设计任务及要求

1.设计任务: 设计制作具有一定电压范围和功能的数控电源. 原理如题目所示。

2.设计要求

(1) 基本要求:

a 输出电压:范围 0~15V . 步进 0.1V

纹波不大于10mv

b输出电流: 500mA c 输出电压由数码显示

d 用”+”.”-”键控制输出电压进行增/减调整 发挥部分

a 自动扫描输出电压

b 扩展输出三角波等电压种类

c 输出电压可预置在0~15V之间的任意值

二. 方案比较并确定

根据设计要求,小组成员拟列了2个方案,原理上基本能够实现要求

1方案一:

是以型号89C51单片机为控制核心进行设计的,通过按键进行控制,单片机控制数模转换芯片DAC0832,其输出0~7.5V的电压,因为要求电压为0~15V所以必须再经过放大器放大,并通过三端可调正稳压器进行稳压,输出一个较稳定的直流电压,并在数码管上显示出来,并时刻刷新调整电压后的幅值。

a..方框图如下: 键盘 电源输入 稳压器 放大器 数模转换 单片机 输出 显示 3 / 29

b..原理图如下:

2方案二:

是以单片机89C51为控制核心,外接按键进行控制,单片机控制8个继电器,且每个继电器串联一个一定阻值的电阻,电阻之间的关系为以2为参数的等比数列,继电器之间为并联形式。最终电压幅值可经过一个稳压电路后稳定输出。且最后输出的电压值可通过单片机控制在数码显示管上显示出来,并时刻刷新调整电压后的幅值。

a. 方框图如下

电源输入 键盘输入 稳压器 等比电阻网络 8个继电器 单片机 稳压输出 显示输出 4 / 29

b。原理图如下

LED显示 P1 P2 89C51 P3 键盘输入 电压输出 继电器 电阻网络 稳压器 外部电源部分 3两种方案比较

方案一的电源电压切换采用DAC控制速度比较快,切换方便,且可以输出较高频率的几种波形,所需器件较少,元器件较常见而且便宜,缺点是放大器的电压要求比较高,需要0~15V的输出,需要多种电源供电。方案二采用继电器控制为机械式。基本原理简单,实现比较方便,电源电压也可以调整到较精确的数值,但是它需要较大的工作电流,原器件价格较贵,而且继电器会产生噪声污染。比较之后,两种方案各有优缺点,所以可以任意选取一种进行软硬件组装。

三.硬件部分原理及设计

1.设计方案一部分 (1) 单片机89C51

单片机89C51是本设计中的控制核心,是一个40管脚的集成芯片,管脚图如下。引脚部分:单片机接脚基本电路部分与普通设计无异,40脚接Vcc+5V,20脚接地。X1,X2两脚接12MHZ的晶振,可得单片机机器周期为1微秒。RST脚外延一个RST复位键,一端接Vcc,一端通过

5 / 29

10K电阻接地。P0口中,0~3口分别通过一个PNP型三极管9012的B端,并由E端接人集成LED的COM1~4口。4~7口则分别通过一个按键接地,通过软件编写实现6个按键的各种功能。P1口8个端口连LED中a,b,c,d,e,f,g,db脚上。P2口是连到DAC0832中的D0~D7。

(2) 数模转换部分

1脚—CS<反) 2 脚—WR1<反) 3脚—AGND 4脚—D3 5脚—D2 6 脚—D1 7脚—D0 8脚—ref

9脚—Ref 10脚—DGND 11脚—Iout1 12脚—Iout2 13脚—D7 14脚—D6 15脚—D5 16脚—D4

17脚—XFER<反)18 脚—WR2<反)19脚—ILE 20脚—Vcc

DAC0832是一款常用的数摸转换器,它有两种连接模式,一种是电压

6 / 29

输出模式,另外一种是电流输出模式,为了设计的方便,选用电压输出模式。这个芯片共有20 个管脚,管脚分布图如下。Iout1和Iout2之间接一参考电压,VREF输出可控制电压信号。它有三种工作方式:不带缓冲工作方式,单缓冲工作方式,双缓冲工作方式。该电路采用单缓冲模式,由电路图可知,由于/XFER=0/CS=0/ ILE=1,DAC寄存处于工作状态。所以只要把/WR1/WR2置低电平时,写p2口,则该数字信号立即传送到输入寄存器,并直通至DAC寄存器,经过短暂的建立时间,即可以获得相应的模拟电压,一旦写入操作结束,/WR1和/WR2立即变为高电平,则写入的数据被输入寄存器锁存,直到再次写入刷新。

<3)放大器部分

放大器选择范围比较大,只要放大器满足放大值达到0~15V,放大倍数2~5倍,频率要求不高。但由于实验室只提供7815,7915最大提供电源为+15V和-15V,因此不可避免线性度有较大要求。而放大值要有15V电压差,不可避免的需要同时用到正负量程。因此对放大器的调零也有较大要求。先后使用082,081,OP07。最后确定用OP07。同时因为要在正向放大时提供正偏压,因此采用082制作了一个同项输入跟随器,做电气隔离。

<4)电源输入部分

实验中主要采用L7805,L7815,L7915三种稳压器,外加电源部分设置成+/-20V,可由220V电源经变压得到,并将20V直接接到LM317中3端输入口,另外将+20V通过L7815,稳压后输出为+15V,将-20V通过L7915,稳压后输出为-15V,并将+/-15V电压加载到放大器的电源正负管脚上,另外DAC0832的电源管脚20脚和19脚ILE脚也要接+15V。再将+15V又经过L7805后变成+5V,这个压值可供应到单片机电源及显示部分。还需要在L7815的1,3脚,L7915的2,3脚以及L7805的1,3脚各自与地之间

7 / 29

并联连上220微法电解电容和0.1微法磁片电容,目的是为了滤除低频杂波和高频杂波。

<5)稳压器部分

稳压电路设计采用的是常用的可调集成稳压器LM317。 LM317 是美国国家半导体公司的三端可调正稳压器集成电路。输出电压范围是 1.25V 至 37V,负载电流最大为 1.5A。它的使用非常简单,仅需两个外接电阻来设置输出电压。此外它的线性调整率和负载调整率也比标准的固定稳压器好。LM317 内置有过载保护、安全区保护等多种保护电路。

通常LM317 不需要外接电容,除非输入滤波电容到 LM317 输入端的连线超过 6 英寸<约 15 厘M)。使用输出电容能改变瞬态响应。调整端使用滤波电容能得到比标准三端稳压器高的多的纹波抑制比。

LM317 能够有许多特殊的用法。比如把调整端悬浮到一个较高的电压上,可以用来调节高达数百伏的电压,只要输入输出压差不超过 LM117/LM317 的极限就行。当然还要避免输出端短路。还可以把调整端接到一个可编程电压上,实现可编程的电源输出。

特性简介

A。可调整输出电压低到 1.2V。 B。保证 1.5A 输出电流。 C。典型线性调整率 0.01%。 D。典型负载调整率 0.1%。 E。80dB 纹波抑制比。 F。输出短路保护。 G。过流、过热保护。

H。调整管安全工作区保护。 I。标准三端晶体管封装。

8 / 29

<6)按键部分

设计中共用到按键数为7个,其中一个为单片机上的复位键,另外6个分别命名为K1~K6,K1~K4分别接单片机P0口的P0.4~P0.7,K5,K6接P3.5,P3.6。功能为:K1键:退出功能;K2键:预置数<设置一个数值为初始值);K3键:自动扫描键<扫描电压值,并在LED上自动显示);K4键:输出三角波电压/在预置数值时整数和小数部分切换;K5键:对输出稳定电压进行递减;K6键:对输出稳定电压进行递增。

<7)数码显示输出部分

这是决定系统使用是否方便的关键。这里又有两个方案。

方案一:采用电阵式液晶显示器

字体的数字,汉字,图象,还可以自定义显示内容,但是编程复杂,需要消耗大量时间完成显示部分的编程工作,成本也比普通数码管贵。

方案二:采用通用LED数码管显示。虽只能显示非常有限的符号和数码字,

但是在本设计中完全满足显示需要,且编程简便,可节约大量时间。

分析以上两种方案的优缺点,本设计采用方案二。 这里我们使用的是通用的4位集成数码显示管

9 / 29

1 2 3 4 5 6

12 11 10 9 8 7

1脚---com4 2脚---a 3脚---f 4脚---com3 5脚---com2 6脚---b 7脚---com1 8脚---g 9脚---c 10脚---db 11脚---d 12 脚---e

其中4个 com(1-4>分别对应单片机P0端口(p0.0~p0.4>

2个LED端口的8个引脚a,b,c,d,e,f,g,db对应P1端口,且之间加阻值为330欧姆的电阻,否则电流过大,使电源部分的稳压器过热,显示管显示过亮。

2.设计方案二部分

(1) 单片机89C51部分

这一部分的整体基本上与方案一相同,原本接DAC0832的P2口现 在改为接8个继电器,由此控制电路的开合。

(2) 继电器部分

我们采用闭合式继电器,如图

当P2口有低电平到时,就使继电器内部的按键跳转使和继电器 相连的电阻接入电路。

(3) 电阻网络部分

与稳压器压差1.25V之间我们采用了一个560欧的精密电阻,因为实验

10 / 29

要求步进为0.1V,因此电阻网络中的第一个电阻的阻值为<560/1.25)*0.1,其余电阻为第一个电阻的倍增阻值。由于阻值比较难配,在这里我们在实验中采用了电位器。

<4)电源输入部分

此方案中主要采用L7805,,L7905两种稳压器,外加电源部分设置成+/-20V,并将20V直接接到LM317中3端输入口,另外将+20V通过L7805,稳压后输出为+5V,这个压值可供应到单片机电源及其他高电平需求处。L7905输出的-5V加在电阻网络的末端主要是为了使电路实现调零,因为稳压器的最小输出电压为1.25V。 <5)稳压器部分

同方案一中的稳压器部分。 <6)键盘部分

此设计中也采用7个按键且基本功能和方案一相同,只是排列方式不同。在单片机下方的是复位键,其余6个键按3,2阵列排,分别位K1~K6,K1~K4分别接单片机P0口的P0.4~P0.7,K5,K6接P3.5,P3.6。功能为:K1键:退出功能;K2键:预置数<设置一个数值为初始值);K3键:自动扫描键<扫描电压值,并在LED上自动显示);K4键:输出三角波电压/在预置数值时整数和小数部分切换;K5键:对输出稳定电压进行递减;K6键:对输出稳定电压进行递增。 <7)数码显示部分

这里也是采用了LED数码显示管,接脚形式及控制都同方案一。

四.软件部分设计

系统的软件设计采用汇编语言,对单片机进行编程实现各功能

程序是在Wnidows xp环境下采用WAVE 6000软件编写的,可以实现对按键输入高电平,对电压增加+/-0.1V,预置电压值等功能

11 / 29

1.主程序流程图<图1) 开始

是 是否+

是 是否-

否 是 预置

是 三角波 是

否 否

扫 是 描输出

显示DAC输

出延时1S

12 / 29 计数器+1 计数器-1 预置数 是否退 输出三角波 退出 计熟数+1 满150 计数-1 减为0

2.预置数流程图<图2)

是 是 是否+

否 否

是 是 是否-

否 否

是否退出 是

是否切换

显示预置数

控制0 十位个位+1,0~15 小数+1,范围0~9 控制0 十位个位+1,0~15 小数-1,范围0~9 控制取反 五.系统调试测验

1.系统调试

<1)电源部分调试:

先断开所有除输入电源以外的其他电源接入线,在外部电源输入部分加入正负20 V的电压,通过L7815的1脚,和L7915的2脚,后用万用表测量

13 / 29

L7815的3脚为15V,L7915D 3脚为-15V,L7805的3脚为+5V,同时测试单片机,DA0832,放大器等底座接口供电。电源部分正常。 <2)调试LED显示:编制简单的显示小程序验证正常。 <3)按键测试:用程序验证。

<4)DAC测试:调整Iout1/Iout2的基准电压使输入255时输出电压7.5V。用软件测试输出。

<5)放大器调试:这是我们最感头痛的地方,从082,081,OP07,一直达不到满意的要求。最后终于发现问题来自电源-15V的纹波干扰,为此,我们把电源模块和放大模块重新独立制作调试。最终采用OP07加082的方式。首先用OP07建立正项放大器,信号从正端输入,然后对OP07的2/3脚短路接地,调节调零电阻丝输出为零。然后在正项加5V电压,调节放大倍数为2倍,因为电源为+15/-15所以放大输出最大到+14V,而且LM317的调零必须用到负电压,因此改变负端的参考电压来得到负电压。考虑到参考电压用滑动变阻器得到,用082的一个放大器制作正项跟随器进行电器隔离。用滑动变阻器调节输出电压,使DAC输出为0时,OP07输出-5V。所以最终OP07输出为-5V~+10V,达到LM317 的电压差要求。

放大器部分 电源部分

<6)LM317调试:调节滑动变阻器,使DAC输出0V放大器输出-5V时LM317输出0V。

2.系统测试

<1)系统功能测试<详细叙述略)

a. 系统操作及面板说明

b. 符合设计提出的基本功能及提出的部分发挥功能

<2)系统指标测试

当输出端接空载时,测量仪器为:

14 / 29

测量时间:2005年9月1日 数据记录<室温下) 1 2 3 4 预置电压/V<数码显示) 输出电压/V<数码显示) 实测电压/V<仪器测量) 0.0 1.0 2.0 5.0 5 6.0 6 8.0 7 9.0 8 10.0 9 12.0 10 14.0 11 15.0 0.0 1.0 2.0 5.0 6.0 8.0 9.0 10.0 12.0 14.0 15.0 0.00 1.01 2.00 5.01 6.03 8.02 9.01 10.01 12.03 14.01 15.02

<3)系统误差分析

从电路的原理框图可以看出,系统的主要误差有两个方面: a. 0832的量化误差 0832为8位D/A转换器,满量程为10V的量化误差为+/-0.5Lmbs≈+/-20mV.。按满度归一化的相对误差为+/-0.2%。如图所示为部分测试点的误差

0.60.50.40.30.20.101357911131517192123252729

系列1b.放大器放大的线性失真引起的误差,以及经过0点的调零误差。 c. 基准电压温漂引入的误差 LM317在0~40℃范围内漂移不大于4mV,故相对误差=+/-0.04%。 <4)误差调整:

可以采用精度更高的10位DAC,采用线性度较好的的放大器,增加系统正负放大器电源供电电压等。

因器材限制,并未采用以上方法。二是采用了查表法,在256个值中选取最接

15 / 29

近所需电压的值。下图为150个电压值对应的DAC的值。

误差调整300250DAC的值200150100500115294357718599113127141电压

系列1六.总结

本设计成品经过多次测量,基本上满足了设计要求所需的各项指标。在系统设计过程中,力求硬件线路简单,明了,整体美观,充分发挥软件变成方便灵活的特点,来满足系统设计要求。但是因为时间有限,该系统还有许多不足之处需要改进,比如电压精度问题等等。

在本次设计的过程中,我们也遇到了许多突发事件和各种困难,<如电源干扰,放大器调零等)设计制作曾一度中断,但通过仔细分析和自我状态调整后解决了问题。在这个、过程中我们深刻地体会到共同协作和团队精神的重要性,提高了自己解决问题的能力。

16 / 29

参考资料

1.《National Semiconductor Corporation Linear Databook 1<1987 Rev.1)》第1-页 2.《实用稳定电源 150 例》张国峰、张维编,人民邮电出版 3.《标准集成电路数据手册——集成稳压器》 第 59 页 4.《EDA技术使用教程》 潘松,黄继业 科学出版社,

5.《全国大学生电子设计竞赛训练教程》 黄智伟 电子工业出版社 6.《数字电路技术》 浙江大学出版社

7.《单片机中级教程》 张俊膜 北京航空航天大学出版社 8.《电子器材大全》 电子工业出版社

9.《电子线路设计应用手册》 张友汉 科学出版社

附录

附录一

本设计实验中所使用的仪器及器材

a. 主要仪器:计算机,WAVE仿真器,电源,万用表,函数信号发生器,示波器,30W电烙铁,剥线钳,镊子,螺丝开,

b.主要器材:实验板一块,单片机89C51,数模转换DAC0832,放大器OP07,稳压器L7815,L7805,L7915,LM317,各种大小数值的电阻,变阻器,电容,导线若干.LED显示管,按键,9012三极管,12MHZ晶振,导通二极管. (器材芯片的管脚请查阅第三部分的各个硬件部分>

附录二

本设计实验全电路原理图

17 / 29

方案一电路图

18 / 29

方案二电路图

19 / 29

附录三

设计实物图 方案一实物图

方案二实物图

20 / 29

附录四

软件部分程序

led1 equ 30h ;预定义 led2 equ 31h led3 equ 32h led4 equ 33h buff equ 34h buff1 equ 34h disbuff equ 35h control equ 36h control1 equ 36h keybuff1 equ 37h keybuff2 equ 38h keydisbuff1 equ 3ah keydisbuff2 equ 3bh keydisbuff3 equ 3ch

org 0000h ajmp main

main:

mov led1,#0ffH 。初始化mov led2,#0ffh mov led3,#0ffh mov led4,#0ffh mov disbuff,#00h mov buff,#00h mov buff,#00h mov control,#00h mov control1,#00h call senddac call sendled loop:

setb p3.5 ;判断减 jb p3.5,key2 dec buff call senddac call sendled

key2:setb p3.6 ;判断加jb p3.6,key3 inc buff call senddac

21 / 29

call sendled key3:setb p0.4 jb p0.4,key4

key4:setb p0.5 ;判断预定义 jb p0.5,key5 mov a,buff mov b,#10 div ab

mov keybuff1,b mov keybuff2,a call defind

key5:setb p0.6 ;判断自动扫描 jb p0.6,key6 call test

key6:setb p0.7 ;判断输出三角波jb p0.7,key7 call sanjiao key7:

call display ;调用显示 ajmp loop

test: ;自动扫描子程序 mov buff,#00h setb p0.4 jb p0.4,test1 ret test1:

mov r3,#150 loop7:setb p0.4 jb p0.4,test2 ret test2: inc buff call senddac call sendled call display djnz r3,loop7 mov r3,#150 loop6:setb p0.4 jb p0.4,test3 ret test3: dec buff call senddac

22 / 29

call sendled call display djnz r3,loop6 ajmp test1

sanjiao: ;三角波子程序

setb p0.4

jb p0.4,sanjiao1 ret

sanjiao1: mov r3,#150 loop9:inc buff1 clr p3.7 mov a,buff1

MOV DPTR ,#numtab1 。译码MOVC A,@A+DPTR mov p2,a setb p3.7 call D1ms1 djnz r3,loop9 mov r3,#150 loop8:dec buff1 clr p3.7 mov a,buff1

MOV DPTR ,#numtab1 。译码MOVC A,@A+DPTR mov p2,a setb p3.7 call D1ms1 djnz r3,loop8 ajmp sanjiao

defind: ;预定义 mov a,control

cjne a,#00h,defind1 setb p3.5

jb p3.5,defind01 dec keybuff2

defind01:setb p3.6 jb p3.6,defind1 inc keybuff2

defind1:cjne a,#01h,defind3 setb p3.5

23 / 29

jb p3.5,defind11 dec keybuff1

defind11:setb p3.6 jb p3.6,defind3 inc keybuff1 defind3:setb p0.4 jb p0.4,defind4 mov buff,keybuff1 mov a,keybuff2 mov b,#10 mul ab add a,buff mov buff,a call senddac call sendled ret

defind4:setb p0.7 jb p0.7,defind5 inc control mov a,control

cjne a,#02h,defind5 mov control,#00h defind5:

call sendkeyled mov a,control

cjne a,#00h,definddis1 call display1 call display4 ajmp defind definddis1: call display2 call display4 ajmp defind

sendled:

mov a,disbuff mov b,#10 div ab

mov led1,b mov b,#10 div ab

mov led2,b mov led3,a

MOV DPTR ,#numtab 。译码24 / 29

mov a,led3 jnz sendled1 mov a,#0ah

sendled1:MOVC A,@A+DPTR MOV led3,A mov a,led2

MOVC A,@A+DPTR MOV led2,A mov a,led1

MOVC A,@A+DPTR MOV led1,A ret

sendkeyled: 送键盘显示缓存mov a,keybuff2 cjne a,#0ffh,keyled3 mov keybuff2,#00h

keyled3:cjne a,#0fh,keyled4 mov keybuff2,#0eh keyled4:

mov a,keybuff1 cjne a,#0ffh,keyled5 mov keybuff1,#00h

keyled5:cjne a,#0ah,keyled6 mov keybuff1,#09h keyled6:

MOV DPTR ,#numtab 。译码 mov a,keybuff2 mov b,#10 div ab

MOVC A,@A+DPTR MOV keydisbuff3,A mov a,b

MOVC A,@A+DPTR MOV keydisbuff2,A mov a,keybuff1

MOVC A,@A+DPTR MOV keydisbuff1,A ret

senddac: ;送显示缓存 mov a,buff

cjne a,#0ffh,dac1 mov buff,#00h

25 / 29

dac1:cjne a,#97h,dac2 mov buff,#96h dac2: clr p3.7 mov a,buff

MOV DPTR ,#numtab1 。译码 MOVC A,@A+DPTR mov p2,a mov a,#0c9h subb a,buff

mov disbuff,buff setb p3.7 ret

display: 显示子程序 mov p0,#00h mov r0,#6

dpl1: mov r1,#100 dplop:

mov p1,led4 clr p0.0 acall d1ms setb p0.0 mov p1,led3 clr p0.1 acall d1ms setb p0.1 mov p1,led2 clr p1.7 clr p0.2 acall d1ms setb p0.2 mov p1,led1 clr p0.3 acall d1ms setb p0.3 djnz r1,dplop djnz r0,dpl1 ret

display1: 显示子程序1 mov p0,#00h mov r0,#1

dpl11: mov r1,#100

26 / 29

dplop1: mov p1,led4 clr p0.0 acall d1ms setb p0.0 mov p1,#0ffh clr p0.1 acall d1ms setb p0.1 mov p1,#0ffh clr p1.7 clr p0.2 acall d1ms setb p0.2

mov p1,keydisbuff1 clr p0.3 acall d1ms setb p0.3

djnz r1,dplop1 djnz r0,dpl11 ret

display2: 显示子程序2 mov p0,#00h mov r0,#1

dpl13: mov r1,#100 dplop3: mov p1,led4 clr p0.0 acall d1ms setb p0.0

mov p1,keydisbuff3 clr p0.1 acall d1ms setb p0.1

mov p1,keydisbuff2 clr p1.7 clr p0.2 acall d1ms setb p0.2 mov p1,#0ffh clr p0.3 acall d1ms setb p0.3

27 / 29

djnz r1,dplop3 djnz r0,dpl13 ret

display4: 显示子程序4 mov p0,#00h mov r0,#1

dpl14: mov r1,#100 dplop4: mov p1,led4 clr p0.0 acall d1ms setb p0.0

mov p1,keydisbuff3 clr p0.1 acall d1ms setb p0.1

mov p1,keydisbuff2 clr p1.7 clr p0.2 acall d1ms setb p0.2

mov p1,keydisbuff1 clr p0.3 acall d1ms setb p0.3

djnz r1,dplop4 djnz r0,dpl14 ret

D1ms: 延时 MOV R7,#0afh DJNZ R7,$ RET

D1ms1: 延时 MOV R7,#0fh DJNZ R7,$ RET

28 / 29

numtab: DB 0c0H, 0f9H, 0a4H, 0b0H, 99H, 92H,82H, 0f8H, 80H, 90H,0ffh numtab1: DB 00h,02h,03h,05h,07h,08h,0bh,0ch,0eh,0fh db 12h,14h,16h,17h,18h,1bh,1ch,1eh,1fh,21h db 24h,26h,29h,2ah,2dh,2ch,2fh,31h,33h,35h db 36h,39h,3ah,3bh,3dh,3ch,3fh,41h,42h,44h db 49h,4ah,4dh,4eh,51h,52h,54h,56h,59h,5bh db 58h,5dh,5ch,5fh,63h,65h,66h,69h,6ah,6dh db 6ch,6eh,6fh,71h,72h,74h,77h,79h,7bh,7ah db 78h,7dh,7ch,7eh,7fh,81h,82h,8dh,84h,88h db 80h,92h,97h,94h,9ah,90h,9dh,98h,9ch,9fh

db 0a1h,0a2h,0a4h,0aah,0adh,0a8h,0aeh,0b3h,0b1h,0b2h db 0b6h,0b4h,0b9h,0b0h,0bah,0bdh,0b8h,0b8h,0bch,0beh db 0bfh,0c6h,0c1h,0cah,0c4h,0d3h,0ceh,0d1h,0d2h,0c0h db 0d4h,0dbh,0dah,0d0h,0ddh,0d8h,0d8h,0dch,0dfh,0e7h db 0e6h,0e9h,0eah,0edh,0edh,0ech,0ech,0efh,0f3h,0f5h db 0f1h,0f1h,0f2h,0f7h,0f6h,0f4h,0f9h,0fbh,0f0h,0fah,0fdh

29 / 29

本文来源:https://www.bwwdw.com/article/h3cx.html

Top