当前位置: 首页 > news >正文

【单片机基础】使用51单片机制作函数信号发生器(DAC0832使用仿真)

文章目录

  • (1)DA转换
  • (2)DAC0832简介
  • (3)电路设计
  • (4)参考例程
  • (5)参考文献

(1)DA转换

单片机作为一个数字电路系统,当需要采集外界模拟量的使用需要进行AD转换,将模拟量转换成数字量,供单片机使用。51单片机需要外部配置一个AD转换芯片来进行模拟量的采集,如我之前写了一篇ADC0832的使用。高级的单片机如STC12和STM32已经集成了AD转换功能,只需简单配置一下,便可以采集到AD转换后的数据。

AD转换(Analog to Digital)是模拟量转换数字量,那么DA转换(Digital to Analog)便是数字量转换成模拟量。
在这里插入图片描述
使用DAC0832进行数字到模拟的转换,再使用定时器控制输出波形的频率便可以制作一个函数信号发生器。

(2)DAC0832简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
CS:低电平有效,片选输入线
WR1:低电平大于500ms有效,输入锁存器
WR2:高电平有效,与XFER结合可将输入锁存器的8位数据传输到DAC寄存器中
XFER:低电平有效,数据传输控制输入线
DI0~DI7:8位数据位并行输入,有效时间大于90ns有效
VCC:电源输入5V-15V
VERF:基准电压输入线-10V~10V
RFB:反馈信号输入,可以看成一个反馈监测
IOUT1:电流输出1,其值随着输入线性变化
IOUT2:电流输出2,与OUT1值之和为一个常数

(3)电路设计

单片机最小系统
在这里插入图片描述
波形切换控制
在这里插入图片描述
(这里由于博主时间有限,例程代码的LED显示功能就没有写了)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)参考例程

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int#define DI	P0											//8位数据输入线//sbit sine_wave_LED1					= P1^0;	//正弦波指示灯
//sbit square_wave_LED2 			= P1^1;	//方波指示灯
//sbit triangular_wave_LED3 	= P1^2;	//三角波指示灯
//sbit sawtooth_wave_LED4			= P1^3;	//锯齿波指示灯
sbit change_wave_Key				= P1^4;	//更换波形uint freq = 3906;										//定时数值×16^(-6)×256 = 波形频率 例程使用1KHZ
uint number=1,n=0,THHL,i;//正弦波段码
unsigned code sin[256]={   0x80,0x83,0x85,0x88,0x8A,0x8D,0x8F,0x92,   0x94,0x97,0x99,0x9B,0x9E,0xA0,0xA3,0xA5,   0xA7,0xAA,0xAC,0xAE,0xB1,0xB3,0xB5,0xB7,   0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7,   0xC9,0xCB,0xCC,0xCE,0xD0,0xD1,0xD3,0xD4,   0xD6,0xD7,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,   0xDF,0xE0,0xE1,0xE2,0xE3,0xE3,0xE4,0xE4,   0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE7,0xE7,   0xE7,0xE7,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5,   0xE4,0xE4,0xE3,0xE3,0xE2,0xE1,0xE0,0xDF,   0xDE,0xDD,0xDC,0xDB,0xDA,0xD8,0xD7,0xD6,   0xD4,0xD3,0xD1,0xD0,0xCE,0xCC,0xCB,0xC9,   0xC7,0xC5,0xC3,0xC1,0xBF,0xBD,0xBB,0xB9,   0xB7,0xB5,0xB3,0xB1,0xAE,0xAC,0xAA,0xA7,   0xA5,0xA3,0xA0,0x9E,0x9B,0x99,0x97,0x94,   0x92,0x8F,0x8D,0x8A,0x88,0x85,0x83,0x80,   0x7D,0x7B,0x78,0x76,0x73,0x71,0x6E,0x6C,   0x69,0x67,0x65,0x62,0x60,0x5D,0x5B,0x59,   0x56,0x54,0x52,0x4F,0x4D,0x4B,0x49,0x47,   0x45,0x43,0x41,0x3F,0x3D,0x3B,0x39,0x37,   0x35,0x34,0x32,0x30,0x2E,0x2D,0x2C,0x2A,   0x29,0x28,0x26,0x25,0x24,0x23,0x22,0x21,   0x20,0x1F,0x1E,0x1D,0x1D,0x1C,0x1C,0x1B,   0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x19,   0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1B,   0x1B,0x1C,0x1C,0x1D,0x1D,0x1E,0x1F,0x20,   0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,   0x2A,0x2C,0x2D,0x2F,0x30,0x32,0x34,0x35,   0x37,0x39,0x3B,0x3D,0x3F,0x41,0x43,0x45,   0x47,0x49,0x4B,0x4D,0x4F,0x52,0x54,0x56,   0x59,0x5B,0x5D,0x60,0x62,0x65,0x67,0x69,   0x6C,0x6E,0x71,0x73,0x76,0x78,0x7B,0x7D   };   
//三角波段码
unsigned code thr[256]={      0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,   0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,   0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,   0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,   0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,   0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,   0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,   0xBF,0xBE,0xBD,0xBC,0xBB,0xBA,0xB9,0xB8,   0xB7,0xB6,0xB5,0xB4,0xB3,0xB2,0xB1,0xB0,0xAF,0xAE,0xAD,0xAC,0xAB,0xAA,0xA9,0xA8,   0xA7,0xA6,0xA5,0xA4,0xA3,0xA2,0xA1,0xA0,   0x9F,0x9E,0x9D,0x9C,0x9B,0x9A,0x99,0x98,   0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,   0x8F,0x8E,0x8D,0x8C,0x8B,0x8A,0x89,0x88,   0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,   0x7F,0x7E,0x7D,0x7C,0x7B,0x7A,0x79,0x78,   0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,   0x6F,0x6E,0x6D,0x6C,0x6B,0x6A,0x69,0x68,   0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,   0x5F,0x5E,0x5D,0x5C,0x5B,0x5A,0x59,0x58,   0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,   0x4F,0x4E,0x4D,0x4C,0x4B,0x4A,0x49,0x48,   0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,   0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,   0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,   0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,   0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,   0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,   0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,   0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,   0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F    }; //方波段码																																	 
unsigned code squ[256]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,													0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,			0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff												};//10ms延时函数
void delay_10ms(uchar i)
{//毫秒级延时函数//在12MHZ下晶振下,大约延时10ms/次uchar a,b,c;for(c = i; c > 0; --c)for(b = 129; b > 0; b--)for(a = 38; a > 0; a--);
}//定时器0初始化
void Timer0Init(void)
{unsigned int THHL;TMOD &= 0xF0;				//定时器1失效TMOD |= 0x01;				//定时器0,16位计数THHL=65536-freq;TL0 =THHL%256;			//设置定时初值TH0 =THHL/256;			//设置定时初值TF0 = 0;						//清除TF0标志TR0 = 1;						//定时器0开始计时ET0=1;							//开定时器0中断EA=1;								//开总中断PT0=0;							//定时器0中断最优
}void main()
{/*指示灯初始化,全部熄灭*/
//	triangular_wave_LED3  = 1;
//	square_wave_LED2			= 1;
//	sine_wave_LED1				= 1;Timer0Init();//初始化定时器0while(1){if(change_wave_Key == 0){delay_10ms(1);//延时消抖if(change_wave_Key == 0){while(!change_wave_Key);//松手检测number++;if(number == 5){number = 0;}}}switch(number){case 1:	{DI=sin[n]; break;}//正弦波case 2: {DI=thr[n]; break;}//三角波case 3: {for(i=0;i<256;i++){DI=squ[i];} break;}//方波case 4:	{DI=256-n; break;}//锯齿波default:{break;}}}
}//定时器0中断处理函数
void Timer0_Routine() interrupt 1
{THHL=65536-freq;TL0=THHL%256;TH0=THHL/256;  if(n>=255) {n=0;} else {n++;}   
}

电路仿真及代码例程
链接:https://share.weiyun.com/ALLrnKTu 密码:cchvph

(5)参考文献

基于51单片机的DAC0832波形发生器

由于作者水平有限,如有错误望指摘。

相关文章:

【单片机基础】使用51单片机制作函数信号发生器(DAC0832使用仿真)

文章目录 &#xff08;1&#xff09;DA转换&#xff08;2&#xff09;DAC0832简介&#xff08;3&#xff09;电路设计&#xff08;4&#xff09;参考例程&#xff08;5&#xff09;参考文献 &#xff08;1&#xff09;DA转换 单片机作为一个数字电路系统&#xff0c;当需要采集…...

springcloud组件

https://www.bilibili.com/video/BV1QX4y1t7v5?p32&vd_source297c866c71fa77b161812ad631ea2c25 eureka : 主要是收集服务的注册信息。 如果有了eureka启动了。内部之前的调用其实就可以用服务名了&#xff0c; 本来是要是用ip端口来访问的&#xff0c;只要eureka启来了…...

手机爬虫用Appium详细教程:利用Python控制移动App进行自动化抓取数据

Appium是一个强大的跨平台工具&#xff0c;它可以让你使用Python来控制移动App进行自动化操作&#xff0c;从而实现数据的抓取和处理。今天&#xff0c;我将与大家分享一份关于使用Appium进行手机爬虫的详细教程&#xff0c;让我们一起来探索Appium的功能和操作&#xff0c;为手…...

deb包构建详解

deb包构建详解 一、deb包构建流程二、deb包构建描述文件详解2.1 control文件2.2 postinst 文件 (post-installation script)2.3 postrm 文件 (post-removal script)2.4 prerm 文件 (pre-removal script)2.5 preinst 文件 (pre-installation script)2.6 rules 文件2.7 changelog…...

【Spring Cloud】网关Gateway的请求过滤工厂RequestRateLimiterGatewayFilterFactory

概念 关于微服务网关Gateway中有几十种过滤工厂&#xff0c;这一篇博文记录的是关于请求限流过滤工厂&#xff0c;也就是标题中的RequestRateLimiterGatewayFilterFactory。这个路由过滤工厂是用来判断当前请求是否应该被处理&#xff0c;如果不会被处理就会返回HTTP状态码为42…...

自己写spring boot starter问题总结

1. Unable to find main class 创建spring boot项目写自己的starterxi写完之后使用install出现Unable to find main class&#xff0c;这是因为spring boot打包需要一个启动类&#xff0c;按照以下写法就没事 <plugins><plugin><groupId>org.springframewo…...

vue3如何打开页面即向后端发送请求

目录 背景&#xff1a; 实现&#xff1a; 1、使用 2、案例 补充&#xff1a; 1、如何定义一个集合来接受后端返回的list 2、加入请求头 背景&#xff1a; 如果想在页面刚加载时向后端发送请求&#xff0c;可以使用Vue 3的生命周期钩子函数onMounted来实现 实现&#xff…...

【软考】9.2 串/数组/矩阵/广义表/树

《字符串》 一种特殊的线性表&#xff0c;数据元素都为字符模式匹配&#xff1a;寻找子串第一次在主串出现的位置 模式匹配算法 1. 暴力破解法&#xff08;布鲁特-福斯算法&#xff09; 主串与子串一个个匹配效率低 2. KMP算法 主串后缀和子串前缀能否找到一样的元素&#xf…...

大数据 DataX 数据同步数据分析入门

目录 一、DataX 概览 1.1 DataX 是什么 1.2 DataX 3.0 概览 设计理念 当前使用现状 二、DataX 详解 2.1 DataX 3.0 框架设计 2.2 DataX 3.0 插件体系 2.3 DataX 3.0 核心架构 2.3.1 核心模块介绍 2.3.2 DataX 调度流程 2.4 DataX 3.0 的六大核心优势 2.4.1 可靠的…...

【京东开源项目】微前端框架MicroApp 1.0正式发布

介绍 MicroApp是由京东前端团队推出的一款微前端框架&#xff0c;它从组件化的思维&#xff0c;基于类WebComponent进行微前端的渲染&#xff0c;旨在降低上手难度、提升工作效率。MicroApp无关技术栈&#xff0c;也不和业务绑定&#xff0c;可以用于任何前端框架。 源码地址…...

多个子div在父中垂直居中

在一个div下&#xff0c;有多个子div&#xff0c;且子div都是水平垂直居中 <template><div><div class"far"><!-- 注意需要多包裹一层 --><div><div class"son1">1</div><div class"son2">222…...

[C国演义] 第十五章

第十五章 最长湍流子数组环绕字符串中唯⼀的⼦字符串 最长湍流子数组 力扣链接 子数组 ⇒ dp[i]的含义: 以arr[i] 结尾的所有子数组中的最长湍流子数组的长度 子数组 ⇒ 状态转移方程根据 最后一个位置来划分&#x1f447;&#x1f447;&#x1f447; 初始化: 都初始化为…...

Docker Compose和Consul

目录 Docker-compose Docker-compose 简介 YAML 文件格式及编写注意事项 Docker Compose配置常用字段 Docker Compose 常用命令 Docker Compose 文件结构 compose 部署 Docker Compose 环境安装 准备依赖文件 编写配置文件docker-compose.yml Consul consul 部署 c…...

Wireshark新手小白基础使用方法

一、针对IP抓取 1、过滤格式&#xff1a; &#xff08;1&#xff09;、ip.src eq x.x.x.x &#xff08;2&#xff09;、ip.dst eq x.x.x.x &#xff08;3&#xff09;ip.src eq x.x.x.x or ip.dst eq x.x.x.x 二、针对端口过滤 1、过滤格式&#xff1a; &#xff08;1&a…...

互动设计:深入了解用户体验的关键

交互是人与计算机系统之间的互动过程。在计算机领域中&#xff0c;交互是人机交互技术的核心内容之一。交互设计是一种基于人类行为科学、心理学、人体工程学等领域的专业设计&#xff0c;目的是创造用户友好的、易于使用的计算机软件、网络、移动应用等。交互的本质在于用户的…...

maven的坐标元素

maven的坐标&#xff1a;使用三个向量在Maven仓库中唯一的定位到一个jar包 * groupId&#xff1a;公司或组织的ID * artifactId&#xff1a;一个项目或者是项目中的一个模块的ID * version&#xff1a;版本号 <groupId>com.gz.maven</groupId> <artifactId&…...

蓝桥杯 题库 简单 每日十题 day13

01 乘积尾零 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将 所填结果输出即可。如下的10行数据&#xff0c;每行有10个整数&#xff0c;请你求出它们的乘积的末尾有多少个零&#xff1f; 5650 4542 3554 473 946 4114 3871 9073 90 …...

联想G50笔记本直接使用F键功能(F1~F12)需要在BIOS设置关闭热键功能可以这样操作!

如果开启启用热键模式按F1就会出现FnF1的效果&#xff0c;不喜欢此方式按键的用户可以进入BIOS设置界面停用热键模式即可。 停用热键模式方法如下&#xff1a; 1、重新启动笔记本电脑&#xff0c;当笔记本电脑屏幕出现Lenovo标识的时候&#xff0c;立即按FnF2进入BIOS设置界面…...

C++入门(头文件,命名空间,作用域,输入输出流,引用,缺省参数,函数重载)

目录 一&#xff0c;头文件 二,命名空间 三&#xff0c;作用域 四&#xff0c;输入输出流 五&#xff1a;引用 六&#xff0c;缺省参数 七&#xff0c;函数重载 一&#xff0c;头文件 C的头文件与C是有差距的&#xff0c;C的头文件是#include<stdio.h>,而C是#inc…...

“Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”

一、Linux系统免除交互操作方法 1、EOF多文本输入 案例&#xff1a;为机器磁盘进行分区并实现挂载&#xff0c;免交互式操作&#xff0c;如何实现&#xff1f; #!/bin/bash fdisk /dev/sdb <<EOF n p 1 wq EOFmkfs.xfs /dev/sdb1 && mkdir -p /data &&am…...

三相异步电机动态数学模型及矢量控制仿真

三相异步电机动态数学模型及矢量控制仿真 本文带你一步步推倒三相异步电机动态数学模型&#xff0c;按基于转子磁链定向的矢量控制进行 matlab 仿真&#xff0c;实现较好的控制效果。 1、异步电机三相方程 2、坐标变换 3、磁链3/2变换推导 4、两相静止坐标系下的方程 5、…...

HTML5 新增表单标签

HTML5为表单添加了一些新的语义化标签&#xff0c;可以更好地描述表单内容和功能。下面是新增的表单标签及其功能&#xff1a; <datalist>标签&#xff1a;用于定义一个选项列表&#xff0c;供用户选择或输入。 <output>标签&#xff1a;用于显示表单提交后的结果…...

【版本控制】Git(学习笔记)

一、Git工作流程图 clone&#xff08;克隆&#xff09;: 从远程仓库中克隆代码到本地仓库checkout &#xff08;检出&#xff09;&#xff1a;从本地仓库中检出一个仓库分支然后进行修订add&#xff08;添加&#xff09;: 在提交前先将代码提交到暂存区commit&#xff08;提交&…...

C语言,求一个整数的全部素数因子

#include <stdio.h> int prime(int x)//一旦x被2到x-1的数整除&#xff0c;就返回0&#xff0c;一直不被整除&#xff0c;才返回1。 {int j 0;for (j 2; j < x; j){if (x % j 0){return 0;}}return 1; } int main() {int n 0;scanf("%d", &n);int i…...

Jenkins更换主目录

Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改&#xff1a; 使用你Web容器的管理工具设置JENKINS_HOME环境参数.在启动Web容器之前设置JENKINS_HOME环境变量.(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件. 这个值在Jenkins运行时…...

迅为RK3588开发板使用RKNN-Toolkit-lite2运行测试程序

1 首先也需要部署运行环境&#xff0c;将库文件放入 RK3588 开发板上&#xff0c;我们将网盘资料“iTOP-3588 开发 板 \02_ 【 iTOP-RK3588 开 发 板 】 开 发 资 料 \12_NPU 使 用 配 套 资 料 \05_Linux_librknn_api\librknn_api\aarch64”路径下的文件通过U盘拷贝到开发板的…...

1990-2023:RPA的变革之路

01 第一阶段&#xff1a;初级助手与UI测试 阶段简介&#xff1a; RPA开始于简单的数据导入和用户界面测试 在最早期的阶段中&#xff0c;RPA又可比作虚拟化助手&#xff0c;能够助力人力实施的基本数据导入&#xff0c;然而辅助作业时尚需人为操作。RPA 的故事始于用户界面 (U…...

SQL 语法

SQL 语法规则 SQL语句总是以关键字开始&#xff0c;如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。SQL语句以分号结尾。SQL不区分大小写&#xff0c;意味着update与UPDATE相同。 数据库表 数据库通常包含一个或多个表。每个表都用一个名称标识&#xff08;例如&#xff0c;…...

吃鸡达人必备神器,提升战斗力享受顶级游戏干货!

大家好&#xff01;今天我为大家介绍一款专为吃鸡玩家打造的神器——吃鸡盒子。无论您是新手还是老玩家&#xff0c;吃鸡盒子都能帮助您提升游戏的战斗力&#xff0c;分享顶级游戏作战干货&#xff0c;并且还能方便吃鸡作图、查询库存和保护账号安全。 让我们先来说说提升战斗力…...

PyTorch 深度学习之循环神经网络(基础篇)Basic RNN(十一)

0.Revision: DNN dense 重义层 全连接 RNN处理带有序列的数据 1. What is RNNs? linear layer 1.1 What is RNN? tanh (-1, 1) 1.2 RNN Cell in PyTorch 1.3 How to use RNNCell *先把维度搞清楚 多了一个序列的维度 2. How to use RNN 2.1 How to use RNN - numLayers…...

wordpress 不能改邮箱/揭阳新站seo方案

忽然发现自己工作已经快一年了&#xff0c;想想这一年的收获却不知道哪些能拿得出手....最初刚参加工作:由于比较大的工程项目&#xff0c;每天都很忙&#xff0c;给自己的懈怠的理由是&#xff0c;现在太忙了没时间学习&#xff0c;等有时间再好好学习。而等到第一个大型的工程…...

网络规划设计师历年真题百度网盘/北京网站优化外包

“世界不能没有开源”&#xff0c;“开源正在杀死软件开发”&#xff0c;“开源不过是一些理想主义者的美梦”&#xff0c;“你开源我赞美&#xff0c;要我开源我不干”。关于开源&#xff0c;我们能聊的太多。而“中国化”的开源&#xff0c;却总是受到不少的质疑与诋毁。但在…...

wordpress布谷鸟主题/免费软文发布平台有哪些

前言我们在数据库建表时&#xff0c;经常会困扰某个字段应该选择什么数据类型&#xff0c;以及填写什么长度。选择数据类型方面一般不会有什么大问题&#xff0c;但是在填写对应的长度的时候&#xff0c;很多人就会困扰&#xff0c;对应长度填写的数字到底是什么含义&#xff0…...

随州做网站/商家联盟营销方案

Python使用pip安装报错ModuleNotFoundError: No module named pip._internal.cli.main’的解决方法 大家好&#xff0c;我叫亓官劼&#xff08;q guān ji &#xff09;&#xff0c;在CSDN中记录学习的点滴历程&#xff0c;时光荏苒&#xff0c;未来可期&#xff0c;加油~博客地…...

社保网站做员工用工备案/企业网站推广注意事项

选择好的变量名 前注&#xff1a;希望我的读书笔记能带你快速翻过30页的《代码大全》&#xff0c;若有不妥之处&#xff0c;恳请指正。这部分很基础&#xff0c;但也是最常用的&#xff0c;不要小看哦~ http://www.cnblogs.com/jerry19880126/ 对于码农来说&#xff0c;给变量取…...

东莞市企业招聘信息网/网站关键字优化公司

大家周末愉快啊&#xff0c;今天分享一则重要通知。 Redis 6.0.8 于 2020/9/10 日晚紧急发布&#xff01;&#xff01;&#xff01; 可以看到这是一个紧急更新版本&#xff0c;使用了 Redis 6.0.7 Sentinel&#xff08;哨兵&#xff09;以及 CONFIG REWRITE 命令的用户受到影响…...