接口报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机接口与控制技术
实验报告
姓名:林俊
班级:机械1203
学号: 0806120925 指导老师:廖平易念恩日期: 2015年6月10日
实验一定时器实验
一、实验目的
1.学习89C51内部计数器的使用和编程方法
2.进一步掌握中断处理程序的编写方法
二、实验说明
关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。
定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100uS中断一次, 所以定时常数的设置可按以下方法计算:
机器周期=12÷12MHz=1uS
(256-定时常数)³1uS=100uS
定时常数=156。然后对100uS中断次数计数10000次,就是1秒钟。
在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
三、实验内容及步骤
本实验需要用到单片机最小应用系统模块(F1区)和十六位逻辑电平显示模块(I4区)。
1.使用单片机最小应用系统模块,用导线将P1.0接到十六位逻辑电平显示的任意一只发光二极管上。
2.用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH10_定时器.ASM”源程序,编译无误后。
4.全速运行程序,发光二极管隔一秒点亮一次,点亮时间为一秒。
5.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51
芯片中运行。(ISP烧录器的使用查看附录二)
四、实验框图
1.流程图
五、程序代码
#include
#define uchar unsigned char sbit P10=P1^0;
uchar num;
void main()
{
P10=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(num==20)
{
num=0;
P10=~P10;
}
}
}
void T0_time() interrupt 1 {
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
主程序框图
定时中断子程序框图
六、思考题
1.如何将LED的状态间隔改为2秒,程序如何改写?
将if(num==20)改为if(num==40)。
2.如果更换不同频率的晶振,会出现什么现象?如何调整程序?
LED的状态间隔与设定的值不同。改变定时器设定的初值。
七、电路图
实验二 串行静态显示实验
一、实验目的
1.掌握数字、字符转换成显示段码的软件译码方法
2.静态显示的原理和相关程序的编写 二、实验电路
显示器由8个共阴极LED 数码管组成。输入只有两个信号,它们是串行数据线DIN 和移位信号CLK 。8个串/并移位寄存器芯片74LS164首尾相连。每片的并行输出作为LED 数码管的段码。
74LS164的引脚图如图所示;
74LS164为8位串入并出移位寄存器,1、2为 串行输入端,QA ~QH 为并行输出端,CLK 为移位时钟脉冲,上升沿移入一位;CLR 为清零端,低电平时并行输出为零。 三、实验内容及步骤
单片机的P1.0作数据串行输出,P1.1作移位脉冲输出。本实验需要用到单片机最小应用系统(F1区)和串行静态显示模块(I3区)。
1.使用单片机最小应用系统模块,用导线将连接P1.0、P1.1连接到串行静态显示模块的DIN 、CLK 端。
2.用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机锁紧插座中,打开模块电源,插上仿真器电源插头(USB 线)。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加源程序,编译无误后,全速运行程序。8LED 显示自己设定的字符。程序停止运行时,显示不变,说明静态显示模块具有数据锁存功能。
74LS164
四、电路原理图
五、程序代码
DBUF0 EQU 30H
TEMP EQU 40H
DIN BIT P1.0
CLK BIT P1.1
ORG 0000H
LJMP START
ORG 0030H
START: MOV 30H,#5BH
MOV 31H,#3FH
MOV 32H,#06H
MOV 33H,#6DH
MOV 34H,#3FH
MOV 35H,#6DH
MOV 36H,#3FH
MOV 37H,#6FH DISP: MOV R0,#DBUF0
MOV R1,#TEMP
MOV R2,#5
DP10: MOV DPTR,#SEGTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2 ,DP10
MOV R0,#TEMP
MOV R1,#5
DP12: MOV R2,#8
MOV A,@R0
DP13: RLC A
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,DP13
INC R0
DJNZ R1,DP12
SJMP $
SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH
DB 39H,5EH,7BH,71H DELAY: MOV R4,#03H
AA1: MOV R5,#0FFH
AA: DJNZ R5,AA
DJNZ R4,AA1
RET
END