找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4746|回复: 3
打印 上一主题 下一主题
收起左侧

单片机电子时钟汇编语言课程设计

[复制链接]
跳转到指定楼层
楼主
ID:204068 发表于 2017-5-23 22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
课程设计的目的
单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
二、课程设计的具体要求:
该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。形成定时时间为50ms。用片内RAM7BH单元对50ms计数,计20次产生秒计数器78H单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理
三. MCS-51单片机系统简介
40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
  电源:
  ⑴ VCC - 芯片电源,接+5V
  ⑵ VSS - 接地端;
  注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v
  时钟:XTAL1XTAL2 - 晶体振荡电路反相输入端和输出端。
  控制线:控制线共有4根,
  ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲
  ① ALE功能:用来锁存P0口送出的低8位地址
  ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
  ⑵ PSEN:ROM读选通信号。
  ⑶ RST/VPD:复位/备用电源。
  ① RSTReset)功能:复位信号输入端。
  ② VPD功能:在Vcc掉电情况下,接备用电源。
  ⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
  ① EA功能:内外ROM选择端。
  ② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp
  ⒋ I/O线
  80C51共有48位并行I/O端口:P0P1P2P3口,共32个引脚。
  P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)  
MCS-51单片机内部定时器/计数器、中断系统简介
定时/计数器是单片机中重要的功能模块之一,在检测,控制和智能仪器等设备中经常用它来定时。MCS-51系列中51子系列有216位的可编程定时/计数器:T0T1;每个定时计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。T04种工作方式,T13种工作方式,T23种工作方式,可通过编程设定。每个定时/计数器计数事件到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。
2.中断系统简介
MCS-51单片机提供5个硬件中断源:2个外部中断源INT0(P3.2)INT1(P3.3)2个定时/计数器T0T1的溢出中断TF0TF11个串行口发送TI和接收RI中断。
T0中断服务程序流程图如图11.3
键盘和LED数码管显示器简介
本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。采用软件译码动态显示。按键处理设置为:如没有按键,则时钟正常走时。当按下K0按键时,进入调分状态,时钟停止走动;按K1K2按键可进行加1或减1操作;继续按K0键可分别进行分和小时的调整;最后按K0键将退出调整状态,时钟开始计时运行。


基本原理
1.定时器/计数器 T0   
        定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。。
七.硬件电路
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps112D.tmp.png

软件程序流程代码
1. T0中断服务程序流程图
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps112E.tmp.png  file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps112F.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps1140.tmp.png
3.程序代码
ORG  0000H
LJMP  START
ORG  000BH     ;定时器/计数器T0中断程序入口
LJMP  INTT0
;主程序
STARTMOV  R0#70H
                MOV  R7#0CH
INIT:  MOV  @R0#00H
                INC  R0
                DJNZ  R7INIT
                MOV  72H#10
                MOV  75H#10
                MOV  TMOD#01H
                MOV  TL0#0B0H
                MOV  TH0#03CH
                SETB  EA
                SETB  ET0
                SETB  TR0
START1LCALL  SCAN
                LCALL  KEYSCAN
                SJMP  START1
;延时1MS子程序
DL1MSMOV  R6#14H
DL1MOV  R7#19H
DL2DJNZ  R7DL2
        DJNZ  R6DL1
        RET
;延时20MS子程序
DL20MSACALL  SCAN
                ACALL  SCAN
                ACALL  SCAN
                RET
;数码管显示程序
SCAN        MOV  A78H       ;时间存入显示缓冲区相应位置
                MOV  B#0AH
                DIV  AB
                MOV  71HA
                MOV  70HB
                MOV  A79H
                MOV  B#0AH
                DIV  AB
                MOV  74HA
                MOV  73HB
MOV  A7AH
                MOV  B#0AH
                DIV  AB
                MOV  77HA
MOV  76HB
        MOV  R1#70H     ;循环扫描显示
                MOV  R5#80H
                MOV  R3#08H
        SCAN1MOV  AR5
                MOV  P2A
                MOV  A@R1
                MOV  DPTR#TAB
                MOVC  A@A+DPTR
                MOV  P0A
                MOV  AR5
                LCALL  DL1MS
                INC  R1
                MOV  AR5
                RR  A
                MOV  R5A
                DJNZ  R3SCAN1
                MOV  P2#00H
                MOV  P0#0FFH
                RET
        TABDB  0C0H0F9H0A4H0B0H99H92H82H0F8H80H90H0BFH
                0~9”,“-”的共阳极字段码

;定时器/计数器T0中断服务程序
INTT0        PUSH  ACC
                PUSH  PSW
                CLR  ET0
                CLR  TR0
                MOV  TL0#0B0H
                MOV  TH0#03CH
                SETB  TR0
                INC  7BH
                MOV  A7BH
                CJNE  A#14HOUTT0
                MOV  7BH#00
                INC  78H
                MOV  A78H
                CJNE  A#3CHOUTT0
                MOV  78H#00
INC  79H
MOV  A79H
                CJNE  A#3CHOUTT0
                MOV  79H#00
INC  7AH
MOV  A7AH
                CJNE  A#18HOUTT0
                MOV  7AH#00
OUTT0
SETB  ET0
POP  PSW
POP  ACC
                RETI
;按键处理程序
KEYSCANCLR  EA
                JNB  P1.0KEYSCAN0
                JNB  P1.1KEYSCAN1
                JNB  P1.2KEYSCAN2
KEYOUTSETB  EA
RET
KEYSCAN0LCALL  DL20MS
JB  P1.0KEYOUT
WAIT0JNB  P1.0WAIT0
                INC  7CH
                MOV  A7CH
                CLR  ET0
                CLR  TR0
                CJNE  A#03HKEYOUT
                MOV  7CH#00
                SETB  ET0
                SETB  TR0
                SJMP  KEYOUT
KEYSCAN1LCALL  DL20MS
JB  P1.1KEYOUT
WAIT1JNB  P1.1WAIT1
                MOV  A7CH
                CJNE  A#02HKSCAN11
                INC  79H
MOV  A79H
CJNE  A#3CHKEYOUT
                MOV  79H#00
SJMP  KEYOUT
KSCAN11INC  7AH
MOV  A7AH
CJNE  A#18HKEYOUT
                MOV  7AH#00
SJMP  KEYOUT
KEYSCAN2LCALL  DL20MS
JB  P1.2KEYOUT
WAIT2JNB  P1.2WAIT2
                MOV  A7CH
                CJNE  A#02HKSCAN21
                DEC  79H
MOV  A79H
CJNE  A#0FFHKEYOUT
                MOV  79H#3BH
SJMP  KEYOUT
KSCAN21DEC  7AH
MOV  A7AH
CJNE  A#0FFHKEYOUT
                MOV  7AH#17H
SJMP  KEYOUT
END               
九.设计制作流程
1、在PROTEUS中设计硬件
PROTEUS软件使用过程如下:
        1)选择元器件
        2)放置元器件
        3)连线
        4)添加程序
        5)运行仿真
元器件清单如下:
单片机:80C52
按键:BUTTON
电阻:RES
电容:CAP
晶振:CRYSTAL
LED数码管:7SEG-MPX8-CA-BLUECA:共阳,CC:共阴)
地:GRAND
电源:POWER
2、在KEIL51中编写程序,编译、连接形成HEX文件。
3、在PROTEUS中把HEX文件加载到单片机芯片上。
4、运行仿真看结果。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:568296 发表于 2019-6-20 22:55 | 只看该作者
老哥  有图吗
回复

使用道具 举报

板凳
ID:613471 发表于 2019-9-19 12:39 | 只看该作者
感谢楼主,刚刚学单片机,正要用汇编编时钟
回复

使用道具 举报

地板
ID:740427 发表于 2020-4-28 21:25 | 只看该作者
有图片么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表