- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机应用设计
组员:
07核技术2班
简单时钟设计
利用89C51单片机结合数码显示器设计一个电子小闹钟,这是应用了单片机定时器/计数器的功能。
系统的硬件设计
该系统是一个定时器/计数器系统,系统选用AT89C51单片机为主机,系统不用外部扩展程序。单片机时钟主要由单片机、LED数码管显示器和按键开关组成。电路设计如下图所示。
单片机P0端口接有4位共阳极的LED数码管显示器。数码管的8个引脚依照a、b、c、d、e、f、g、dp顺序依次与P0端口的8个引脚P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7相连,R是限流电阻。
4位LED数码管的共阳极引脚分别与V1~V4三极管的集电极相连,三极管的基极通过限流电阻分别接在单片机P2端口的P2.0~P2.3引脚上。
4位数码管显示器分别由4只三极管控制,例如,P2.0输出为低电平时V4三极管导通,与其相连的共阳极数码管显示器开始工作;P2.0输出为高电平时V4三极管截止,与其相连的数码管显示器停止工作。
系统软件设计
工作原理
时钟一般是由走时、显示和调整时间三项基本功能组成。这些功能,在单片机时钟里主要由软件设计体现出来。其中,走时部分是利用单片机里的定时/计数器产生的中断,例如,将定时器T0工作在0状态下,设置每隔5ms中断一次,中断200次正好1s。再在中断服务程序里记载着中断的次数,中断200次为1秒,60秒为1分,60分为1小时,24小时为1天。
时钟的显示是使用4位LED数码管,其软件设计原理是:由中断产生的秒、分、小时数据,经转换子程序转换成适应LED数码管显示的时间,分分数据,并通过单片机输出功能输入到数码管显示器。再通过显示器扫描程序,显示出时钟的走时时间。
调整时钟时间是利用了单片机的输入功能,把按键开关作为单片机的输入信号,通过检测被按下的开关,从而执行赋予该开关调整时间的功能。
程序设计
汇编语言编写的简单时钟源程序代码:
----------------------------------程序初始化---------------------------------------------------------
定义存放计时单元地址
BUF EQU 30H ;30H~33H连续4个字节存放显示器数据
HOUR EQU 34H ;存放小时变量
MIN EQU 35H ;存放分钟变量
SEC EQU 36H ;存放秒钟变量
DEDA EQU 37H ;存放5ms计数值
;按键输入引脚定义
K1 EQU P2.4 ;按键K1引脚定义
K2 EQU P2.5 ;按键K2引脚定义
K3 EQU P2.6 ;按键K3引脚定义
K4 EQU P2.7 ;按键K4引脚定义
蜂鸣器和指示灯引脚定义
SPK EQU P3.4 ;蜂鸣器控制信号
WLED EQU P1.0 ;工作指示灯引脚定义
程序开始执行地址
ORG 0H ;程序代码由地址0开始执行
AJMP MAIN
QRG 0BH ;定时器T0中断地址设置
AJMP TO_SRV
-------------------------------------------------主程序--------------------------------------------------
MAIN:
ACALL BZ ;蜂鸣器连续两次鸣响一声
ACALL BZ
ACALL LED_SD ;LED闪动,表示程序开始执行
ACALL INIT ;调用计时单元清零模块
ACALL INIT_TIMER ;设置定时器
加载显示器初始值数据
MOV A,#0C0H
MOV P0,A
无穷循环
LOOP:
AC
文档评论(0)