单片机中断实习报告.doc_第1页
单片机中断实习报告.doc_第2页
单片机中断实习报告.doc_第3页
单片机中断实习报告.doc_第4页
单片机中断实习报告.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

单片机中断技术显示实习实习题目: 中断计数显示系统 程序设计与实现 班 级: 组 员: 学 号: 指导教师: 目录一、实习目的- 2 -二、单片机及74hc595工作原理简介- 2 -1、单片机- 2 -2、74hc595工作原理介绍- 2 -三、实习内容- 3 -1、利用中断制作模拟工件计数器- 3 -2、电子时钟的设计- 4 -四、实习程序- 4 -五、实习心得- 10 -六、参考文献- 11 -一、实习目的1使学生在学完了单片微型计算机与接口技术课程的基本理论,基本知识后,能够综合运用所学理论知识、拓宽知识面,系统地进行专业知识训练,锻炼自己的思考能力及动手能力,提高分析问题和解决问题的能力。2熟悉74hc595的引脚安排,掌握单片机的逻辑功能,使用方法及工作原理。3学会检查程序的错误与排除错误的方法,并能使用wave软件进行编程,以及运用progisp进行仿真验证。二、单片机及74hc595工作原理简介1、单片机 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器pc(包含在cpu中),在开始执行程序时,给pc赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,pc之中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。2、74hc595工作原理介绍74hc595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。数据在shcp的上升沿输入,在stcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(ds),和一个串行输出(q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能 oe时(为低电平),存储寄存器的数据输出到总线。74hc595各个引脚的功能: q17是并行数据输出口,即储寄存器的数据输出口q7串行输出口,其应该接spi总线的miso接口stcp存储寄存器的时钟脉冲输入口shcp移位寄存器的时钟脉冲输入口输出使能端芯片复位端ds串行数据输入端三、实习内容1、利用中断制作模拟工件计数器 要求:(1) 利用中断模拟采集工件通过的个数 (2)并用74hc595级联方式进行 (3)数码管显示2、电子时钟的设计 要求:(1)利用单片机的定时器完成年月日、时分秒的定时设计,实现电子时钟的功能。(2)用数码管显示出来四、实习程序本实验利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片、led数码管以及实验箱上的按键来设计中断及电子时钟。将软、硬件有机地结合起来,使得系统能够正确地执行中断及电子时钟,数码管能够正确地显示时间。通过单片机的定时器/计数器定时和计数原理,设计简单的电子时钟系统,拥有正确的计时、暂停功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。1、利用中断制作模拟工件计数器,前6个数码管显示从00:00:00开始的时间,后两个显示中断次数,中断计数范围为099,当中断次数超过99时,中断计数器和时间都归零程序如下: ena bit p0.0 ;位定义 enb bit p0.1 enc bit p0.2 clk bit p0.3 din bit p0.4 org 0000h ajmp main org 0003h ;外部中断0入口地址 ajmp int0 org 000bh ; 定时器0的入口地址 ajmp time0 org 0030hmain: mov r2,#14h mov r3,#0 ;秒位 mov r4,#0 ;分位 mov r5,#0 ;时位 mov r6,#0 mov tmod,#01h mov th0,#03ch mov tl0,#0b0h setb it0 setb ex0 setb et0 setb ea setb tr0loop: lcall read ; 读取时间 lcall display ;显示时间 sjmp loopread: mov a,r6 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 21h,a mov a,b mov dptr,#tab movc a,a+dptr mov 20h,a mov a,r3 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 23h,a mov a,b mov dptr,#tab movc a,a+dptr mov 22h,a mov a,r4 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 25h,a mov a,b mov dptr,#tab movc a,a+dptr mov 24h,a mov a,r5 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 27h,a mov a,b mov dptr,#tab movc a,a+dptr mov 26h,a retdisplay: clr ena ;选通595 setb enb setb enc mov r1,#20h ;循环读入时间 l2: mov a,r1 mov r0,#08h l1: rlc a mov din,c nop nop nop nop setb clk nop nop nop nop clr clk djnz r0,l1 inc r1 cjne r1,#28h,l2 ; 读入64位 setb ena rettime0: djnz r2,ret0;设置时间改变条件 mov r2,#14h;一秒 inc r3 cjne r3,#60,ret0 inc r4 mov r3,#0 cjne r4,#60,ret0 mov r4,#0 inc r5 cjne r5,#24,ret0 mov r5,#0ret0: mov th0,#03ch mov tl0,#0b0h setb tr0 retiint0: cpl tr0; 打开或关闭定时 inc r6 cjne r6,#100,ret1 mov r6,#0 mov r3,#0 mov r4,#0 mov r5,#0 ret1:retitab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h2、电子时钟,时间从00:00:00开始计时,六十秒进位一分钟,六十分钟进位一小时,二十四小时结束,再从00:00:00开始重新计时。org 0000hena bit p0.0 ;位定义enb bit p0.1enc bit p0.2clk bit p0.3din bit p0.4beeper bit p0.5beepcount bit 2ehajmp mainorg 0003h ;外部中断0入口地址ajmp int0org 000bh ; 定时器0的入口地址ajmp iv0org 001bh ; 定时器1的入口地址ajmp iv1org 0030hmain: lcall int;初始化函数wait: lcall read ; 读取时间 lcall display ;显示时间 sjmp waitread: mov a,r4 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 6fh,a mov a,b mov dptr,#tab movc a,a+dptr mov 6eh,a mov a,#0bfh mov 70h,a mov a,r5 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 72h,a mov a,b mov dptr,#tab movc a,a+dptr mov 71h,a mov a,#0bfh mov 73h,a mov a,r6 mov b,#0ah div ab mov dptr,#tab movc a,a+dptr mov 75h,a mov a,b mov dptr,#tab movc a,a+dptr mov 74h,a retdisplay: clr ena ;选通595 setb enb setb enc mov r1,6eh ;循环读入时间loop3: mov a,r1 mov r0,#08hloop2: lcall loop inc r1 cjne r1,#76h,loop3 ; 读入64位 setb ena retiv0: djnz r3,loop1;设置时间改变条件 mov r3,#14h;一秒 inc r4 cjne r4,#60,loop1 inc r5 mov r4,#0 cjne r5,#60,loop1 inc r6 mov a,r6 mov beepcount,a mov r5,#0 setb tr1 cjne r6,#24,loop1 mov r6,#0loop1: mov th0,#03ch mov tl0,#0b0h setb tr0 retiloop: rlc a; 时钟脉冲 mov din,c nop nop setb clk nop nop clr clk djnz r0,loop retint0: cpl tr0; 打开或关闭定时 retiiv1: setb beeper ; 铃响 djnz r7,loop4 mov r7,#4 clr beeper ;铃停 dec beepcount mov a, beepcount cjne a ,#0h,loop4 clr tr1 retiloop4: mov th1,#03ch mov tl1,#0b0h retiint: clr beeper ;关闭响铃 mov r3,#14h mov r4,#0;秒位 mov r5,#0;分位 mov r6,#00h;时位 mov tmod,#11h mov th0,#03ch mov tl0,#0b0h mov th1,#0ebh mov tl1,#0ffh mov r7, #4 ;响铃时间 setb it0 setb ex0 setb et0 setb et1 setb ea setb tr0 rettab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h五、实习心得通过本次实习,让我学到了很多课堂上学不到的知识,所学的知识与实际的应用,懂得了学习的意义。也深刻体会到了团队之间合作精神的强大,也锻炼了自己的仔细观察、独立思考、综合分析的能力。在本次实习过程中遇到的很多困难,都是在老师和同学的帮助下完成的。本次实习加强了团队合作精神,磨练了我们的意志力。我们各人之间好好的配合,分工合作,设计过程没有一团乱麻。更为可贵的是,我们彼此鼓励,同舟共济地处理每个问题。这种团队精神将是我们美好的回忆。我们花了很多心血来做这个课程设计,有些困难甚至看进来难于解决,确实也是打击了我们的信心。但我们毫不气馁,认真地检查程序,查看运行结果,用坚强的意志解决问题。这次实习加强了我们对单片机的了解。一直以来,我们都对单片机技术很感兴趣,对电子应用感到好奇。这次亲自制作两个程序并用实验箱将其实现,虽然原理并不太复杂,但我们在这一个过程,了

温馨提示

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

评论

0/150

提交评论