单片机实验报告
学 院:信息工程学院
专业班级:生物医学工程111班
姓 名:
学 号:
南昌大学实验报告
学生姓名: 学 号: 班级: 生医111班
实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.11.26 实验成绩:
实验一 I/O 口输入、输出实验
一、实验目的
掌握单片机P1口、P3口的使用方法。
二、实验内容
以 P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。以 P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验说明和电路原理图
P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
四、实验步骤
1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的 K0 到 CPU 模块的 RXD(P3.0 口);
用 8 位数据线连接八位逻辑电平显示模块的 JD4B 到 CPU 模块的 JD8(P1 口)。
2)启动 PC 机,打开 THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动 K0 可改变跑马灯的方向。
五、实验程序
DIR BIT P3.0 Delay:
ORG 0000H mov r6,#0
LJMP START DelayLoop1:
ORG 0100H mov r7,#0
DelayLoop2
START: NOP
Output1: NOP
mov a, #0fEH djnz r7,DelayLoop2
mov r5, #8 djnz r6,DelayLoop1
loop1: ret
CLR C end
mov C,DIR
JC Output2
mov P1, a
rl a
Acall Delay
djnz r5, loop1
Sjmp Output1
Output2:
mov a, #07fH
mov r5, #8
loop2:
CLR C
mov C,DIR
JNC Output1
mov P1, a
rr a
Acall Delay
djnz r5,loop2
Sjmp Output2
六、实验总结
本次试验初步了解了实验箱的模块部分,对单片机接线也有了解,实验程序也看的懂,对阅读一个完整的程序有很大帮助,一些常用的语句有更深的掌握,例如CLR,ORG,LJMP,JC等语句。
南昌大学实验报告
学生姓名: 学 号:班级: 生医111班
实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.03 实验成绩:
实验二 交通灯控制实验
一、实验目的
掌握十字路口交通灯控制方法。
二、实验内容
利用系统提供的双色 LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。4位LED数码管显示时间,LED显示红绿灯状态。
三、实验说明和电路原理图
交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。
四、实验步骤
1)系统各跳线器处在初始设置状态。
P10 同时接 G1、G3;P11 同时接 R1、R3;P1.2 同时接 G2、G4;P1.3 同时接 R2、R4; P1.6、P1.7 分别接静态数码显示的 DIN、CLK。
2)启动 PC 机,打开 THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。
3)观察十字路口交通灯效果。
五、实验程序
7个状态的程序:
STATE0: ;状态0 STATE4: ;状态4
MOV P1,#0 CLR LED_G1
CLR LED_G1 SETB LED_R1 ;东西红灯亮
SETB LED_R1 ;东西红灯亮 SETB LED_G2 ;南北绿灯亮
CLR LED_G2 CLR LED_R2
SETB LED_R2 ;南北红灯亮 RET
RET STATE5: ;状态5
CLR LED_G1
STATE1: ;状态1 SETB LED_R1
SETB LED_G1 ;东西绿灯亮 CLR LED_R2
CLR LED_R1 RET
CLR LED_G2 STATE6: ;状态6
SETB LED_R2 ;南北红灯亮 CLR LED_G1
RET SETB LED_R1 ;东西红灯亮
SETB LED_G2
STATE2: ;状态2 SETB LED_R2 ;南北黄灯亮
CLR LED_R1 RET
CLR LED_G2
SETB LED_R2 ;南北红灯亮
RET
STATE3: ;状态3
SETB LED_G1
SETB LED_R1 ;东西黄灯亮
CLR LED_G2
SETB LED_R2 ;南北红灯亮
RET
六、实验总结
实验中LED_R为高电平红灯亮,LED_G为高电平绿灯亮,LED_R,LED_G都为高电平则两个灯都亮,即为黄灯,LED_R,LED_G为低电平则不亮。状态0为开机状态全红,状态1,2,3,4,5,6为工作状态,循环执行。
本实验程序比较长,花了很长时间理解,其工作过程已了解,对学习单片机程序有了很大帮助。
南昌大学实验报告
学生姓名: 学 号: 班级: 生医111班
实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.10 实验成绩:
实验三 定时计数器实验
一、实验目的
学习 MCS-51 内部计数器的使用和编程方法。
二、实验内容
使用 MCS-51 内部定时/计数器,定时一秒钟,CPU 运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。
三、实验说明和电路原理图
定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON。TMOD 用于设置定时器/计数器的工作方式 0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡器周期。假设实验系统的晶振是 12MHZ,程序工作于方式 2,即 8 位自动重装方式定时器, 定时器 100uS中断一次, 所以定时常数的设置可按以下方法计算:
机器周期=12÷12MHz=1uS
(256-定时常数)×1uS=100uS
定时常数=156。然后对 100uS 中断次数计数 10000 次,就是 1 秒钟。
四、实验步骤
1)系统各跳线器处在初始设置状态,用导线连接 CPU 模块 P10 到八位逻辑电平显示模块的L0。
2)启动 PC 机,打开 THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。
3)运行程序观察发光二极管隔一秒点亮一次,点亮时间为一秒。
五、实验程序
Tick equ 10000 ; 10000 x 100us = 1s
T100us equ 156 ; 100us时间常数(6M)
C100us equ 30h ; 100us记数单元
LEDBuf bit 20h
org 0
ljmp Start
org 000bh
T0Int:
push PSW
mov a, C100us+1
jnz Goon
dec C100us
Goon:
dec C100us+1
mov a, C100us
orl a, C100us+1
jnz Exit ; 100us 记数器不为0, 返回
mov C100us, #27H ; #high(Tick)
mov C100us+1, #10H ; #low(Tick)
cpl LEDBuf ; 100us 记数器为0, 重置记数器
; 取反LED
Exit:
pop PSW
reti
Start:
mov TMOD, #02h ; 方式2, 定时器
mov TH0, #t100us
mov TL0, #t100us
mov IE, #10000010b ; EA=1, IT0 = 1
setb TR0 ; 开始定时
clr LEDBuf
clr P1.0
mov C100us, #27H ;#high(Tick)
mov C100us+1, #10H ;#low(Tick)
Loop:
mov c, LEDBuf
mov P1.0, c
ljmp Loop
end
六、实验总结
实验中T0Int,Goon两个模块完成计数10000次,时间常数2710H即10000,Start模块启动计时器方式2,时间常数156,完成计数100次,晶振是 12MHZ所以机器周期为12÷12MHz=1uS,完成一次循环需要10000*100*1uS=1s。
实验应用定时计数器完成时间的计时,对TMOD格式,工作方式等有了更多的学习。
南昌大学实验报告
学生姓名: 学 号: 班级: 生医111班
实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.17 实验成绩:
实验四 串行 AD 转换实验
一、实验目的
1.熟悉八位串行AD转换器TLC549的性能及转换过程。
2.掌握单片机和TLC549硬件联接及软件编程。
二、实验内容
使用 TLC549 实现单片机模数转换。模拟信号为 0~5V 电位器分压输出,单片机读取模拟信号,并在数码管上用十六进制形式显示出来。
三、实验说明和电路原理图
内部系统时钟和I/O CLOCK可独立使用。应用电路的设计只需利用I/O时钟启动转换或读出转换结果。当CS为高电平时,DATA OUT处于高阻态且I/O时钟被禁止。
当CS变为低电平时,前次转换结果的最高有效位(MSB)开始出现在DATA OUT端。在接下来的7个I/O CLOCK周期的下降沿输出前次转换结果的后7位,至此8位数据已经输出。然后再将第8个时钟周期加至I/O CLOCK,此时钟周期的下跳沿变使芯片进行下一轮的AD转换。在第8个I/O CLOCK周期之后,CS必须变为高电平,并且保持高电平直至转换结束为止(>17uS),否则CS的有效高电平至低电平的转换将引起复位。
四、实验步骤
1)系统各跳线器处在初始设置状态。
用导线对应连接串行模数转换模块的 CS_549、DATA、CLK 到 CPU 模块的 P12、P10、P11;电位器模块的输出端接串行模数转换模块的 AIN; CPU 模块的 P16、P17 接串行静态数码显示模块 DIN、CLK。
2)启动 PC 机,打开 THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。
3)数码管以十六进制形式显示模拟量,手动调节输入电位器,改变输入模拟量电压的大小,数码管显示将随之变化。
五、实验程序DAT BIT P1.0
CLK BIT P1.1
CS BIT P1.2
DBUF EQU 30H
TEMP EQU 40H
AD_DATA EQU 50H
DIS_DOUT BIT P1.6
DIS_CLK BIT P1.7
ORG 0000H
LJMP START
ORG 0100H
START:
MOV DBUF+3,#0AH ;显示“A”
MOV DBUF+2,#0DH ;显示“D”
MOV SP,#60H
ACALL TLC549_ADC
MOV AD_DATA,A ;存转换结果
MOV B,A
SWAP A
ANL A,#0FH
MOV DBUF+1,A ;
INC R0
MOV A,B I
ANL A,#0FH
MOV DBUF,A ;
ACALL DISPLAY ;
ACALL DELAY
SJMP START
TLC549_ADC:
CLR A
CLR CLK
CLR CS
MOV R6,#8
ADLOOP:
SETB CLK
NOP
NOP
MOV C,DAT
RLC A
六、实验总结
本次实验学习了怎样通过改变输入的电压值,TLC549转换器相应的输出值变化的过程,并且显示模块也有了更多的学习,对一些常用寄存器,A,C,R等都更加熟悉。
单片机原理及应用
实验报告
班级:电子0911
学号:0720106114
姓名:征安杰
20##年12月
实验一 P1口输入/输出实验
一、实验目的
1、掌握P1口简单使用,程序的简单编程。
2、学习延时程序的编写和使用。
二、实验内容
P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管。
三、实验说明
1P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2延时子程序的延时计算问题。对于延时程序
DELAY :MOV R6, #00H
DELAY1:MOV R7, #80H
DJNZ R7, $
DJNZ R6, DELAY1
查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ 6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms
四、实验步骤
①P33用插针连至K1, P10—P17用插针连至L1—L8。
②从起始地址0540H开始连续运行程序(输入0540后按EXEC键)。
③开关K1每拨动一次,L1—L8发光二极管按16进制方式加一点亮。〖LM〗
五、实验原理图
六、实验程序
ORG 0540h
HA1S: MOV A,#00H
HA1S1: JB P3.3,HA1S1
MOV R2,#20H
LCALL DELAY
JB P3.3,HA1S1
HA1S2: JNB P3.3,HA1S2
MOV R2,#20H
LCALL DELAY
JNB P3.3,HA1S2
INC A
PUSH ACC
CPL A
MOV P1,A
POP ACC
AJMP HA1S1
DELAY: PUSH 02H
DELAY1: PUSH 02H
DELAY2: PUSH 02H
DELAY3: DJNZ R2,DELAY3
POP 02H
DJNZ R2,DELAY2
POP 02H
DJNZ R2,DELAY1
POP 02H
DJNZ R2,DELAY
RET
END
七、实验感想
通过本实验,我掌握了P1口简单使用,程序的简单编程以及学会了延时程序的编写和使用。实验中,当P1口用作输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据不一定正确。
实验二外部中断实验
一、实验目的
掌握工业顺序控制程序的简单编程,中断的使用。
二、实验内容
8032的P10—P16控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警。P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
三、实验说明
实验中用外部中断0,编中断服务程序的关键是:
1保护进入中断时的状态,并在退出中断之前恢复进入的状态。
2必须在中断程序中设定是否允许中断重入,即设置EX0位。
一般中断程序进入时应保护PSW、ACC以及中断程序使用但非其专用的寄存器,本实验中未涉及。
四、实验步骤
①P3.4连K1,P3.2连K2,P1.0—P1.6分别连到L1—L7,P1.7连SIN(电子音响输入端)。
②K1开关拨在上面,K2拨在上面。
③用连续方式从起始地址0580H开始运行程序(输入0580后按EXEC键),此时应在等待开工状态。
④K1拨至下面(显低电平),各道工序应正常运行。
⑤K2拨至下面(低电平),应有声音报警(人为设置故障)。⑥K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。
五、实验原理图
六、实验程序
ORG 0013H
LJMP HA2S3
ORG 0580H
HA2S: MOV P1,#07FH
ORL P3,#00H
HA2S1: JNB P3.4,HA2S1
ORL IE,#84H
ORL IP,#04H
MOV PSW,#00H
MOV SP,#53H
HA2S2: MOV P1,#07EH
ACALL HA2S7
MOV P1,#07DH
ACALL HA2S7
MOV P1,#07BH
ACALL HA2S7
MOV P1,#077H
ACALL HA2S7
MOV P1,#06FH
ACALL HA2S7
MOV P1,#05FH
ACALL HA2S7
MOV P1,#03FH
ACALL HA2S7
SJMP HA2S2
HA2S3: MOV B,R2
HA2S4: MOV P1,#07FH
MOV 20H,#0A0H
HA2S5: SETB P1.7
ACALL HA2S6
CLR P1.7
ACALL HA2S6
DJNZ 20H,HA2S5
CLR P1.7
ACALL HA2S6
JNB P3.2,HA2S4
MOV R2,B
RETI
HA2S6: MOV R2,#06H
ACALL DELAY
RET
HA2S7: MOV R2,#30H
ACALL DELAY
RET
DELAY: PUSH 02H
DELAY1: PUSH 02H
DELAY2: PUSH 02H
DELAY3: DJNZ R2,DELAY3
POP 02H
DJNZ R2,DELAY2
POP 02H
DJNZ R2,DELAY1
POP 02H
DJNZ R2,DELAY
RET
END
七、实验感想
通过本实验,我掌握了工业顺序控制程序的简单编程,中断的使用。学会了外部中断技术的基本使用方法,以及学会中断处理程序的编程方法。并按要求修改了程序代码,改变触发方式后也能正常工作。一开始程序中出现错误,在和同学商讨并结合书本后才找出问题所在。
实验三 定时器实验
一、实验目的
掌握单片机定时器/计数器的工作方式和编程原理。
二、实验内容
8253A的0通道工作在方式3产生方波。
三、实验步骤
①用插针把8253的CLK0插孔和分频输出端T2插孔相连。
②8253的GATE0插孔和+5V插孔相连。
③8253的片选信号8253CS和译码输出端Y4相连。
④KBB拨在左边OFF位置。
⑤用排线将SIO区的D0—D7连到BUS2区XD0—XD7。
⑥在“P.....”状态下,从起始地址08C0H开始连续运行程序,用示波器测8253的0通道输出端OUTO,应有方波产生。
四、实验原理图
五、实验程序
ORG 08C0H
L8253: MOV DPTR,#0C003H
MOV A,#36H
MOVX @DPTR,A
MOV DPTR,#0C000H
MOV A,#00H
MOVX @DPTR,A
MOV A,#10H
MOVX @DPTR,A
SJMP $
END
六、实验感想
通过本实验,我掌握单片机定时器/计数器的工作方式和编程原理。本次试验比较简单,通过8253A的0通道工作在方式3产生方波。只有在仿真时出现了一些小问题,我们需要不断发现,总结,运用,掌握一些技巧可以大大提高实验中连接电路的速度。
实验四:串行通信实验
一、实验目的
1掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。
2了解实现串行通信的硬环境,数据格式的协议,数据交换的协议。
二、实验内容
1利用8031单片机串行口,实现双机通信。
2本实验实现以下功能,将1号实验机键盘上键入的数字、字母显示到2号机的数码管上。
三、实验说明
1本实验系统中考虑用户可以方便使用串行口实现双机或和上位机通信,系统设计有用户专用串行接口,只要配上用户专用通信电缆线就可以实现和上位机通信,不影响监控系统和上位机的联机工作。J10就是用户专用串行接口,将J10用用户专用通信线连到上位机的串口上。注意不要和上位机系统用串行口冲突。
2实验时需将1号机8031串行接收信号线P3.0(RXD)连到2号机8031串行口发送信号线P3.1(TXD)。
四、实验步骤
1.按图连好线路。
2.在DVCC实验系统处于"P."状态下。
3.1号机输入四位起始地址0D00后,按EXEC键连续运行程序。
4.2号机输入四位起始地址0E30后,按EXEC键连续运行程序。
5.从1号机上的键盘输入数字键,会显示在2号机的数码管上。
五、实验原理图
六、实验程序
;系统晶振是 6.0 MHz
ORG 0E30H
START:
MOV SP,#60H
mov A,#02H
MOV R0,#79H
MOV @R0,A
INC R0
MOV A,#10H
MOV @R0,A
INC R0
MOV A,#01H
MOV @R0,A
INC R0
MOV A,#03H
MOV @R0,A
INC R0
MOV A,#00H
MOV @R0,A
INC R0
MOV A,#08H
MOV @R0,A
MOV A,#7EH
MOV DPTR,#1FFFH
MOVX @DPTR,A
MOV SCON,#50H ;串口 方式 1
MOV TMOD,#20H ;T1 方式 1
MOV TL1,#0CCH ;波特率 9600 的常数
MOV TH1,#0CCH
SETB TR1 ;开中断
CLR ET1
CLR ES
WAIT:
JBC RI,DIS_REC ;是否接收到数据
LCALL DISP ;
SJMP WAIT ;
DIS_REC:
MOV A,SBUF ;读串口接收到的数据
LCALL DATAKEY ;显示输入的数字(0-F)
DB 79H,7EH
AJMP WAIT
DATAKEY:MOV R4,A
MOV DPTR,#1FFFH
MOVX A,@DPTR
MOV R1,A
MOV A,R4
MOV @R1,A
CLR A
POP 83H
POP 82H
MOVC A,@A+DPTR
INC DPTR
CJNE A,01H,DATAKEY2
DEC R1
CLR A
MOVC A,@A+DPTR
DATAKEY1:PUSH 82H
PUSH 83H
MOV DPTR,#1FFFH
MOVX @DPTR,A
POP 83H
POP 82H
INC DPTR
PUSH 82H
PUSH 83H
RET
DATAKEY2:DEC R1
MOV A,R1
SJMP DATAKEY1
DISP: SETB 0D4H
MOV R1,#7EH
MOV R2,#20H
MOV R3,#00H
DISP1:
MOV DPTR,#DATACO
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A
MOV DPTR,#0FF21H
MOV A,R2
MOVX @DPTR,A
LCALL DELAY
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1
CLR 0D4H
RET
DELAY: MOV R7,#03H
DELAY0: MOV R6,#0FFH
DELAY1: DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
DATACO: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH
END
七、实验感想
通过本次实验,我掌握了串行口工作方式的程序设计,掌握单片机通信程序编制方法。并了解了实现串行通信的硬环境,数据格式的协议,数据交换的协议。初步了解到实现两机通信的原理和方式,以及计算机的串行通信中数据位、校验位的关系。
单片机实验报告学生姓名学号专业指导教师学院信息与电气工程学院20xx年11月单片机实验报告实验一MCS51指令系统实验数据排序1实…
通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日…
题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握K…
51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机…
海南大学届单片机实验报告4份论文题目学生姓名学号所在院系专业班级授课教师完成时间蜂鸣器实验实验目的1熟悉实验板中蜂鸣器工作原理掌握…
福建农林大学计算机与信息学院信息工程类实验报告课程名称:单片机技术姓名:系:电子信息工程系专业:电子信息工程年级:学号:指导教师:…
HEFEIUNIVERSITY单片机实验报告系别电子信息与电气工程系专业班级学号姓名指导老师完成时间实验一构建单片机最小系统和实验…
1福建农林大学计算机与信息学院信息工程类实验报告课程名称姓名系专业年级学号指导教师职称单片机技术詹缓辉电子信息工程系电子信息工程2…
华中科技大学单片机实验报告MCS51系列单片机单片机原理及应用实验根据20xx年电气与电子工程学院单片机实验课程改编专业电气工程及…
实验课程名称自动控制综合实验2》姓名学院自动化学院专业班级学号、班内序号指导教师20##年月单片机部分一、仿真软件的使用以及跑马灯…
时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。在学习单片机这门课程之前,就早早的听各种任课老师和学长学…