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

51单片机入门_江协科技_17~18_OB记录的笔记

17. 定时器

  • 17.1.
    定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成,无需占用CPU外围IO接口;

    定时器作用:
    (1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作;
    (2)替代长时间的Delay,提高CPU的运行效率和处理速度,因为delay程序占用CPU资源,同时导致CPU无法处理外部诸如按键的操作;
    (…)

  • 17.2. STC89C52 定时器相关扩展阅读:STC89C52的介绍手册
    官方链接地址: https://www.stcmcu.com/datasheet/stc/STC-AD-PDF/STC89C51RC-RD+_GUIDE-CHINESE.pdf

  • 17.3. STC89C52定时器资源
    •定时器个数:3个(T0、T1、T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源
    •注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的

  • 17.4. 51单片机定时器内部工作原理
    •定时器在单片机内部就像一个小闹钟一样,根据时钟的输出信号,每隔“一秒”,计数单元的数值就增加一,当计数单元数值增加到“设定的闹钟提醒时间”时,计数单元就会向中断系统发出中断申请,产生“响铃提醒”,使程序跳转到中断服务函数中执行
    在这里插入图片描述

  • 17.5. 定时器工作模式:
    •STC89C52的T0和T1均有四种工作模式:
    模式0:13位定时器/计数器
    模式1:16位定时器/计数器(常用)
    模式2:8位自动重装模式
    模式3:两个8位计数器
    •工作模式1框图:
    在这里插入图片描述

    •SYSclk:系统时钟,即晶振周期,本开发板上的晶振为12MHz

  • 17.6. 中断系统

    • 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。
    • 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU总是先响应优先级别最高的中断请求。
    • 当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。
  • 17.7. 中断程序流程:
    在这里插入图片描述

  • 17.8. 中断资源:
    •中断源个数:8个(外部中断0、定时器0中断、外部中断1、定时器1中断、串口中断、定时器2中断、外部中断2、外部中断3)
    •中断优先级个数:4个
    •中断号:
    在这里插入图片描述

•注意:中断的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的中断资源,例如中断源个数不同、中断优先级个数不同等等

  • 17.9. 定时器和中断系统;
    在这里插入图片描述

  • 17.10. 定时器相关寄存器:

在这里插入图片描述

18. 按键控制LED流水灯模式&定时器时钟

  • 18.1. 计时器子函数与中断子函数测试程序:
#include <REGX52.h>void TimerR0_Init() //定时器初始化子函数
{//TMOD=0x01; //0000 0001;如果同时使用T0与T1则此TMOD赋值方式有问题//TMOD=TMOD&0xf0;//把TMOD低4位清0,高4位不变;与清0;//TMOD=TMOD|0x01;//把TMOD最低位置1,高4位不变;或置1;TMOD&=0xf0;//上述简写TMOD|=0x01;//上述简写TF0=0;TR0=1;TH0=64535/256; //高8位数值,从64535到65535需要1000us,超出65535后溢出TL0=64535%256; //低8位数值ET0=1;EA=1;PT0=0;
}void main() //主程序
{TimerR0_Init();while(1){}}unsigned int T0_Count;
void TimerR0_Routine() interrupt 1 //中断子函数
{TH0=64535/256; //重新赋予初值,防止从0开始计数TL0=64535%256; //重新赋予初值,防止从0开始计数	T0_Count++;if(T0_Count>=1000){T0_Count=0;P2_0=~P2_0;}
}
  • 18.2. STC-ISP中定时器的相关配置
    上述程序与STC-ISP中的示例定时器计算器中的程序有1us的差距,同时需要注意STC-ISP中的软件的配置:
    在这里插入图片描述

此时的C代码为:

void Timer0_Init(void)		//1毫秒@12.000MHz
{//AUXR &= 0x7F;			//定时器时钟12T模式,新版本问题此语句删除TMOD &= 0xF0;			//设置定时器模式TMOD |= 0x01;			//设置定时器模式TL0 = 0x18;				//设置定时初始值 计算后与64535%256=17不同;TH0 = 0xFC;				//设置定时初始值 计算后与64535/256相同; TF0 = 0;				//清除TF0标志TR0 = 1;				//定时器0开始计时
}
  • 18.3. 示例18.1中的程序更新后如下:
#include <REGX52.h>void TimerR0_Init() //定时器0初始化子函数
{TMOD&=0xf0;//上述简写TMOD|=0x01;//上述简写TF0=0;TR0=1;TH0=0xfc; //高8位数值,从64535到65535需要1000us,超出65535后溢出TL0=0x18; //低8位数值ET0=1;EA=1;PT0=0;
}void main() //主程序
{TimerR0_Init();while(1){}}unsigned int T0_Count;
void TimerR0_Routine() interrupt 1 //中断子函数
{TH0=64535/256; //重新赋予初值,防止从0开始计数TL0=64535%256; //重新赋予初值,防止从0开始计数	T0_Count++;if(T0_Count>=1000){T0_Count=0;P2_0=~P2_0;}
}
  • 18.4. 定时器函数模块化(模块化定时器的初始化程序)
  • TimeR0.c
#include <REGX52.H>
/*** @brief 定时器初始化子函数,1ms,12MHz* @param 无* @retval 无*/void TimeR0_Init() //定时器初始化子函数
{//AUXR &= 0x7F;			//定时器时钟12T模式TMOD &= 0xF0;			//设置定时器模式TMOD |= 0x01;			//设置定时器模式TL0 = 0x18;				//设置定时初始值TH0 = 0xFC;				//设置定时初始值TF0 = 0;				//清除TF0标志TR0 = 1;				//定时器0开始计时ET0=1;EA=1;  //PT0=0; //中断优先级
}//以下程序全部注释方便后续调用,定时器中断函数模板
//
//void TimeR0_Routine() interrupt 1 //中断子函数
//{
//	static unsigned int T0Count //设置静态子函数用T0Count,防止T0Count丢失
//	TL0=0x18;				//设置定时初始值
//	TH0=0xFC;				//设置定时初始值
//	T0Count++;
//	if(T0Count>=1000)
//	{
//		T0Count=0;
//		
//	}
//}
  • TimeR0.h
#ifndef _TIMER0_H_ 
#define _TIMER0_H_  void TimeR0_Init();#endif
  • 18.5. 4个独立按键的模块化程序:
  • Four_Key.c
#include <REGX52.h>
#include "delay_xms.h"
/*** @brief 4个独立按键按下判断程序,按键松手返回KeyNum* @param 无* @retval KeyNum 的返回值,0~4,无按键按下时返回值为0*/unsigned char Four_Key()
{unsigned char KeyNum=0;if(P3_1==0){delay_xms(20);while(P3_1==0);delay_xms(20);KeyNum=1;}if(P3_0==0){delay_xms(20);while(P3_0==0);delay_xms(20);KeyNum=2;}if(P3_2==0){delay_xms(20);while(P3_2==0);delay_xms(20);KeyNum=3;}if(P3_3==0){delay_xms(20);while(P3_3==0);delay_xms(20);KeyNum=4;}return KeyNum;
}
  • Four_Key.h
#ifndef __H_ 
#define __H_  unsigned char Four_Key();#endif
  • 针对建立好的模块化程序进行简单测试,按下相应按键,P2的相应的LED灯亮起;
#include <REGX52.h>
#include "TimeR0.h"
#include "Four_Key.h"unsigned char keynum;
void main() //主程序
{TimeR0_Init();while(1){keynum=Four_Key();if(keynum){if (keynum==1){P2_0=!P2_0;}if (keynum==2){P2_1=!P2_1;}if (keynum==3){P2_2=!P2_2;}if (keynum==4){P2_3=!P2_3;}		}}}void TimerR0_Routine() interrupt 1 //中断子函数
{static unsigned int T0Count; //设置静态子函数用T0Count,防止T0Count丢失TL0=0x18;				//设置定时初始值TH0=0xFC;				//设置定时初始值T0Count++;if(T0Count>=1000){T0Count=0;}
}
  • 测试程序Proteus中测试没有问题,按键按一下相应LED灯亮起,再按一下熄灭;同时测试了独立按键检测程序和中断函数模块程序没有问题。
    在这里插入图片描述

  • 18.6. LED流水灯控制的实现

  • 通过包含 INTRINS.h的函数库中的_cror_与_crol_循环左移与循环右移函数来实现;

#include <REGX52.h>
#include "TimeR0.h"
#include "Four_Key.h"
#include <INTRINS.h>unsigned char keynum,LED_Mode; //增加LED_Mode变量控制LED灯模式void main() //主程序
{TimeR0_Init();P2=0xfe; //P2口LED灯赋予初始值,保证至少1个LED灯亮起;while(1){keynum=Four_Key();if(keynum){if (keynum==1) //当S1按下松开后{LED_Mode++; //LED_Mode数值自动更新if (LED_Mode>=2) LED_Mode=0;}}}}void TimerR0_Routine() interrupt 1 //中断子函数
{static unsigned int T0Count; //设置静态子函数用T0Count,防止T0Count丢失TL0=0x18;				//设置定时初始值TH0=0xFC;				//设置定时初始值T0Count++;if(T0Count>=500){T0Count=0;if (LED_Mode==0)P2=_crol_(P2,1);//通过_crol_(P2,1)函数控制LED左移if (LED_Mode==1)P2=_cror_(P2,1);//通过_cror_(P2,1)函数控制LED右移}
}
  • 18.7. 通过LCD1602来制作一个定时器时钟程序
  • 定时器时钟程序如下:
#include <REGX52.h>
#include "LCD1602.h"
#include "TimeR0.h"unsigned char sec=55,min=59,hour=23;
void main()
{TimeR0_Init();LCD_Init();LCD_ShowString(1,1,"Clock:");//1行1列显示Clock:LCD_ShowString(2,1,"  :  :");//2行中需要显示的分割冒号while(1){LCD_ShowNum(2,7,sec,2);//秒显示LCD_ShowNum(2,4,min,2);//分钟显示LCD_ShowNum(2,1,hour,2);//小时显示}}void TimeR0_Routine() interrupt 1 //中断子函数
{static unsigned int T0Count; //设置静态子函数用T0Count,防止T0Count丢失TL0=0x18;				//设置定时初始值TH0=0xfc;				//设置定时初始值T0Count++;if(T0Count>=1000){T0Count=0;sec++;if(sec>=60){sec=0;min++;if(min>=60){min=0;hour++;if(hour>=24){hour=0;}}}}}
  • proteus测试结果没问题;
    在这里插入图片描述

相关文章:

51单片机入门_江协科技_17~18_OB记录的笔记

17. 定时器 17.1. 定时器介绍&#xff1a;51单片机的定时器属于单片机的内部资源&#xff0c;其电路的连接和运转均在单片机内部完成&#xff0c;无需占用CPU外围IO接口&#xff1b; 定时器作用&#xff1a; &#xff08;1&#xff09;用于计时系统&#xff0c;可实现软件计时&…...

xss.pwnfunction-Ah That‘s Hawt

<svg/onloadalert%26%2340%3B1%26%2341%3B> <svg/>是一个自闭合形式 &#xff0c;当页面或元素加载完成时&#xff0c;onload 事件会被触发&#xff0c;从而可以执行相应的 JavaScript 函数...

Python学习从0开始——005数据结构

Python学习从0开始——005数据结构 一、列表list二、元组和序列三、集合四、字典五、循环技巧六、条件控制七、序列和其它类型的比较 一、列表list 不是所有数据都可以排序或比较。例如&#xff0c;[None, ‘hello’, 10] 就不可排序&#xff0c;因为整数不能与字符串对比&…...

力扣每日一题:LCR112--矩阵中的最长递增路径

题目 给定一个 m x n 整数矩阵 matrix &#xff0c;找出其中 最长递增路径 的长度。 对于每个单元格&#xff0c;你可以往上&#xff0c;下&#xff0c;左&#xff0c;右四个方向移动。 不能 在 对角线 方向上移动或移动到 边界外&#xff08;即不允许环绕&#xff09;。 示例…...

树莓派部署yolov5实现目标检测(ubuntu22.04.3)

最近两天搞了一下树莓派部署yolov5&#xff0c;有点难搞&#xff08;这个东西有点老&#xff0c;版本冲突有些包废弃了等等&#xff09; 最后换到ubuntu系统弄了&#xff0c;下面是我的整体步骤&#xff08;建议先使能一下ssh&#xff08;最下面有&#xff09;&#xff0c;结合…...

2024 年最新使用 Wechaty 开源框架搭建部署微信机器人(微信群智能客服案例)

读取联系人信息 获取当前机器人账号全部联系人信息 bot.on(ready, async () > {console.log("机器人准备完毕&#xff01;&#xff01;&#xff01;")let contactList await bot.Contact.findAll()for (let index 0; index < contactList.length; index) {…...

Redis从入门到精通(九)Redis实战(六)基于Redis队列实现异步秒杀下单

↑↑↑请在文章开头处下载测试项目源代码↑↑↑ 文章目录 前言4.5 分布式锁-Redisson4.5.4 Redission锁重试4.5.5 WatchDog机制4.5.5 MutiLock原理 4.6 秒杀优化4.6.1 优化方案4.6.2 完成秒杀优化 4.7 Redis消息队列4.7.1 基于List实现消息队列4.7.2 基于PubSub的消息队列4.7.…...

什么是多路复用器滤波器

本章将更深入地介绍多路复用器滤波器&#xff0c;以及它们如何用于各种应用中。您将了解到多路复用器如何帮助设计人员创造出更复杂的无线产品。 了解多路复用器 多路复用器是一组射频(RF)滤波器&#xff0c;它们组合在一起&#xff0c;但不会彼此加载&#xff0c;可以在输出之…...

Severt和tomcat的使用(补充)

打包程序 在pom.xml中添加上述代码之后打包时会生成war包并且包的名称是test 默认情况打的是jar包.jar里量但是tomcat要求的是war包. war包Tomcat专属的压缩包. war里面不光有.class还有一些tomcat要求的配置文件(web.xml等)还有前端的一些代码(html, css, js) 点击其右边的m…...

JavaEE初阶——多线程(一)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第一部分:引入线程以及创建多线程的几种方式 此文章是建立在前一篇文章进程的基础上的 如果有不足的或者错误的请您指出! 1.认识线程 我们知道现代的cpu大多都是多核心…...

MongoDB主从复制模式基于银河麒麟V10系统

MongoDB主从复制模式基于银河麒麟V10系统 背景介绍 MongoDB自4.0版本开始已经不再建议使用传统的master/slave复制架构,而是全面采用了复制集(Replica Sets)作为标准的复制和高可用性解决方案。 复制集是MongoDB的一种数据复制和高可用性机制,通过异步同步数据至多个服务…...

Vue使用高德地图

1.在高德平台注册账号 2.我的 > 管理管理中添加Key 3.安装依赖 npm i amap/amap-jsapi-loader --save 或 yarn add amap/amap-jsapi-loader --save 4.导入 AMapLoade import AMapLoader from amap/amap-jsapi-loader; 5.直接上代码&#xff0c;做好了注释&#xff08;初始化…...

2024-04-07(复盘前端)

---HTML 1.HTMl骨架 html&#xff1a;整个网页 head&#xff1a;网页头部&#xff0c;用来存放给浏览器看的信息&#xff0c;如css body&#xff1a;网页主体&#xff0c;用来存放给用户看的信息&#xff0c;例如图片和文字 2.标题标签中h1标签只能使用一次&#xff0c;其…...

SpringCloud学习(10)-SpringCloudAlibaba-Nacos服务注册、配置中心

Spring Cloud Alibaba 参考文档 Spring Cloud Alibaba 参考文档 nacos下载Nacos 快速开始 直接进入bin包 运行cmd命令&#xff1a;startup.cmd -m standalone 运行成功后通过http://localhost:8848/nacos进入nacos可视化页面&#xff0c;账号密码默认都是nacos Nacos服务注…...

OKCC外呼中心配置的电话系统规则

OKCC外呼中心配置电话系统规则可能涉及多个方面&#xff0c;包括呼叫路由、自动化流程、电话接听策略等。以下是一般步骤及注意事项&#xff1a; 呼叫路由配置&#xff1a; 确定呼叫中心的呼叫路由策略&#xff0c;包括如何分配呼叫给不同的坐席或部门。设置呼叫路由规则&#…...

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.03.31-2024.04.05

文章目录~ 1.AutoWebGLM: Bootstrap And Reinforce A Large Language Model-based Web Navigating Agent2.Training LLMs over Neurally Compressed Text3.Unveiling LLMs: The Evolution of Latent Representations in a Temporal Knowledge Graph4.Visualization-of-Thought …...

性能测试工具 ab(Apache Bench)使用详解

Apache Bench (ab) 是一个由 Apache 提供的非常流行的、简单的性能测试工具&#xff0c;用于对 HTTP 服务器进行压力测试。下面是 ab 工具的一些基本使用方法。 安装 在大多数 Unix 系统中&#xff0c;ab 通常作为 Apache HTTP 服务器的一部分预装在系统中。你可以通过在终端…...

智能网联汽车自动驾驶数据记录系统DSSAD数据元素

目录 第一章 数据元素分级 第二章 数据元素分类 第三章 数据元素基本信息表 表1 车辆及自动驾驶数据记录系统基本信息 表2 车辆状态及动态信息 表3 自动驾驶系统运行信息 表4 行车环境信息 表5 驾驶员操作及状态信息 第一章 数据元素分级 自动驾驶数据记录系统记录的数…...

Ubuntu 20.04.06 PCL C++学习记录(十八)

[TOC]PCL中点云分割模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16 学习内容 PCL中实现欧式聚类提取。在点云处理中,聚类是一种常见的任务,它将点云数据划分为多…...

细雨踏春日,新会公安护平安

春雨起&#xff0c;清明至。又是一年春草绿&#xff0c;又是一年清明时。细雨踏春日&#xff0c;思怀故人时&#xff0c;是哀思&#xff0c;亦是相聚。新会公安一抹抹葵乡春日“警”色坚守岗位&#xff0c;确保清明祭扫平稳有序&#xff0c;为人民群众的平安保驾护航。 为确保2…...

3d怎么在一块模型上开个孔---模大狮模型网

在进行3D建模时&#xff0c;有时候需要在模型上创建孔&#xff0c;以实现特定的设计需求或功能。无论是为了添加细节&#xff0c;还是为了实现功能性的要求&#xff0c;创建孔都是常见的操作之一。本文将介绍在3D模型上创建孔的几种常用方法&#xff0c;帮助您轻松实现这一目标…...

Python景区票务人脸识别系统(V2.0),附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

全球化业务的网络安全挑战

随着企业业务的全球化&#xff0c;跨国数据传输和用户跨地域访问成为常态。这不仅带来了巨大的商业机会&#xff0c;也带来了以下网络安全挑战&#xff1a; 数据泄露风险&#xff1a;跨国数据传输增加了数据被截获和泄露的风险。访问限制&#xff1a;某些地区可能对互联网内容…...

SQL简单优化思路

在编写SQL查询时&#xff0c;优化查询性能是一个重要的考虑因素&#xff0c;特别是在处理多表连接&#xff08;JOIN&#xff09;和子查询时。以下是一些具体的技巧和最佳实践&#xff0c;可以帮助你在保持相同返回值的前提下&#xff0c;降低SQL执行速度&#xff1a; 明确连接顺…...

外包干了25天,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…...

webpack环境配置分类结合vue使用

文件目录结构 按照目录结构创建好文件 控制台执行: npm install /config/webpack.common.jsconst path require(path) const {merge} require(webpack-merge) const {CleanWebpackPlugin} require(clean-webpack-plugin) const { VueLoaderPlugin } require(vue-loader); c…...

【蓝桥杯嵌入式】第十三届省赛(第二场)

目录 0 前言 1 展示 1.1 源码 1.2 演示视频 1.3 题目展示 2 CubeMX配置(第十三届省赛第二场真题) 2.1 设置下载线 2.2 HSE时钟设置 2.3 时钟树配置 2.4 生成代码设置 2.5 USART1 2.5.1 基本配置 2.5.2 NVIC 2.5.3 DMA 2.6 TIM 2.6.1 TIM2 2.6.2 TIM4 2.6.3 …...

maya节点绕轴旋转

目录 旋转后并尝试冻结变换 绕x轴旋转90度 使用Python脚本 使用图形界面 使用MEL脚本 绕y轴旋转90度 使用Python脚本 ok 旋转后并尝试冻结变换 import maya.cmds as cmdsdef adjust_root_rotation_for_export(joint_name):# 选择根节点cmds.select(joint_name)# 应用旋…...

如何水出第一篇SCI:SCI发刊历程,从0到1全过程经验分享!!!

如何水出第一篇SCI&#xff1a;SCI发刊历程&#xff0c;从0到1全路程经验分享&#xff01;&#xff01;&#xff01; 详细的改进教程以及源码&#xff0c;戳这&#xff01;戳这&#xff01;&#xff01;戳这&#xff01;&#xff01;&#xff01;B站&#xff1a;Ai学术叫叫兽e…...

SpringBoot表单防止重复提交

哪些因素会引起重复提交&#xff1f; 开发的项目中可能会出现下面这些情况&#xff1a; 前端下单按钮重复点击导致订单创建多次 网速等原因造成页面卡顿&#xff0c;用户重复刷新提交请求 黑客或恶意用户使用postman等http工具重复恶意提交表单 重复提交会带来哪些问题&…...

成都 网站建设培训学校/济南网站建设方案

在编码过程中&#xff0c;记录日志是非常重要的&#xff0c;工欲善其事必先利其器&#xff0c;说明的就是这个道理。此日志工具可以输出到控制台并且写到指定的路径&#xff0c;希望对大家有所帮助&#xff0c;下面是代码部分。 #!/user/bin/env python -- coding: utf-8 -- im…...

wordpress 3.9 中文/陕西网站建设网络公司

linux: 操作系统,应用服务器上 常用命令: cd 切换命令 cd / cd ~ cd ../../ cd xx ll 展示所有的文件 ll -h 友好的展示 mkdir 创建目录 mkdir 目录名 mkdir -p a/b/b/b rmdir 移除目录 rmdir 目录名 :移除空目录 touch 文件名:创建一个空文件 cp 文件名 目录/文件名:复制 mv 文…...

怎么建立一个网站链接/竞价托管怎么做

与类有关的系统函数&#xff1a; class_exists(“类名”), 判断一个类是否存在&#xff08;是否定义过&#xff09; interface_exists(“接口名”), 判断一个接口是否存在&#xff08;是否定义过&#xff09; get_class( $obj ), 获得某个对象$obj 的所属类 get_parent_class($…...

网站建设基本步骤是什么/谷歌play

import rere.M 多行模式 位或的意思parrterm就是正则表达式的字符串&#xff0c;flags是选项&#xff0c;表达式需要被编译&#xff0c;通过语法、策划、分析后卫其编译为一种格式&#xff0c;与字符串之间进行转换re模块主要为了提速&#xff0c;re的其他方法为了提高效率都调…...

什么行业需要找网络公司做网站/百度股市行情上证指数

1.从官网下载Linux版本的anaconda&#xff0c;https://www.anaconda.com/download/ 2.安装anaconda&#xff0c;执行下列命令 bash Anaconda2-4.1.1-Linux-x86_64.sh3.在安装过程中会显示配置路径 Prefix/home/username/anaconda2/4.安装完之后&#xff0c;运行python&#x…...

自己搭建聊天软件/浙江seo外包

UE4视频教程进行到了mysql(1.1)&#xff0c;tf1(1.1),oss(9.4),蓝图反射(1.3)&#xff0c; 终于稳下心来了&#xff0c; 5月29日&#xff0c;终于稳下来了&#xff0c;哈哈。全员降薪真是挫伤积极性的大杀器。 8&#xff1a;27–8&#xff1a;36&#xff0c;8&#xff1a;45-9…...