基于数字钟的大小月份自动调节系统
具有大小月份自动调节的数字日历数电课程设计报告

目录第一章设计总体思路和框图 (2)1. 设计总体思路 (2)2.基本原理 (2)3.总体设计框图 (2)第二章单元电路设计 (4)2.1 日期计数显示电路 (4)2.2 12进制月计数显示电路 (5)2.3星期计数显示电路 (6)2.4逻辑选择电路 (7)第三章总设计电路 (8)第四章安装、调试步骤 (9)1.安装 (9)2.调试 (9)第五章故障分析与电路改进 (10)5.1 常见的故障现象 (10)5.2产生故障的主要原因及解决方法 (10)第六章实验总结与设计调试体会 (11)第七章附录 (13)7.1 元器件清单 (13)7.2 参考文献 (14)第一章设计总体思路和框图1. 设计总体思路本数字日历主要由计数显示电路和控制电路组成,计数显示电路主要由同步十进制计数器74LS160构成日期、月份及星期计数器;然后通过译码数码管显示器显示出来,控制调节电路则是利用组合控制逻辑电路去控制日期计数器及月计数器的置数端和使能端,从而实现大小月份自动调节功能。
星期显示在脉冲作用下,从星期一到星期日循环计数,从而形成星期随着日期循环显示。
2.基本原理“日期计数器”由两片十进制计数器74LS160同步预置数(高位片置入0000,低位片置入 0001)构成,置数端信号由控制电路给出,使其每次从1开始计数(对应每月第一天是1号),从日计数器的输出译出28、30、31这三个信号,将月计数器设置成12进制使其记到12后又从1开始计数。
控制电路是由组合逻辑电路组成,根据月计数器的输出月份,判断其是大月、小月、还是2月,选择大月这路信号跟31这个信号去控制日计数器的置数端,同时给月计数器的CP端信号使其计数,同样小月选择30这路信号,2月选择28这路信号去控制日计数器的置数端与月计数器的CP端。
最后给日计数器的地位片信号源使其计数。
同时在脉冲作用下,使星期循环计数,随着日期的变化而变化。
3.总体设计框图第二章单元电路设计2.1 日期计数显示电路“日期计数器”采用两片十进制计数器160同步预置数构成,控制置数端使其每次从1开始计数(对应每月第一天)。
课程设计:基于数字钟的大小月份自动调节系统课程设计说明书.

湖南工程学院课程设计课程名称数字电子技术课题名称基于数字钟的大小月份自动调节系统专业自动化班级0701学号姓名指导教师2010年06 月04 日湖南工程学院课程设计任务书课程名称: 数字电子技术题目: 基于数字钟的大小月份自动调节系统专业班级: 自动化学生姓名:学号:指导老师:审批:任务书下达日期2010年5月24日星期一设计完成日期2010年6月4日星期五目录一、设计总体思路与基本原理 (7)1.设计思路 (7)2.基本原理 (7)3.总体设计简图及电路总图 (8)二、单元电路的设计 (10)1. 计数显示电路的设计 (10)2.控制调节电路 (19)三、安装、调试步骤与故障诊断 (22)四、故障分析与电路改进 (23)五、总结与体会 (24)六、附录 (26)1、材料清单 (26)2、参考文献 (26)七、课程设计成绩评分表 (27)一、设计总体思路,基本原理和框图1.设计思路该电子时钟具有自动调节大小月份的功能,日期的显示可由两片数码管显示器组成,由两片74ls160进行选择显示;月的显示用一片数码管显示器组成,可由一片74ls161进行选择;控制调节电路则是利用74ls153四选一数据选择器和组合控制逻辑电路去控制日期计数器的置数端及月份计数器的时钟,用74ls138进行译码,将大小月份选择出来,从而实现大小月份自动调节功能。
电路中连入逻辑各功能芯片将电路进行调节。
2.基本原理(1)计数显示电路“日期计数器”采用两片十进制计数器74LS160同步预置数(高位片置入0000,低位片置入 0001)构成,控制置数端使其每次从1开始计数(对应每月第一天是1号),计数脉冲由实验仪上标准方波信号源提供,并通过试验仪上的译码显示器显示出来;“月计数器”采用一片74ls161计数器通过预置数做成十二进制计数器,从而进行1--12月份的累计计数,并通过试验仪上的译码显示器显示出来。
(2)控制调节电路当逻辑电路从日计数器的输出端译出28(或29)、30、31三个信号送入数据选择器数据输入端,控制逻辑电路从月份计数器输出端用74ls138译码分出1-12月送入数据选择器地址输入端,数据选择器153根据月计数器输出的月份选择译码电路译出的相应一路信号去控制日期计数器的置数端及月份计数器的时钟,从而实现大小月份自动调节功能,即日期的计数实现大月31天,小月30天,二月28天(闰年二月为29天)。
具有温度显示的电子实时时钟万年日历系统的设计与制作

毕业设计(论文)《具有温度显示的电子实时时钟/万年日历系统的设计与制作》专业(系)电气工程系铁道通讯信号方向班级铁道通讯091学生姓名陈志军指导老师赵巧妮完成日期2011.11.22摘要本设计以数字集成电路技术为基础,单片机技术为核心。
本文详细的介绍基于AT89S51单片机带有温度和闹钟的万年历控制系统。
利用单片机定时计数器提供秒信号,DS18B20数字式温度传感器进行温度数据传输,经软件处理,在动态扫描后,利用8个共阳数码管交替显示年月日、时分秒、环境温度值。
为了更好的调节和设置,设计了四个按键快速进行时间和闹钟的精准调整。
关键字:单片机;万年历;温度;闹钟;DS18B20AbstractThis design with digital integrated circuit technology as the foundation, microcontroller technology as the core. This paper is introduced in detail based on AT89S51 with temperature and the alarm clock calendar control system. Using single chip computer timing counter offer seconds signal, the temperature sensor DS18B20 digital temperature data transmission, the software processing, in dynamic scan, a total of 8 Yang digital tube alternate show dates, meticulous, environment when the temperature. In order to better regulate and settings, design the four keys of rapid time and alarm the accuracy of adjustment.Key words:Microcomputer; Calendar;Temperature; Alarm clock; DS18B20; Dynamic scanning目录摘要 (I)第1章引言 (1)1.1研究背景 (1)1.2论文研究目标和意义 (1)1.3论文章节安排 (1)第2章任务与要求 (2)2.1课题概述 (2)2.1.1 设计内容 (2)2.1.2 要求 (2)第3章方案论证与设计 (3)3.1 总体设计分析 (3)3.2 方案的选择与设计 (3)3.2.1 显示模块选择方案和论证: (3)3.2.2 时钟芯片的选择方案和论证: (3)3.2.3 温度传感器的选择方案与论证: (4)3.3 方案确定 (4)第4章硬件电路设计 (5)4.1 硬件电路设计框图 (5)4.1.1 系统硬件概述 (5)4.1.2 单片机主控制模块的设计 (5)4.1.3 振荡电路 (6)4.1.4 复位电路 (6)4.1.5 温度采集模块设计 (6)4.1.6 显示模块的设计 (7)4.1.7 蜂鸣器电路 (8)4.1.8 按键电路 (8)第5章系统的软件设计 (10)5.1编程环境及语言: (10)5.2程序流程框图 (10)第6章电路调试 (12)6.1调试的设备 (13)6.2调试步骤 (13)6.2.1 硬件调试 (13)6.2.2 软件调试 (13)第7章使用说明 (17)7.1 使用方法 (17)7.1.1 系统面板介绍 (17)7.1.2 调整方法 (17)7.1.3 调整框图 (18)7.1.3 注意事项 (19)7.2故障分析 (19)7.2.1 LED数码管显示不全、模糊、多出相对较暗的一位 (19)7.2.2 调整时按键过于灵敏 (19)心得体会 (20)参考文献 (21)附件 (22)附件一:总原理图 (22)附件二:PCB版图 (23)附件三:元件清单 (24)附录四:程序代码 (26)引言1.1研究背景当今社会逐渐步入信息化时代,快节奏、高效率成为当今时代的主题。
ARM课程设计——可调控万年历时钟

ARM课程设计可调控万年历时钟1.初始化并运行RTC,然后读取时间值通过串口向上位机发送,并把秒的值输出到教学实验开发平台上的LED1~LED4进行显示。
2.分析。
万年历显示时间包括年、月、日、星期、时、分和秒,利用EasyARM.exe仿真软件把结果发送到上位机上显示。
通过按键进行上述的显示调节,其中月是1~12,日是1~31,星期是1~7,时是00~23,分是00~59,秒是00~59。
现在时间显示2012年6月11日星期一15:23:30。
3.4.程序#include "config.h"#include "stdio.h"#include "math.h"uint8 time[4];/*按键 GPIO口*/#define key1 1<<16#define key2 1<<17#define key3 1<<18#define key4 1<<19#define key5 1<<20#define key6 1<<21#define HC595_CS (1 << 29) // P0.29口为74HC595的片选typedef struct UartMode // 定义串口模式设置的数据结构{uint8 datab; // 字长度 5/6/7/8uint8 stopb; // 停止位 1/2uint8 parity; // 奇偶校验 0-无校验, 1-奇校验, 2-偶校验}UARTMODE;uint8 rcv_buf[6]; // UART0数据接收缓冲区volatile uint8 rcv_new; // 接收新数据标志void DelayNS (uint32 dly){uint32 m;for ( ; dly>0; dly--)for (m=0; m<5000; m++);}void MSPI_Init(void){//PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500; // 设置管脚连接SPI PINSEL0 = (PINSEL0 & (~(0xFF << 8))) | (0x55 << 8) ;SPCCR = 0x52; // 设置SPI时钟分频SPCR = (0 << 3) | // CPHA = 0, 数据在SCK 的第一个时钟沿采样(1 << 4) | // CPOL = 1, SCK 为低有效(1 << 5) | // MSTR = 1, SPI 处于主模式(0 << 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先(0 << 7); // SPIE = 0, SPI 中断被禁止}uint8 MSPI_SendData(uint8 data){IOCLR = HC595_CS; // 片选74HC595SPI_SPDR = data;while( 0 == (SPI_SPSR & 0x80)); // 等待SPIF置位,即等待数据发送完毕IOSET = HC595_CS;return(SPI_SPDR);}/* 此表为LED0~F以及L、P的字模 */uint8 const DISP_TAB[19] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E,};uint8 UART0_Init (uint32 baud, UARTMODE set){uint32 bak;/* 参数过滤*/if ((0 == baud) || (baud > 115200)) return (0);if ((set.datab < 5) || (set.datab > 8)) return (0);if ((0 == set.stopb) || (set.stopb > 2)) return (0);if (set.parity > 4) return (0);/* 设置串口波特率*/U0LCR = 0x80; // DLAB=1bak = (Fpclk >> 4) / baud;U0DLM = bak >> 8;U0DLL = bak & 0xff;/* 设置串口模式*/bak = set.datab - 5;if (2 == set.stopb) bak |= 0x04;if (0 != set.parity){set.parity = set.parity - 1;bak |= 0x08;}bak |= set.parity << 4;U0LCR = bak;return (1);}void SendByte (uint8 data){U0THR = data;while ((U0LSR & 0X20) == 0); // 等待数据发送}void PC_DispChar (uint8 no, uint8 chr){SendByte(0xff);SendByte(0x81);SendByte(no);SendByte(chr);SendByte(0x00);}uint8 const SHOWTABLE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void SendTimeRtc (void){uint32 datas;uint32 times;uint32 bak;times = CTIME0; // 读取完整的时钟寄存器datas = CTIME1;bak = (datas >> 16) & 0xfff; // 获取年PC_DispChar(0, SHOWTABLE[bak / 1000]);bak = bak % 1000;PC_DispChar(1, SHOWTABLE[bak / 100]);bak = bak % 100;PC_DispChar(2, SHOWTABLE[bak / 10]);PC_DispChar(3, SHOWTABLE[bak % 10]);bak = (datas >> 8) & 0x0f; // 获取月PC_DispChar(4, SHOWTABLE[bak / 10]);PC_DispChar(5, SHOWTABLE[bak % 10]);bak = datas & 0x1f; // 获取日PC_DispChar(6, SHOWTABLE[bak / 10]);PC_DispChar(7, SHOWTABLE[bak % 10]);bak = (times >> 24) & 0x07; // 获取星期PC_DispChar(8, SHOWTABLE[bak]);bak = (times >> 16) & 0x1f; // 获取小时PC_DispChar(9, SHOWTABLE[bak / 10]);PC_DispChar(10, SHOWTABLE[bak % 10]);bak = (times >> 8) & 0x3f; // 获取分钟PC_DispChar(11, SHOWTABLE[bak / 10]);PC_DispChar(12, SHOWTABLE[bak % 10]);bak = times & 0x3f; // 获取秒钟PC_DispChar(13, SHOWTABLE[bak / 10]);PC_DispChar(14, SHOWTABLE[bak % 10]);}void RTCInit (void){PREINT = Fpclk / 32768 - 1; // 设置基准时钟分频器PREFRAC = Fpclk - (Fpclk / 32768) * 32768;CCR = 0x00; // 禁止时间计数器YEAR = 2012; //设置时钟初值MONTH = 6;DOM = 11;DOW = 1;HOUR = 15;MIN = 23;SEC = 30;CIIR = 0x01; // 设置秒值的增量产生一次中断 ILR = 0x03; // 清除RTC增量和报警中断标志 CCR = 0x01; // 启动RTC}void __irq IRQ_UART0 (void){uint8 i;if ((U0IIR & 0x0F) == 0x04)rcv_new = 1; // 设置接收到新的数据标志for (i=0; i<14; i++){rcv_buf[i] = U0RBR; // 读取FIFO的数据,并清除中断}/*再次初始化时钟*/CCR = 0x00; // 禁止时间计数器YEAR=(rcv_buf[0]-0x30)*1000+(rcv_buf[1]-0x30)*100+(rcv_buf[2]-0x30)*10+(rcv_buf[3]-0x30);MONTH =(rcv_buf[4]-0x30)*10+(rcv_buf[5]-0x30);DOM =(rcv_buf[6]-0x30)*10+(rcv_buf[7]-0x30);DOW =(rcv_buf[8]-0x30);HOUR =(rcv_buf[9]-0x30)*10+(rcv_buf[1]-0x30);MIN =(rcv_buf[11]-0x30)*10+(rcv_buf[3]-0x30);SEC =(rcv_buf[13]-0x30)*10+(rcv_buf[5]-0x30);CIIR = 0x01; // 设置秒值的增量产生1次中断CCR = 0x01; // 启动RTCVICVectAddr = 0x00; // 中断处理结束}void SET_TIME (void){while ((IO0PIN & key1) == 0) // 等待发送信号{DelayNS(2);if ((IO0PIN & key1) == 0){YEAR=YEAR+1;time[0,1,2,3]=YEAR;loop1: while ((IO0PIN & key1) != 0);DelayNS(2);if ((IO0PIN & key1) == 0) goto loop1; // 等待按键恢复}}while ((IO0PIN & key2) == 0) // 等待发送信号{DelayNS(2);if ((IO0PIN & key2) == 0){if(MONTH>11)MONTH=1;else MONTH=MONTH+1;time[4,5]=MONTH;loop2: while ((IO0PIN & key2) != 0);DelayNS(1);if ((IO0PIN & key2) == 0) goto loop2; // 等待按键恢复 }}while ((IO0PIN & key3) == 0) // 等待发送信号 {DelayNS(2);if ((IO0PIN & key3) == 0){if(DOM>29)DOM=0;elseDOM=DOM+1;time[6,7]=DOM;loop3: while ((IO0PIN & key3) != 0);DelayNS(1);if ((IO0PIN & key3) == 0) goto loop3; // 等待按键恢复 }}while ((IO0PIN & key4) == 0) // 等待发送信号 {DelayNS(2);if ((IO0PIN & key4) == 0){if(DOW>5)DOW=0;elseDOW=DOW+1;time[8]=DOW;loop4: while ((IO0PIN & key4) != 0);DelayNS(2);if ((IO0PIN & key4) == 0) goto loop4; // 等待按键恢复 }}while ((IO0PIN & key5) == 0) // 等待发送信号 {DelayNS(2);if ((IO0PIN & key5) == 0){if(HOUR>22)HOUR=0;elseHOUR=HOUR+1;time[9,10]=HOUR;loop5: while ((IO0PIN & key5) != 0);DelayNS(2);if ((IO0PIN & key5) == 0) goto loop5; // 等待按键恢复 }}while ((IO0PIN & key6) == 0) // 等待发送信号{DelayNS(2);if ((IO0PIN & key6) == 0){if(MIN>58)MIN=0;elseMIN=MIN+1;time[11,12]=MIN;loop6: while ((IO0PIN & key6) != 0);DelayNS(2);if ((IO0PIN & key6) == 0) goto loop6; // 等待按键恢复 }}}int main (void){ uint8 i;UARTMODE uart0_set;PINSEL0 = 0x00000005; // 连接IO到串口UART0PINSEL1 = 0x00000000;PINSEL2 = PINSEL2 & (~0x08); // P1[25:16]连接GPIO//PINSEL1 = 0x00005500; // 设置SPI管脚连接//PINSEL2 = 0x00000000;IODIR = HC595_CS;uart0_set.datab = 8;uart0_set.stopb = 1;uart0_set.parity = 0;UART0_Init(115200, uart0_set);U0FCR = 0xc1; // 使能FIFO,并设置触发点为8字节U0IER = 0x01; // 允许RBR中断,即接收中断MSPI_Init();RTCInit();IRQEnable(); // 使能IRQ中断/* 使能UART0中断 */VICIntSelect = 0x00000000; // 设置所有的通道为IRQ中断VICVectCntl0 = 0x20 | 0x06; // UART0分配到IRQ slot0,即最高优先级VICVectAddr0 = (uint32)IRQ_UART0; // 设置UART0向量地址VICIntEnable = 1 << 0x06; // 使能UART0中断while (1){ while (0 == (ILR & 0x01)); // 等待RTC增量中断ILR = 0x01;for(i=1; i<8; i++){if(DOW==i)rcv_data = MSPI_SendData(DISP_TAB[i]); // 发送显示数据} // 清除中断标志SET_TIME();SendTimeRtc();}return (0);}。
具有大小月份自动调节功能的数字日历 数字电路 课程设计

课程设计任务书课程名称:数字电子技术题目:具有大小月份自动调节功能的数字日历专业班级:班学生姓名:学号:指导老师:审批:任务书下达日期2011年6月24日星期一设计完成日期2011年7月8日星期五目录第1章设计总体思路 (1)1.1 设计要求及设计思路 (1)1.2 基本原理 (1)1.2.1 计数显示电路 (1)1.2.2 控制调节电路 (1)1.3 总体设计简图及电路总图 (2)第2章单元电路设计 (3)2.1 大小月显示电路的设计 (3)2.2 12进制月电路 (7)2.3 7进制星期电路 (8)2.4 大小月逻辑运算电路 (10)2.5 总电路图 (11)第3章安装、调试步骤与故障诊断 (12)第4章故障分析与电路改进 (13)第5章总结与体会 (14)附录元件清单 (15)参考文献 (16)第1章设计总体思路1.1设计要求及设计思路该课题要求设计制作一个具有大小月份自动调节功能的数字日历。
由于每一月的天数不尽相同,日计数器要实现当前月对应的天数进制。
例如,2月时日期满28天就应向月计数器进位,此时日计数器应为28进制。
所以可以用两片74LS160分别做日计数器的高低为,用一片74LS161实现12进制的月计数器。
用数据选择器74LS153选择相对于的日进制,实现大小月功能。
另外用一片74LS160实现7进制的星期计数。
1.2 基本原理1.2.1计数显示电路“日期计数器”采用两片十进制计数器74LS160同步预置数(高位片置入0000,低位片置入 0001)构成,控制置数端使其每次从1开始计数(对应每月第一天是1号),计数脉冲由实验仪上标准方波信号源提供,并通过试验仪上的译码显示器显示出来;“月计数器”采用一片74LS161计数器通过预置数做成十二进制计数器,从而进行1--12月份的累计计数,并通过试验仪上的译码显示器显示出来。
1.2.2控制调节电路当逻辑电路从日计数器的输出端译出28、30、31三个信号送入数据选择器数据输入端,控制逻辑电路从月份计数器输出端用74ls138译码分出1-12月送入数据选择器地址输入端,数据选择器153根据月计数器输出的月份选择译码电路译出的相应一路信号去控制日期计数器的置数端及月份计数器的时钟,从而实现大小月份自动调节功能,即日期的计数实现大月31天,小月30天,二月28天。
大小月份自动调节系统剖析

电气信息学院课程设计任务书课题名称大小月份自动调节系统姓名FRONT 专业班级学号指导老师课程设计时间2016年 9 月 12 日- 2016 年 9 月 26 日一、设计任务1.设计一电子钟的大小月份自动调节系统,要求如下:实现大小月份自动调节功能。
即日期的计数实现大月31天,小月30天,2月28天。
2.用Multisim 进行仿真。
3.在实验室组装实际电路并调试通过。
4.写出设计报告。
二、设计要求1.思路清晰,给出整体设计框图和电路图。
2.单元电路设计,给出具体设计思路和电路。
3.写出设计报告。
三、进度安排第一周:周一:布置任务,查找资料;周二~周三:设计系统方案,仿真;周四~周日:领元器件,电路安装,或程序调试;第二周:周一~周二:电路安装,调试,运行或程序调试,下载运行;周三:结果验收;周四:收元器件,整理实验室,撰写报告,答辩;周五:资料整理。
三、参考资料1、《数字电子技术基础》阎石主编2、《电子技术与EDA技术实验及仿真》郭照南孙胜麟主编目录一.设计总体思路及基本原理 (6)1.设计总体思路 (6)2.基本原理 (6)(1).月份显示器 (6)(2).日显示器 (6)(3).控制调节电路 (6)3.总体设计简图及电路总图 (7)(1).总体设计简图 (7)(2).电路总图 (8)二.单元电路设计 (9)1.计数显示电路 (9)(1).月计数显示电路 (9)(2).日计数显示电路 (10)2.控制调节电路 (11)(1).3线—8线译码器 (11)(2).74LS153数据选择器 (12)三.安装,调试步骤与故障诊断 (12)四.总结与体会 (14)五.附录 (14)(1).原件清单 (14)(2).参考文献 (15)六.电气与信息工程系课程设计评分表 (16)一、设计总体思路与基本原理1、设计总体思路设计一大小月份自动调节系统,大月31天,小月30天,二月28天,在月份上可以手动调节。
大小月份自动调节系统

湖南工程学院课程设计课程名称数字电子技术课题名称大小月自动调节系统专业自动化班级学号姓名指导教师曾钢燕2012年12 月18 日湖南工程学院课程设计任务书课程名称: 数字电子技术题目: 大小月份自动调节系统专业班级: 自动化学生姓名: 学号:指导老师: 曾钢燕审批:任务书下达日期2012年12月10日星期一设计完成日期2012年12月21日星期五目录一、设计总体思路与基本原理 (7)1、设计总体思路 (7)2、基本原理 (7)⑴月份显示器 (7)⑵日显示器 (8)⑶控制调节电路 (8)3、总体设计简图及电路总图 (9)⑴总体设计简图 (9)⑵电路总图: (9)二、单元电路的设计 (11)1、计数显示器电路 (11)⑴计数显示器主要元件 (11)74LS160 (11)⑵12月计数显示电路 (11)⑶31天计数显示器电路 (12)⑷30天显示计数器电路 (13)⑸29天计数显示电路 (14)2、控制调节电路 (15)(1)3线-8线译码器 (15)(2)74LS153数据选择器 (16)三、安装、调试步骤与故障诊断 (18)四、故障分析与电路改进 (19)五、总结与体会 (20)六、附录 (22)1.元件清单 (22)2、参考文献 (22)七、电气与信息工程系课程设计评分表 (23)一、设计总体思路与基本原理1、设计总体思路本次数字电子技术课程设计是关于大小月自动调节系统,大月31天,小月30天,二月29天,并且在月份上要进行手动调节。
大小月份自动调节系统分成4模块,第一部分为月份调节,第二部分为控制逻辑电路,第三部分为数据选择电路,第四部分为日显示电路。
月份调节和日显示电路都是运用两片74LS160同步十进制计数器原理构成,采用整体置数的方式来构成12、31、30、29进制计数器。
控制逻辑电路是采用两片3线8线译码器74LS138构成4线-16线译码器.而数据选择电路是运用4选1数据选择器74LS153,选择大月、小月、二月,然后进行输出。
基于数字钟的大小月份自动调节系统

基于数字钟的大小月份自动调节系统摘要:数字钟在生活中帮助人们计算日期,它主要由计数器级联构建而成。
本次设计要求具有大小月份自动调节功能,即日计数器实现大月31天,小月30天,二月28天。
基于要求可用两片十进制计数器(74160)级联构成日计数器,控制置数端使其每次从01开始计数(对应每月第一天是1号);从日计数器的输出通过与非门等译出31、30、28这三个信号,再根据月计数器的四个输出端译码输出两个控制端控制74153的数据选通端,选择译出的31、30、28三个信号,同时月计数器加1,当月数为12时输出端用与非门控制其同步置数端置1。
关键字:计数器、数据选择器、大小月份自动调节1、前言计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。
例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。
计数器的种类很多,构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。
2、设计原理设计的基本原理为:1、两片74160构成日计数器,74160(1)为高位片,74160(2)为低位片,两片74160的同步脉冲,清零端CLR都接高电平(不清零),74160(2)的D、C、B、A置数端为0001,74160(1)的D、C、B、A置数端为0000,74160(2)的使能端ENP、ENT接高电平,其进位端RCO接到74160(1)的使能端ENP,ENT接高,两片74160的置数端接到一起,由74153的选通输出信号控制,当日期为31、30或28时,它们的置数端会分别为0,置数后日期低位置为1,高位置为0。
2、16进制计数器74161构成月计数器,其脉冲与74160的脉冲是同步的,使能端ENT、A、CLR接高电平,ENP 接74160置数端的反,即在日置数时月份加1,其置数输入为0001,置数端LOAD由它的输出端译码控制,即在12月后置1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一设计总体思路,基本原理和框图1 总体思路本设计是基于数字钟的大小月份自动调节系统;主要由计数显示电路和控制电路组成。
计数显示电路主要由日期计数器(由两片同步十进制计数器74LS160构成)和月份计数器(由一片同步十六进制计数器74L S163构成)来完成计数功能,再通过译码显示器显示出来。
控制电路则是通过利用四选一数据选择器74L S15和组合控制逻辑电路来控制日计数器的置数端以及月份计数器的使能端,从而实现大小月份自动调节功能。
2.基本原理2.1 计数显示电路日期计数器是由两片74L S160构成,其中高位置入0000,低位置入0001,它们的置数信号由控制逻辑电路给出,使其每次都由1开始计数,脉冲信号则由试验箱的信号源提供,再通过显示器显示出来。
月份计数器是由一片74L S163组成,通过预计数功能使其变成十二进制的计数器,从而实现1—12月份的计数功能,再通过显示器显示出来。
2.2 控制电路控制电路是由译码组合电路,数据选择器和控制逻辑组合电路构成。
先通过译码组合电路从日计数器的输出端把28,30和31翻译成三个信号,然后输到数据选择器的输入端。
控制逻辑电路把从月份计数器输出端得到的1—12月份的数据翻译出二月和小月(4,6,9和11月)两组信号输入数据选择器的地址端,使数据选择器从输入端选择相应的数据然后输出,去控制日期计数器的置数端及月份计数器的使能端,从而实现二月28天,小月30天,大月31天的大小月份自动调节功能。
3总设计框图和总电路图3.1总设计框图总设计框图3.2总电路图总电路图二单元电路设计(个单元电路图)1计数显示电路1.1 日期计数显示电路日期计数显示电路日期计数显示电路主要由两片两片十进制同步预置数计数器74L S160构成。
上图中LOAD′为同步置数控制端,CLR′为异步置0控制端,E NT和E NP为计数控制端,A—D为并行数据输入端,QA—Q D 为输出端,RCO为进位输出端。
LOAD′为同步置数控制端,计数器的高位片和低位片的LOAD′连在一起,每次到每个月的最后一天由153的输出端输出一个高电平,经反相器74LS04变为低电平送至LODA′(低电平有效),使计数器高位置0,低位置1。
CLR′为异步置0控制端,在此电路中无需用到,故高位片和低位片的CLR′都接到VCC。
ENT和ENP为计数控制端,其中低位的ENT和E NP直接接到VCC,使其一直处于计数状态,高位的ENT和E NP接收来自低位片的RCO 的进位信号,使高位片在低位片每进位一次时计数一次。
A—D为并行数据输入端,高位片接成0000,低位片接成0001,从而使每个月最后一天在同步置数控制端L OAD′的控制下,在下一个脉冲到来时也就是每个月的第一天时,日期计数器置成01,使每个月从01开始计数。
QA—QD为输出端,分别接入译码显示器的输入端和译码电路的输入端。
RCO为进位输出端,低位片的RCO接到高位片的计数控制端E NT 和ENP,从而控制高位片的计数;高位片的RCO不需要用到(高位片不需要进位输出),故悬空。
1.2 月份计数显示电路月份计数显示电路月份计数显示电路主要由一片十六进制同步计数器74L S163,一个与非门和一个译码显示器构成。
上图中LOAD′为同步置数控制端,CLR′为异步置0控制端,ENT和ENP为计数控制端,A—D为并行数据输入端,QA—QD为输出端,RCO为进位输出端。
LOAD′为同步置数控制端,月份计数器计每当计到12月份时就把输出信号通过与非门再送到同步置数控制端LOAD′,在下一个脉冲到来是实现置数功能,从而实现是十二进制计数。
CLR′为异步置0控制端,在此不需用到,故接VCC。
ENT和E NP为计数控制端,在接收到数据选择器74LS153送来的高电平后实现计数功能。
A—D为并行数据输入端,接成0001,从而使计数器计到十二月份后在同步置数控制端LOA D′的控制下,在下一个脉冲到来时置成1。
2 控制电路控制选择电路主要由153选择器和组合逻辑电路组成,首先由译码组合电路分别从日期显示电路中译出日期28、30、31三个信号送到数据选择器74L S153的输入端,然后由控制组合逻辑电路从月份显示电路中分别译出2月接到数据选择器74LS153的地址输入端的B,译出4、6、9、11月送入数据选择器74L S153的地址输入端A.选择器的输出作为计数显示电路的置数信号和使能信号分别接到日期计数显示电路和月份计数显示电路中。
接74LS163输出端接74LS163的ENT接74LS163 主要芯片的简介3.1 十进制计数器74LS16074LS160的功能表清零异步清零:当CLR′=0时,无论有没有CL K,计数器马上被清零。
同步预置数:当CLR′=1,LOAD′=0,CLK为↑时,计数器处于预计数状态。
保持:当CLR′=LOAD′=1时,只要E NT和E NP中有一个为零,则计数器出于保持状态。
计数:只有当CLR′=LOAD′=ENT=E NP=1且CLK为↑时,计数器才能计数。
74LS160的管脚图3.2十六进制计数器74LS16374LS160的功能表清零同步清零:当CLR′=0,CLK为↑时,计数器被清零。
同步预置数:当CLR′=1,LOAD′=0,CLK为↑时,计数器处于预计数状态。
保持:当CLR′=LOAD′=1时,只要E NT和E NP中有一个为零,则计数器出于保持状态。
计数:只有当CLR′=LOAD′=ENT=E NP=1且CLK为↑时,计数器才能计数。
74LS163的管脚图3.3 数据选择器74LS15374LS153的功能表74L S153包含两组相同4选1数据选择器,它们共用同一组地址输入端A和B,当1G′(2G′)=0时,可通过A和B的不同状态,从4个输入数据(C0,C1,C2,C3)中选择所需要的一个,并送到输出端1Y(2Y)。
74LS153的管脚图三安装,调试步骤安装元器件前,首先检查芯片是否是好的,如果是坏的要换好的,一定要保证芯片是完好的。
然后检测导线是否有断线、接触不良的现象。
当检测芯片和导线完好后,就可以开始按照能正确工作的仿真电路图连接电路了。
连接之前先看清面包板的结构,确认哪些孔是相连的,哪些孔是不相连的。
以免在连线的过程中造成不必要的麻烦。
首先,连接日期计数显示电路模块。
连接完后接通电源,观察显示器,当显示器能够显示正确的数字达到相应功能时,再继续接下一个模块,如果不能正确显示,就要检查线路是否连正确,电路的引脚有无错接和漏接,互碰等情况。
其次,连接月份计数显示电路模块。
连好后观察是否能正常工作。
如果不能正常工作,就要检查线路是否连正确。
再次连接数据选择器和逻辑电路图,先连接数据选择器的输入,分别把28、30、31译码之后连至153的数据输入端,再接通电源,分别把153的A、B端接入高低电平,看能否实现数据的选择,如果不能,再检测电路,根据显示的结果找到问题,解决问题。
解决后,再断开电源,将大小月份译码之后连到153的地址选择端,再打开电源,看整个电路能否正常工作和显示,如果不能,问题一般出在数据选择器和月份计数显示模块之间的连接,找出问题并解决,直到整个电路能正常工作。
四故障分析与电路改进常用的故障排除方法:(1)直接观察法:直接观察法包括不通电检查和通电检查。
检查仪器的选用和使用是否正确;电源电压是否符合要求;集成电路的引脚有无错接和漏接,互碰等情况;布线是否合理,电阻和电容有无烧焦和炸裂等。
仔细观察元,器件有无发烫、冒烟,电子管是否亮。
(2)对比法:怀疑某一电路存在问题时,可将此电路与工作状态相同的正常电路的参数进行一一对比,从中找到电路的不正常情况,进而分析故障原因,判断故障点。
(3)短路法:用万用表测量拐角对地无电压。
(4)断路法:把稳定的电压接入一带故障的电路,使输出电流过大,我们采取依次断开电路的某一支路的办法来检查故障。
五总结与体会两星期的数电课程设计就结束了,对我来说应该是收获蛮大的。
从刚开始的设计电路到后面的接线与调试电路都用了很长了时间,总感觉心有余,而力不及。
作为工科学生,动手实践很重要,理论联系实践是很重要的。
第一周我们主要任务主要是曾老师布置课题,我们设计电路图并把它用EWB仿真出来。
电路图的设计,特别是各模块的设计,要考虑很多东西,如怎样接才正确?怎样调整线才好看?怎样把门转化为必要的芯片才能节约芯片?电路图出来后,我就开始运用E WB软件连线仿真。
仿真出来后,填写元器件清单到老师那里领取所需的芯片与试验箱。
第二周就是照图连线,安装与调试。
连线过程无疑是痛苦并快乐的,上百条细线,针孔大小的连线点,易松动的导线,都给我连线带来不小的阻力。
在E WB上运行得非常好的电路接成实物电路就问题百出,我不断修改电路,以期达到满意效果,功夫不负有心人,几经修改,最后调试,终于成功的达到了课题所要求的功能。
经过曾老师的精心指导下使我受益匪浅,不但了解了各个芯片的功能与电路的设计,而且还对自己的动手能力有了很大的提高。
我坚信自己的努力一定会得到回报的,锲而不舍。
感谢课程设计给了我获取更多知识的机会,应该珍惜。
六附录(原器件清单)十进制同步计数器74160 两片十六进同步制计数器74163 一片双四选一数据选择器74153 一片三3输入正与非门74L S10 两片四2输入正与门74L S08 一片二2输入正与或门74L S20 一片六反相器74L S04 两片试验箱一个电路板一块七参考文献《数字电子技术基础》阎石主编《电子技术基础实验与仿真》孙胜麟郭照南主编目录一设计总体思路,基本原理和框图 (1)1 总体思路 (1)2.基本原理 (2)2.1 计数显示电路 (2)2.2 控制电路 (2)3总设计框图和总电路图 (3)3.1 总设计框图 (3)3.2 总电路图 (4)二单元电路设计(个单元电路图) (5)1计数显示电路 (5)1.1 日期计数显示电路 (5)1.2 月份计数显示电路 (7)2 控制电路 (8)3 主要芯片的简介 (10)3.1 十进制计数器74LS160 (10)3.2 十六进制计数器74LS163 (11)3.3 数据选择器74LS153 (12)三安装,调试步骤 (13)四故障分析与电路改进 (14)五总结与体会 (15)六附录(原器件清单) (16)七参考文献 (16)。