数字钟流程图(汇编语言)
运用汇编语言设计的数字钟

微机原理课程设计题目名称:数字钟姓名:学号:专业:指导老师:同组者:江汉大学物理与信息工程学院一.设计目的和意义:1.熟悉集成电路的引脚安排.2.掌握各芯片的逻辑功能及使用方法.3.了解面包板结构及其接线方法.4.了解数字钟的组成及工作原理.5.熟悉数字钟的设计与制作.二.系统设计框架:系统硬件设计主要利用微机实验平台上的电路模块。
硬件电路主要由键盘电路、单脉冲产生单元、8254定时计数器、8255并行接口单元、8259中断控制器和LED显示电路等等。
系统设计框图如图1所示。
图1 系统设计框图三.工作原理1)计时单元由定时/计数器8254的通道0来实现。
定时采用硬件计数和软件技术相结合的方式,即通过8254产生一定的定时时间,然后再利用软件进行计数,从而实现1小时制定时。
8254定时时间到了之后产生中断信号,8254在中断服务程序中实现分、秒的累加。
2)时间显示采用实验平台上的4个LED数码管分别显示分、秒,采用动态扫描方式实现。
3)校时和闹铃定时通过键盘电路和单脉冲产生单元来输入。
按键包括校时键、闹钟定时键、加1键和减1键等。
四.硬件设计根据设计思路,硬件电路可通过实验平台上的一些功能模块电路组成,由于实验平台上的各个功能模块已经设计好,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。
完整系统的硬件连接如图2所示。
硬件电路由定时模块、按键模块、数码管显示模块和蜂鸣器模块组成。
图2 硬件连接图各个模块的详细说明:1.定时模块定时模块主要是实现硬件定时1s,由8254的计数器0来实现。
Clk0接实验平台分频电路输出IRQ,f=1hz。
GATE0接+5V,由8255的PA0输出来控制计数器的起停。
OUT0接8259的IRQ2,定时完成请求中断,进入中断服务程序。
软件在中断服务程序中实现时分秒的累加。
2.LED数码管模块实验平台上提供一组4个LED数码管。
插孔A-G用于数码管段选的输出选通,插孔X1-X4用于数码管位选信号的输出选通。
单片机汇编语言电子时钟设计

单片机汇编语言电子时钟设计随着科技的快速发展,单片机技术已经成为了现代电子工程中不可或缺的一部分。
使用单片机设计电子时钟,可以通过编程语言对单片机进行控制,从而实现精确的时间显示和时间控制。
本文将介绍一种基于单片机汇编语言的电子时钟设计方案。
一、设计原理电子时钟是一种以数字形式显示时间的装置,它通常由单片机、显示模块、电源模块等组成。
其中,单片机作为核心控制单元,负责处理各种信号和指令,并控制显示模块显示时间。
在这个系统中,单片机的任务包括读取时钟芯片的时间数据、处理按键输入、控制显示模块等。
二、硬件设计1、单片机选择在单片机选择方面,我们选用AT89S52型号的单片机。
该单片机具有低功耗、高性能的特点,内部含有8K字节的Flash存储器和256字节的RAM,同时具有丰富的外设接口,如UART、SPI、I2C等。
2、时钟芯片选择时钟芯片选用DS1302型号,该芯片具有精度高、稳定性好的优点,可以提供年、月、日、时、分、秒等时间信息。
DS1302芯片通过SPI 接口与单片机进行通信。
3、显示模块选择显示模块选用LCD1602型号,该模块具有体积小、功耗低、显示内容丰富的优点,可以同时显示时间、日期和星期几等信息。
LCD1602模块通过并行接口与单片机进行通信。
4、按键模块选择按键模块选用四个独立按键,分别实现小时加、小时减、分钟加、分钟减功能。
按键通过单片机的外部中断引脚与单片机进行通信。
三、软件设计1、程序流程程序流程主要包括以下几个部分:系统初始化、读取DS1302芯片的时间数据、处理按键输入、控制LCD1602模块显示时间等。
具体流程如图1所示。
图1程序流程图2、关键代码实现在程序的关键部分,我们需要实现读取DS1302芯片的时间数据、处理按键输入、控制LCD1602模块显示时间等功能。
下面是一些关键代码的实现:(1)读取DS1302芯片的时间数据:MOV DPTR, #0x68 ; DPTR指向DS1302的空间MOV R7, #0x00 ;设置寄存器R7为0x00,用于读取时间数据MOV A, R7 ;将R7的值存入A寄存器MOVC A, @A+DPTR ;从DS1302中读取一个字节的数据,存入A寄存器中MOV B, A ;将A寄存器的值存入B寄存器,准备送入LCD1602模块中显示本文…(省略其他代码)…… ;处理其他数据和指令SJMP $ ;无限循环,等待下一次中断或指令执行完毕后再次回到此处执行下一轮循环。
汇编语言实时时钟程序的设计说明

课程设计说明书姓名:学号:院系:专业:题目:实时时钟程序设计指导教师:职称:课程设计说明书院系:专业:姓名:学号:课程设计题目:实时时钟程序设计起迄日期:课程设计地点:指导教师:系主任:课程设计任务书课程设计任务书目录第一章课题设计目的容及要求 (6)1.1 目的................ ... . . . . . . . . .61.2 容 (6)1.3 要求 (6)第二章程序流程图设计 (2)2.1主流程图设计 (2)2.2子流程图设计.............. 错误!未定义书签。
第三章程序段落的说明 (8)3.1光标的设立和隐藏 (8)3.2调用系统的时间 (5)3.3判断是否有键盘的输入 (6)第四章程序调试说明、结果记录与分析 (7)4.1程序调试的过程 (7)4.2调试结果 (7)4.3分析结果 (8)第五章总结与体会 (8)参考文献 (8)附录 (9)1.程序流程图 (9)2.程序清单 (11)第一章课题设计目得容及要求1.1 目得1)培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。
2)培养学生综合分析问题、发现问题和解决问题的能力。
3)培养学生运用知识的能力和工程设计的能力。
4)提高学生课程设计报告撰写水平。
1.2 容设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。
1.3 要求每隔一秒显示系统时钟;可以重复输入,有退出键功能。
第二章程序流程图设计2.1主流程图设计由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。
在循环的过程中,当按下ESC键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下ESC键时,程序又将退出。
流程图设计:当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。
多功能数字钟设计报告+程序+原理图

实验设计报告项目名称:多功能数字钟电路设计作者姓名:指导教师:年级专业:所在学院:提交日期摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
而机械式的依赖于机械震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字钟包括组合逻辑电路和时叙电路。
通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。
目录第一章:设计要求 (1)第二章:方案论证 (2)第三章:单元电路设计与计算 (13)第四章:软件设计 (20)第五章:系统测试 (36)第六章:结论 (38)参考文献 (39)附录 (40)第一章:设计要求1.1 基本要求1.1.1 时钟功能设计一个具有时、分、秒计时的数字钟电路,计时采用24小时制。
用VHDL语言编写的数字钟程序

永州职业技术学院课程设计课程名称:EDA技术实用教程题目:基于FPGA的数字钟设计系、专业:电子技术系应用电子年级、班级:07级电子大专学生姓名:**指导老师:***时间:2008年12月目录一、系统设计………………………………………………………..1.1设计要求……………………………………………………1.1.1任务………………………………………………..1.1.2要求……………………………………………….1.1.3题目分析…………………………………………二.方案论证与比较…………………………………2.1方案一…………………………………………2.2 方案二…………………………………………2.3 方案三…………………………………………三、设计思路……………………………………………………3.1硬件模块………………………………………………3.2软件模块………………………………………………….四、调试情况………………………………………………….五、系统调试…………………………………………………六、心得体会……………………………………………………... 附:参考文献……………………………………………………..用VHDL语言编写的数字钟程序摘要:本设计要求一个12进制或24进制的具有时、分、秒计时功能的数字钟,并要求能进行时、分、秒调整,每逢时有报时功能。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
本设计基于FPGA芯片的数字钟的设计,通过多功能数字钟的设计思路,详细叙述了整个系统的硬件、软件实现过程,实现了时间的显示和修改功能、报时功能等,并尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。
关键词:FBGA、数码管、按键一、系统设计1.1 设计要求1.1.1 任务设计并制作一个数字钟,通过设计,掌握电子设计的一般思路,学习电子设计的一般方法。
汇编语言实现电子闹钟思路详解

汇编语⾔实现电⼦闹钟思路详解2.1 设计思路⾸先使⽤8255、8254、8259 三个芯⽚实现电⼦时钟的功能,让闹钟可以正常⾛时;其次,在时钟的基础上添加闹铃功能、整点报时功能、设置当前时间功能;完成设计。
2.2 设计⽅案1. 电⼦时钟部分:此次设计是通过对计数器8254设定计数值对脉冲进⾏计数,在程序⾥,8254⼯作于计数器0,⽅式3。
接⼊的CLK为1MHz,设计数初值为10000,每100次中断计数⼀次,产⽣的记数时间正好是时钟每秒⾛过的时间。
通过对中断控制器8259设置初始化命令字初值来控制中断。
程序中通过移位指令来实现时、秒、分的个位和⼗位的独⾃存储,将分、秒的个位⼗位分别存⼊指定的寄存器中。
⽐较转移指令来完成秒和分的累加。
七段数码管由8255并⾏接⼝的A⼝进⾏位的选择,通过B⼝输出要显⽰的段码。
这样就在6个七段数码管上分别显⽰时、分和秒。
当1S时间到时,修改当前数码管数值,10秒时将秒的低位清零,⾼位加1,分和时亦是如此;到达60秒时,将秒清零,分加1,到达60分时,将分清零,⼩时加1,到达24⼩时则全部清零。
2. 闹钟响铃部分:对于闹钟部分,我们⾸先要完成数码管显⽰单元按键的连接和设计,让16个按键分别为0-F;再利⽤实验平台的单次脉冲输⼊KK1产⽣⼀次中断,这样就可以设置时间了。
将设置好的时间储存起来,时刻与当前的时间进⾏⽐较,当时间⼀样时,计数器1⼯作,蜂鸣器蜂鸣,播放⾳乐,这就完成了闹钟响铃功能。
3. 整点报时部分:整点报时,就是在整时的时候响⼀次铃,当时钟整点时,⽆论是⼏点,时钟的分和秒部分都为零,所以,只要让时钟的分和秒部分与零进⾏⽐较,当他们都相等时,就代表到达整点了,可以响铃了。
整点报时就完成了,本闹钟设置的整点报时时长为5秒。
4. 设置当前时间:本部分也⽤到了数码管显⽰单元的按键部分,只要利⽤之前的设计就好了,这次使⽤单次脉冲输⼊的KK2产⽣中断设置时间,再将设置的时间存储在时间变量中,时间就设置好了。
(完整word版)24小时数字钟VHDL语言

数字钟的设计」、任务要求:(1) 设计一个数字钟。
(2) 具有时,分,秒计数显示功能,以24小时循环计时(3) 具有清零,调节小时、分钟功能。
(4) 具有整点报时功能,整LED灯花样显示。
1、系统框图:T荃点捱吋盘花畔亦,*5fS*.三、模块说明(含程序代码)1.秒模块程序清单library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity SECOND isport(clk,clr:in std_logic;----时钟/清零信号sec1,sec0:out std」ogic_vector(3 downto 0);----秒高位/低位co:out std」ogic); 输出/进位信号end SECOND;architecture SEC of SECOND isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0);--- 计数beginif clr='1' then----当ckr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsif clk'eve nt and clk='1' the nif ent仁"0101" and cnt0="1000" then----当记数为58(实际是经过59个记时脉冲) co<='1';----进位cnt0:="1001";----低位为9elsif cnt0<"1001" then----小于9 时cnt0:=cnt0+1;----计数elsecntO:="OOOO";if cnt1<"0101" then----高位小于 5 时 cnt1:=cnt1+1; elsecnt1:="0000"; co<='0'; end if; end if; end if; sec1<=c ntl; sec0<=c ntO; end process; end SEC;秒模块仿真波形mwmnnmuuuumjumnmnnnnnmmjuuuuumnR秒模块原理图Ei i 1Jsecip. 0J «oD[3.4]coi insti. . 1 B 1. .iVW 召当clr=1时,秒的高低位清零;当 clr=0时,来一个时钟信号 sec0加1,当sec0加到九时清零,co=1, secl 加1。
基于51单片机汇编语言的数字钟课程设计报告(含有闹钟万年历)

单片微型计算机课程设计报告多功能电子数字钟姓 名 许伟敏学 号 060301021124班 级 电气二班指导教师 林卫2009-06-25目录一:概述 (1)二:设计基本原理简介 (2)三:设计要求及说明 (3)四:整体设计方案 (4)系统硬件电路设计 4系统软件总流程设计 5模块划分及分析 6五:单模块流程设计 (8)各模块设计概述、流程图 8模块源程序集合及注释 13六:单模块软件测试 (23)七:系统检测调试 (24)硬件电路调试软件部分烧写调试八:系统优化及拓展 (26)九:心得体会 (28)单片微型计算机课程设计 基于汇编语言的电子数字钟 概述课程设计流程图↑一、概述课程设计题目:电子数字钟应用知识简介:● 51单片机单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。
51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。
● 汇编语言汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。
汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。
但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。
汇编语言可以与高级语言配合使用,应用十分广泛。
● ISPISP (In-System Programming )在系统可编程,是当今流行的单片机编程模式,指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。
已经编程的器件也可以用ISP 方式擦除或再编程。
本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机中进行调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Anjianchulia: jnb decflag,anjianchuliend
Dec hour
Clr decflag
Mov a,decflag
Cjnz a,255,anjianchuliend
Mov hour,#23
Acall anjianchuliend
Anjianchuli2:
Ajmp anjiansaomiaoend
anjiansaomiao1:
jb key2,anjiansaomiao2
acall delay5ms
jb key2,anjiansaomiao2
jnb key2,$
setb addflag
ajmp anjiansaomiaoend
anjiansaomiao2
sec_h data 34h
sec_l data 35h
hour data 36h
min data 37h
sec data 38h
seg data p0
w1 bit p2.7
w2 bit p2.6
w3 bit p2.5
w4 bit p2.4
w5 bit p2.3
w6 bit p2.2
w7 bit p2.1
Jnb decflag,anjianchuliend
Dec min
Clr decflag
Mov a,min
Cjnz a,255,anjianchuliend
Mov min,#59
Acall anjianchuliend
Anjianchuli3:
Mov a,xsstate
Cjnz a,3,anjianchuliend
Mov hour_1,#0
Mov hour_h,#0
Mov hour,#0
Mov min,#0
Mov sec,#0
Mov xsstate,#0
Clr addflag
Clr decflag
Mov seccs,#0
Mov tmod,#01h
Mov th0,#03ch
Mov tl0,#0b0h
Setb tr0
Acall xianshi
Ajmp loop
初始化程序
chushihua:
setb w1
Setb w2
Setb w3
Setb w4
Setb w5
Setb w6
Setb w7
Setb w8
Mov seg,#0ffh
Mov min_1,#0
Mov min_h,#0
Mov sec_1,#0
Mov sec_h,#0
Acall anjianchuliend
Anjianchuli1:
Mov a,xsstate
Cjne a,#1,anjianchuli2
Jnb addflag,anjianchulia
Inc hour
Clr daddflag
Cjnz 24,hour,anjianchuliend
Mov hour,#0
Ajmp main
Org 000bh
Ajmpsecprocess
Org 0030h
Main:
Acall chushihua
Loop:Acall anjiansaomiao
Acall anjianchuli
Acall shijianchuli
Acall shujuchuli
Acall shujuchaifen
Cjnz a,20,shijianchuliend
Clr sectflag
Setb sectime
Acall shijianchuliend
Shijianchuliend: ret
数据处理程序
Shujuchuli:
Jnb shujuchuliend
Inc sec
Clr sectime
Mov a,sec
Mov a,xsstate
Cjnz a,2,anjianchuli3
Jnb addflag,anjianchulib
Inc min
Clr addflag
Mov a,min
Cjnz a,60,anjianchuliend
Mov min,#0
Acall anjianchuliend
Anjianchulib:
Cjnz a,60,shujuchuliend
Mov sec,#0
jb key3,anjiansaomiaoend
acall delay5ms
jb key3,anjiansaomiaoend
jnb key3,$
setb decflag
anjiansaomiaoend: ret
按键处理程序:
Anjianchuli:
Mov a,xsstate
Cjne a,#0,anjianchuli1
Clr sectime
Setb ea
Setb et0
ret
按键扫描程序:
anjiansaomiao:
Jb key1,anjiansaomiao1
Acall delay5ms
Jb key1,key2scan
Jnb key1,$
Inc xsstate
Cjne a,#4,anjiansaomiaoend
Mov xsstate,#0
秒表流程图及相应的程序
(汇编语言版)
定义(资源分配):
显示的数据:
秒的高位、秒的低位、毫秒的高位、毫秒的低位。秒数据、毫秒数据定义。
数码管的段输入、位控制定义。
按键的定义、显示状态定义。
时间状态定义:
hour_h data 30h
hour_l data 31h
min_h data 32h
min_l data 33h
Jnb addflag,anjianchulic
Inc sec
Clr addflag
Mov a,sec
Cjnz a,60,anjianchuliend
Mov sec,#0
Acall anjianchuliend
Anjianchulic:
Jnb decflag,anjianchuliend
Dec sec
Clr decflag
Mov a,sec
Cjnz a,255,anjianchuliend
Mov sec,#59
Anjianchuliend: ret
秒时间处理程序:
Shijianchuli:
Jnb tf0,shijianchuliend
Inc secflag
Clr tf0
Mov a,secflag
w8 bit p2.0
key1 bit p3.2
key2 bit p3.3
key3 bit p3.4
addflag bit 20h
decfalg bit 21h
xsstate data 39h
secflag data 3ah;定义50ms的次数
sectime bit 22h;定义1s到
主程
Org 0000h