单片机实验 中断系统实验

上传人:沈*** 文档编号:85449557 上传时间:2022-05-05 格式:DOC 页数:8 大小:2.23MB
返回 下载 相关 举报
单片机实验 中断系统实验_第1页
第1页 / 共8页
单片机实验 中断系统实验_第2页
第2页 / 共8页
单片机实验 中断系统实验_第3页
第3页 / 共8页
点击查看更多>>
资源描述
word实验四 动态数码管显示外部中断计数一 、实 验 目 的1熟悉keil仿真软件、proteus仿真软件的使用和单片机外部中断的使用。2了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。3理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。4熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。二 、实 验 器 材C51单片机开发板(含动态数码管) 1块8PIN排线 2根数据线 1根三 、实 验 原 理1实验仿真原理图如下所示:2实验的源程序:#includeunsigned char i;unsigned char code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f;yanshi(void) interrupt 2 /中断处理函数 2表示对应的中断源为外部中断1/按键按下时发出中断请求,引起外部中断i+;if(i=9)i=0; void main()IT1=1; /IT1=1,选择下降沿触发 i=0; EA=1;/ EA=1,CPU开中断 EX1=1; /EX1=1,允许INT1中断 while(1) P0=tabi; /从0显示到83中断控制的有关存放器1中断的允许和禁止中断控制存放器IEEA:中断总控开关,是CPU是否响应中断的前提。 EA=1,CPU开中断; EA=0, CPU关中断。ES: 串行口中断允许位,ES=1,允许串行口发送/接收中断;ES=0,禁止串行口中断。ET1:定时器T1中断允许位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。ET0:定时器T0中断允许位,ET0=1,允许T1计数溢出中断; ET0=0,禁止T0中断。EX1:外部中断INT1允许位,EX1=1,允许INT1中断; EX1= 0,禁止INT1中断。EX0: 外部中断INT0允许位, EX0=1,允许INT0中断; EX0= 0,禁止INT0中断。2中断请求标志与外部中断方式选择存放器TCONTF1TR1TF0TR0IE1IT1IE0IT0T1请求有/无T1工作启/停T0请求有/无T0工作启/停INT1请求有/无INT1方式下沿/ 低电平INT0请求有/无INT0方式下沿/低电平说明:1. IT0和IT1为外中断INT0 和INT1中断触发方式选择,假如选下降沿触发如此相应位置1;假如选低电平触发 ,IT相应位置0。2.某中断源有中断请求,该中断标志置1,无中断请求,该中断标志置0 3.TR0 和 TR1 为定时器T0和T1 工作启动和停止控制。4. 数码管:按发光二极管数码管是一种半导体发光器件,其根本单元是发光二极管。数码管的分类:数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元多一个小数点显示;按能显示多少个“8可分为1位、2位、4位等等数码管; 按发光二极管单元连接方式分为共阴极数码管和共阳极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极()的数码管,共阳数码管在应用时应将公共极接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极()的数码管,共阴数码管在应用时应将公共极接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。共阴极数码管和共阳极数码管如如下图所示:5. INT1中断计数用AT89C51与电阻、电容、晶振、1位动态数码管、排阻、按钮等实现中断计数。INT1中断计数,每次按下计数键时触发INT1中断,中断程序累加计数,计数值显示在动态数码管上。用单片机的P0.0-P0.7端口接动态数码管的端口,P3.3作为外部中断输入端口。每次按下计数键时触发INT1中断,中断程序累加计数,计数值显示在动态数码管上。四 、实 验 操 作 步 骤1接线方法如如下图所示将P0与J12 、P3与JP5分别用8PIN排线连接,用数据线将单片机开发板与笔记本连接好。P0:输入输出端口 即I/O P3:输入输出端口 即I/O J12:用来控制共阳极动态数码管JP5:用来控制8位独立按键做为外部中断输入,每按一下所连接的独立按键K4,动态数码管就累计加1一次。2. 工程建立先建立一个该工程的文件夹,保存到要存放的路径,如放在D:keil。打开Keil软件,先新建一个工程文件,点击“Project-NewProject菜单。会弹出工程创建对话框。选择工程文件要存放的路径 选择将工程安装在我们创建的D:keil工程文件夹下面,并给该工程命名输入工程文件名,如 zhongduan最后单击保存。在弹出的对话框中选择CPU厂商与型号,选择好 Atmel 公司的 AT89C51后 , 单击确定。在接着出现的对话框中选择“OK。新建一个 C51 文件 , 单击左上角的 New File,保存新建的文件,单击SAVE。在出现的对话框中输入保存文件名注意后缀名必须为.C如 zhongduan.c,再单击“保存。保存好后把此文件参加到工程中方法如下:用鼠标在Source Group1上单击右键 , 然后再单击左键选择Add Files to Group Source Group 1。选择要参加的文件 , 找到后后缀名为.C的文件,单击 Add, 然后单击 Close 。在编辑框里输入代码,然后编译,程序编译成功如如下图所示:至此已经生成了单片机芯片可利用的zhongduan.hex文件,如如下图所示:3、Proteus仿真1在元件模式时,从元件库里找出本次实验需要用到的元器件,其元件名称和英文简写对应如下: 51芯片 AT89C51 数码管 7SEG-CATHODE 按钮 BUTTON 晶振 CRYSTAL 电阻 RES 排阻 RESPACK-82在终端模式时,从元件库里找出本次实验需要用到的元器件,其元件名称和英文简写对应如下: 地 GROUND 电源 POWER3在Proteus仿真图中双击89C51芯片,在出现的对话框中的program File一栏中选择生成的.hex文件并确定,再运行之,观察现象如如下图所示:每次按如下图中红框按钮时触发INT1中断,中断程序累加计数,计数值显示在数码管上:4. 烧录程序先打开烧录软件,再打开单片机电源,点击烧录软件窗口中的打开文件,选中已在Keil软件下生成的hex文件,然后点击下载程序,假如软件上显示“数据下载成功,程序下载完毕字样,如此表示烧录成功。5观察结果:程序下载成功后,点击数次所连接的独立按键K4,并观察单片机开发板上静态数码管的变化。假如数码管每次加1,如此表示实验成功。否如此,实验失败,检查实验过程并分析失败的原因。实验成功后,记录实验结果并分析产生的原因。五、实 验 小 结通过实验熟悉keil仿真软件、proteus仿真软件的使用和单片机外部中断的使用。了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。熟悉中断处理特别是外部中断处理的过程和中断处理子程序的书写格式和使用方法。中断处理过程分为四个阶段:中断请求,中断响应,中断处理、中断返回。使用MCS51的中断,要为使用到的中断源编写中断服务程序。C51为中断服务程序的编写提供了方便的方法。C51的中断服务程序是一种特殊的函数,它的说明形式为:void 函数名(void) interrupt n using m 函数体语句 这里,interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务函数,interrupt后的整数n表示该中断服务函数是对应哪一个中断源。每次按下计数键K4时能够触发INT1中断, P3.3口即INT1口由高电平变为低电平 ,此时在单片机的部会产生一个中断计数,并使P0口的电平发生变化,通过排线将P0口的电平信息传到数码管数码管根据A BCDEFG各段的上下电平决定各发光二极管的亮与不亮因为实验使用的是共阴数码管所有发光二极管的阴极接到一起形成公共阴极()的数码管,共阴数码管在应用时应将公共极接到地线GND上,当按下计数键K4时触发INT1中断,中断程序累加计数显示不同的LED 的字模,根据数码管A BCDEFG各段的上下电平决定各发光二极管的亮与不亮某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮,显示出不同的数值。8 / 8
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!