当前位置:文档之家› 单片机实训实验报告

单片机实训实验报告

单片机实训实验报告课题:单片机实训院系:电子信息工程学院班级学号:姓名:指导老师:熊老师、罗老师日期:2011.6.10一、硬件系统1、自制单片机实验板由七部分组成:(1).8路跑马灯(2)动态扫描共阳型数码管(3)4X4矩阵键盘(4)蜂鸣器(5)4路独立键盘(6)温度传感器(7)I2C通信方式的EEPROM芯片24C02二、Keil C u Vision2 简述与使用1.打开 u Vision22.新建工程:菜单【project】→【New Project】选择工程存放的路径,并输入工程文件名,然后点“保存”3.进入器件选择界面树列表框内选择“Atmel”→“AT89C52”,然后点“确定”完成器件选择。

4.编辑源程序:新建文件:菜单【File】→【new…】。

然后输入代码,编辑完成后菜单【File】→【Save】或【Save As…】把代码文件存入硬盘。

C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。

5.加入源文件到工程中:在左边浮动窗口【File】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group“Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。

6.设置编译选项:先选中左边浮动窗口【File】选项卡里“Target1“树节点,然后选菜单【Project】→【Options for Target “Target 1”】。

7.在弹出的“Options for Target “Target 1””对话框中选择[output]选项卡,勾选“Create HEX File”然后按“确定”完成设置。

8.按“F7”开始编译,编译成功后会在工程文件夹内生成.Hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。

三.STC-ISP V29 Beta5 下载软件的使用1.连接好电源线与串口线(附件中的九孔对九孔线分别连接电脑和点偏激开发板)。

2.检查电源板上电源指示灯是否亮起,如果亮起则检查USB电源线,如果已亮则关掉电源看后面的步骤。

3.启动软件。

4.选择好STC单片机的型号(STC89CF52RC).5.选择好你使用的计算机串口号.6.点击OPEN FILE选择你用KEIL编译好的HEX文件.7.直接点击下载按钮.8.点击下载的时候按下”冷启动“按键,是单片机上电。

9.如果正常会看到下载程序进度条闪过的过程。

四、实验项目1、I/O口输出P1口发光二极管显示2、数码管显示单管显示多管动态显示3、按键控制独立键盘矩阵键盘4、信号发生(延时、定时计数器应用)5、中断的应用五、实验内容(一).I/O口输出P1口发光二极管显示1.实验工具:8路跑马灯,开发软件Keil u Vision2,STC-ISP V29 Beta5 下载软件。

2.实验要求:八路跑马灯从右边向左依次发亮。

3.实验目的:学习P1口的使用,延时程序的编写和调用。

4.实验程序:org 0000hstart:jb p3.2,startlcall delayjb p3.2,startmov r0,#8mov a,#0fehl1:mov p1,alcall delay2rl adjnz r0,l1mov p1,#0ffhsjmp startdelay:mov r1,#20del:mov r2,#250djnz r2,$djnz r1,delretdelay2:mov r3,#200dl:mov r4,#255DJNZ r4,$djnz r3,dlretend5.实验图8路跑马灯(二)、数码管动态扫描1.实验工具:共阳型数码管,开发软件Keil u Vision2,STC-ISP V29 Beta5 下载软件。

2.实验要求:让其中的一个数码管依次显示0到9。

3. 实验目的:学习数码管的显示原理,及共阳极数码管显示电路;掌握动态扫描间隔时间.4.实验电路图如下5.实验程序:org 000hljmp startorg 0030hstart:mov p2,#7fhmov r0,#10mov r1,#0loop:mov a ,r1movc a ,@a+dptrmov p0,alcall delayinc amov r1 ,adjnz r0,loopdb:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hdelay:mov r6,#1000dell:mov r7,#250del:djnz r7,deldjnz r6,dellretEnd(三).矩阵按键控制1.实验要求:采用扫描方式,识别4*4矩阵按键,没按下一个键,则对应的1位或2位发光二极管被点亮。

2.实验目的:采用扫描方式,识别4*4矩阵按键,没按下一个键,则对应的1位或2位发光二极管被点亮。

3.实验电路图按下某一件键,在P1口对应灯里显示对应键的反码4.实验程序:ORG 0000HSETB P3.6M1:JNB P3.2,L1JNB P3.3,L2JNB P3.4,L3JNB P3.5,L4AJMP M1L1:CLR P3.6LCALL DELAY1SETB P3.6LCALL DELAY1AJMP M1L2:CLR P3.6LCALL DELAY2SETB P3.6LCALL DELAY2AJMP M1L3:CLR P3.6LCALL DELAY3SETB P3.6LCALL DELAY3AJMP M1L4:CLR P3.6LCALL DELAY4SETB P3.6LCALL DELAY4AJMP M1DELAY1:MOV R6,#2DEL1:MOV R7,#250DJNZ R7,$DJNZ R6,DEL1RETDELAY2:MOV R6,#5DEL2:MOV R7,#250DJNZ R7,$DJNZ R6,DEL2RETDELAY3:MOV R6,#10DEL3:MOV R7,#250DJNZ R7,$DJNZ R6,DEL3RETDELAY4:MOV R6,#15DEL4:MOV R7,#250DJNZ R7,$DJNZ R6,DEL4RETEND<四>.小喇叭报警器1.实验要求:声音是由震动产生的,一定频率的震动就产生了一定频率的声音。

这实验是让不同的按键控制蜂鸣器的不同频率和发声时间。

2.实验目的:a.学习频率子程序的编写和使用。

b.学习蜂鸣器驱动电路。

3.实验电路图:3.实验程序:org 0000hSETB P3.6M1:JNB P3.2,L1JNB P3.3,L2JNB P3.4,L3JNB P3.5,L4AJMP M1L1:CLR P3.6CALL DELAY1SETB P3.6CALL DELAY1DJNZ R1,L1AJMP M1L2:CLR P3.6CALL DELAY2SETB P3.6CALL DELAY2DJNZ R2,L2AJMP M1L3:CLR P3.6CALL DELAY3SETB P3.6CALL DELAY3DJNZ R3,L3AJMP M1L4:CLR P3.6CALL DELAY4SETB P3.6CALL DELAY4DJNZ R4,L4AJMP M1DELAY1:MOV R6,10DEL1:MOV R7,#250DJNZ R7,$DJNZ R6,DEL1RETDELAY2:MOV R6,#50DEL2:MOV R7,#250DJNZ R7,$DJNZ R6,DEL2RETDELAY3:MOV R6,#120DEL3:MOV R7,#50DJNZ R7,$DJNZ R6,DEL3RETDELAY4:MOV R6,#180DEL4:MOV R7,#25DJNZ R7,$DJNZ R6,DEL4RETEND<五>.中断的应用1.实验要求:对外部中断源INT0、INT1设置边沿触发中断方式,利用按键产生中断功能。

按下S17或S18,产生INT0或INT1的中断信号,使数码管显示处迅速速递增1或递减1.递增1时,伴随蜂鸣器的“嘀--嘀”声音,数码管显示处迅速增加1.当9999再加1时,数码管恢复成0000。

递减1时,伴随着蜂鸣器的“嘀”声音,数码管显示处迅速递减1.当0000再减1时,数码管保持0000不变。

2.实验目的:a.学习INT0、INT1的边沿触发中断程序。

b.结合数码管、按键识别和,学习小型系统程序的编写。

c.从显示结果中观察、理解按键的抖动现象。

3.电路图如4.实验程序:SECOND EQU 30HTCOUNT EQU 31HORG 00HLJMP STARTORG 0BHLJMP INT0XSTART: MOV SECOND,#00HMOV A,SECONDMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,BMOVC A,@A+DPTRMOV P2,AMOV TCOUNT,#00HMOV TMOD,#01HMOV TH0,#(65536-50000) / 256 MOV TL0,#(65536-50000) MOD 256 SETB TR0SETB ET0SETB EASJMP $INT0X:MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256INC TCOUNTMOV A,TCOUNTCJNE A,#20,NEXTMOV TCOUNT,#00HINC SECONDMOV A,SECONDCJNE A,#60,NEXMOV SECOND,#00HNEX: MOV A,SECONDMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,BMOVC A,@A+DPTRMOV P2,ANEXT: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND六、实验总结为期一周的实训结束了,从第一天编辑最简单的程序到后来编辑较复杂的程序,整周实训感觉时间挺紧,对如何编写好程序可谓是费劲心思,最后程序完成则有一种成功的喜悦。

在实训中,我感觉理论知识的不足,编写过程中不细心导致不必要的错误等,故此,理论知识和细心度是我努力的方向,希望学好单片机掌握这门知识。

相关主题