对外部脉冲计数系统的设计计数器课程设计(单片机)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南工业大学
课程设计
资料袋
理学学院(系、部)2012 ~ 2013 学年第 1 学期
课程名称单片机应用系统指导教师周玉职称副教授学生姓名张思远专业班级电子科学102 学号10411400223 题目对外部脉冲计数系统的设计
成绩起止日期2013 年01 月06 日~2013 年01 月10 日
目录清单
湖南工业大学
课程设计任务书
2012 —2013 学年第1 学期
理学院学院(系、部)电子科学专业102 班级
课程名称:单片机应用系统
设计题目:对外部脉冲计数系统的设计
完成期限:自2013 年01 月06 日至2013 年01 月10 日共 1 周
指导教师(签字):年月日系(教研室)主任(签字):年月日
附件三
(单片机应用系统)
设计说明书
(题目)
对外部脉冲计数系统的设计
起止日期:2013 年01 月06 日至2013 年01 月10 日
学生姓名张思远
班级电子科学102
学号10411400223
成绩
指导教师(签字)
电气与信息工程学院
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(以T1为例,下文不再说明),只要来一个脉冲,就跳转中断服务程序执行,而计数不是直接通过TL操作,而是采用多寄存器组合的方式,方便修改,本设计采用R5,R6,R7,三寄存器通过数学上的逻辑组合形成6位数,如R7的低4位记录个位,高4位记录十位,R7本身只记录到99,在进一则归零,向百位进一(R6),而显示是通过对R7/10取余取整(0-9)通过查表指令实现相应的数字显示,位选通过高频扫描,实现“连续显示”无需再进行BCD转换,其他R5 R6同理。极大的方便客户修改计数初值,灵活的实现计数。对计数范围不限定且可系统模块化。
故对255和50000均适用
图3计数程序流程图(255、50000均适用)
四、硬件实物图
如图4.0
五、汇编程序(255、50000共用)
;对于255,设置R5=00,R6=02,,R7=55
;对于50000,设置R5=05,R6=00,R7=00
5.1对于共阴极数码管:
;---------------------------------------- ORG 0000H
AJMP MIAN
ORG 000BH
AJMP INTERP
ORG 0030H
MIAN:MOV R5,#00; 为十万、万位
MOV R6,#00;千、百位
MOV R7,#00;十、个位
MOV TMOD,#06H
MOV TL0,#0FFH
MOV TH0,#0FFH
SETB TR0
SETB ET0
SETB EA
XIANSHI:
MOV R0,#0BFH
MOV A,R7
LCALL CHANGE
MOV A,R6
LCALL CHANGE
MOV A,R5
LCALL CHANGE
SJMP XIANSHI
CHANGE:MOV R1,A ;位选移位,进行扫描。R1保护操作值,暂存于R1 MOV A,R0
SETB C
RRC A
MOV R0,A
MOV A,R1
MOV B,#10
DIV AB
XCH A,B ;组合整数部分余数部分
MOV DPTR,#0100H
MOVC A,@A+DPTR