版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.湖南科技大学潇湘学院课 程 设 计课程设计名称:单片机接口技术课程设计题目:INT0 及 INT1 的中断计数学 生 姓 名:学院:专 业 及班 级 :学号:指 导 教 师 :.2016 年12 月19 日.摘要单片机的外部中断有两种触发方式可选:电平触发和边沿触发。电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片机把每个机器周期的 S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要使电平触发的中断被 CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被
2、执行为止。 因此当 CPU正在执行同级中断或更高级中断期间,产生的外部中断源(产生低电平)如果在该中断执行完毕之前撤销(变为高电平)了,那么将得不到响应, 就如同没发生一样。 同样,当 CPU在执行不可被中断的指令 (如RETI)时,产生的电平触发中断如果时间太短,也得不到执行。边沿触发方式时,中断标志寄存器锁存了中断请求。中断口线上一个从高到低的跳变将记录在标志寄存器中, 直到 CPU响应并转向该中断服务程序时, 由硬件自动清除。因此当 CPU正在执行同级中断 (甚至是外部中断本身) 或高级中断时, 产生的外部中断(负跳变)同样将被记录在中断标志寄存器中。在该中断退出后,将被响应执行。如果你
3、不希望这样,必须在中断退出之前,手工清除外部中断标志。一个中断如果在没有到响应之前就已经被手工清除,则该中断将被 CPU忽略。就如同没有发生一样。.目录1 设计要求及目的11.1 设计要求 INT0 及 INT1 中断计数11.2 设计目的12 方案设计和选择12.1 原件选择12.1.1 单片机的选择 .1-33 调试过程33.1 软件调试 .3-64 心得体会65 参考文献7.第一章设计要求和目的1.1设计要求INT0 及 INT1 中断计数(1)每次按下第 1 个计数键时,第 1 组计数值累加并显示在右边 3只数码管上( 2)每次按下第 2 个计数键时,第 2 组计数值累加并显示在左边
4、3 只数码管上 (3) 后两个按键分别清零 1.2 设计目的本设计的目的是为提高自己的实际动手能力以及对外部中断的原理和单片机 C51语言的相关知识有更深刻理解。第二章 方案设计和选择根据本次设计的要求,方案的选择应力求实用性强,性价比高,使用简单,定位为入门级的产品2.1 元件选择2.1.1 单片机的选择AT89C51是一个低电压,高性能CMOS 8 位单片机,片内含8kbytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51指令系统,片内置通用 8 位中央
5、处理器和 Flash 存储单元, AT89C52单片机在电子行业中有着广泛的应用。主要特性:与 MCS-15兼容 4k 字节可编程闪烁存储器寿命; 100 写 / 擦循环数据保留时间: 10 年全静态工作: OHz-24MHz三级程序储存器锁定1288 位内部 RAM32 可编程 I/O 线两个 16 位定时器 / 计数器5 个中断源可编程串行通道.低耗电的闲置和掉电模式内片振荡器和时钟电路管脚说明:VCC: 供电电压GND: 接地P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部
6、程序数据存储器, 它可以被定义为数据 / 地址的第八位。在 FIASH编程时, P0 口作为原码输入口,当 FIASH进行校验时, P0输出原码,此时 P0 外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验时, P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出4 个 TTL 门电流,当 P2 口
7、被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时, P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH编程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下
8、拉为低电平, P3 口将输出电流( ILL )这是由于上拉的缘故。P3 口也可作为 AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0 (外部中断 0)P3.3/INT1 (外部中断 1)P3.4T0(记时器 0 外部输入)P3.5T1(记时器 1 外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时, 要保持 RST脚两个机器周期的高电平时间。.ALE/PROG:当访问外部存储器时,地址锁存允
9、许的输出电平用于锁存地址的地位字节。在 FLASH编程期间,此引脚用于输入编程脉冲。在平时, ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6 。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止 ALE的输出可在 SFR8EH地址上置 0。此时, ALE只有在执行 MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。但在访问外部数据存储器时,这两次
10、有效的 /PSEN 信号将不出现。/EA/VPP :当/EA 保持低电平时, 则在此期间外部程序存储器 ( 0000H-FFFFH),不管是否有内部程序存储器。 注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用于施加 12V编程电源( VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性 :XTAL1 和 XTAL2分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTA
11、L2应不接。有余输入至内部时钟信号要通过一个二分频触发器, 因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。第三章 调试过程3.1 软件调试软件调试主要通过仿真软件Proteus8 Professional和 keil来实现。keil用来对程序编写和修改,Proteus8 Professional则用来对电路进行仿真。Keil 程序如下 :#include /文件头#define uchar unsigned char#define uint unsigned intsbit K3=P34;sbit K4=P35; /定义 3 为 3.4 (单片机引脚) sbit K4
12、=P35; /定义 4 为3.5 (单片机引脚)./ 下面为数码管段码与位码定义,使用一维数组存放其值uchar codeDSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff;uchar code DSY_Scan_Bits=0xdf,0xef,0xf7,0xfb,0xfd,0xfe; /共阴数码管的位选码/uchar code DSY_Scan_Bits=0x20,0x10,0x08,0x04,0x02,0x01; /共阳数码管的位选码uchar data Buffer_Counts=0,0,0,0,0,0;uint
13、Count_A,Count_B=0; /计数单元赋初值void DelayMS(uint x)uchar t;while(x-) for(t=0;t120;t+);void Show_Counts()uchar i;Buffer_Counts2=Count_A/100; /取某位上的数Buffer_Counts1=Count_A%100/10; /取某位上数Buffer_Counts0=Count_A%10; /取某位上显示数Buffer_Counts5=Count_B/100; /取某位上显示数Buffer_Counts4=Count_B%100/10; / 取某位显示数 Buffer_Co
14、unts3=Count_B%10; / 取某位上显示数for(i=0;i6;i+) /for循环P2=DSY_Scan_Bitsi;P1=DSY_CODEBuffer_Countsi;DelayMS(1);.void main() /主函数IE=0x85;PX0=1; /中断优先IT0=1;IT1=1;while(1)if(K3=0) Count_A=0;if(K4=0) Count_B=0;Show_Counts(); /调用子函数void EX_INT0() interrupt 0 /中断函数计数加 1Count_A+;void EX_INT1() interrupt 2 /中断函数计数加
15、 1Count_B+;end;Proteus 仿真如图 3.1 所示:.图 3.1心得体会为期两周的单片机课程设计实训很快就结束了,在这次设计过程里我们体验了从设计、画板、编程、焊板到调试的整个过程。本次实训在操作过程中还是比较简单的,没出现什么重大的问题,可是在电路整体调试的时候出现了一些问题,这说明硬件结构和软件编程还有待完善的地方,这就需要结合所学的知识,有创造性地不断改进电路,以达到电路结构和软件性能的最优化。积极参与单片机课程设计,不仅让我们充分的体会到自己动手实践的乐趣,获得哪怕是前进一小步时候的那种成功的喜悦,还能学到很多我们在理论中学不到的知识。有利于我们学习能力的提高。表达能力等很多方面,有利于我们团队精神的培养。我们都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年平顶山工业职业技术学院单招职业技能考试备考试题含详细答案解析
- 2026年莆田学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年安徽交通职业技术学院单招职业技能考试备考题库含详细答案解析
- 2026年深圳职业技术学院单招综合素质考试参考题库含详细答案解析
- 2026年运城职业技术大学单招综合素质考试备考题库含详细答案解析
- 2026年江西环境工程职业学院单招综合素质考试备考试题含详细答案解析
- 2026年江苏航空职业技术学院单招综合素质笔试备考题库含详细答案解析
- 2026云南红河州泸西大为焦化有限公司招聘2人考试重点题库及答案解析
- 2026年资阳环境科技职业学院单招综合素质考试参考题库含详细答案解析
- 2026年安徽新闻出版职业技术学院高职单招职业适应性测试备考试题及答案详细解析
- 保密车间出入管理制度
- 肯德基副经理养成课程
- 铁路劳动安全 课件 第四章 机务劳动安全
- 智慧人社大数据综合分析平台整体解决方案智慧社保大数据综合分析平台整体解决方案
- 脊柱与四肢检查课件
- 六宫格数独100题
- 2024年河北省供销合作总社招聘笔试参考题库附带答案详解
- 宅基地及地上房屋确权登记申请审批表
- 医疗卫生舆情课件
- 2024年甘肃省安全员A证考试题库及答案
- 数据安全保护与隐私保护
评论
0/150
提交评论