中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

柳州網(wǎng)站建設(shè)工作室營銷方式和手段有哪些

柳州網(wǎng)站建設(shè)工作室,營銷方式和手段有哪些,政府輿情管理和網(wǎng)站建設(shè),工業(yè)軟件界面設(shè)計(jì)文章目錄 參考資料1. 準(zhǔn)備工作1.1 win10配置51單片機(jī)開發(fā)環(huán)境1.1 Ubuntu配置51單片機(jī)開發(fā)環(huán)境問題1:mcs51/8051.h依賴于mcs51/lint.h問題2:提示找不到頭文件mcs51/8051.h 2. 認(rèn)識51單片機(jī)2.1 STC89C52單片機(jī)2.2 管腳圖2.3 原理圖2.4 按鍵抖動2.5 頭文件說…

文章目錄

  • 參考資料
  • 1. 準(zhǔn)備工作
    • 1.1 win10配置51單片機(jī)開發(fā)環(huán)境
    • 1.1 Ubuntu配置51單片機(jī)開發(fā)環(huán)境
      • 問題1:`mcs51/8051.h`依賴于`mcs51/lint.h`
      • 問題2:提示找不到頭文件`mcs51/8051.h`
  • 2. 認(rèn)識51單片機(jī)
    • 2.1 STC89C52單片機(jī)
    • 2.2 管腳圖
    • 2.3 原理圖
    • 2.4 按鍵抖動
    • 2.5 頭文件說明
    • 2.6 模塊化函數(shù)
      • 2.6.1 延時(shí)函數(shù)
      • 2.6.2 矩陣鍵盤
  • 3. LED模塊
    • 3.1 原理圖
    • 實(shí)驗(yàn)1:點(diǎn)亮LED燈D1
    • 實(shí)驗(yàn)2:LED燈D8閃爍
    • 實(shí)驗(yàn)3:LED流水燈
  • 4. 獨(dú)立按鍵模塊
    • 4.1 原理圖
    • 實(shí)驗(yàn)1:獨(dú)立按鍵控制LED燈D1
  • 5. 動態(tài)數(shù)碼管模塊
    • 5.1 原理圖
    • 實(shí)驗(yàn)1:數(shù)碼管LED3顯示2
    • 實(shí)驗(yàn)2:數(shù)碼管LED8 ~ LED1分別顯示0 ~ 8
  • 6. LCD1602接口
    • 6.1 原理圖
  • 7. 矩陣按鍵模塊
    • 7.1 原理圖
    • 實(shí)驗(yàn)1:在LCD1602顯示按下的鍵碼(1 ~ 16)
    • 實(shí)驗(yàn)2:4位密碼鎖
  • 8. 定時(shí)器與中斷
    • 8.1 原理圖
    • 實(shí)驗(yàn)1:實(shí)現(xiàn)一個(gè)電子時(shí)鐘
  • 9. 串口通信
    • 9.1 原理圖

參考資料

51單片機(jī)入門教程-2020版 程序全程純手打 從零開始入門
江協(xié)科技資料下載
51單片機(jī)(STC89C52RC)系統(tǒng)性學(xué)習(xí)筆記

1. 準(zhǔn)備工作

1.1 win10配置51單片機(jī)開發(fā)環(huán)境

  1. 51單片機(jī)
正在重新握手 ... 成功			[0.578"]
當(dāng)前的波特率: 115200
正在擦除目標(biāo)區(qū)域 ... 完成 !		[0.328"]
正在下載用戶代碼 ... 完成 !		[0.141"]
正在設(shè)置硬件選項(xiàng) ... 完成 !		[0.031"]更新后的硬件選項(xiàng)為:. 當(dāng)前的時(shí)鐘頻率: 11.088MHz. 系統(tǒng)頻率為12T(單倍速)模式. 振蕩器的放大增益不降低. 當(dāng)看門狗啟動后,任何復(fù)位都可停止看門狗. MCU內(nèi)部的擴(kuò)展RAM可用. ALE腳的功能選擇仍然為ALE功能腳. P1.0和P1.1與下次下載無關(guān). 下次下載用戶程序時(shí),不擦除用戶EEPROM區(qū)單片機(jī)型號: STC89C52RC/LE52RC固件版本號: 6.6.4C
  1. 編程工具 Keil5 C51 新建項(xiàng)目時(shí)選擇AT89C51RC2

  2. 將程序載入到51單片機(jī)的工具 STC-ISP
    在這里插入圖片描述

  3. 51單片機(jī)接入電腦,并配置驅(qū)動CH340_CH341
    在這里插入圖片描述

1.1 Ubuntu配置51單片機(jī)開發(fā)環(huán)境

  1. 編輯器 VS Code 安裝教程
  2. 安裝VS Code插件 C/C++ Extension Pack
  3. 安裝編譯工具 sudo apt-get install sdcc
  4. 程序編譯
    sdcc 1_LED_1.c
    將編譯生成的文件輸出到out目錄,需要先通過sudo mkdir out創(chuàng)建out目錄
    sdcc 1_LED_1.c -o out/

問題1:mcs51/8051.h依賴于mcs51/lint.h

#include <mcs51/lint.h>
#include <mcs51/8051.h>

問題2:提示找不到頭文件mcs51/8051.h

在這里插入圖片描述
8051.h是安裝sdcc后產(chǎn)生的,請先確保sdcc已經(jīng)安裝,sudo find / -name 8051.h搜索一下頭文件8051.h所在的目錄
在這里插入圖片描述
這里目錄是/usr/share/sdcc/include,將該路徑配置到includepath,先點(diǎn)擊Quick Fix
在這里插入圖片描述
再點(diǎn)擊Edit “includePath” setting
在這里插入圖片描述

添加/usr/share/sdcc/includeInclude path
在這里插入圖片描述

2. 認(rèn)識51單片機(jī)

2.1 STC89C52單片機(jī)

  • 所屬系列:51單片機(jī)系列
  • 公司:STC公司
  • 位數(shù):8位
  • RAM:512字節(jié)
  • ROM:8K(Flash)
  • 工作頻率:12MHz(本開發(fā)板使用)
    在這里插入圖片描述

2.2 管腳圖

在這里插入圖片描述

2.3 原理圖

在這里插入圖片描述
高清PDF可從這里下載江協(xié)科技資料下載

2.4 按鍵抖動

對于機(jī)械開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)開關(guān)在閉合時(shí)不會馬上穩(wěn)定地接通,在斷開時(shí)也不會一下子斷開,所以在開關(guān)閉合及斷開的瞬間會伴隨一連串的抖動。
在這里插入圖片描述
因此,需要進(jìn)行防抖處理,如下:

// 這是一個(gè)檢測獨(dú)立按鍵K1是否按下,并控制LED模塊的簡化代碼
if(P3_1==0)			// 如果K1按鍵按下,P3_1的值會變?yōu)?
{Delay(20);		// 延時(shí)20毫秒消抖while(P3_1==0);	// 死循環(huán)空轉(zhuǎn),直到K1按鍵松開,P3_1變?yōu)?,跳出循環(huán)Delay(20);		// 延時(shí)20毫秒消抖P2_0=~P2_0;		// LED1的亮滅情況
}

2.5 頭文件說明

#include <mcs51/lint.h>
#include <mcs51/8051.h>
#include <REGX52.H>

2.6 模塊化函數(shù)

2.6.1 延時(shí)函數(shù)

#ifndef __DELAY_H__
#define __DELAY_H__void Delayms(unsigned char k);#endif
#include <INTRINS.H>// 延時(shí)k ms
void Delayms(unsigned char k)		//@11.0592MHz
{unsigned char i, j;while (k --) {_nop_();i = 2;j = 199;do{while (--j);} while (--i);}
}

2.6.2 矩陣鍵盤

#ifndef __MATRIXKEYBOARD_H__
#define __MATRIXKEYBOARD_H__unsigned int matrixKeyboard();#endif
#include <at89c51RC2.h>
#include "Delay.h"
// 反回鍵碼(1 ~ 16),行優(yōu)先遍歷
// 按列掃描矩陣鍵盤
// 如果按行的話,P1_5和蜂鳴器沖突,會導(dǎo)致其發(fā)聲
unsigned int matrixKeyboard() {unsigned int keyNum = 0;P1 = 0xFF;P1_3 = 0; // 第一列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 1;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 5;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 9;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 13;}P1 = 0xFF;P1_2 = 0; // 第二列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 2;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 6;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 10;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 14;}P1 = 0xFF;P1_1 = 0; // 第三列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 3;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 7;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 11;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 15;}P1 = 0xFF;P1_0 = 0; // 第四列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 4;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 8;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 12;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 16;}return keyNum;
}

3. LED模塊

3.1 原理圖

在這里插入圖片描述
LED等的左側(cè)接入VCC正極,若要使燈亮,則右側(cè)需要接入負(fù)極,也就是對應(yīng)的寄存器位需要賦值為0。

實(shí)驗(yàn)1:點(diǎn)亮LED燈D1

#include <AT89C51RC2.h>
/*** 點(diǎn)亮LED燈D1
*/
void main() {P2 = 0xFF; // 將所有燈熄滅P2_0 = 0; // D1燈亮起while (1); // 程序始終保持運(yùn)行
}

實(shí)驗(yàn)2:LED燈D8閃爍

#include <AT89C51RC2.h>
#include <INTRINS.H>/*** LED燈D8閃爍
*/
void main() {P2 = 0xFF; while (1){P2_7 = 0; // D8燈亮Delayms(1000); // 延遲1000ms = 1sP2_7 = 1; // D8燈滅Delayms(1000); // 延遲1000ms = 1s} 
}

實(shí)驗(yàn)3:LED流水燈

#include <AT89C51RC2.h>
#include "Delay.h"/*** LED燈D1 ~ D8按順序點(diǎn)亮,每次只有一個(gè)燈亮
*/
void main() {// 1111 1110// 1111 1101// 1111 1011// ...// 1111 1110// =》 其實(shí)就是實(shí)現(xiàn)循環(huán)左移P2 = 0xFE;while (1){P2 <<= 1;if (P2 != 0xFE) P2 |= 0x01;Delayms(1000); // 延遲1000ms = 1s} 
}

4. 獨(dú)立按鍵模塊

4.1 原理圖

在這里插入圖片描述

實(shí)驗(yàn)1:獨(dú)立按鍵控制LED燈D1

#include <AT89C51RC2.h>
#include "Delay.h"/*** 獨(dú)立按鍵K1控制LED燈D1* 按下按鍵并松開后,變換燈D1的狀態(tài)
*/
void main() {while (1){// 注意控制K1的是P3_1,控制K2的是P3_0// 當(dāng)值為0是代表按鍵按下if (P3_1 == 0) {Delay(20); // 消除按鍵抖動while (P3_1 == 0); // 一直保持按下的狀態(tài)則卡在這Delay(20); // 消除按鍵抖動P2_0 = ~P2_0; // 狀態(tài)取反}} 
}

5. 動態(tài)數(shù)碼管模塊

5.1 原理圖

在這里插入圖片描述在這里插入圖片描述
LED1 ~ LED8的亮滅(位選)由P24, P23, P22三位決定,P24位高位,當(dāng)這三個(gè)位表示數(shù)據(jù)n時(shí),Yn對應(yīng)的燈亮,Y0對應(yīng)LED1
P0_0 ~ P0_6分別控制a ~ g晶體管,P0_7控制dp晶體管,為1代表選中。(P0_7是最高位,P0_0是最低位)

實(shí)驗(yàn)1:數(shù)碼管LED3顯示2

#include <AT89C51RC2.h>/*** 數(shù)碼管LED3顯示2
*/
void main() {// 選中數(shù)碼管LED3,對應(yīng)Y2  P2_4 P2_3 P2_2 = 0 1 0P2_4 = 0;P2_3 = 1;P2_2 = 0;// a b c d e f g dp// 0 1 2 3 4 5 6 7// a b c d e f g dp// 1 1 0 1 1 0 1 0 => 0101 1011 = 0x5B// 數(shù)字2,需要點(diǎn)亮 a b g e dP0 = 0x5B;while (1);
}

實(shí)驗(yàn)2:數(shù)碼管LED8 ~ LED1分別顯示0 ~ 8

// 對應(yīng)數(shù)字 0 ~ 9 的段碼
unsigned char NixieTable[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
// 在LED-loc 顯示num
void Nixie(unsigned char loc, unsigned char num) { P2_4 = 0; P2_3 = 0; P2_2 = 0; // 1110 0011 = 0xE3 P2 &= 0xE3if ((loc & 0x01) == 1) P2_2 = 1;if ((loc & 0x02) == 2) P2_3 = 1;if ((loc & 0x04) == 4) P2_4 = 1;P0 = NixieTable[num];// 消影,數(shù)字清零,防止上一個(gè)位置的數(shù)字顯示到下一個(gè)位置Delayms(1);P0 = 0x00;
}/*** 數(shù)碼管LED8 ~ LED1分別顯示0 ~ 8
**/
void main() {unsigned char i;while (1) {for (i = 0; i <= 7; i ++) {Nixie(7 - i, i);}}
}

6. LCD1602接口

6.1 原理圖

在這里插入圖片描述

7. 矩陣按鍵模塊

7.1 原理圖

在這里插入圖片描述

實(shí)驗(yàn)1:在LCD1602顯示按下的鍵碼(1 ~ 16)

#include <at89c51RC2.h>
#include "Delay.h"
// 反回鍵碼(1 ~ 16),行優(yōu)先遍歷
// 沒有按下任何鍵則返回0
// 按列掃描矩陣鍵盤
// 如果按行的話,P1_5和蜂鳴器沖突,會導(dǎo)致其發(fā)聲
unsigned int matrixKeyboard() {unsigned int keyNum = 0;P1 = 0xFF;P1_3 = 0; // 第一列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 1;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 5;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 9;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 13;}P1 = 0xFF;P1_2 = 0; // 第二列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 2;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 6;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 10;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 14;}P1 = 0xFF;P1_1 = 0; // 第三列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 3;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 7;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 11;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 15;}P1 = 0xFF;P1_0 = 0; // 第四列if (P1_7 == 0) {Delayms(20); while (P1_7 == 0); Delayms(20); keyNum = 4;}if (P1_6 == 0) {Delayms(20); while (P1_6 == 0); Delayms(20); keyNum = 8;}if (P1_5 == 0) {Delayms(20); while (P1_5 == 0); Delayms(20); keyNum = 12;}if (P1_4 == 0) {Delayms(20); while (P1_4 == 0); Delayms(20); keyNum = 16;}return keyNum;
}// 在LCD1602顯示按下的鍵碼(1 ~ 16)
void main() {unsigned int num = 0, newNum = 0;LCD_Init();while (1) {newNum = matrixKeyboard();if (newNum != 0) {num = newNum;}LCD_ShowNum(1, 1, num, 2); // 第一行第一列顯示,占兩個(gè)位置}
}

實(shí)驗(yàn)2:4位密碼鎖

// 10為0,11為確認(rèn),12為清空
void main() {// num,保存當(dāng)前輸入的密碼// keyNum,記錄矩陣鍵盤按下的鍵碼// count,記錄當(dāng)前已經(jīng)輸入多少個(gè)數(shù)字unsigned int num = 0, keyNum = 0, count = 0;// LCD1602初始化LCD_Init();// 在第一行的前9個(gè)輸入固定顯示輸入提示符LCD_ShowString(1, 1, "PASSWORD:");while (1) {// 第10個(gè)字符顯示當(dāng)前輸入的密碼LCD_ShowNum(1, 10, num, 4);// 獲取當(dāng)前矩陣鍵盤的鍵碼(沒有按下任何鍵則返回0)keyNum = matrixKeyboard();if (keyNum >= 1 && keyNum <= 9 && count < 4) {num = num * 10 + keyNum;count ++;} else if (keyNum == 11 && count == 4) {if (num == 1234) {LCD_ShowString(2, 1, "OK");} else {LCD_ShowString(2, 1, "ERR");}} else if (keyNum == 12) {num = 0;count = 0;LCD_ShowString(2, 1, "   ");}}
}

8. 定時(shí)器與中斷

定時(shí)器介紹:51單片機(jī)的定時(shí)器屬于單片機(jī)的內(nèi)部資源,其電路的連接和運(yùn)轉(zhuǎn)均在單片機(jī)內(nèi)部完成
定時(shí)器作用︰
(1)用于計(jì)時(shí)系統(tǒng),可實(shí)現(xiàn)軟件計(jì)時(shí),或者使程序每隔一固定時(shí)間完成一項(xiàng)操作
(2)替代長時(shí)間的Delay,提高CPU的運(yùn)行效率和處理速度(…)

8.1 原理圖

在這里插入圖片描述

TL0和TH0發(fā)生溢出時(shí)(達(dá)到65535),TF0標(biāo)志位被置位1,從而引發(fā)中斷。

  1. 生成定時(shí)器初始化代碼
    在這里插入圖片描述
void Timer0Init(void)		//1毫秒@11.0592MHz
{AUXR &= 0x7F;		//定時(shí)器時(shí)鐘12T模式TMOD &= 0xF0;		//設(shè)置定時(shí)器模式TMOD |= 0x01;		//設(shè)置定時(shí)器模式TL0 = 0x66;		//設(shè)置定時(shí)初值TH0 = 0xFC;		//設(shè)置定時(shí)初值TF0 = 0;		//清除TF0標(biāo)志TR0 = 1;		//定時(shí)器0開始計(jì)時(shí)// 這兩個(gè)開關(guān)配置需要自己加一下ET0 = 1; // 打開定時(shí)器0EA = 1; // 打開總開關(guān)
}

實(shí)驗(yàn)1:實(shí)現(xiàn)一個(gè)電子時(shí)鐘

void Timer0Init()		//1毫秒@11.0592MHz
{AUXR &= 0x7F;		//定時(shí)器時(shí)鐘12T模式TMOD &= 0xF0;		//設(shè)置定時(shí)器模式TMOD |= 0x01;		//設(shè)置定時(shí)器模式TL0 = 0x66;		//設(shè)置定時(shí)初值 TH0 = 0xFC;		//設(shè)置定時(shí)初值TF0 = 0;		//清除TF0標(biāo)志TR0 = 1;		//定時(shí)器0開始計(jì)時(shí)ET0 = 1; // 打開定時(shí)器0EA = 1; // 打開總開關(guān)
}unsigned int count = 0;
// 設(shè)置時(shí)鐘為 23:59:45 方便調(diào)試
unsigned int second = 45;
unsigned int minute = 59;
unsigned int hour = 23;void main() {
//	// TMOD不可位尋址, M0給1 => 0x01
//	// TMOD = 0x01; // 配置定時(shí)器0
//	// 防止對定時(shí)器1的配置產(chǎn)生影響,使用與或賦值法
//	TMOD &= 0xF0; // 清空定時(shí)器0的配置
//	TMOD |= 0x01; // 配置定時(shí)器0
//	
//	// TCON可位尋址,TF0 = 0, TR0 = 1
//	TF0 = 0;
//	TR0 = 1;
//	
//	// 64635 到 65535 相差1000,也就是1ms會發(fā)生中斷
//	TH0 = 64535 / 256; // 取高8位
//	TL0 = 54535 % 256; // 取低8位
//	
//	// 定時(shí)器開關(guān)
//	ET0 = 1; // 打開定時(shí)器0
//	EA = 1; // 打開總開關(guān)
	PT0 = 0;Timer0Init();LCD_Init();LCD_ShowChar(1, 3, ':');LCD_ShowChar(1, 6, ':');while (1) {if (second == 60) {second = 0;minute ++;}if (minute == 60) {minute = 0;hour ++;}if (hour == 24) {hour = 0;}LCD_ShowNum(1, 1, hour, 2);LCD_ShowNum(1, 4, minute, 2);LCD_ShowNum(1, 7, second, 2);}
}// 發(fā)生時(shí)鐘中斷時(shí),會觸發(fā)該函數(shù),中斷號為1
void Timer0_Routube() interrupt 1 {TL0 = 0x66;		//設(shè)置定時(shí)初值TH0 = 0xFC;		//設(shè)置定時(shí)初值count ++;if (count == 1000) {second ++;count = 0;// 中斷程序應(yīng)該盡量簡短
//		if (second == 60) {
//			second = 0;
//			minute ++;
//			if (minute == 60) {
//				minute = 0;
//				hour ++;
//				if (hour == 24) {
//					hour = 0;
//				}
//			}
//		}}
}

9. 串口通信

9.1 原理圖

http://www.risenshineclean.com/news/7860.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)推進(jìn)會講話稿網(wǎng)址搜索ip地址
  • 網(wǎng)站怎么做優(yōu)化步驟重慶網(wǎng)站seo好不好
  • 做地方門戶網(wǎng)站百度seo最新算法
  • 開發(fā)一個(gè)網(wǎng)站做爬蟲西安百度競價(jià)托管公司
  • 做一家網(wǎng)站費(fèi)用平臺優(yōu)化
  • wordpress做個(gè)游戲旺道seo營銷軟件
  • cms網(wǎng)站建設(shè)方案seo教程培訓(xùn)班
  • 知名排版網(wǎng)站seo推廣軟
  • 百度網(wǎng)站的設(shè)計(jì)風(fēng)格上海外貿(mào)seo
  • 炫酷個(gè)人網(wǎng)站鎮(zhèn)江網(wǎng)站建設(shè)
  • 展示型建站模板平臺東莞網(wǎng)站推廣的公司
  • 專業(yè)的網(wǎng)站開發(fā)服務(wù)軟文有哪些發(fā)布平臺
  • 教育網(wǎng)站報(bào)名友妙招鏈接怎么弄
  • 政府網(wǎng)站建設(shè)人員組成上海優(yōu)化公司選哪個(gè)
  • 泉州自助建站seo怎么優(yōu)化效果更好
  • 沒備案的網(wǎng)站可以做淘客優(yōu)化大師班級
  • 如何做好公司網(wǎng)站公司seo是什么職位
  • php網(wǎng)站怎么做靜態(tài)化西安百度推廣聯(lián)系方式
  • 網(wǎng)站后臺卸載cmsdede安卓優(yōu)化大師新版
  • 句容建設(shè)路幼兒園網(wǎng)站鄭州高端網(wǎng)站建設(shè)哪家好
  • 外貿(mào)網(wǎng)站建設(shè)軟件百度一下你就知道主頁
  • 上海殷行建設(shè)網(wǎng)站百度上海分公司
  • 自學(xué)網(wǎng)站建設(shè)需要什么學(xué)歷關(guān)鍵詞排名點(diǎn)擊軟件首頁
  • seo網(wǎng)站建設(shè)公司哪家好網(wǎng)店培訓(xùn)班
  • 網(wǎng)站的用戶登錄一般怎么做的成功的軟文營銷案例
  • 網(wǎng)站如何做電腦和手機(jī)appseo創(chuàng)業(yè)
  • 網(wǎng)頁設(shè)計(jì)與網(wǎng)站建設(shè)大作業(yè)友情鏈接搜讀
  • 網(wǎng)上購物app進(jìn)一步優(yōu)化落實(shí)
  • 做網(wǎng)站開發(fā)需要什么證書重慶百度推廣關(guān)鍵詞優(yōu)化
  • 想做個(gè)ktv的網(wǎng)站怎么做網(wǎng)絡(luò)廣告策劃方案范文