中断服务程序模板

通常定时器初始化过程如下:

①对 TMOD赋值,以确定TO和T1的工作方式。
②计算初值,并将初值写入THO、TLO或TH1、TL1。
③中断方式时,则对IE赋值,开放中断。
④使TRO或TR1置位,启动定时器/计数器定时或计数。

代码

利用定时器0工作方式1,在实验板上实现第一个发光管以1s亮灭闪烁。程序代码如下:

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar num;
void main()
{TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-45872)/256;//装初值11.0592M晶振定时50ms 数为45872TL0=(65536-45872)%256;//EA=1;//打开总中断ET0=1;//打开定时器0TR0=1;//启动定时器0while(1);//程序停止在这里等待中断发生}
void T0_time() interrupt 1
{TH0=(65536-45872)/256;//重装初值TL0=(65536-45872)%256;num++;//num每加一次判断是否到20次if(num==20){num=0;led1=~led1;//让发光管状态取反}}

在这里插入图片描述
在实验板上完成如下功能:用定时器0的方式1实现第一个发光管以200ms间隔闪烁,用定时器1的方式1实现数码管前两位59s循环计时。程序代码如下:

#include <reg52.h>#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
//申明U1锁存器的锁存端
sbit wela=P2^7;
//申明U2锁存器的锁存端
sbit led1=P1^0;
uchar code table[]={0x3f,0x06,0x5b,0x4f,Ox66,0x6d,0x7d,0x07,0x7f,Ox6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delayms(uint);
void display(uchar,uchar);
uchar num,num1,num2,shi,ge;
void main()
{TMOD=0x11;//设置定时器0和1为工作方式1(0001 0001)THO=(65536-45872)/256;//装初值TLO=(65536-45872)%256;TH1=(65536-45872)/256;//装初值TL1=(65536-45872)%256;EA=1;//开总中断ETO=1;//开定时器0中断ET1=1;//开定时器1中断TRO=1;/启动定时器0TR1=1;//启动定时器1while(1)//程序在这里不停的对数码管动态扫描同时等待中断发生{display(shi,ge);}
}
void display(uchar shi,uchar ge)//显示子函数
{dula=1;PO=table[shi];//送段选数据dula=0;PO=Oxff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器造成混乱PO=Oxfe;//送位选数据wela=O;delayms(5);//延时dula=1;PO=table[ge];dula=O;PO=Oxff;wela=1;PO=Oxfd;wela=0;delayms(5);
}
void delayms(uint xms)
{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);
}void TO_time() interrupt 1
{THO=(65536-45872)/256;TLO=(65536-45872)%256;num1++;if(num1==4){num1=O;led1=~led1;}
}void T1_time() interrupt 3
{TH1=(65536-45872)/256;TL1=(65536-45872)%256;num2++;if(num2==20){num2=O;num++;if(num==60)num=O;shi=num/10;ge=num%10;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松设置Facebook自动隐藏评论和删除评论功能

Facebook作为海外营销的最大流量平台之一&#xff0c;是很多跨境卖家争夺的市场&#xff0c;希望可以通过Facebook这个全球性的平台来推广自己的产品或服务。身处这个竞争激烈的市场&#xff0c;任何一条负面评论或不当言论出现在你的品牌页面上都可能影响到品牌形象&#xff0…

臻奶惠无人售货机:新零售时代的便捷消费革命

臻奶惠无人售货机&#xff1a;新零售时代的便捷消费革命 在新零售的浪潮中&#xff0c;智能无人售货机作为一个创新的消费模式&#xff0c;已经成为距离消费者最近的便捷购物点之一。这种模式不仅能够满足居民对消费升级的需求&#xff0c;还能通过建立多样化和多层次的消费体…

k8s练习-创建一个Deployment

创建Deployment 创建一个nginx deployment [rootk8s-master home]# cat nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:selector:matchLabels:app: nginx # 配置pod的labelsreplicas: 2 # 声明2个副本template:metada…

spring boot自动配置原理-怎样回答这个问题

首先我们说一下自动配置的概念。 自动配置&#xff1a;遵循约定大约配置的原则&#xff0c;在boot程序启动后&#xff0c;起步依赖中的一些bean对象会自动注入到ioc容器 例子 程序引入spring-boot-starter-web 起步依赖&#xff0c;启动后&#xff0c;会自动往ioc容器中注入…

记一次 pdfplumber 内存泄漏导致的服务器宕机

有一个项目需求&#xff0c;要在每天凌晨5点的时候执行一个任务&#xff0c;获取一系列的PDF文件并解析。 后端是Django框架&#xff0c;定时任务用Celery来实现的。 本地跑没什么问题&#xff0c;但是一放到服务器上跑就会宕机&#xff0c;而且是毫无征兆的宕机&#xff0c;…

黑马HTMLCSS基础

黑马的笔记和资料都是提供好了的&#xff0c;这个文档非常适合回顾复习。我在黑马提供的笔记上做了一些微不足道的补充&#xff0c;以便自己复习查阅。该笔记比较重要的部分是 表单&#xff0c;http请求 第一章. HTML 与 CSS HTML 是什么&#xff1a;即 HyperText Markup lan…

使用虚拟引擎为AR体验提供动力

Powering AR Experiences with Unreal Engine ​​​​​​​ 目录 1. 虚拟引擎概述 2. 虚拟引擎如何为AR体验提供动力 3. 虚拟引擎中AR体验的组成部分是什么&#xff1f; 4. 使用虚拟引擎创建AR体验 5. 虚拟引擎中AR的优化提示 6. 将互动性融入AR与虚拟引擎 7. 在AR中…

5G PLMN相关概念

PLMN PLMN&#xff08;Public Land Mobile Network&#xff0c;公用陆地移动网络&#xff09;&#xff0c;是由政府或其批准的经营者为公众提供陆地移动通信业务而建立、经营的网络。PLMN与公众交换电话网&#xff08;PSTN&#xff09;互连&#xff0c;形成整个地区或国家规模…

AR和VR如何改变客户体验?

How AR and VR are transforming customer experiences&#xff1f; How AR and VR are transforming customer experiences AR和VR如何改变客户体验 AR and VR technology was largely expedited by the past pandemic with at least 93.3 million and 58.9 million users r…

运筹学经典问题(八):CVRP和VRP-TW

文章目录 问题描述问题建模决策变量数学建模基于容量的消除子环的约束 &#xff08;load-based SECs&#xff09; CVRP完整的数学模型加上时间窗限制的CVRP 问题描述 给定一个图&#xff0c;图上的点代表客户&#xff0c;边代表客户之间的路线&#xff0c;边的权重代表客户之间…

Day60:WEB攻防-XMLXXE安全无回显方案OOB盲注DTD外部实体黑白盒挖掘

目录 XML&XXE-传输-原理&探针&利用&玩法 XXE 黑盒发现 XXE 白盒发现 XXE修复防御方案 有回显 无回显 XML&XXE-黑盒-JSON&黑盒测试&类型修改 XML&XXE-白盒-CMS&PHPSHE&无回显 知识点&#xff1a; 1、XXE&XML-原理-用途&…

MATLAB绘制堆叠填充图--巧用句柄

MATLAB绘制堆叠填充图–巧用句柄 目录 MATLAB绘制堆叠填充图--巧用句柄1. 主要原理讲解1.1 主要函数1.2 句柄原理 2. 绘图示例2.1 准备数据2.2 绘制堆叠填充图-使用句柄控制图形属性2.3 设置填充颜色和样式2.4 添加标题和标签2.5 绘图效果 3. 结语 堆叠填充图是一种常见的数据可…

政安晨:【Keras机器学习实践要点】(十三)—— 利用 TensorFlow 进行多 GPU 分布式训练

目录 前言 设置 单主机、多设备同步培训 工作原理 如何使用 使用回调确保容错 tf.data 性能提示 数据集批处理注意事项 调用 dataset.cache() 调用 dataset.prefetch(buffer_size) 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏:…

ssm015基于java的健身房管理系统的设计与实现+vue

健身房管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本健身房管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间…

MacBook 访达使用技巧【mac 入门】

快捷键 打开访达搜索窗口默认快捷键【⌥ ⌘ 空格键】可以在键盘【系统偏好设置 -> 键盘->快捷键->聚焦】修改 但是我不会去修改它&#xff0c;因为我不常用访达的搜索窗口&#xff0c;更多的是想快速打开访达文件夹窗口&#xff0c;可以通过第三方软件定义访达的快…

利用Node.js实现拉勾网数据爬取

引言 拉勾网作为中国领先的互联网招聘平台&#xff0c;汇集了丰富的职位信息&#xff0c;对于求职者和人力资源专业人士来说是一个宝贵的数据源。通过编写网络爬虫程序&#xff0c;我们可以自动化地收集这些信息&#xff0c;为求职决策和市场研究提供数据支持。Node.js以其非阻…

Qt 实现简易的视频播放器,功能选择视频,播放,暂停,前进,后退,进度条拖拉,视频时长显示

1.效果图 2.代码实现 2.1 .pro文件 QT core gui multimedia multimediawidgets 2.2 .h文件 #ifndef VIDEOPLAYING_H #define VIDEOPLAYING_H#include <QWidget> #include<QFileDialog>#include<QMediaPlayer> #include<QMediaRecorder> #in…

vue3中播放flv流视频,以及组件封装超全

实现以上功能的播放&#xff0c;只需要传入一个流的地址即可&#xff0c;当然组件也只有简单的实时播放功能 下面直接上组件 里面的flvjs通过npm i flv.js直接下载 <template><div class"player" style"position: relative;"><p style&…

深入了解 Vue 3 中的 Keyframes 动画

在本文中&#xff0c;我们将探讨如何在 Vue 3 中实现 Keyframes 动画。Keyframes 动画允许我们通过定义关键帧来创建复杂的动画效果&#xff0c;从而为用户提供更吸引人的界面体验。 transition动画适合用来创建简单的过渡效果。CSS3中支持使用animation属性来配置更加复杂的动…

Day5-

Hive 窗口函数 案例 需求&#xff1a;连续三天登陆的用户数据 步骤&#xff1a; -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…