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

图标的网站网站优化哪里可以做

图标的网站,网站优化哪里可以做,电子商务与网站建设报告,专业做冻货的网站目录 一、为什么要定时器 二、定时器中断 1、定时器中断参数 2、定时器中断程序 3、定时器计数 一、为什么要定时器 前文提到#xff0c;比如进行流水灯等操作#xff0c;都是直接写了delay_ms这类操作。 但是在51单片机中#xff0c;其一般就是靠双for进行的循环时延比如进行流水灯等操作都是直接写了delay_ms这类操作。 但是在51单片机中其一般就是靠双for进行的循环时延单片机会浪费这部分时间而不能做其他的事 其次如果程序很多的情况下就得根据其他代码执行的时间来调整时延这非常麻烦。 那有没有既可以定时、又不影响其他程序的进行呢         比如通过两个按键控制按下按键后两个LED延时1s切换状态如果通过以下代码进行那么在延时的时候按键按下另一个KEY就会完全没有反应。 if(KEY00) {delay_ms(10);if(KEY00){delay_ms(1000);LED0~LED0;} } if(KEY10) {delay_ms(10);if(KEY10){delay_ms(1000);LED1~LED1;} } 二、定时器中断 1、定时器中断参数 中断编号中断名中断源1定时器0溢出中断TF03定时器1溢出中断TF1 可以看到定时器0和定时器1的中断编号分别为1、3因此T1的中断优先级没有T0高。 中断寄存器功能实现ET0定时器/计数器T0的溢出中断允许控制位 1允许T0中断 0禁止T0中断 ET1定时器/计数器T1的溢出中断允许控制位 1允许T1中断 0禁止T1中断 该寄存器控制了是否允许中断。 中断触发控制位功能实现TF0定时/计数器T0溢出中断请求标志位 1进入T0中断 0未进入T0中断 TF1定时/计数器T1溢出中断请求标志位 1进入T1中断 0未进入T1中断 该寄存器在计数溢出后自动置位为1并进入中断服务函数需要用户手动清零。 定时器开关控制功能实现TR0打开或关闭定时器T0 1打开 0关闭 TR1打开或关闭定时器T1 1打开 0关闭 配套初始化。 如下为TMOD的控制其中D0~D3为定时器0配置D4~D7为定时器1配置。 D3D2D1D0GATEC/TM1M0 0仅要求TR01开启定时器 1同时要求T0引脚为高电平才可以开启定时器 0定时 1计数 0013位计数器8192 0116位计数器65536 108位计数器256可自动重新装载 11两组独立8位计时器256不可同时用 TMOD寄存器必须直接对整个地址操作而不像TCON其可以单位操作。 定时时间TH0、TL0控制以定时器01模式为例 TH0(65536-XX)/256 TL0(65536-XX)%256 其中XX表示多少us例如XX50000就是50ms由此可以看出单次定时时间最大为65536ms最小为1us。 2、定时器中断程序 举例还以上面按键控制LED闪烁为例 unsigned int count00; unsigned int count10; char flag0 0; char flag1 0; void main() {EA1; //开启总中断TMOD 0x01;TH0(65536-50000)/256; //50msTL0(65536-50000)%256;TR01; //打开定时器T0ET01; //允许中断while(1){if(key00){delay_ms(10)if(key00) flag01;}if(key10){delay_ms(10)if(key10) flag11;}} } void time0() interrupt 1 {TF00; //清除触发位实现再次计数TH0(65536-50000)/256; //50ms 装初值TL0(65536-50000)%256;if(flag01)count01;if(count020){led0~led0;count00;}if(flag11)count11;if(count120){led1~led1;count10;}} 可以看到定时器50ms的中断判断到按键按下后在中断额外进行计数达到20说明达到了1秒从而进行LED反转不影响main内的有关代码执行。 3、定时器计数 前文提到T0引脚是定时器的引脚但是前面的定时代码怎么都和T0无关呢。 当51单片机的定时器工作在计数模式时它会通过外部引脚如T0或T1引脚接收外部输入的脉冲信号。这时I/O口就有直接关系了。外部设备产生的脉冲通过这些引脚输入到单片机定时器/计数器累加这些脉冲来实现计数功能。举例来说假如你需要用定时器0来测量输入信号的频率你可以将信号输入到T0引脚然后配置定时器0为计数模式它会根据输入脉冲增加计数值。 计数模式C/T116位M1M001即TMOD01010X05 #include reg51.h// 定义定时器的控制位 sbit T0_PIN P3^4; // T0口作为输入信号定时器0外部输入// 定义全局变量 unsigned int count 0; // 计数器计数值 unsigned long frequency 0; // 测得的频率值void Timer1_Init(void) {TMOD | 0x10; // 设置定时器1为模式116位定时模式TH1 0x3C; // 高字节初值1秒定时器TL1 0xB0; // 低字节初值ET1 1; // 使能定时器1中断EA 1; // 总中断使能TR1 1; // 启动定时器1 }void Timer0_Init(void) {TMOD | 0x05; // 设置定时器0为模式516位计数模式TR0 1; // 启动计数器0 }void Timer1_ISR(void) interrupt 3 {TR1 0; // 关闭定时器1// 计算频率count (TH0 8) | TL0; // 读取定时器0的计数值TH0 0; // 清零高字节TL0 0; // 清零低字节frequency count;count 0; // 计数值清零// 重装载定时器1初值TH1 0x3C;TL1 0xB0;TR1 1; // 重启定时器1 }void main(void) {Timer0_Init(); // 初始化定时器0计数器模式Timer1_Init(); // 初始化定时器1定时器模式while (1) {// 这里可以添加代码来显示频率值frequency如通过串口输出} }注意中断服务函数理应不要放太多的代码尤其是延时是要完全避免的否则会影响相关的精度。
http://www.tj-hxxt.cn/news/216642.html

相关文章:

  • 饰品网站建设规划书一个域名多个网站
  • 网站备案时间湛江人怎么样
  • c2c网站 多钱怎么改网站标题
  • 2010网站建设管理国际最新军事新闻
  • 新野微网站建设上海出大事啦
  • 网站年报公示怎么做邵阳 网站开发 招聘
  • 未来的门户网站开发公司组织架构图模板
  • 网站建设关键词排名优化上海人才网站官网入口
  • 工装设计效果图网站创意网红墙图片
  • 高端网站建设的要求江苏seo排名
  • 专做动漫的网站家庭装修设计软件哪个好用
  • 营销型企业网站策划方案互联网广告销售好做吗
  • 快速优化网站建设自己做的网站如何在百度被搜索到
  • 网站建设上市公司宁波住房和城乡建设官网
  • 广州网站设计易企建站怎样申请免费网站域名
  • 阿里云备案 网站备案域名做设计去哪个网站找素材
  • wordpress网站主机名wordpress 自定义页眉
  • 平台网站开发风险找哪些公司做网站
  • 深圳品牌网站制作报价网站响应方案
  • 邯郸哪里有做网站的李网页设计师相关职业前景
  • 安全联盟可信网站认证做网站服务器配置应该怎么选
  • 网站公司建设个服务号多少钱北京蓝杉网站建设公司
  • 高端大气企业网站模板建设宁夏分行互联网站
  • 中山技术支持中山网站建设技术培训ui设计
  • 河源北京网站建设wordpress推送到百度
  • 丹阳网站建设公司毕业生就业推荐表模板网站开发
  • 下花园区住房和城乡建设局网站电子商务网站建设一体化教案
  • 网站开发过时了做一个商城网站多少钱
  • 河北网站建设与推广wordpress评论导出
  • 网站开发用户需求说明书pc28网站开发