当前位置:文档之家› 单片机原理与应用技术实验报告(实验项目:定时器)

单片机原理与应用技术实验报告(实验项目:定时器)

*****数学计算机科学系实验报告
专业:计算机科学与技术班级:实验课程:单片机原理与应用技术
姓名:学号:实验室:硬件实验室
同组同学:
实验时间:2013年3月20日指导教师签字:成绩:
实验项目:定时器
一实验目的和要求
定时器0实现1s定时,流水灯显示上的数据每秒加1。

二实验环境
PC机一台,实验仪器一套
三实验步骤及实验记录
1.在pc机上,打开Keil C。

2.在Keil C中,新建一个工程文件,点击“Project->New Project…”菜单。

3.选择工程文件要存放的路径 ,输入工程文件名 M, 最后单击保存。

4. 在弹出的对话框中选择 CPU 厂商及型号。

5.选择好 Atmel 公司的 89c51 后 , 单击确定。

6.在接着出现的对话框中选择“是”。

7.新建一个 C51 文件 , 点击file菜单下的NEW,或单击左上角的 New File快捷键。

8.保存新建的文件,单击SAVE。

9.在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。

10.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1'。

11.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击Close。

12.在编辑框里输入代码如下:
#include "reg51.h" //包含头文件
sbit LE1=P2^0; //位选573锁存器使能
sbit LE2=P2^1; //段选573锁存器使能
#define uchar unsigned char
#define uint unsigned int
uchar temp,num; //定义变量
t0() interrupt 1 using 1
{
TH0=0x3c; //重置定时器初值
TL0=0xb0;
if(temp>=19) //满20次,即20次*50ms=1s
{
temp=0x00; //重置temp为0
num++; //显示变化一次
P1=~num; //将变化次数放在P1控制的LED上显示
}
else
{
temp++; //每进一次中断,temp加1
}
}
main()
{
TMOD=0x01; //0b00000001 用的是定时器0,工作在方式1(16位寄存器) //要实现定时50ms,(65536-T0)x12/12000000=0.05s得T0=15536即0x3cb0 TH0=0x3c; //装定时器初值高8位
TL0=0xb0; //装定时器初值低8位
TR0=1; //启动定时器0
ET0=1; //开定时器0中断
EA=1; //开总中断
while(1); //死循环,等待定时器中断
}
13.单击快捷键或单击Project/Rebuild all the files,如果在错误与警告处看到 0 Error(s) 表示编译通过。

14.单击Options for Target,单击 Output, 选中 Create HEX Fi。

再单击“确定”,再次编译产生HEX文件。

15.STC-ISP 软件烧写程序,步骤如下:
步骤1、选择单片机型号STC12C5A60S2。

步骤2、打开程序文件(后缀为.HEX 的文件)。

在相应工程下找到待下载的HEX 文件,点击打开即可。

步骤3、选择串行口COM3。

步骤4、用USB线连接电脑和主板,将主板和核心板上的电源都关闭,点击“Download下载”,打开核心板上的电源开关(注意不是主板上的电源开关),等待完成下载。

16.在单片机上,用8位排线将J8与J13连接。

17.打开单片机电源开关,观察现象。

四实验结果与分析
定时器0实现1s定时,LED显示的数据每秒加1。

相关主题