单片机实验报告 - 图文(2)

2019-03-16 17:46

南昌大学实验报告

实验三 定时计数器实验

学生姓名: 学 号: 班级: 生医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格式,工作方式等有了更多的学习。

南昌大学实验报告

实验四 串行 AD 转换实验

学生姓名: 学 号: 班级: 生医111班

实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.17 实验成绩:

一、实验目的

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)数码管以十六进制形式显示模拟量,手动调节输入电位器,改变输入模拟量电压

的大小,数码管显示将随之变化。

五、实验程序 CLR DAT BIT P1.0 CLK NOP CLK BIT P1.1 CS BIT P1.2 DJNZ R6,ADLOOP SETB CS DBUF EQU 30H SETB CLK TEMP EQU 40H RET AD_DATA EQU 50H DISPLAY: DIS_DOUT BIT P1.6 MOV R0,#DBUF DIS_CLK BIT P1.7 MOV R1,#TEMP ORG 0000H MOV R2,#4 LJMP START DP10: MOV DPTR,#SEGTAB ORG 0100H MOV A,@R0 START: MOVC A,@A+DPTR MOV DBUF+3,#0AH ;显示“A” MOV @R1,A MOV DBUF+2,#0DH ;显示“D” INC MOV SP,#60H R0 INC R1 ACALL TLC549_ADC

DJNZ MOV AD_DATA,A ;存转换结果 R2,DP10 MOV R0,#TEMP MOV B,A

MOV R1,#4 SWAP A DP12: MOV R2,#8 ANL A,#0FH MOV A,@R0 MOV DBUF+1,A ; DP13: RLC INC R0 A MOV MOV A,B I DIS_DOUT,C CLR ANL A,#0FH DIS_CLK SETB DIS_CLK MOV DBUF,A ; DJNZ R2,DP13 ACALL DISPLAY ;

INC R0 ACALL DELAY

SJMP START DJNZ R1,DP12 RET TLC549_ADC:

,1,2,3,4,5 CLR A SEGTAB:DB 3FH,6,5BH,4FH,66H,6DH ;0 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B CLR CLK

,D,E,F,- CLR CS DB 58H,5EH,79H,71H,0,00H ;C R4,#0FFH MOV R6,#8 DELAY: MOV ADLOOP: DELOOP: SETB CLK MOV R5,#0FFH DJNZ R5,$ NOP

DJNZ R4,DELOOP NOP

RET MOV C,DAT

END RLC A

六、实验总结

本次实验学习了怎样通过改变输入的电压值,TLC549转换器相应的输出值变化的过程,并且显示模块也有了更多的学习,对一些常用寄存器,A,C,R等都更加熟悉。


单片机实验报告 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017届广东省惠州市高三模拟考试政治试题及答案1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: