中断实验报告报告_第1页
中断实验报告报告_第2页
中断实验报告报告_第3页
中断实验报告报告_第4页
中断实验报告报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中断实验报告报告程序一。ORG0030Htmpdate:DB01H,02H,04H,08H,10H,20H,40H,80H/*定义常量做为输出*/ORG0000HLJMPMAINORG0003HLJMPINTMAIN:SETBEA/*首先开启总中断*/SETBEX0/*开启外部中断0*/SETBIT0/*设置成下降沿触发方式*/MOVR7,MOVDPTR,#TMPDATEL0:SJMPL0//等待中断INT:DJNZR7,L1/*外部中断0每按一次主板上的"INT0"键,中断响应,调用该函数,我们从P1口输出点亮发光二极管*/MOVR7,L1:MOVA,R7CPLAMOVP1,ARETIEND程序二、/***************************************************************功能:按下按键,数码管加1,用中断的方法时间:2009-04版本:V1.0***************************************************************/#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitwei1=P2^0;sbitkey1=P3^2;ucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳数码管码表//全局变量ucharnum;//函数声明voiddelay(uintz);voidled_show(uchartemp);voidmain。。num=0;//IT0=1;//中断以下降沿方式触发IT0=0;//中断以低电平方式触发EX0=1;//允许外部中断0中断EA=1;//总中断开wei1=0;while(1)。led_show(num);//显示}}/***************************************************************功能:外部中断0入口***************************************************************/voidEX0_Int(interrupt0。EX0=0;//关中断num++;if(num==10)num=0;while(!key1);//消除抖动delay(5);while(!key1);//for(;!key1;);//等待放开EX0=1;//开中断}voiddelay(uintz)。uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidled_show(uchartemp)。P0=table[temp];delay(5);}扩展程序三。#include<AT89X52.H>//包含头文件sbitled=P1^0;#defineshumaP0//数码管数据口sbitLED_0=P2^0;//定义数码管4个控制位sbitLED_1=P2^1;sbitLED_2=P2^2;sbitLED_3=P2^3;unsignedcharm;unsignedintcodeton[7];voiddisplay(unsignedchard1,unsignedchard2,unsignedchard3,unsignedchard4);/*=====0-9=====A-G=====*/unsignedchara[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极数码管的段码0123456789ABCDEF//定时初值计算方法:以5ms为例,5ms=5000us,0xffff-5000/1.085即为TH和TL的值voidint1(interrupt3//T1中断,时间是5ms。TR1=0;//关中断TH1=0xed;//装定时器初值实现5ms定时TL1=0xff;ET1=1;//开中断TR1=1;display(1,2,3,4);//在中断里显示数字}voidmain(void)。m=1;TMOD=0x10;//设置为T1定时器TH1=0xed;//装定时器初值TL1=0xff;TR1=1;//开中断ET1=1;EA=1;while(1)。}}voiddisplay(unsignedchard1,unsignedchard2,unsignedchard3,unsignedchard4)。if(m==1)//每进入一次中断显示1位,用变量m作为显示位标识。LED_0=0;//使能该数码管控制位LED_1=LED_2=LED_3=1;//其他控制位无效shuma=a[d1];//按照数据点亮该数码管}if(m==2)//第二次中断显示第二位。LED_1=0;LED_0=LED_2=LED_3=1;shuma=a[d2];}if(m==3)//第三次中断显示第三位。LED_2=0;LED_1=LED_0=LED_3=1;shuma=a[d3];}if(m==4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论