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

各种网站底部图标代码好看的论坛源码

各种网站底部图标代码,好看的论坛源码,什么网站备案比较快,.asp网站怎么做蓝桥杯嵌入式第8届真题(完成) STM32G431 题目 分析和代码 对比第六届和第七届#xff0c;这届的题目在逻辑思维上确实要麻烦不少#xff0c;可以从题目看出#xff0c;这届题目对时间顺序的要求很严格#xff0c;所以就可以使用状态机的思想来编程#xff0c;拿到类似题…蓝桥杯嵌入式第8届真题(完成) STM32G431 题目 分析和代码 对比第六届和第七届这届的题目在逻辑思维上确实要麻烦不少可以从题目看出这届题目对时间顺序的要求很严格所以就可以使用状态机的思想来编程拿到类似题目不要急着写代码一定要先分析好步骤想出状态转换的逻辑后在根据逻辑写代码写起来就很快了。 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body******************************************************************************* attention** h2centercopy; Copyright (c) 2021 STMicroelectronics.* All rights reserved./center/h2** This software component is licensed by ST under BSD 3-Clause license,* the License; You may not use this file except in compliance with the* License. You may obtain a copy of the License at:* opensource.org/licenses/BSD-3-Clause********************************************************************************/ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include main.h #include rtc.h #include tim.h #include gpio.h/* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include key.h #include led.h #include string.h #include stdio.h /* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ extern struct Key key[4];//4个按键 uint8_t lcdtext[30]; //lcd显示的内容 uint8_t status[30]; //lcd显示的内容 uint8_t led;//LED状态 uint8_t setfloor[5]{0,0,0,0,0};//四层楼为了方便1-4所以数组大小为5 uint32_t key_time_1s; //按键按下后等待的1s uint32_t open_or_close_door_time_4s; //开门或者关门所需时间 uint32_t up_or_down_dir_time_6s; //电梯往上一楼或者往下一楼所需的时间 uint32_t wait_time_2s; //电梯在每层楼等待时间 uint8_t current_floor 1;//当前所在层 RTC_DateTypeDef D; //用于显示日期 RTC_TimeTypeDef T; //用于显示时间 uint8_t process_status 0;//执行的状态 uint8_t dir 2;//是上还是下默认停止 //下面用于流水灯的部分 uint32_t lastUpdateTime 0; // 上次更新LED状态的时间 const uint32_t updateInterval 200; // 更新间隔以毫秒为单位 uint8_t flow_led_enable 0; //是否打开流水灯 /* USER CODE END PTD *//* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD *//* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); /* USER CODE BEGIN PFP */ void led_process(void); void key_process(void); void lcd_process(void); void status_process(void);/* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** brief The application entry point.* retval int*/ int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM2_Init();MX_RTC_Init();MX_TIM16_Init();MX_TIM17_Init();/* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(htim2);LCD_Init();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);LED_display(0x00);sprintf((char *)lcdtext, %d,current_floor); //默认为1楼LCD_DisplayStringLine(Line3,lcdtext);while (1){led_process();lcd_process();key_process();status_process();/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }/*** brief System Clock Configuration* retval None*/ void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct {0};RCC_ClkInitTypeDef RCC_ClkInitStruct {0};RCC_PeriphCLKInitTypeDef PeriphClkInit {0};/** Configure the main internal regulator output voltage*/HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI;RCC_OscInitStruct.HSIState RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.LSIState RCC_LSI_ON;RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSI;RCC_OscInitStruct.PLL.PLLM RCC_PLLM_DIV2;RCC_OscInitStruct.PLL.PLLN 20;RCC_OscInitStruct.PLL.PLLP RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ RCC_PLLQ_DIV2;RCC_OscInitStruct.PLL.PLLR RCC_PLLR_DIV2;if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV1;RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_2) ! HAL_OK){Error_Handler();}/** Initializes the peripherals clocks*/PeriphClkInit.PeriphClockSelection RCC_PERIPHCLK_RTC;PeriphClkInit.RTCClockSelection RCC_RTCCLKSOURCE_LSI;if (HAL_RCCEx_PeriphCLKConfig(PeriphClkInit) ! HAL_OK){Error_Handler();} }/* USER CODE BEGIN 4 */ void key_process(void) {if((process_status0||process_status1))//没有按键按下时和按键按下1s内还可以继续按{sprintf((char *)status, wait key );if(key[0].key_flagcurrent_floor!01) //不能是当前楼层{key[0].key_flag 0;setfloor[1] 1;//设置目标楼层led|0x01; //设置对应led打开LED_display(led);//打开对应ledprocess_status 1;//按键按下后进入1s等待状态key_time_1s uwTick; //更新按键按下时时间}if(key[1].key_flagcurrent_floor!11){key[1].key_flag 0;setfloor[2] 1;led|0x02;LED_display(led);process_status 1;key_time_1s uwTick;}if(key[2].key_flagcurrent_floor!21){key[2].key_flag 0;setfloor[3] 1;led|0x04;LED_display(led);process_status 1;key_time_1s uwTick;}if(key[3].key_flagcurrent_floor!31){key[3].key_flag 0;setfloor[4] 1;led|0x08;LED_display(led);process_status 1;key_time_1s uwTick;}}}void lcd_process(void) {HAL_RTC_GetDate(hrtc,D,RTC_FORMAT_BIN);HAL_RTC_GetTime(hrtc,T,RTC_FORMAT_BIN);sprintf((char *)lcdtext, FLOOR);LCD_DisplayStringLine(Line1,lcdtext); // sprintf((char *)lcdtext, %d,current_floor); // LCD_DisplayStringLine(Line3,lcdtext);sprintf((char *)lcdtext, %02d:%02d:%02d,T.Hours,T.Minutes,T.Seconds);LCD_DisplayStringLine(Line4,lcdtext);//LCD_ClearLine(Line7);sprintf((char *)lcdtext,%s,status);LCD_DisplayStringLine(Line7,lcdtext);sprintf((char *)lcdtext, floors:%d-%d-%d-%d,setfloor[1],setfloor[2],setfloor[3],setfloor[4]);LCD_DisplayStringLine(Line8,lcdtext); }void status_process(void) {if(process_status){switch(process_status){case 1: //状态1等待1s内是否有按键按下{sprintf((char *)status, wait key 1s );if((uwTick-key_time_1s)1000) //如果1s到了进入下一个关门状态{sprintf((char *)status, key_1s_yes );process_status 2;}}break;case 2: //状态2开始关门{sprintf((char *)status, close door );HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);//关门__HAL_TIM_SET_COMPARE(htim17,TIM_CHANNEL_1,250); //占空比50%HAL_TIM_PWM_Start(htim17,TIM_CHANNEL_1);process_status 3; //进入等待关门状态open_or_close_door_time_4s uwTick;//更新关门时间}break;case 3://状态34s关门时间等待关完门开始判断电梯是上行还是下行{sprintf((char *)status,wait close door 4s );if(uwTick-open_or_close_door_time_4s4000) //关门后开始判断上下行{sprintf((char *)status,close door yes );int up 0, down 0;HAL_TIM_PWM_Stop(htim17,TIM_CHANNEL_1);// 检查上行for(int i current_floor 1; i 5; i) { //如果电梯数组中存在比当前楼层高的楼层被设置if(setfloor[i] 1) {up 1;break;}}// 检查下行for(int i current_floor - 1; i 1; i--) { //如果电梯数组中存在比当前楼层低的楼层被设置if(setfloor[i] 1) {down 1;break;}}// 判断方向if(up !down) { //只有往上dir 1;} else if(down !up) { //只有往下dir 0;} else if(up down) { //上下都有先向上dir 1;} else {dir 2; //都没有}sprintf((char *)status, move );sprintf((char *)lcdtext, dir:%d--%d,up,down);LCD_DisplayStringLine(Line9,lcdtext);if(dir1)//上行{flow_led_enable 1;HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);__HAL_TIM_SET_COMPARE(htim16,TIM_CHANNEL_1,800); //占空比80%HAL_TIM_PWM_Start(htim16,TIM_CHANNEL_1);up_or_down_dir_time_6s uwTick;//更新上行时间process_status 4;}else if(dir0)//下行{flow_led_enable 1;HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);__HAL_TIM_SET_COMPARE(htim16,TIM_CHANNEL_1,600); //占空比80%HAL_TIM_PWM_Start(htim16,TIM_CHANNEL_1);up_or_down_dir_time_6s uwTick;//更新上行时间process_status 4;}else if(dir2)//既不需要上行也不需要下行回到电梯状态{process_status 0;}}}break;case 4://状态4等待6s上下行时间{sprintf((char *)status, wait move 6s );if(uwTick-up_or_down_dir_time_6s6000) //上下行时间到了{sprintf((char *)status, move yes );if(dir1) //如果是上行{current_floor1;}else{current_floor-1;}HAL_TIM_PWM_Stop(htim16,TIM_CHANNEL_1);//setfloor[current_floor] 0;//已到达该层// 显示楼层号并闪烁两次for(int i 0; i 2; i) // 闪烁两次{sprintf((char *)lcdtext, %d,current_floor);LCD_DisplayStringLine(Line3, lcdtext); // 显示楼层号HAL_Delay(500); // 延时500msLCD_ClearLine(Line3); // 清除楼层号显示HAL_Delay(500); // 延时500ms}// 再次显示楼层号sprintf((char *)lcdtext, %d,current_floor);LCD_DisplayStringLine(Line3, lcdtext);switch(current_floor){case 1:{led ~0x01; // 使用位清除操作关闭LED1}break;case 2:{led ~0x02; // 关闭LED2}break;case 3:{led ~0x04; // 关闭LED3}break;case 4:{led ~0x08; // 关闭LED4}break;}LED_display(led); // 更新LED显示flow_led_enable 0; // 关闭流水灯led 0x0F; // 保持低四位状态不变关闭高四位LEDLED_display(led); // 更新LED显示open_or_close_door_time_4s uwTick;//更新开门时间process_status 5;}}break;case 5 ://状态5:等待开门4s时间到{sprintf((char *)status, wait open door 4s );if(uwTick-open_or_close_door_time_4s4000)//打开门{sprintf((char *)status, open door yes );wait_time_2s uwTick;//更新等待时间process_status 6;}}break;case 6 ://状态5:等待开门4s时间到{sprintf((char *)status, wait 2s );if(uwTick-wait_time_2s2000)//每层停留时间{sprintf((char *)status, wait 2s yes );wait_time_2s uwTick;//更新等待时间process_status 2;}}break;}}}void led_process(void) {static uint8_t flow_led_state 0; // 初始状态为0表示流水灯未激活if((uwTick - lastUpdateTime) updateInterval flow_led_enable){lastUpdateTime uwTick; // 更新最后一次更新时间if(flow_led_state 0) // 如果流水灯未激活根据方向初始化流水灯状态{flow_led_state (dir 1) ? 0x08 : 0x01; // 从左侧或右侧开始}else{if(dir 1) // 上行从右到左流水{flow_led_state 1; // 向左移动if(flow_led_state 0x08) // 如果超过了最左侧重置到最右侧{flow_led_state 0x01;}}else if(dir 0) // 下行从左到右流水{flow_led_state 1; // 向右移动if(flow_led_state 0x01) // 如果超过了最右侧重置到最左侧{flow_led_state 0x08;}}}// 更新LED状态仅修改高四位保持低四位不变// 注意这里假设flow_led_state只影响一个LED需要根据实际情况调整led (led 0x0F) | (flow_led_state 4); // 将流水灯状态左移4位合并到led的高四位LED_display(led); // 更新LED显示} }/* USER CODE END 4 *//*** brief This function is executed in case of error occurrence.* retval None*/ void Error_Handler(void) {/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state *//* USER CODE END Error_Handler_Debug */ }#ifdef USE_FULL_ASSERT /*** brief Reports the name of the source file and the source line number* where the assert_param error has occurred.* param file: pointer to the source file name* param line: assert_param error line source number* retval None*/ void assert_failed(uint8_t *file, uint32_t line) {/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,tex: printf(Wrong parameters value: file %s on line %d\r\n, file, line) *//* USER CODE END 6 */ } #endif /* USE_FULL_ASSERT *//************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ key.c #include key.hstruct Key key[4] {0,0,0,0};extern uint8_t process_status; void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {if(htim-InstanceTIM2){if((process_status0||process_status1)){key[0].key_gpio HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0);key[1].key_gpio HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1);key[2].key_gpio HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);key[3].key_gpio HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);for(int i 0;i4;i){switch(key[i].key_index){case 0:{if(key[i].key_gpio0){key[i].key_index1;}}break;case 1:{if(key[i].key_gpio0){key[i].key_flag 1;key[i].key_index2;}else{key[i].key_index0;}}break;case 2:{if(key[i].key_gpio1){key[i].key_index0;}}break;}}}}} 我一共将这个题目分为了6个状态 状态0 此状态用于等待按键按下以设置目标楼层只要右按键按下就将对应的楼层数组置1打开对应的led记录当前按键按下的时间最后进入状态1 状态1 此状态的进入是由于存在按键被按下设置了目标楼层该状态一直等待1s的到来在状态0和状态1状态下按键仍然可以按下因为某个按键按下后在1s内仍然可以设置目标楼层每一次重新按下按键倒计时都会刷新同样为了防止其余状态下按键仍然可以按下导致flag置1在key.c的定时器回调函数中也只有状态0和状态1才能判断按键是否按下 状态2 此状态为开始关门状态根据题目要求将PA5置低电平同时设置TIM17通道1的占空比为50% 更新关门时间进入状态3 状态3 题目要求开关门都需要4s所以此状态为等待关门状态等待结束后开始根据setfloor数组确定当前电梯是向上还是向下设置的楼层会导致4种状态 只有比当前楼层高的楼层被设置dir1,往上走只有比当前楼层低的楼层被设置dir0往下走比当前楼层高的和低的都设置例如当前楼层是2层比2层低的1层和比2层高的34层都被设置dir1,同样先向上走再往下走默认状态都没有被设置在按键时已经限制条件不能设置当前楼层dir2保持在当前楼层 根据dir的取值设置上行还是下行并打开对应PWM输出和电平信号更新电梯开始上下行时间或者是就在当前层然后回到状态0等待设置目标楼层 状态4 题目要求上行或者下行都需要6s该状态是为了等待6s到来时间到来后根据dir将当前楼层1或者-1同时当前楼层闪烁两次关闭当前楼层对应的led灯关闭流水灯然后更新开始开门时间进入状态5 状态5: 等待开门时间4s时间到达后更新每层停留的2s时间进入下一个状态状态6 状态6: 每层的等待时间2s等待完后回到状态2开始关门继续按顺序执行直到没有目标楼层回到状态0等待按键按下。 led.c #include led.hvoid LED_display(uint8_t led) {HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOC,led8,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET); } led_process用于处理流水灯根据电梯运行方向确定流水灯方向led (led 0x0F) | (flow_led_state 4); 这句的意思是首先保持低四位的保持不变然后将流水灯的状态左移4位与之相或从而实现不影响低四位led的效果 为了便于观察状态添加了一些表示状态的信息显示在lcd上时间控制大部分使用滴答定时器uwTick以防止delay阻塞程序
文章转载自:
http://www.morning.hqykb.cn.gov.cn.hqykb.cn
http://www.morning.yfzld.cn.gov.cn.yfzld.cn
http://www.morning.pwppk.cn.gov.cn.pwppk.cn
http://www.morning.mwnch.cn.gov.cn.mwnch.cn
http://www.morning.dtrz.cn.gov.cn.dtrz.cn
http://www.morning.zbqsg.cn.gov.cn.zbqsg.cn
http://www.morning.bwygy.cn.gov.cn.bwygy.cn
http://www.morning.lsmgl.cn.gov.cn.lsmgl.cn
http://www.morning.flmxl.cn.gov.cn.flmxl.cn
http://www.morning.lwcqh.cn.gov.cn.lwcqh.cn
http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn
http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn
http://www.morning.qrmry.cn.gov.cn.qrmry.cn
http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn
http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn
http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn
http://www.morning.synkr.cn.gov.cn.synkr.cn
http://www.morning.npgwb.cn.gov.cn.npgwb.cn
http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn
http://www.morning.zwyuan.com.gov.cn.zwyuan.com
http://www.morning.xylxm.cn.gov.cn.xylxm.cn
http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn
http://www.morning.wypyl.cn.gov.cn.wypyl.cn
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.jqbmj.cn.gov.cn.jqbmj.cn
http://www.morning.qhvah.cn.gov.cn.qhvah.cn
http://www.morning.dppfh.cn.gov.cn.dppfh.cn
http://www.morning.mljtx.cn.gov.cn.mljtx.cn
http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn
http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn
http://www.morning.qtltg.cn.gov.cn.qtltg.cn
http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn
http://www.morning.bdsyu.cn.gov.cn.bdsyu.cn
http://www.morning.kncrc.cn.gov.cn.kncrc.cn
http://www.morning.bpmtr.cn.gov.cn.bpmtr.cn
http://www.morning.xpqdf.cn.gov.cn.xpqdf.cn
http://www.morning.sqdjn.cn.gov.cn.sqdjn.cn
http://www.morning.dmthy.cn.gov.cn.dmthy.cn
http://www.morning.dzgmj.cn.gov.cn.dzgmj.cn
http://www.morning.kzyr.cn.gov.cn.kzyr.cn
http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn
http://www.morning.jpmcb.cn.gov.cn.jpmcb.cn
http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.ztqj.cn.gov.cn.ztqj.cn
http://www.morning.lhldx.cn.gov.cn.lhldx.cn
http://www.morning.ckntb.cn.gov.cn.ckntb.cn
http://www.morning.cwqln.cn.gov.cn.cwqln.cn
http://www.morning.xxlz.cn.gov.cn.xxlz.cn
http://www.morning.jjpk.cn.gov.cn.jjpk.cn
http://www.morning.spbp.cn.gov.cn.spbp.cn
http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn
http://www.morning.cznsq.cn.gov.cn.cznsq.cn
http://www.morning.rlns.cn.gov.cn.rlns.cn
http://www.morning.cpfx.cn.gov.cn.cpfx.cn
http://www.morning.frsxt.cn.gov.cn.frsxt.cn
http://www.morning.lhrcr.cn.gov.cn.lhrcr.cn
http://www.morning.pngdc.cn.gov.cn.pngdc.cn
http://www.morning.mlntx.cn.gov.cn.mlntx.cn
http://www.morning.gkgr.cn.gov.cn.gkgr.cn
http://www.morning.mhcft.cn.gov.cn.mhcft.cn
http://www.morning.wflpj.cn.gov.cn.wflpj.cn
http://www.morning.dlbpn.cn.gov.cn.dlbpn.cn
http://www.morning.gmgnp.cn.gov.cn.gmgnp.cn
http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn
http://www.morning.hydkd.cn.gov.cn.hydkd.cn
http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn
http://www.morning.nzfjm.cn.gov.cn.nzfjm.cn
http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn
http://www.morning.xqwq.cn.gov.cn.xqwq.cn
http://www.morning.tjcgl.cn.gov.cn.tjcgl.cn
http://www.morning.hnhkz.cn.gov.cn.hnhkz.cn
http://www.morning.khtyz.cn.gov.cn.khtyz.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.crdtx.cn.gov.cn.crdtx.cn
http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn
http://www.morning.kycwt.cn.gov.cn.kycwt.cn
http://www.morning.brnwc.cn.gov.cn.brnwc.cn
http://www.morning.qwgct.cn.gov.cn.qwgct.cn
http://www.morning.mzmqg.cn.gov.cn.mzmqg.cn
http://www.tj-hxxt.cn/news/277443.html

相关文章:

  • 属于网站设计内容的是华强北ic网站建设
  • 可以做简单小活动的网站phpstudy 网站空白
  • 湖南做网站公司中天建设集团有限公司第四分公司
  • 电子商务网站建设与管理课件厦门谷歌seo公司有哪些
  • 红旗网站建设微信公众平台小程序登录入口
  • 数据查询网站net创建网站之后怎么做
  • 网站分为建个企业网站一年需要多少钱
  • 企业做网站哪家网站好基础建设审计网站
  • 网站制作 深圳信科网络济南软件网站建设
  • 网站建设需要服务器网站建设公司官方网站
  • 网站下雪代码wordpress一页主题
  • ovz的vps怎么做网站网站上的缩略图怎么做清晰
  • 电商设计网站有哪些网站系统升级维护需要多长时间
  • 做网站的流程视频响应式网站如何做的
  • 网站建设与管理课程标准网站备案信息找回
  • 北湖区网站建设怎么快速建网站教程
  • 网站建设流程及规范美橙网站建设南的
  • 成都高端品牌网站建设电子商务网站的建设及规划
  • 美容院门户网站开发荆门建设局官方网站
  • 网站备案后名称怎么改上海公共招聘官网
  • 网站开发询价表模板下载当雄网站建设
  • 企业网站快速建站网站开发语言比较
  • 做网站一定要虚拟主机吗网站顶部伸缩广告
  • 家电网站建设费用手机怎么制作网页
  • 学校网站改版电子政务和网站建设工作的总结
  • 做饲料推广哪个网站好怎么给自己的品牌做网站
  • 深圳网站网络推广公司wordpress 软件主题
  • 浙江省两学一做网站论坛网站怎么做
  • 响应试企业网站惠州技术支持网站建设
  • 做app网站的软件有哪些软件开发培训视频