单片机第二次实验.docxVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机第二次实验

单片机实验报告(二)外部中断 0 实验实验指标学习外部中断技术的基本使用方法。掌握中断处理的编程方法。实验总体设计方案1.中断服务程序入口地址两相邻中断服务程序起始地址之间只相距8个字节,而一般服务程序长度会超过8个字节,为了避免和下一个中断地址相冲突,常用一条跳转指令,将程序转移到以外的某一区间。2.由于中断服务程序要使用有关的寄存器,因此CPU 在中断之前要保护此寄存器的内容,即保护现场,而在中断返回时又要使它们恢复原值,即恢复现场。3.本实验在无中断时(K01为高电平)发光二极管常亮,有外部中断时(K01为低电平),左移。使用HICE软件编写外部中断的程序,再与外部实验箱连接,测试外部中断的效果。中断实验框架图硬件设计P1口:P1口的结构最简单,用途也最单一。仅仅只作为普通的数据输入/输出(I/O)端口使用。外部中断0: 在不同型号的片子上引脚不同,但符号是INT0的取非(中断源低电平有效),在主程序中打开中断0后,只要这个引脚来低电平,就会触发中断。1、仿真模式设置:8752模式。2、仿真存储器模式选择:内程序存储器外数据存储器。 3、仿真器p3.6和p3.7短路块设置在 WR/RD 状态。4、P1 口接发光二极管,外部中断 INT0(P3.2)接拨动开关 K01。5、如果是下载式实验仪,在程序装载前,必须使 P3.2 口的拨动开关处于高电平状态。并且不能单步调试,只能连续执行。中断实验原理图实验仿真图软件设计 软件流程图源程序:#include reg51.h#define uchar unsigned char #define uint unsigned int void main (){IE=0x81;//允许中断IT0=0;/外部中断请求0低电平有效loop:P1=0x00;//全亮goto loop;}/*中断服务子程序*/void iint0() interrupt 0 {uchar b,c,i,temp;uint j;temp=0x7f;for(i=0;i8;i++)//右移一位{b=temp(8-i);c=tempi;P1=c|b;for(j=0;j30000;j++);}for(j=0;j30000;j++);P1=0x00;}外部中断 0、外部中断 1 混合使用一.实验指标学习外部中断0,外部中断1的基本使用方法。掌握中断处理的编程方法。二.实验总体设计方案本实验在无外部中断(K01、K02都为高电平)时发光二极管常亮,外部中断0请求中断K01为低电平)时左移,外部中断1请求中断(K02为低电平)时右移。中断实验框架图硬件设计本实验在无外部中断(K01、K02 都为高电平)时发光二极管常亮,外部中断 0 请求中断(K01 为低电平)时左移,外部中断 1 请求中断(K02 为低电平)时右移。如果是下载式实验仪,在程序装载前,必须使 P3.2 口的拨动开关处于高电平状态。并且不能单步调试,只能连续执行。中断实验原理图实验仿真图软件设计 软件流程图中断子程序流程图源程序:include reg51.h#define uchar unsigned char #define uint unsigned intvoid main(){IE=0x85;IT0=0; //外部中断请求0低电平有效IT1=0;//外部中断请求1低电平有效loop:P1=0x00;goto loop;}void iint1() interrupt 2 using 0//定义中断子程序{uchar b,c,i,temp;uint j;temp=0x7f;for(i=0;i8;i++)//右移一位{b=temp(8-i);c=tempi;P1=c|b;for(j=0;j30000;j++);}for(j=0;j30000;j++);}void iint0() interrupt 0 using 0{uchar b,c,i,temp;uint j;temp=0xfe;for(i=0;i8;i++)//左移一位{b=temp(8-i);c=tempi;P1=c|b;for(j=0;j30000;j++);}for(j=0;j30000;j++);}实验总结通过进行外部中断0和1的混合实验,让我对外部中断两种方式的理解更加深刻了。通过进行中断实验。我知道了中断标志interrept是用来定义中断的函数。通过编程对中断进行定义,使两个接口在按下的时候会有不同的效果。保证中断的准确介入.参考书目《外部中断0的使用》《单片机应用技术教程》

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档