天 津 理 工 大 学 专业实习报告(PROTEUS 单片机控制模块 )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
天津理工大学
自动化学院专业实习报告
题目:PROTEUS 单片机控制模块
学生姓名刘杰学号20091260届2013 班级电五
指导教师陈鹏专业电气工程及其自动化
实习报告5:PROTEUS 单片机控制模块
一、实习目的与意义
理解A T89C51单片机的硬件和软件
熟悉PROTEUS的设计及仿真
二、实习设备
Keil uVision3编程软件
PROTEUS仿真软件
三、实习内容
1、实验一
设计一组8个LED灯的循环闪烁硬件和其软件程序
用PROTEUS做出LED灯循环闪烁的硬件,如下所示:
图1
图1中,U1是AT89C51单片机,X1是晶体振荡器,提供单片机的时钟脉冲,D1~D8是LED灯,电容C1和C2对X1起到震荡频率的微调和稳定作用。电容C3起到对单片机上电复位的作用。电阻RN1具有限流作用,防止流过LED灯的电流过大将P1口烧毁。
使用Keil uVision3写循环闪烁程序,并载入其硬件电路中,其程序如下所示:org 0
sjmp star
org 30h
star: mov p1,#1
mov p1,#2
mov p1,#4
mov p1,#8
mov p1,#10h
mov p1,#20h
mov p1,#40h
mov p1,#80h
nop
nop
call DL Y
sjmp star
DL Y: nop
nop
nop
ret
end
2、实验二
单片机外中断实验
外中断是单片机AT89C51的重要功能,本实验用AT89C51单片机外中断功能改变数码管的显示状态。当无外中断0时,主程序运行状态为七段数码管的a~g 段依次点亮,不断循环;当有外中断0输入时,立即产生中断,转而执行中断服务程序,数码管显示状态改为“8”亮灭闪烁显示,亮灭闪烁显示8次后,返回主程序原断点处继续执行,数码管继续段点亮的循环显示。单片机外中断实验电路原理如图2所示。电路设计在ISIS平台中进行。
图2
使用Keil uVision3写程序,并载入其硬件电路中,其程序如下所示:
ORG 0
SJMP STAR
ORG 3
SJMP INT0S
STAR: MOV IE,#81H
MOV TCON,#1
MOV A,#0FEH
MOV P3,#0FFH
ST1: MOV P2,A
ACALL DELAY
RL A
SJMP ST1
INT0S: PUSH ACC
MOV R2,#8
LOOP: CLR A
MOV P2,A
ACALL DELAY
MOV A,#0FFH
MOV P2,A
ACALL DELAY
DJNZ R2,LOOP
POP ACC
RETI
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6
3、实验三
400us周期方波发生器,在PROTEUS库中提取元件,画出其原理图如下图所示
图3
使用Keil uVision3编辑程序,并载入其硬件电路中,其程序如下所示:
ORG0
SJMPSTAR
ORG08H
SJMPT0F
STAR:MOVTMOD,#0
MOVP3,#03FH
MOVTH0,#0F9H
MOVTL0,#18H
MOVIE,#0FFH
SETBTR0
SJMP$
T0F:CPLP3.5
CPLP3.7
MOVTH0,#0F9H
MOVTL0,#18H
CPLP3.0
RETI
END
运行仿真,得到示波器的波形如下图所示
图4
4、实验四
单片机与ADC0808的接口技术,利用AT89C51单片机控制ADC0808将模拟信号(0~5V)转换成数值量(0~255),再控制LED数码管以十六进制实时显示出来。ADC0808为A/D转换器。用PROTEUS实现该接口的电路设计和程序设计。其原理图如下所示:
图5
使用Keil uVision3编辑程序,并载入其硬件电路中,其程序如下所示:org 0
ljmp star
org 0x100
star: mov dptr,#0x0fe00
loop: clr p3.4
clr p3.5
movx @dptr,a
mov r6,#0x50;0x34
djnz r6,$
movx a,@dptr
mov 0x30,a
anl a,#0x0f
lcall seg7
setb p3.5
clr p3.4
mov p1,a
lcall dly
clr p3.5
mov a,0x30
anl a,#0x0f0
swap a
lcall seg7
setb p3.4
clr p3.5
mov p1,a
lcall dly
sjmp loop
seg7: inc a
movc a,@a+pc
ret
db 0x0c0,0x0f9,0x0a4,0x0b0,0x99,0x92,0x82,0x0f8
db 0x80,0x90,0x88,0x83,0x0c6,0x0a1,0x86,0x8e
dly: mov r7,#2
d1: mov r6,#249
djnz r6,$
djnz r7,d1
ret
end
5、实验5
用A T89C51单片机控制DAC0808实现数模转换从单片机输出数据到DAC0808经其转换成模拟量输出。单片机与DAC0808的接口电路部分原理图如图6所示: