- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机计数器实验二单片机计数器实验二
杭州电子科技大学单片机技术与应用实验报告
第 一 页 共 五 页
单片机技术与应用
实验报告
实验名称: 定时器实验
班 级:学 号:姓 名: 吕琳涛
指导老师: 谷雨
2013年 5月 6日
杭州电子科技大学单片机技术与应用实验报告
第 二 页 共 五 页
1. 实验要求
由 8031 内部定时器 1,按方式 1 工作,即作为 16 位定时器使用
每 0.05 秒钟 T1 溢出中断一次。P1 口的 P1.0-P1.7 分别接八个发光
二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟 L0,
L2 亮,第二秒钟 L1,L3 亮,第三秒钟 L4,L6 亮,第四秒钟 L5,L7
亮,第五秒 L0,L2,L4,L6 亮,第六秒钟 L1,L3,L5,L7 亮,第
七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L0,L2
亮,然后 L1,L3 亮......一直循环下去。
2. 实验目的
1.学习 8031 内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编程方法。
3. 程序说明:
(1)说明程序基本结构,包括程序中各部分的功能。
主程序是对题目中八种情况的进行顺序上的调整与控制。作为程序中
的主心骨,对于计数器的工作方式进行了选取。我们选取了计数器的工作
方式 1,也就是 16 位的计数器。然后我们对 TL1,TH1 进行了赋初值。利
用 15535/256 和 15535%256 对其赋值。
对于八种情况的编写,我们用了 swith(case)语句,通过对 shijian
这个变量在时间上的累加对八种情况依次选取。
程序中对一秒钟的获取是通过中断来实现的,也就是说对于单片机的
溢出中断 50ms 我们进行 20 次的累加(我们用的是 c 语言 if循环语句)来
获取一秒钟。
至此,程序编写完成,放入软件中进行编译和下载。
杭州电子科技大学单片机技术与应用实验报告
第 三 页 共 五 页
2. 上机调试说明
将程序编写成功后,我们就上机进行调试。
上机调试中,难免遇到一些 c 语言的基本语法错误,比如没有加上“;”
等等。我们通过编译过程中软件反馈给我们错误所处的行数进行程序的更
改,以求达到 0 error 的结果。
下载成功后,点击开始按钮,在单片机的实验板上我们可以清楚地看
到随着时间灯依次的亮灭。实验结束。
3. 写出源程序清单及执行结果。
源程序:
杭州电子科技大学单片机技术与应用实验报告
第 四 页 共 五 页
#include REG51.H
unsigned char shijian=0;
unsigned char time=0;
main()
{
EA=1; //开总中断
TMOD=0x10; //设置定时器 1工作方式为 1
TL1=15535%256; //对定时器 1低 8位赋值
TH1=15535/256; //对定时器 1高 8位赋值
ET1=1; //开定时器 1中断
TR1=1; //启动定时器 1
while(1)
{
switch(shijian)
{
case 0:P1=0xfa;break; //第 1秒点亮 L1,L3
case 1:P1=0xf5;break; //第 2秒点亮 L2,L4
case 2:P1=0xaf;break; //第 3秒点亮 L5,L7
case 3:P1=0x5f;break; //第 4秒点亮 L6,L8
case 4:P1=0xaa;break; //第 5秒点亮 L1,L3,L5,L7
case 5:P1=0x55;break; //第 6秒点亮 L2,L4,L6,L8
case 6:P1=0x00;break; //第 7秒 8个灯全点亮
case 7:P1=0xff;break; //第 8秒 8个灯全灭
} } }
void fun() interrupt 3
{
TL1=15535%256; //对定时器 1低 8位赋值
TH1=15535/256; //对定时器 1高 8位赋值
if(time19)time++; //一秒钟定时
else
{
time=0;
if(shijian7)shijian++;
else shijian=0;
} }
4. 心得体会
我们已经学习了基本的理论,同时也要联系实验来加强我们对知
识的巩固。同时也认识到 c 语言在编程中的重要性,所以我们要复习
一下我们曾经学过的 c 语言,以便在以后的实验中避免一些低级的错
误。
杭州电子科技大学单片机技术与应用实验报告
第 五 页 共 五 页
您可能关注的文档
- 华中宏图学校政治百日冲刺第七周复习资料华中宏图学校政治百日冲刺第七周复习资料.doc
- 华中师范大学2003年~2009年行政管理考研真题华中师范大学2003年~2009年行政管理考研真题.pdf
- 华中科技大学2017年教育硕士专业学位入学考试大纲华中科技大学2017年教育硕士专业学位入学考试大纲.pdf
- 华为公司的核心价值观华为公司的核心价值观.doc
- 半永久培训介绍半永久培训介绍.pdf
- 华中科技大学强军计划专业课考研真题、笔记、参考书、大纲、录取分数线、报录比华中科技大学强军计划专业课考研真题、笔记、参考书、大纲、录取分数线、报录比.pdf
- 华中科技大学2017年资产评估专业基础考试大纲华中科技大学2017年资产评估专业基础考试大纲.pdf
- 华东师范大学国家大学科技园介绍华东师范大学国家大学科技园介绍.ppt
- 华为的FTTW和反向POE解决方案华为的FTTW和反向POE解决方案.pdf
- 华北电力大学经济与管理学院信息管理工程专业考博参考书-考博分数线-专业课真题华北电力大学经济与管理学院信息管理工程专业考博参考书-考博分数线-专业课真题.pdf
文档评论(0)