0605-四种波形发生器(占空比可调+固频)-系统设计(51+数码管+DA0832+KEY3)

发布时间:2026/6/29 7:00:50

0605-四种波形发生器(占空比可调+固频)-系统设计(51+数码管+DA0832+KEY3) 功能描述1、采用51单片机作为主控芯片2、采用采用DAC0832芯片支持输出方波/三角波/正向锯齿波/反向锯齿波频率固定3、采用数码管显示波形类型、占空比4、按键设置占空比驱动直流电机转速变化电路设计采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合为设计者提供了全新的设计解决方案使设计者可以轻松进行设计熟练使用这一软件必将使电路设计的质量和效率大大提高。单片机管脚说明P0端口P0.0-P0.7P0口为一个8位漏极开路双向I/O口每个引脚可吸收8TTL门电流。当P1口的管脚第一次写1时被定义为高阻输入。P0能够用于外部程序数据存储器它可以被定义为数据/地址的第八位。在FIASH编程时P0 口作为原码输入口当FIASH进行校验时P0输出原码此时P0外部必须被拉高。P1端口P1.0-P1.7P1口是一个内部提供上拉电阻的8位双向I/O口P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后被内部上拉为高电平可用作输入P1口被外部下拉为低电平时将输出电流这是由于内部上拉的缘故。在FLASH编程和校验时P1口作为第八位地址接收。P2端口P2.0-P2.7P2口为一个内部上拉电阻的8位双向I/O口P2口缓冲器可接收输出4个TTL门电流当P2口被写“1”时其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时P2口的管脚被外部拉低将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时P2口输出地址的高八位。在给出地址“1”时它利用内部上拉优势当对外部八位地址数据存储器进行读写时P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3端口P3.0-P3.7P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口可接收输出4个TTL门电流。当P3口写入“1”后它们被内部上拉为高电平并用作输入。作为输入端时由于外部下拉为低电平P3口将输出电流ILL。P3口同时为闪烁编程和编程校验接收一些控制信号。仿真设计采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具仿真软件从原理图布图、代码调试到单片机与外围电路协同仿真一键切换到PCB设计真正实现了从概念到产品的完整设计。主程序设计void main() { uchar k0; while(1) { if(!k1 (k!1))//波形切换 { k1; if(wave3) wave; else wave0; } if(!k2 (k!2))//占空比加 { k2; if(pwm99) pwm; } if(!k3 (k!3))//占空比减 { k3; if(pwm0) pwm--; } if(k1 k2 k3) k0; //显示 P0smgduan[wave];smg10;delay(10);smg11; P0smgduan[(99-pwm)/10];smg30;delay(10);smg31; P0smgduan[(99-pwm)%10];smg40;delay(10);smg41; //波形计数 if(flag99) flag; else flag0; //输出方波 if(wave0) { if(flagpwm) out0xff; else out0; } //输出正向锯齿波 if(wave2) { outflag*2; } //输出反向锯齿波 if(wave1) { out(100-flag)*2; } //输出三角波 if(wave3) { if(flag51) outflag*5; else out(100-flag)*5; } }源文件获取https://mp.weixin.qq.com/mp/homepage?__bizMzU3OTczMzk5Mghid7snad5d5d0f15df84f4a92ebf72f88d4ee8 点击、扫码、发送关键字“仪器”获取

相关新闻