KEIL简单实例

时间:2021-08-25 12:28:27

好久都没有用KEIL了,突然想动手,一时还真不知道从哪开始写,所以先弄个小实例,以便参考:
#include <reg52.h>  //加载包括一个52标准内核的头文件,里面主要是一些寄存器名定义
#define MSH (665536-50000)/256    //采用12M晶振,所减的值为定时值,单位为MS
#define MSL (665536-50000)%256

sbit VoiceInput=P1^0;   //声音输入
sbit VibrationInput=P1^1; //振动输入
sbit WarnerOutput=P1^2;//报警输出

void timer0() interrupt 1//定时器中断处理函数
{
TF0=0;
TH0=MSH;
TL0=MSL;
WarnerOutput=~WarnerOutput;
}

void main(void)
{
VoiceInput=0;
VibrationInput=0;
TMOD=0x01;//定时器0,16位工作方式
EA=1;//打开总中断
while(1)
    {
      if(VoiceInput && VibrationInput)
        {
         TR0=1;                   //启动定时器
         ET0=1;                   //打开定时器0中断
         VoiceInput=0;
         VibrationInput=0; 
        }
    }
}

注:
void Timer0()  interrupt 1 using 1

Timer0   是函数名,可随便取 
interrupt   xx   using   y 
跟在interrupt   后面的xx   值得是中断号,就是说这个函数对应第几个中断端口,一般在51中 
0 ,外部中断0  ;   1, 定时器0 ;   2 ,外部中断1 ;      3  ,定时器1 ;   4  ,串行中断 
实际上编译的时候就是把你这个函数的入口地址方到这个对应中断的跳转地址

using   y   这个y是说这个中断函数使用的那个寄存器组,51里面一般有4组 : r0-r7寄存器,一共有32个,如果所用函数和别的程序用的不是同一个寄存器组,,则进入中断的时候就不会将寄存器组压入堆栈,返回时也不会弹出来节省代码和时间

KEIL简单实例的更多相关文章

  1. Hibernate&lpar;二&rpar;&lowbar;&lowbar;简单实例入门

    首先我们进一步理解什么是对象关系映射模型? 它将对数据库中数据的处理转化为对对象的处理.如下图所示: 入门简单实例: hiberante 可以用在 j2se 项目,也可以用在 j2ee (web项目中 ...

  2. 最新 Eclipse IDE下的Spring框架配置及简单实例

    前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...

  3. 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...

  4. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  5. 【转】Android Https服务器端和客户端简单实例

    转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...

  6. Centos7的安装、Docker1&period;12&period;3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  7. vue路由的简单实例

    vue2.0 和 vue1.0 路由的语法还是有点稍微的差别,下面介绍一下vue-router 2的简单实例: <!DOCTYPE html> <html lang="en ...

  8. Flume概述和简单实例

    Flume概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方( ...

  9. jsoup解析HTML及简单实例

    jsoup 中文参考文献    http://www.open-open.com/jsoup/ 本文将利用jsoup,简单实现网络抓取的功能,并给出一个小实例,该实例效果为:获取作者本人在博客园写的所 ...

随机推荐

  1. webpack进阶构建项目&lpar;一&rpar;

    webpack进阶构建项目(一) 阅读目录 1.理解webpack加载器 2.html-webpack-plugin学习 3.压缩js与css 4.理解less-loader加载器的使用 5.理解ba ...

  2. How can I learn to program&quest;

    黑客与画家:硅谷创业之父paul graham关于回答‘How can I learn to program’ How can I learn to program? Find a friend wh ...

  3. IOCP I&sol;O完成端口&lpar;了解&rpar;

    IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型.它是应用程序使用线程池处理异步I/O请求的一种机制.在处理多个并发的异步I/O请求时,以往的模型都是在接收 ...

  4. iOS - Xib

    前言 xib 文件可以被 Xcode 编译成 nib 文件,xib 文件本质上是一个 xml 文件,而 nib 文件就是编译后的二进制文件,该文件将视图等控件对象封装了起来,而在程序运行起来后,这些对 ...

  5. hdoj 2612 Find a way【bfs&plus;队列】

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. Mono for Android 显示远程图片

    Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  7. 扩展SpringMVC以支持绑定JSON格式的请求参数

    此方案是把请求参数(JSON字符串)绑定到java对象,,@RequestBody是绑定内容体到java对象的. 问题描述: <span style="font-size: x-sma ...

  8. 201621123018《Java程序设计》第9周学习报告

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 泛型个人认为可以理解为一种模糊的类型,在里面写入各种方法,程序员可以根据需要再创建具体类型的对象,然后调用泛型 ...

  9. 变量&amp&semi;常量

    变量:variables 存储数据,以被后面的程序调用,可以看作是:装信息的容器: 变量的作用:(1)标记数据(2)存储数据 变量定义规范1.声明变量:定义变量   name = "Mr H ...

  10. 从零打造在线网盘系统之Struts2框架起步

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...