51单片机实现的数控直流稳压电源程序解析

4星 · 超过85%的资源 需积分: 15 78 下载量 22 浏览量 更新于2024-10-30 4 收藏 47KB DOC 举报
"基于51单片机的数控步进直流稳压电源源程序,实现了通过单片机控制直流稳压电源电压输出步进调节的功能。程序中设定了按键S9为电压增加键,S11为电压减少键,按住或点按时,电压以0.1V的步进值变化。显示部分利用段码表进行字符显示,有带小数点和不带小数点两种状态。系统初始化子程序对各寄存器进行了配置,包括设置键盘接口和SPI显示初始化。" 这篇资源涉及的知识点如下: 1. **51单片机**:51系列单片机是广泛应用的一种微控制器,以其简单的结构和丰富的资源而著名。在这个项目中,51单片机被用来处理电源电压的控制和用户交互。 2. **数控步进直流稳压电源**:这是一种能够精确控制输出电压的设备,通过数字信号处理技术,可以实现电压的连续或步进调整。在这个程序中,电源的电压值可以通过按键S9和S11进行增减,步进值为0.1V。 3. **源程序代码**:提供的程序代码是实现该功能的C语言程序,用于控制51单片机执行相应的操作,如读取按键状态、更新输出电压、显示电压值等。 4. **按键处理**:程序中定义了按键S9和S11的功能,它们分别用于增加和减少输出电压。通过检测按键状态,单片机可以响应用户的操作,改变电源的输出电压。 5. **显示驱动**:程序使用了两个段码表来驱动LED显示,一个用于显示带小数点的数值,另一个不带小数点。显示缓冲数组`s[4]`用于存储待显示的数值,然后传送到LED显示模块。 6. **系统初始化**:`initial()`函数负责初始化系统中的各个寄存器,包括设置与键盘和显示相关的端口,以及初始化变量。 7. **SPI通信**:SPI(Serial Peripheral Interface)是一种串行通信协议,用于单片机与其他设备之间的数据传输。`SPIINIT()`函数用于配置SPI的工作模式,以便与显示设备通信。 8. **中断与定时器**:虽然没有在提供的内容中明确提及,但在实际的51单片机应用中,可能涉及到中断服务例程来处理按键事件,以及定时器来实现步进电压的定时更新和按键检测的防抖动处理。 这个程序展示了如何利用51单片机进行数字控制和人机交互,是学习单片机控制、数字电源设计和串行通信的一个实用案例。
2019-07-23 上传
D/A转换是将数字量转换为模拟量的过程,在计算机实时控制系统中这-技术应用得十分广泛,掌握这方面的技术是单片机开发应用爱好者必须具备的基本功之-。本文通过“数控直流稳压电源”这一简单的实例,详细介绍AT89C2051单片机与DAC0832数模转换器接口电路的原理及其应用方法,可供单片机业余爱好者学习参考。   本文介绍的“数控直流稳压电源”实际上是由单片机控制一直流输出电源,该电源能在输出5~ 12V的范围内按照0.1V的步进量连续可调,而且具有一定的带负载能力。据此,电路可设计成如附图所示,从图上可以看出,电路主要由显示电路、D/A转换电路及电源电压输出电路三部分组成。   显示电路用于显示电源输出电压的大小。根据电压输出范围及步进量要求,显示电路需要用三个数码管组成一个具有小数点- -位、个位和十位的显示器。这三个数码管为带小数点的七段LED数码管。驱动这三位数码管,至少需要21条驱动线,为了节省CPU的I/0口线,显示电路采用CPU的串行口RXD和TXD通过74LS164进行输出口线扩展。74LS164是串人并出的8位移位寄存器,在⑧脚所加脉冲的上升沿作用下,把①、②脚(-般并联使用)输人的串行数据锁存在并行输出端,通过这些并行口线驱动数码管的各字段。数码管选用共阳的E10501-GP,当74LS164的输出端口某线为低电位时,对应的字段被点亮。