资源描述
精品成都航空职业技术学院 单片机技术与应用实习报告 (2011-2012学年第一学期)课程名称: _ 课程代码:_ 系 别:_ 专 业:_ 班 级:_ 学 号:_ 学生姓名:_ 指导老师:_ 完成时间:_年_月_日一、教学实训的性质和目的1、性质微机原理与接口技术是根据教学计划安排的,以培养学生利用单片机进行电子设计能力为中心的综合性实习。2、目的通过单片机接口技术教学实训,提高学生的电子设计能力;加强分析问题和解决问题的能力;巩固和加深理解所学的理论知识;培养理论联系实际、实事求是、严肃认真的工作作风和科学态度。二、教学实训的基本要求通过微机原理教学实训要达到以下基本能力要求:u 专业能力单片机系统硬件电路的设计能力;单片机系统硬件电路的基本测试能力;使用仿真器、编程器等单片机开发工具的技能;采用单片机开发控制系统的基本能力;单片机系统资源的应用能力;单片机指令系统的基本编程能力;程序设计框图的应用;使用仿真器、编程器等单片机开发工具的技能;采用单片机系统程序设计的基本能力;掌握一种单片机仿真软件的基本应用能力。u 方法和学习能力拓展相应的信息收集和应用能力;思考和解决问题的能力;学会系统设计方法和严谨工作态度;程序设计思路及编制方法、思考和解决问题的能力。u 个人和社会能力通过分组实施,提高学生的沟通能力、团队合作及协调能力;通过实际电路的搭建及测试,提高学生的细心、耐心和责任意识;通过程序设计与调试,提高学生严谨的逻辑思路,慎密的工作方式和强烈的责任意识。三、教学实训的内容硬件电路要求用89C51单片机设计一个系统,具有6个数码管,按键若干,指示灯1个任务一系统运行后,六个数码管分别显示0、1、2、3、4、5。任务二按键1,系统显示888888;按键2,显示888888,并闪烁;按键3,轮流显示000000至999999;按键4,恢复显示HELLO.任务三系统倒计时,重9开始减,没过1秒钟减1,当减到0时,计时停止,指示灯闪烁。任务四系统运行后,自动显示时、分、秒任务五1编写程序,使系统运行后后自动显示时、分、秒; 2.通过按键能修改时间(“+”键或“-”键)。四、实施步骤1、分析根据项目要求,利用网络、书籍等手段广泛查阅,收集相关资料。研究、学习资料中的内容和知识,获取项目设计的有价值的信息。2、计划与决策根据获取的信息,制定出完成项目任务的各种方案。并找出其中的最佳方案进行详细设计,包括方案叙述、硬件描述、软件功能、流程图、软件代码等。 3、实施调试显示子程序;调试定时显示子程序;调试键盘子程序;调试键盘控制显示子程序;调试主程序;撰写实训报告。4、评估检查功能是否满足预期要求。5、总结 组成工作小组,进行汇报和讨论,通过组内互评和教师评价,分析设计中出现的问题,以及设计中应用的技术关键。五、任务设计 (1)任务一实训要求:写一个完整的运行程序,使原理图按要求进行显示0、1、2、3、4、5。2元器件使用单片机(AT89C51),电阻(RES),按钮(BUTTON),瓷片电容(CAP),电解电容(CAP-ELEC),晶振(CRYSTAL),6个数码管的显示器(7SEG-MPX6-CC),八排电阻(RX8)。3、任务一的程序 ORG 0000H AJMP START ORG 0010HSTART:MOV P3,#0FFH MOV DPTR,#TAB 查表指令NEXT: MOV DPTR,#TAB CLR A A 清零 MOVC A,A+DPTR 查字形码 MOV P0,A INC DPTR 指针加1 LCALL DELAY 延时 SETB 置1 CLR A A 清零 MOVC A,A+DPTR 查字形码 MOV P0,A 把A 送入P0口 INC DPTR 指针加1 LCALL DELAY 延时 CLR CLR A MOVC A,A+DPTR MOV P0,A INC DPTR LCALL DELAY SETB CLR CLR A MOVC A,A+DPTR MOV P0,A INC DPTR LCALL DELAY SETB CLR CLR A MOVC A,A+DPTR MOV P0,A INC DPTR LCALL DELAY SETB CLR CLR A MOVC A,A+DPTR MOV P0,A LCALL DELAY SETB LJMP NEXTDELAY:MOV R5,#10 D1: MOV R6,#20D2: MOV R7,#20 DJNZ R7,$ DJNZ R6,D2 跳转执行下一步 DJNZ R5,D1 RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH END4、原理图 (2)任务二1、实训要求:用89C51单片机设计一个系统,具有6个数码管,按键若干,指示灯1个,系统运行后,数码管显示HELLO;按键1,系统显示888888; 按键2,显示888888,并闪烁; 按键3,轮流显示000000至999999; 按键4,恢复显示HELLO.2元器件使用单片机(AT89C51),电阻(RES),按钮(BUTTON),瓷片电容(CAP),电解电容(CAP-ELEC),晶振(CRYSTAL),6个数码管的显示器(7SEG-MPX6-CC),八排电阻(RX8)。3、程序 DISBUFF EQU 40H 把40H赋给DISBUFFdisbit equ 30h 把30H赋给disbithello bit 20h.0 把定义数据寄存在20h org 000hajmp main org 000bhajmp interorg 30hmain: mov sp,#5fh mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh mov r3,#00h setb hello clr shan_1 clr count clr shan mov tmod,#01h 选择工作方式 mov th0,#0ech mov tl0,#78h setb ea 总中断开放 setb et0 允许T0中断 setb tr0 开启T0定时器loop: lcall delay 延时 jb p1.0,key2 jb p1.0,$ clr hello clr shan clr count mov disbuff,#8 ajmp loopkey2: jb p1.1,key3 lcall delay jb p1.1,key3 jb p1.1,$ clr hello setb shan clr count mov disbuff,#8 key3: jb p1.2,key4 lcall delay jb p1.2,key4 jb p1.2,$ clr hello clr shan setb count mov disbuff,#0key4: jb p1.3,key_ret lcall delay jb p1.3,key_ret jb p1.3,$ setb hello clr shan clr count key_ret: ajmp loopinter: push acc 累加器入栈保护 push psw 状态字入栈保护 mov th0,#0ech mov tl0,#78hcounter:jnb count,disp inc r4 cjne r4,#50,disp inc disbuff mov a,disbuff cjne a,#10,disp mov disbuff,#00h disp: jnb hello,display1 mov dptr,#distabdisplay:mov p3,#0ffh mov a,disbit movc a,a+dptr 查字形码 mov p0,a mov dptr,#distab2 mov a,disbit movc a,a+dptr mov p3,a inc disbit mov a,disbit cjne a,#06h,into_ret mov disbit,#00h ajmp into_retdisplay1: mov dptr,#distab1 mov a,disbuff movc a,a+dptr mov p0,a mov p3,#00h jnb shan,into_ret inc r3 cjne r3,#50,into1 mov r3,#00h cpl shan_1into1: jb shan_1,into_ret mov p3,#0ffhinto_ret:pop psw pop acc retidelay2ms: mov r7,#4 d1:mov r6,#248 djnz r6,$ djnz r7,d1 retdelay: mov r5,#10 d2:mov r4,#248 d3:djnz r4,d3 djnz r5,d2 ret DISTAB:DB 76h,79h,38h,38h,3fh,00h distab1: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhdistab2: db 0feh,0fdh,0fbh,0f7h,0efh,0dfhend4、原理图开始运行时的图按键1和按键2按键4(3)任务三1、实训要求:用89C51单片机设计一个系统,具有6个数码管,按键若干,指示灯1个,系统倒计时,重9开始减,没过1秒钟减1,当减到0时,计时停止,指示灯闪烁。2、元器件使用单片机(AT89C51),电阻(RES),按钮(BUTTON),瓷片电容(CAP),电解电容(CAP-ELEC),晶振(CRYSTAL),6个数码管的显示器(7SEG-MPX6-CC),发光二极管(LED-GREEN),八排电阻(RX8)。3、程序ORG 0000HAJMP STARTORG 0100HSTART: MOV P2,#00H mov P3,#00H mov p0,#67H LCALL DELAY1 MOV P0,#7FH LCALL DELAY1 MOV P0,#07H LCALL DELAY1 MOV P0,#7DH LCALL DELAY1 MOV P0,#6DH LCALL DELAY1 MOV P0,#66H LCALL DELAY1 MOV P0,#4FH LCALL DELAY1 MOV P0,#5BH LCALL DELAY1 MOV P0,#06H LCALL DELAY1MOV P0,#3FHLCALL DELAY1 mov p3,#3FH LJMP LOOP1LOOP1: LCALL DELAY1 LCALL DELAY1 AJMP LOOP1DELAY1:MOV R5,#20D3: MOV R6,#200D4: MOV R7,#123 DJNZ R7,$ DJNZ R6,D4 DJNZ R5,D3 RET END4、原理图(4)任务四1、设计要求:用89C51单片机设计一个系统,具有6个数码管,按键若干,指示灯1个,系统运行后,自动显示时、分、秒。2、元器件使用单片机(AT89C51),电阻(RES),按钮(BUTTON),瓷片电容(CAP),电解电容(CAP-ELEC),晶振(CRYSTAL),6个数码管的显示器(7SEG-MPX6-CC),八排电阻(RX8)。3、程序SECOND EQU 31HMINUTE EQU 32HHOUR EQU 33HDISBUFF EQU 40HDISBIT EQU 49Horg 0000hajmp mainorg 000bhajmp interorg 30hmain: MOV SP,#5FH MOV P0,#0FFH MOV P3,#0FFH MOV TMOD,#01H 定时器工作方式1 MOV TH0,#0ECH MOV TL0,#78H MOV DISBIT,#00H MOV SECOND,#00H 秒计数器清0 MOV MINUTE,#00H 分计数器清0 MOV HOUR,#00H 时计数器请0 LCALL DISP SETB EA ;总中断开放 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器loop: ajmp loopINTER: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 MOV TH0,#0ECH MOV TL0,#78H INC R3 CJNE R3,#200,DISPLAY MOV R3,#00HCOUNTER: INC SECOND MOV A,SECOND CJNE A,#60,NEXT MOV SECOND,#00H INC MINUTE MOV A,MINUTE CJNE A,#60,NEXT MOV MINUTE,#00H INC HOUR MOV A,HOUR CJNE A,#24,NEXT MOV HOUR,#00HNEXT: LCALL DISP/ 显示子程序 /DISPLAY: MOV P3,#0FFH MOV A,#DISBUFF 40H单元送入A ADD A,DISBIT MOV R0,A MOV A,R0 MOV DPTR,#DISTAB MOVC A,A+DPTR MOV P0,A MOV A,DISBIT MOV DPTR,#DISTAB_1 MOVC A,A+DPTR MOV P3,A INC DISBIT MOV A,DISBIT CJNE A,#06,DISRET MOV DISBIT,#00disret: pop psw pop acc reti DISP: MOV A,#DISBUFF ADD A,#06 DEC A MOV R0,A MOV A,HOUR MOV B,#10 DIV AB MOV R0,A DEC R0 MOV A,B MOV R0,A DEC R0 ;指向前一地址 MOV A,MINUTE MOV B,#10 DIV AB MOV R0,A DEC R0 ;指向前一地址 MOV A,B MOV R0,A DEC R0 ;指向前一地址 MOV A,SECOND MOV B,#10 DIV AB MOV R0,A DEC R0 MOV A,B MOV R0,A ;数据放入当前地址单元中 RETDISTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40HDISTAB_1: DB 0dfh,0efh,0f7h,0fbh,0fdh,0fehEND4、原理图六、实训总结经过一个学期的单片机学习,使我们收获不少。本次单片机实训我们完成了三个模块的程序设计,包括有:led显示模块、按键模块、数码管显示模块。实现了动态计数显示。我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。在这个设计中,从找设计开始,各种元件的选择、画原理图到编写程序,对单片机有了全面的了解。扩大了自己的视野。虽然单片机是一门很枯燥的学科,但是也是一门很重要的学科,对我们以后的帮助很大。只要用心来设计,就会有收获。这次实训是我理解了一些编程序的技巧。单片机应用系统一般由包含多个模块的主程序和由各个子程序组成。每一个模块都要完成一个明确的功能。通过本次的实训,我觉得只有理论水平高,将课本知识和实践相结合,才能设计出一个好的作品。增强自己的动手能力。通过本次单片机实训,我感觉收益匪浅。从拿到题目到完成题目,从理论到实践,学到很多课堂上没有的知识,通过查阅资料,对单片机有了进一步的了解。也学到了很多。不仅对按键功能有了进一步的了解,也会正确的使用。尤其在学习使用protues系统仿真软件和keil软件编程过程中收获良多。这次的单片机实训能顺利完成,不是我一个人的功劳,要感谢老师和同学的帮助。才能使我完成这次的项目。使我在设计过程中学到很多实用性知识。.
展开阅读全文