当前位置:文档之家› 单片机脉冲计数

单片机脉冲计数

单片机脉冲计数
单片机脉冲计数

沈阳航空航天大学电子设计应用软件训练总结报告

学生姓名:

系、专业:

班级学号:

指导教师:

训练时间:年月日至年月日

电子信息工程学院电子设计应用软件训练任务

【训练任务】:

1、熟练掌握PROTEUS软件的使用;

2、按照设计要求绘制电路原理图;

3、能够按要求对所设计的电路进行仿真;

【基本要求及说明】:

1、按照设计要求自行定义电路图纸尺寸;

2、设计任务如下:

51单片机内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,将其数值P1口驱动LED灯上显示出来,由按键产生计数脉冲,LED 分别显示脉冲个数(10个以内)。

3、按照设计任务在Proteus 6 Professional中绘制电路原理图;

4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。

【按照要求撰写总结报告】

指导教师年月日

负责教师年月日

学生签字年月日

成绩评定表

电子设计应用软件训练总结报告

一、任务说明

利用51单片机内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,将其数值P1口驱动LED灯上显示出来,由按键产生计数脉冲,LED 分别显示脉冲个数。

二、原理图绘制说明

本次设计是以AT89C51单片机为中心器件,结合定时器中断、开关以及LED灯来设计的。

电路原理图的设计与绘制是整个电路设计的基础。电路原理图的设计包括:设置电路图的图纸大小;规划电路图的总体布局;在图纸上放置元器件,进行布局和布线;根据需要添加注释并进行检查与修改,最后保存。

在PROTUSE软件中进行绘制原理图主要有以下几个步骤:

1、建立文件:

进入ISIS系统,新建一个文件,选择菜单栏中的文件-> 新建设计->选择模板。来选择模板,如图1所示。

图1 选择模板

选择菜单栏中的系统-> 设置纸张大小。来设置纸张的大小,如图2所示。

图2 选择纸张大小

将文件保存到预先建立的文件夹中。新建设计窗口如图3所示。

图3新建设计窗口

2、元件的查找及放置:

点击工具箱左上角的“P”按钮,弹出“Pick Devices”操作界面,在关键字窗口输入所需器件名称,如AT89C51,系统会自动搜索到此元件,如图4示。将所有元件搜索到以后按相应位置在图纸上放置好。

图4 器件查找

本次设计需要的元件有:

AT89C51 单片机

BUTTON 按钮开关

LED-RED LED灯

Res 电阻

CAP 电容

CRYSTAL 晶振

3、连接电路。

将鼠标移至所要连接器件的管脚处,鼠标箭头会变成“ ”样式,此时按住鼠标左键拖至对应器件管脚处,松开左键即把两器件连接。对连线或元件位置进行适当的调整。P1口作为LED灯显示端,P3.4作为开关控制。其他连线按照

AT89C51特性连接。布线后电路图如图5所示。

图5 总电路图

三、流程图绘制以及说明

主程序是对子程序做初始化并调用初始化程序,然后调用显示子程序,判断R2中内容是否为0,如是0则继续操作;如果不是0则跳回等待中断到来,继续执行子

程序。如图6所示。

图6 程序流程图

四、proteus 仿真说明

在PROTEUS 的仿真之前首先通过UV3软件对程序进行具体功能的编译,随后将编译正确的程序程序文件导入PROTEUS 软件中的对应芯片中,以驱动芯片实现相应功能。

1、导入仿真文件:

原理图绘制好后,添加仿真文件,双击元件AT89C51,自动弹出如图7所示的对话框。在选项Program File 一栏后单击

出现文件浏览对话框,找到以.HEX 为后缀

的文件,单击确定,程序导入单片机中。也可以在此对话框内设置单片机额晶振等参数。

图7 程序导入 2、单击

开始仿真

点击软件左下角的开关按钮,开始仿真。点击电路图上的按钮,LED灯都会点亮。点亮的顺序是从左到右按二进制计数循环亮。而LED所记的二进制数是按开关的次数。仿真结果满足设计任务要求。仿真电路如图8所示。

图8 仿真电路图

五、体会及合理化建议

经过一周的课设,使我对PROTEUS的使用和仿真电路有更加深入的认识了。以及在此软件中进行仿真的操作更加熟练。对利用AT89C51单片机的汇编语言编程的算法技巧积累了更加丰富的经验。

本次课设的题目并不复杂,老师对总体也没什么太难的要求,而且所用到的也都是用本学期刚刚学习完的内容,所以本以为会很容易的课设,但当我亲手去做之后才发现自己平时所学的理论知识和实践有多么大的差距。但经过自己的认真查找资料和和同学的共同努力下,终于完成了本次课设。通过这次课设,我体会到了互相帮助的乐趣和团结的力量,让我对单片机这门课程产生了更浓厚的兴趣。

希望以后可以有更多类似于本次课设的动手实践的机会!

附录I:电路原理图

附录II:源程序代码

ORG 0000H

SJMP MAIN

ORG 000BH

AJMP JISHU

MAIN:MOV A,#00H

MOV P1,A

MOV R2,#10

MOV TMOD,#00000101B

MOV TH0,#0FFH

MOV TL0,#0FFH

SETB ET0

SETB EA

SETB TR0

AJMP $

JISHU:INC A

MOV P1,A

MOV TH0,#0FFH

MOV TL0,#0FFH

DJNZ R2,RETURN

MOV A,#00H

MOV R2,#10

RETURN:RETI

END

参考文献

[1]李秀人主编.电子技术实训指导[M].北京:国防工业出版社,2006.9

[2]张宪、何宇斌主编.电子电路制作指导[M].北京:化学工业出版社,2005.8

[3]谢自美主编.电子线路综合设计[M].武汉:华中科技大学出版社,2006.6

[5]李林功,吴飞青,王兵,丁晓.单片机原理与应用[M].北京:机械工业出版社,2008.1

[6]黄智伟主编.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,2005.6

对外部脉冲计数系统的设计计数器课程设计(单片机)

湖南工业大学 课程设计 资料袋 理学学院(系、部)2012 ~ 2013 学年第 1 学期 课程名称单片机应用系统指导教师周玉职称副教授学生姓名张思远专业班级电子科学102 学号 题目对外部脉冲计数系统的设计 成绩起止日期2013 年01 月06 日~2013 年01 月10 日 目录清单 湖南工业大学 课程设计任务书 2012 —2013 学年第1 学期

理学院学院(系、部)电子科学专业102 班级 课程名称:单片机应用系统 设计题目:对外部脉冲计数系统的设计 完成期限:自2013 年01 月06 日至2013 年01 月10 日共 1 周 指导教师(签字):年月日 系(教研室)主任(签字):年月日

附件三 (单片机应用系统) 设计说明书 (题目) 对外部脉冲计数系统的设计 起止日期:2013 年01 月06 日至2013 年01 月10 日学生姓名张思远 班级电子科学102 学号 成绩 指导教师(签字) 电气与信息工程学院 2012年12 月10 日 一、设计任务: 1.1 外部脉冲自动计数,自动显示。 1.1.1设计一个255计数器:0-255计数,计满后自动清0,重 新计数(在数码管中显示)。 1.1.2设计一个50000计数器:0-50000计数,计满后自动清0, 重新计数(在数码管中显示)。 注:要求首先采用PROTEUS完成单片机最小系统的硬件电路 设计及仿真;程序仿真测试通过后,再下载到单片机实训 板上执行。

二、硬件设计介绍: ※STC89C52单片机; ※6位共阴或者共阴极数码管; ※外部晶振电路; ※ISP下载接口(In system program,在系统编程); ※DC+5V电源试配器(选配); ※ISP下载线(选配) ※6个PNP(NPN)三极管 ※12个碳膜电阻 三、硬件设计思路 方案一:五个1位7段数码管,无译码器 方案二:五个1位7段数码管,译码器 方案三:1个6位7段数码管,译码器 方案四:1个6位7段数码管,无译码器 考虑实际中外围设备、资金、单片机资源利用率、节省端口数量,可实行性以及连接方便等问题,采用6为数码管(共阳或者共阴极)由于实际中没买到6位的,采用2个三位数码管并接组合一个6位数码管形式;由于实际P口驱动能力有限,故采用6位三极管增大驱动能力,已便足以使得6位数码管亮度明显正常工作,增加6个电阻限流保护数码管不被烧坏。让数码管a-g7段分别接P1.6—P1.0,6位位选分别接P2.5—P2.0。 方法一:共阴极数码管 硬件图1.0所示:通过npn管放大后,段选高电平有效,位选低电平有效 图1.0共阴极数码管硬件原理图 方法二:共阳极数码管 原理图如图2.0:段选低电平有效,位选低电平有效(通过pnp管连接,不再是高电平有效了,由于特意此接法,共阳极共阴极数码管只是差别段选控制,为程序修改提供极大的方便之处,故程序只需要修改段选地址即可,实现共阳极共阴极互换) 图2.0共阳极数码管硬件原理图 三、程序设计思路: 由于设计是255和50000计数器,对于计数器工作模式二,TL最大值为255,可以实现对255计数,但是对于50000得另寻他路,为了建立不限制计数器模型,改进程序的可更改性可移植性可读行,对计数器模式二另TL1=0FFH(以

单片机实验之定时器计数器应用实验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。

四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态。 汇编程序: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV IE, #00H MOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 AJMP LOOP END C语言程序: #include sbit Y=P1^0; void main() { EA=0; ET1=0; TMOD=0x60; TH1=0x9C; TL1=0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } } 开始 TMOD初始化 计数初值初始化 中断初始化 启动定时器 计数溢出 清计数溢出标志 Y N P1.0口线取反

单片机脉冲计数器程序汇编

单片机脉冲计数器 1、设计内容 用单片机实现对一路脉冲计数和显示的功能。硬件包括单片机最小系统、LED显示、控制按钮;软件实现检测到显示 2、要求 计数范围0~2000; 脉冲输入有光电隔离整形, 有清零按钮 程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050H MAIN: CLR A MOV 30H , A ;初始化缓存区 MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1 NEXT1: ACALL HEXTOBCDD ;调用数制转换子程序 ACALL DISPLAY ;调用显示子程序 LJMP NEXT1 ORG 0100H ;中断0服务程序 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , A NEXT: RETI

ORG 0150H ;中断1服务程序 CLR A MOV R6 , A MOV R7 , A RETI ORG 0200H HEXTOBCDD:MOV A , R6 ;由十六进制转化为十进制PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10H HB3: MOV A , R7 ;将十六进制中最高位移入进位位中RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位数加上本身相当于将这个数乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十进制调整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250H DISPLAY: MOV R0 , #30H MOV A , R5

基于单片机脉冲度测量

基于单片机脉冲度测量

————————————————————————————————作者:————————————————————————————————日期:

山东科技大学电工电子实验教学中心创新性实验研究报告 课程名称:单片机原理及应用 实验项目名称脉冲宽度测量 姓名学号_________________ 专业_____________ 班级____________ 指导教师及职称________________________ 开课学期2011 至2012 学年第一学期 提交时间2012 年 1 月 3 日

一、实验摘要 通过采用STC89C52RC单片机为中心器件来设计脉冲宽度测量器,并运用MCS—51/52单片机计数 功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试 知识,并在计算机上编写汇编程序调试运行。 二、实验目的 (1)基于STC89C52RC单片机测量脉冲宽度; (2)研究分别使用定时计数器0,1 的GATE 模式和定时计数器 2 的捕捉功能完成外部 脉冲宽度测量; (3)通过6位LED显示计数值,时间精确到0.1秒。并熟悉了解试验箱的应用,提高动手能力。 三、实验场地及仪器、设备和材料: 实验场地:J11#324 设备:PC机一台STC89C52RC单片机试验箱一台 教材:1. MCS51/52单片机原理与实践公茂法黄鹤松等编著北京航空航天大学出版 2. 单片机原理及应用张毅刚主编高等教育出版社 3. 其它相关的参考资料及实验教材 四、实验内容 1、实验原理 (1)T0工作方式 通过设置TMOD,使其为定时器模式。在做定时器使用时,将T0定时为0.001S。 当GATE=1时,为门控方式。只有TR0设置为1,且同时外部中断引脚也为高电平时,才能启动T0开始计数工作。 把脉冲信号从P3.2脚引入,T0设为定时器方式工作,并工作在门控方式(GATE=1)。在待测信号高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外部中断0的中断服务程序中,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽。随后,清零TH0和TL0,以便下一个脉宽的测量。 计算方法:脉冲宽度=计数值*0.01s,将脉冲宽度的数值转换为压缩BCD码,再将压缩BCD码转换为非压缩BCD码用于显示,最后调用显示程序,读取脉冲宽度。

单片机课程设计外部脉冲计数器

目录 摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。本课程设计的指导思想是控制单片机实现从0到99的计数功能,其结果显示在两位一体的共阳极数码管上。 关键词:脉冲计数器数码管单片机 本设计基于单片机技术原理,以单片机芯片STC89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出脉冲,按下键就开始计数,并将数值显示在两位一体的共阳极数码管上。 1课题原理 PCB板上设置开始计数按键和清零按键,以上按键与89C52单片机的P1口连接,通过查询按键是否被按下来判断进行计数或者清零。若按下计数健,则单片机控制两位一体的共阳极数码管显示从00开始的数字,按下一次,则数字加一,一次类推;若按下清零键,则程序返回程序开始处,并且数码管显示00。

2 硬件及软件设计 2.1 硬件系统 2.1.1 硬件系统设计 此设计是在单片机最小系统的基础上进行开发和拓展,增加了按键电路和和数码管显示电路,由于单片机输出电流不足以驱动数码管发光,所以数码管需要驱动电路。我们采用了三极管对数码管电流进行放大,使电流大小达到要求值。 2.1.2 单元电路设计 基本框架如下图2.1 2.1基本框架

1.STC89C52芯片 STC89C52RC芯片包括: 8k字节 Flash,512字节RAM, 32位I/O口 线,看门狗定时器,两个数据指针, 三个16位定时器/计数器,一个6向 量2级中断结构,全双工串行口,片 内晶振及时钟电路。STC89C52RC芯片 可降至0Hz静态逻辑操作,时钟频率 0-80MHz,支持2种软件可选择节电 模式。空闲模式下,CPU停止工作, 允许RAM、定时器/计数器、串口、中 断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片 机一切工作停止,直到下一个中断或 硬件复位为止。8位微控制器8K字节 在系统可编程。芯片如图2.4所示。 图2.4 STC89C52芯片 2.按键电路 K1键为启动键,K2键为清零键,K3键为计数键,通过按钮的连接,实现开始、计数清零功能,连接电路如图2.5所示。 图2.5 按键电路

脉冲计数

实验九脉冲计数(定时/计数器实验) 1、实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。 2、实验内容:把定时器0外部输入的脉冲进行计数,并送显示器显示 3、实验程序框图: 4、实验接线图:

5、实验步骤:P3.4 依次接T0~T7或单脉冲输出孔,执行程序,观察数码管上 计数脉冲的速度及个数。 6、思考:修改程序使显示器上可显示到999999个脉冲个数。 7、程序清单文件名:SW09.ASM;脉冲计数实验 ORG 0000H LJMP SE15 ORG 06E0H SE15: MOV SP,#53H MOV P2,#0FFH MOV A,#81H MOV DPTR,#0FF23H MOVX @DPTR,A ; 1 MOV TMOD,#05H MOV TH0,#00H MOV TL0,#00H SETB TR0 LO29: MOV R2,TH0 MOV R3,TL0 LCALL ZOY0 MOV R0,#79H MOV A,R6 LCALL PTDS MOV A,R5 LCALL PTDS MOV A,R4 LCALL PTDS LCALL SSEE SJMP LO29 ZOY0: CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,#10H LO30: CLR C MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ADDC A,R6 DA A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,LO30 RET PTDS: MOV R1,A

51单片机计数程序

/**************程序说明********************* 硬件说明只需要将15脚接口接入外部的脉冲信号,15脚为定时器T1的外部信号输入引脚 通过定时器T0定时指定的时间来测取脉冲的个数并在1602液晶上显示出来 假设定时1s则数据变成为信号的频率 *************************************************** *****/ #include #include //定时器0负责定时30s 定时器1负责计数功能 #define uint unsigned int #define uchar unsigned char sbit RS=P2^6; //液晶的电路定义 sbit E=P2^5; unsigned char table[3]; unsigned int t0;

void delay_ms(uint z) //毫秒级延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /******液晶部分子程序*************************/ void write_com(unsigned char com) { //操作时序 RS=0; P0=com; delay_ms(5); E=1; delay_ms(5); E=0; } void write_data(unsigned char shuju) { //操作时序

RS=1; P0=shuju; delay_ms(5); E=1; delay_ms(5); E=0; } void LCDintial() { delay_ms(5); E=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); } /**********定时器初始化程序***************/ void T0T1_init() { EA=1;

单片机的定时及计数器实验-脉冲计数器

实验六单片机定时、计数器实验2——脉冲计数器 一、实验目的 1.AT89C51有两个定时/计数器,本实验中,定时/计数器1(T1)作定时器用,定时1s;定时/计数器0(T0)作计数器用。被计数的外部输入脉冲信号从单片机的P3.4(T0)接入,单片机将在1s内对脉冲计数并送四位数码管实时显示,最大计数值为0FFFFH。 2.用proteus设计、仿真基于AT89C51单片机的脉冲计数器。 3.学会使用VSM虚拟计数/计时器。 二、电路设计 1.从PROTEUS库中选取元件 ①AT89C51:单片机; ②RES:电阻; ③7SEG-BCD- GRN:七段BCD绿色数码管; ④CAP、CAP-ELEC:电容、电解电容; ⑤CRYSTAL:晶振; SEG-COM- GRN为带段译码器的数码管,其引脚逻辑状态如图所示。

对着显示的正方向,从左到右各引脚的权码为8、4、2、1。 2.放置元器件 3.放置电源和地 4.连线 5.元器件属性设置 6.电气检测 7.虚拟检测仪器 (1)VSM虚拟示波器 单击小工具栏中的按钮,在对象选择器列表中单击COUNTER(计 数/计时器),打开其属性编辑框,单击运行模式的下拉菜单,如图所示,可选择计时、频率、计数模式,当前设置其为频率计工作方式。 (2)数字时钟DCLOCK 单击按钮,在对象选择器中选择DCLOCK(数字时钟)。在需要添加信 号的线或终端单击即可完成添加DCLOCK输入信号。当前信号设置为DIGITAL型的时钟CLOCK,频率为50K。 三、源程序设计、生成目标代码文件 1.流程图 2.源程序设计 通过菜单“sourc e→Add/Remove Source Files…”新建源程序文件:DZC36.ASM。 通过菜单“sourc e→DZC36.ASM”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。 程序编辑好后,单击按钮存入文件DZC32.ASM。 3.源程序编译汇编、生成目标代码文件 通过菜单“sourc e→Build All”编译汇编源程序,生成目标代码文件。

单片机课程设计(24秒篮球计数器)

1.引言 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒。数字显示的计时装置,广泛用于比赛,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 2 设计要求 1、具有24s计时功能。 2、设置外部操作开关,控制计时器的直接清零、启动和暂停 /连续功能。 3、计时器为24秒递减时,计时间隔为1秒。 4、计时器递减到零时,数码显示器不能灭灯,同时发出光电报警信号。 5、有直接清零然后恢复到24秒,准备重新开始计数。 学生在教师指导下,综合运用所学知识完成基于单片机的篮球比赛24秒计时器设计。要求设计一个24秒计时电路,并具有时间显示的功能。 要求: 1、设置外部操作开关,控制计数器的直接清零、启动和暂停/连续计时。

2、要求计时电路递减计时,每隔1秒钟,计时器减1。 3、当计时器减到0时,显示器上显示00,同时发出光电报警信号。 3设计思路: 选用AT89C51作为主控芯片,晶振是6KHz,机械周期为1ms,所以循环10次为1s。P0口作为段码输出,P2.0、P2.1作为位控,高电平有效。数码管是液晶显示,采用动态显示,两个串行口作为中断入口,高电平有效,启动T0定时器/计数器进行计数,低电平有效。图2.2.1是系统硬件设计电路图一。 时间设置完后,启动定时器T0开始定时计数。计时采用倒计时,比如:设置的时间为24秒钟,则在LED上显示24两位数。定时T0计数24秒后中断返回,继续定时计数下一个24秒;同时则在2位LED显示器上显示,表示时间已经过去1秒钟,即为23秒。这样一直持续下去。知道变为“00”时表示赛程结束。如果比赛中裁判叫停,则只要按下键,即可暂停计时。

单片机定时器计数器实验报告

单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠实验目的 1. 学习单片机内部定时/计数器的使用和编程方法; 2. 进一步掌握中断处理程序的编程方法。 ㈡实验器材 1. 2. 3. 4. 5. G6W仿真器一台 MCS—51实验板一台 PC机一台电源一台信号发生器一台 ㈢实验内容及要求 8051内部定时计数器,按计数器模式和方式1工作,对 P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms 中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。 ㈣实验说明 1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入 定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电

平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。 2. 计数脉冲由信号发生器输入(从T0端接入)。 3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421 码表示,个位用L8~L5的8421码表示 4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动 次数并显示 ㈤实验框图(见下页) 程序源代码 ORG 00000H LJMP MAIN ORG 001BH AJMP MAIN1 MAIN: MOV SP,#60H MOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H ;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位 MOV TH0,#00H SETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;

单片机脉冲计数

单片机实验报告 班级:自动0903 姓名:

一.软件实验 实验题目:脉冲计数(定时/计数器实验) 1,实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。 2,实验内容:把外部中断0输入的脉冲进行计数,并送数码管显示。 仿真电路图如下所示:设定频率发生器为50Hz 程序如下: #include sbit P2_0=P2^0; //数码管选定位 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,

0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned int motorspeed; unsigned char GE,SHI,BAI,QIAN; unsigned int counter=0; //脉冲数 unsigned int calsp; //设定多长时间计算一次 void display(); //数码管显示 void delay(); //延迟函数 void calspeed(); void main() { EA=1; //开启总中断 EX0=1; //开启外部中断0 IT0=1; //设置成下降沿触发方式 TMOD=0x01; //设置定时器0为模式1,即16位计数模式 TH0=(65536-10000)/256; //计数时间为10ms TL0=(65536-10000)%256; ET0=1; //开启定时器0中断 TR0=1; //启动定时器0 P2=P2&0xf0; while(1) { display(); calspeed(); } } void calspeed() { if(calsp>=100) //100*10ms=1s计算一次 { motorspeed=counter; counter=0; //清零脉冲数 calsp=0; //清零标志 } } void _TIMER0() interrupt 1 { TH0=(65536-10000)/256; //重新装入初值,计数时间为10ms TL0=(65536-10000)%256; calsp++; }

单片机实验 脉冲计数和电脑时钟程序

南昌航空大学实验报告 二0一一年九月二十九日 课程名称:单片微型机实验名称:脉冲计数和电脑时钟程序 班级: 080611 学生姓名:学号: 08061108 指导教师评定:签名: 一、实验目的 1、熟悉8031定时/计数功能,掌握定时/计数初始化编程方法; 2、熟悉MCS—51定时器、串行口和中断初始化编程方法,了解定时器应用在实时控制中程序的设计技巧; 3、编写程序,从DVCC系列单片机实验仪键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。 二、实验内容及要求 1、脉冲计数 对定时器0外部输入的脉冲进行计数,并送显示器显示。程序框图如下: 图1 二进制转换子程序 2、电脑时钟程序程序 程序框图如下:

图2 定时中断服务程序 三、实验步骤及操作结果 1、脉冲计数程序 (1) 当DVCC 单片机仿真实验系统独立工作时 1) 把8032CPU 的P3.4插孔接T0—T7任一根信号线或单脉冲输出空“SP ”。 2)用连续方式从起始地址02A0H 开始运行程序(按02A0后按EXEC 键)。 3)观察数码管显示的内容应为脉冲个数。 (2) 脉冲计数程序(源文件名:Cont .Asm )。汇编程序代码如下: ORG 02A0H CONT: MOV SP,#53H MOV TMOD,#05H ;初始化定时/计数器 MOV TH0,#00H MOV TL0,#00H SETB TR0 ;允许定时/计数中断 CONT1: MOV R2,TH0 ;取计数值 MOV R3,TL0 LCALL CONT2 ;调二转十进制子程序 MOV R0,#79H MOV A,R6 LCALL PWOR MOV A,R5 LCALL PWOR MOV A,R4 LCALL PWOR LCALL DISP ;调显示子程序 SJMP CONT1 ;循环 CONT2: CLR A ;清R4、R5、R6 MOV R4,A MOV R5,A MOV R6,A MOV R7,#10H CONT3: CLR C ;R2、R3左移,移出的位送CY MOV A,R3 RLC A

用单片机计数脉冲的个数-数码管显示汇编程序

用单片机计数脉冲的个数-数码管显示汇编程序 位数码管用2个573接到p0口,位选p2 段选P0口:点这里采用定时器来记录脉冲并用数码管输出以下是源代码:;******** 用数码管来计数脉冲的个数********************************** ORG 0000H JMP MAIN ORG 000BH JMP TT0 ORG 001BH JMP TT1 MOV 23H,#00H MOV 22H,#00H MOV 21H,#00H MOV 24H,#10 CALL IIP CALL IIP CALL IIP MOV SP,70H;=====主程序区==================================== MAIN: MOV TMOD,#01100010B MOV TH1,#255 MOV TL1,#255 MOV IE,#10001010B MOV TH0,#00H MOV TL0,#00H SETB TR0 SETB TR1 JMP $;======分解计数程序=================================== TT1:CALL IIP INC 20H MOV A,20H MOV B,#100 DIV AB MOV 21H,A MOV A,B MOV B,#10 DIV AB MOV 22H,A MOV 23H,B RETI;======数码管显示程序区==================================== IIP: MOV A,23H CALL TABLE MOV P0,A SETB P2.0 NOP NOP NOP NOP CLR P2.0 MOV P0,#10111111b SETB P2.1 NOP NOP NOP CLR P2.1 CALL T10MS;================================================== MOV A,22H CALL TABLE MOV P0,A SETB P2.0 NOP NOP NOP NOP CLR P2.0 MOV P0,#11011111B SETB P2.1 NOP NOP NOP CLR P2.1 CALL T10MS;=================================================== MOV A,21H CALL T10MS CALL TABLE MOV P0,A SETB P2.0 NOP NOP NOP NOP CLR P2.0 MOV P0,#11101111B SETB P2.1 NOP NOP NOP CLR P2.1 CALL T10MS RET;=====定时0程序区====================================== TT0: DJNZ 24H,LOOP_9 CPL

单片机脉冲计数及显示课程设计

目录 ? 1. 设计思想和设计说明----------------------- ? 2. 硬件原理框图-----------------------------3 ? 3. 硬件原理图与其软件配合介绍---------------3 ? 4. 程序存储器和数据存储器的单元分配---------6 ? 5. 程序流程图-------------------------------7 ? 6. 源程序清单-------------------------------9 ?7. 芯片资料---------------------------------12 ?8. 仿真结果(打印仿真图)-------------------17 ?9. 参考文献---------------------------------19 一设计思想和设计说明

设计思想: 本次课程设计采用一个可扩展芯片AT89C51,四个7段LED数码管显示器,经过电阻连接而组成,并具有开关复位等功能。首先在keil软件中输入计数器程序,在生成以hex为后缀名的文件,拷贝添加到芯片AT89C51中以实现其功能。其中芯片的P0.0到P0.7和P1.0到P1.7分别和四个7段LED数码管显示器相连接,作为0000-9999计数的十位数显示,在练习使用译码器驱动7段LED数码管显示器的同时,芯片AT89C51的由12MHZ的晶振提供脉冲支持芯片工作。 设计说明: 在汇编程序中可将十六进制转换变为十进制输出显示,即使得计数器的初始状态为0000,当第1个计数脉冲来到后,其状态为0001,以后来一个脉冲计一次数,依次可计数到9999后清零,计数器是采用数字电路实现的对个,十,百,千位的数字显示技术装置,能广泛应用于实验室,公共场合,以及实际生活中的一些应用,是人们日常生活中不可少的必需品。由于数字集成电路以及555振荡器的广泛应用,使得计数器的精度大大的提高。给人们的生活带

单片机脉冲信号测量

郑州工业应用技术学院 课程设计说明书 题单片机脉冲信号测量 姓名: 院(系):信息工程学院专业班级:计算 机科学与技术学号: 指导教师: 成绩: 时间:年月日至年月日

摘要 脉冲信号测量仪是一种常用的设备,它可以测量脉冲信号的脉冲宽度,频率等参数,并用十进制数字显示出来。利用定时器的门控信号GATE进行控制可以 实现脉冲宽度的测量。在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。本文介绍了基于单片机AT89C51的脉冲信号参数测量仪的设计。该设计可以对脉冲信号的宽度,频率等参数进行测量。 关键词:脉冲信号;频率;宽度;单片机AT89C51

目录 摘要............................................................... I 目录............................................................... II 第一章技术背景及意义 (1) 第二章设计方案及原理 (2) 第三章硬件设计任务 (3) 第四章软件结论 (12) 第五章参考文献 (13) 第六章附录 (14)

第一章技术背景及意义 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。由于单片机稳定可靠、物美价廉、功耗低,所以单片机的应用日益广泛深入,涉及到各行各业,如工业自动化、智能仪表与集成智能传感器、家用电器等领域。单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。因此,本课程设计旨在巩固所学的关于单片机的软件及硬件方面的知识,激发广大学生对单片机的兴趣,提高学生的创造能力,动手能力和将所学知识运用于实践的能力。 中断功能是一种应用比较广泛的功能,它指的是当CPU正在处理某件事情的时候,外部发生了某一件事(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是,CPU暂时终止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的过程称为中断。本文中用到了定时器T0溢出中断,以实现软件延时。脉冲信号测量仪是一种常用的设备,它可以测量脉冲信号的脉冲宽度,脉冲频率等参数。

单片机单脉冲计数设计

农业大学机械交通学院 《单片机技术与应用》 课程设计说明书 题目:定时脉冲计数器电路设计 专业班级:电气092班 学号: 学生: 指导教师: 时间:2012年6月

设计9、定时脉冲计数器电路设计 小组成员: 任务分配如下: 四人:调研、查找资料 :整合资料、硬件电路组成框图 :各单元电路及工作原理、绘制原理图(原理仿真) :元件参数计算、元件清单列表(元件参数)(该篇论文侧重点):绘制程序流程图、汇编程序 四人:程序仿真(整体Proteus和Keil) 四人:调试与仿真 四人:硬件搭建调试 :设计说明书

目录 1 设计目的 (1) 2 设计容 (1) 3 设计过程 (1) 3.1 硬件电路框图 (1) 3.2 搜集元件资料 (2) 3.3 各个单元及电路原理 (3) 3.4 绘制原理图 (5) 3.5 元件参数计算 (6) 3.6 元件清单列表 (10) 3.7 绘制程序流程图 (10) 3.8 汇编程序 (10) 3.9 调试与仿真 (11) 3.10 硬件调试结果 (12) 4 心得体会 (12) 参考文献 (13)

定时脉冲计数器电路设计 1设计目的 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学容做一定的扩充。 2设计容 以小组为单位用AT89C51单片机的定时/计数器产生1 s的定时时间,作为秒计数时间,当1 s产生时,秒计数器加1:秒计数器到60时,自动复位从0开始。要求:(1)用LM7805CT设计交流220 V转5 V直流电源。 (2)用单片机AT89C51的定时器实现60 s计时。 (3)用PROTEUS设计,仿真基于AT89C51单片机的60 s计时实验。 (4)用面包板搭建设计电路,实际运行调试。 3 设计过程 3.1 硬件电路框图 根据实验要求,结合已有的元件绘制实验框图(图3-1)

单片机脉冲计数电路设计 毕业设计论文

本科毕业论文 (2012届) 题目单片机脉冲计数电路设计 学院理学院 专业应用物理专业 班级08073211 学号08072121 学生姓名xx 指导教师xx 完成日期2011年12月

摘要 随着单片机技术和电子技术的不断发展(单片机在医学仪器领域得到广泛应用,其在生物医学信号处理和控制中发挥着越来越重要的作用。各种生物医学信号经过放大、滤波等处理后(可将模拟信号转换为数字信号送到单片机处理(此外还可以通过单片机根据处理结果对医疗仪器进行控制)。可以更精确简单便携的检测脉搏、心跳、血压等数据。因此本论文所做脉冲计数系统采用了以单片机(PIC16F877A)为核心,结合相关的外围元器件例如六位8段数码管、复位电路,再配以相应的软件,达到制作简易脉冲计数器的目的。以C语言为程序设计的基础,利用PIC单片机独有的CCP捕捉模式能实现脉冲的检测计算,频率实时显示在数码管上。 关键词:PIC16F877A;CCP捕捉模式;脉冲;C语言

ABSTRACT With the single chip microcomputer technology and electronic technology development of microcomputer in the medical instrument (was widely used in the, in the biomedical signal processing and control a more and more important role in biological medicine. Various signal amplified, filtering processing (analog signal after can be converted to digital signals to SCM processing (also can through the MCU according to deal with the results of the medical instrument control). It will be more accurate, simple and portable for the detection of heart beating, blood pressure and pulse data. This research of the digital clock with the single chip processor (PIC16F877A) as the core, combining related peripheral components such as six 8 period of digital tube and reset circuit, matching again with the corresponding software to create a simple counter to the purpose of the pulse. C language program is designed for the foundation, PIC microcontroller unique CCP capture mode is used to realize pulse test calculation, frequency real-time display in digital tubes. Keywords: PIC16F877A;CCP Capture mode;Pulse;C Language

单片机实验设计脉冲计数实验

实验八脉冲计数实验 一、实验目的: (1)掌握定时器/计数器的计数工作方式; (2)掌握用定时器/计数器实现脉冲计数的方法; (3)掌握用Keil实现软件调试的方法; (4)掌握用Proteus实现电路设计,程序设计和仿真的方法。 二、实验内容: 定时器0外部输入端(P3.4)和定时器1外部输入端(P3.5)作为计数脉冲输入端,利用按钮手控产生单脉冲信号作为计数输入脉冲,编写程序控制,每输入一个(5个)脉冲,工作寄存器R0(R1)的内容加1,同时将R0(R1)的内容送到两位LED数码管中显示出来,晶振频率6MHZ。 三、主要器件的型号: 四、实验参考电路: P1口接两位数码管显示工作寄存器R0的内容,P2口接两位数码管显示工作寄存器R0的内容,两只按钮分别接P3.2(外部中断0中断输入端)和P3.3(外部中断1中断输入端)。实验电路如图:

五、实验参考程序: ORG 0000H LJMP MAIN 指向主程序; ORG 000BH 定时器/计数器0的入口地址; LJMP T0C 指向中断服务程序; ORG 001BH 定时器/计数器1的入口地址; LJMP T1C 指向中断服务程序; ORG 0030H MAIN: MOV R0,#00H 清零; MOV R1,#00H MOV P1,#00H MOV P2,#00H MOV TMOD,#66H 置计数器0,计数器1为方式2; MOV TH0,#0FFH 置1次计数初值; MOV TL0,#0FFH MOV TH1,#0FBH 置5次计数初值; MOV TL1,#0FBH SETB EA 开中断; SETB ET0 SETB ET1 SETB TR0 启动计数器0; SETB TR1 启动计数器1; SJMP $

相关主题
文本预览
相关文档 最新文档