指针式时钟仿真

指针式时钟仿真
指针式时钟仿真

#include

#include

#include

#include

#include

#include

//#include

uchar code LCD_WIDTH =16;

uchar code LCD_HEIGHT =64;

uchar gCurRow,tCurCol;

uchar ShowModeSW;

uint txthome,grhome;

uchar Status_BIT_01();

uchar Status_BIT_3();

uchar LCD_Write_Command(uchar cmd);

uchar LCD_Write_Command_P1(uchar cmd,uchar para1);

uchar LCD_Write_Command_P2(uchar cmd,uchar para1,uchar para2); uchar LCD_Write_Data(uchar dat);

uchar LCD_Read_Data();

void cls();

char LCD_Initialise();

void SetShowMode(uchar mode);

void Set_LCD_POS(uchar row,uchar col) reentrant;

void Line(uchar x1,ucahr y1,uchar x2,uchar y2,bit Mode);

void Pixel(uchar x,uchar y,uchar Mode) reentrant;

uchar gCurRow,gCurCol;

ucahr tCurRow,tCurCol;

uint txthome,grhome;

//状态STA1,STA0判断(读/写指令和读/写数据)

uchar Status_BIT_01()

{

uchar i;

for(i =10;i>0;i--)

{

if((LCMCW & 0x03))

break;

}

return i; //错误时返回0

}

//状态位ST3判断(数据自动写状态)

uchar Status_BIT_3()

{

uchar i;

for(i =10;i>0;i--)

{

if((LCMCW & 0x08)==0x08)

break;

}

return i; //错误时返回0

}

//写双参数指令

uchar LCD_Write_Command_P2(uchar cmd ,uchar para1,uchar para2) {

if(Status_BIT_01()==0)return 1;

LCMDW=para1;

if(Status_BIT_01()==0)return 2;

LCMDW=para2;

if(Status_BIT_01()==0)return 3;

LCMCW=cmd;

return 0;//成功时返回0

}

//写单参数指令

uchar LCD_Write_Command_P1(uchar cmd ,uchar para1)

{

if(Status_BIT_01()==0)return 1;

LCMDW=para1;

if(Status_BIT_01()==0)return 2;

LCMCW=cmd;

return 0;//成功时返回0

}

//写无参数指令

uchar LCD_Write_Command(uchar cmd)

{

if(Status_BIT_01()==0)return 1;

LCMCW=cmd;

return 0;//成功时返回0

}

//写数据

uchar LCD_Write_Data(uchar dat)

{

if(Status_BIT_3()==0)

return 1;

LCMDW=ddat;

return 0;

}

//设置当前地址

void Set_LCD_POS(uchar row,uchar col) reentrant

{

uint Pos;

Pos=row*LCD_WIDTH+col;

LCD_Write_Command_P2(LCD_ADD_POS,Pos%256,Pos/256);

gCurRow =row;

gCurCol =col;

}

//清屏

void cls()

{

uint i;

LCD_Write_Command_P2(LCD_ADD_POS,0x00,0x00);

LCD_Write_Command(LC_AUT_WR);

for(i=0;i<0x2000;i++)

{

Status_BIT_3();

LCD_Write_Data(0x00);

}

LCD_Write_Command(LC_AUT_OVR);

LCD_Write_Command_P2(LC_ADD_POS,0x00,0x00);

gCurRow = 0;

gCurCol = 0;

}

//LCD初始化

uchar LCD_Initialise()

{

RESET = 0;

RESET = 1;

LCD_Write_Commmand_P2(LC_TXT_STP,0x00,0x00);

LCD_Write_Commmand_P2(LC_TXT_WID,LCD_WIDTH,0x00);

LCD_Write_Commmand_P2(LC_GRH_STP,0x00,0x00);

LCD_Write_Commmand_P2(LC_GRH_WID,LCD_WIDTH,0x00);

LCD_Write_Commmand_P1(LC_CGR_POS,CGRAMSTART >>1);

LCD_Write_Commmand(LC_CUR_SHP | 0x01);

LCD_Write_Commmand_P2(LC_MOD_OR);

LCD_Write_Commmand_P2(LC_DIS_SW|0x08);

grhome = GRSTART;

txthome = TXTSTART;

return 0;

}

//绘点函数

//参数:点的坐标,模式1/0分别为显示与清除点

void Pixel(uchar x,ucahr y,uchar Mode) reentrant

{

uchar start_addr,dat;

start_addr = 7-(x%8);

dat = LC_BIT_OP|start_addr;

if(Mode)

dat |=0x08;

Set_LCD_POS(y,x/8);

LCD_Write_COmmand(LC_BIT_OP |dat);

}

//两数据交换

void Exchange(uchar *a,uchar *b)

{

uchar t;

t = *a;

*a = *b;

*b = t;

}

//绘制直线函数

//参数:起点与终点坐标,模式为显示(1)或清除(0),点阵不超过255x255 void Line(uchar x1,uchar y1,uchar x2,uchar y2,bit Mode)

{

uchar x,y;

float k,b;

if(abs(y1 -y2)<=abs(x1-x2))

{

k=((float)y2 -y1) / ((float)x2-x1);

b=y1 -k*x1;

if(x1>x2)

Exchange(&x1,&x2);

for(x=x1;x<=x2;x++)

{

y=(uchar)(k*x+b);

Pixel(x,y,Mode);

}

}

else

{

k=((float)x2 -x1) / ((float)y2-y1);

b=x1 -k*y1;

if(y1>y2)

Exchange(&y1,&y2);

for(y=y1;y<=y2;y++)

{

x=(uchar)(k*y+b);

Pixel(x,y,Mode);

}

}

}

简易数字钟设计(已仿真)

简易数字钟设计 摘 要 本文针对简易数字钟的设计要求,提出了两种整体设计方案,在比较两个方案的优缺点后,选择了其中较优的一个方案,进行由上而下层次化的设计,先定义和规定各个模块的结构,再对模块内部进行详细设计。详细设计的时候又根据可采用的芯片,分析各芯片是否适合本次设计,选择较合适的芯片进行设计, 最后将设计好的模块组合调试,并最终在EWB 下仿真通过。 关键词 数字钟,EWB ,74LS160,总线,三态门,子电路 一、引言:所谓数字钟,是指利用电子电路构成的计时器。相对机械钟而言,数字钟能达到准确计时,并显示小时、分、秒,同时能对该钟进行调整。在此基础上,还能够实现整点报时,定时报闹等功能。 设计过程采用系统设计的方法,先分析任务,得到系统要求,然后进行总体设计,划分子系统,然后进行详细设计,决定各个功能子系统中的内部电路,最后进行测试。 二、任务分析:能按时钟功能进行小时、分钟、秒计时,并显示时间及调整时间,能整点报时,定点报时,使用4个数码管,能切换显示。 总体设计 本阶段的任务是根据任务要求进行模块划分,提出方案,并进行比较分析,最终找到较优的方案。 方案一、采用异步电路,数据选择器 将时钟信号输给秒模块,秒模块的进位输给分模块,分模块进位输入给时模块,切换的时候使用2选1数据选择器进行切换,电路框图如下: 该方案的优点是模块内部简单,基本不需要额外的电路,但缺点也很明显,该方案结构不清晰,模块间关系混乱,模块外还需使用较多门电路,不利于功能扩充,且使用了异步电路,计数在59的时候,高一级马上进位,故本次设计不采用此方案。 方案二、采用同步电路,总线结构 时钟信号分别加到各个模块,各个模块功能相对独立,框图如下: 显示 切换 秒钟 分钟 小时 控制 1Hz 脉冲信号 闹钟

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ?振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ?分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。其电路图如下: 图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下:

数字时钟的设计与仿真

湖北民族学院 课程设计报告 数字时钟设计与仿真 课程:电子线路课程设计 专业:电子信息科学与技术 班级: 0312409 学号: 031240910 学生姓名:谢加龙 指导教师:易金桥 2014年 06月 21日

信息工程学院课程设计任务书 2014-06-21

摘要 基于单片机AT89c51设计而成的简易数字电子时钟,其主要功能皆由对单片机编程即由软件完成,外围硬件电路只包括报时电路、键盘输入电路和显示电路三个模块。具有外围硬件电路简单、运行功能可靠的优点。 关键词:单片机时钟键盘输入显示

目录 1、系统设计要求 (1) 1.1 基本功能 (1) 1.2扩展功能 (1) 2、硬件设计 (2) 2.1系统设计方案选择 (2) 2.2系统原理框图 (2) 2.3各单元的功能描述 (2) 2.4电路连接图 (2) 2.5元器件清单列表 (2) 2.6所用芯片的管脚图 (2) 3、软件设计 (3) 3.1主程序的流程图 (3) 3.2键盘扫描程序流程图 (3) 3.3发声程序流程图 (3) 3.4总程序 (3) 4、调试 (4) 4.1仿真调试 (4) 4.2硬件调试 (4) 5、总结 (5) 参考文献 (6)

1、系统设计要求 1.1 基本功能 (1)、要求准确显示“时”、“分”、“秒”,24 小时制; (2)、具有整点报时功能,在每小时59 分51 秒、53 秒、55 秒、57 秒发出低音,59秒整发出高音; (3)、系统工作符合一般时钟要求。 1.2扩展功能: (1)、具有校时功能,用户可修改“时”、“分”,且互不影响; (2)、可切换12 小时制和24 小时制。

单片机完整电子时钟设计报告.doc

目 一.作品介???????????????????????????????? 2 二.片机系原理及工作原理描述????????????????????? 2 三.程中碰到的及解决方法????????????????????? 4 四.数据及差分析??????????????????????????? 4 五.?????????????????????????????????? 5 六.程序模框?????????????????????????????? 5 七.程序清????????????????????????????????7

单片机的个性化电子钟设计报告 一.作品简介 该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控, 4 位 LED 数码显示,分别显示“小时:分钟”。该作品主要用于24 小时计时显示,能整时报时 ,能作为秒表使用,能定时闹铃 1 分钟。 使用方法 :开机后显示日期,学号,时钟在00:00:00 起开始计时。 (1)长按进入调分状态 :分单元闪烁 ,按加 1,按减 1.再长按进入时调整 状态 ,时单元闪烁 ,加减调整同调分 .按长按退出调整状态。 (2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加 1,再按为时调 整 ,按时加 1,按调闹钟结束.在闹铃时可按停闹,不按闹铃 1 分钟。 (3)按下进入秒表状态:再按秒表又启动,按暂停 ,再按秒表清零 ,按 退出秒表回到时钟状态。 二.单片机系统原理图及工作原理描述 (1)总原理图 如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块组成。

数字钟设计(带仿真和连接图)

- 数字电子技术课程设计报告 题目:数字钟的设计与制作 : 专业:电气本一班 学号:姓名: 指导教师: 时间: - —

一、设计内容 数字钟设计 … 技术指标: (1)时间以24小时为周期; (2能够显示时,分,秒; (3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; (4)计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时; (5)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号. ~ 二、设计时间: 第十五、十六周 三、设计要求: (1)画出设计的电路原理图; $ (2) 选择好元器件及给出参数,在原理图中反应出来; (3)并用仿真软件进行模拟电路工作情况; (4)编写课程报告。

! 摘要 数字钟实际上是一个对标准频率(1Hz)进行计数的计数电路。振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果以“时”、“分”、“秒”的数字显示出来。秒计数器电路计满60后触发分计数器电路,分计数器电路计满60后触发时计数器电路,当计满24小时后又开始下一轮的循环计数。一般由振荡器、分频器、计数器、译码器、数码显示器等几部分组成。 振荡电路:主要用来产生时间标准信号,因为时钟的精度主要取决于时间标准信号的频率及稳定度,所以采用石英晶体振荡器。 分频器:因为振荡器产生的标准信号频率很高,要是要得到“秒”信号,需一定级数的分频器进行分频。 计数器:有了“秒”信号,则可以根据60秒为1分,24小时为1天的进制,分别设定“时”、“分”、“秒”的计数器,分别为60进制,60进制,24进制计数器,并输出一分,一小时,一天的进位信号。 译码显示:将“时”“分”“秒”显示出来。将计数器输入状态,输入到译码器,产生驱动数码显示器信号,呈现出对应的进位数字字型。 由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路可以对分和时进行校时。另外,计时过程要具有报时功能,当时间到达整点前10秒开始,蜂鸣器1秒响1秒停地响5次。 } 为了使数字钟使用方便,在设计上使用了一个变压器和一个整流桥来实现数字钟电能的输入,使得可以方便地直接插入220V的交流电就可以正常地使用了。关键词数字钟振荡计数校正报时

单片机电子时钟课程设计报告报告

目录 1、引言 (3) 2、总体设计 (4) 3、详细设计 (5) 3.1硬件设计 (5) 3.2软件设计 (10) 4、实验结果分析 (26) 5、心得体会 (27) 6、参考文献 (27)

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机AT89C51

1.引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机电子时钟的设计报告

目录 1 引言 (1) 2 设计任务与要求 (2) 2.1. 设计题目 (2) 2.2. 设计要求 (2) 3 系统的功能分析与设计方案 (3) 3.1. 系统的主要功能 (3) 3.2. 系统的设计方案 (3) 3.3. 数码管显示工作原理 (4) 3.4. 电路硬件设计 (5) 3.4.1. 设计原理框图 (5) 3.4.2. 电源部分 (5) 3.4.3. 复位电路 (6) 3.4.4. 指示灯电路 (6) 3.4.5. 按键电路 (7) 3.4.6. 时钟电路 (7) 3.4.7. 驱动电路 (8) 3.4.8. 数码管连接电路 (8) 3.4.9. 主控模块AT89S52 (9) 3.4.10. 材料清单 (10) 3.4.11. 电路原理图、PCB图及实物图 (11) 3.5. 软件设计 (13) 3.5.1. 软件设计流程 (13) 3.5.2. 完整源程序 (15) 4 系统安装与调试 (21) 4.1. 硬件电路的安装 (21) 4.2. 软件调试 (21) 5 课程设计总结 (22) 参考文献 (23) 致谢 (24)

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。这次课程设计通过对它的学习、应用,以AT89S52芯片为核心,辅以必要的电路,设计了一个简易的单片机电子时钟,包括硬件电路原理的实现方案设计、软件程序编辑的实现、电子时钟正常工作的流程、硬件的制作与软件的调试过程。电子时钟由5.0V直流电源供电,数码管能够比较准确显示时间,通过按键能够调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机;AT89S52;电子时钟;数码管;按键

数字时钟的Multisim设计与仿真

数字时钟的M u l t i s i m 设计与仿真 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

数字电子技术课程设计 学院:信息工程学院 班级:电气二班 姓名:刘君宇张迪王应博 学号:

数字时钟的Multisim设计和仿真 一、设计和仿真要求 学习综合数字电子电路的设计、实现 基础调研 应用设计、逻辑设计、电路设计 用Multisim 软件验证电路设计 分析电路功能是否符合预期,进行必要的调试修改 撰写Project 报告,提交Multisim 二、总体设计和电路框图 24 分、校时部分。主要由矩形波产生器、秒计数器、分计数器、时计数器、LED 图1. 数字钟电路框图 七段显示数码管、时间校准电路,闹钟电路构成。 五、结论 由脉冲发生器、秒计数器、分计数器、时计数器、LED显示数码管设计了数字时钟电路,经过仿真得出较理想的结果,说明电路图及思路是正确的,可以实现所要求的基本功能:计时、显示精确到秒、时分秒校时。 下页附设计感想和分工 整点报时设计体会

刘君宇分工:完成电路设计,整点报时,闹钟,扩展功能) 通过对软件Multisim的学习和使用,进一步加深了对数字电路的认识。在仿真过程中遇到许多困难,但通过自己的努力和同学的帮助都一一克服了。首先,连接电路图过程中,数码管不能显示,后经图形放大后才发现是电路断路了。其次,布局的时候因元件比较多,整体布局比较困难,因子电路不如原电路直观,最后在不断努力下,终于不用子电路布好整个电路。 调试时有的器件在理论上可行,但在实际运行中就无法看到效果,所以得换不少器件,有时无法找出错误便更换器件重新接线以使电路正常运行。在整个设计中,计数器的接线比较困难,反复修改了多次,在认真学习其用法后采用归零法和置数法设计出60进制和24进制的计数器。 同时,在最后仿真时,预置的频率一开始用的是1hz,结果仿真结果反应很慢,后把频率加大,这才在短时间内就能看到全部结果。总之,通过这次对数字时钟的设计与仿真,为以后的电路设计打下良好的基础,一些经验和教训,将成为宝贵的学习财富。

电子时钟 Multisim仿真

一、设计指标 1.时间以24小时为一个周期; 2.显示时、分、秒; 3.有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; 4.保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。 二、设计方框图 三、元器件介绍 1、74LS74 74LS74内部结构图 74LS74管脚图

2、74LS47译码器 74LS47就是输出低电平有效的七段字形译码 器, 该电路就是由与非门、输入缓冲器与7 个与或 非门组成的BCD-7 段译码器/驱动器。 通常就是低电平有效,高的灌入电流的输出可 直接驱动显示器。7 个与非门与一个驱动器成对连 接,以产生可用的BCD 数据及其补码至7 个与或非 译码门。剩下的与非门与3 个输入缓冲器作为试灯 输入(LT)端、灭灯输入/动态灭灯输出(BI/RBO)端 及动态灭灯输入(RBI )端。 74LS47 译码器 LT L ×××××H L L L L L L L (5) 74LS47译码器真值表 注:1、当需要0到15的输出功能时,灭灯输入(BI)必须为开路或保持在高逻辑电平,若不要灭掉十进制零,则动态灭灯输入(RBI)必须开路或处于高逻辑电平。2、当低逻辑电平直接加到灭灯输入(BI)时,不管其它任何输入端的电平如何,所有段的输出端都关死。(H=高电平 L=低电平×=不定) 3、当动态灭灯输入(RBI)与输入端A、B、C、D 都处于低电平而试灯输入(LT)为高时,则所有段的输出端进入关闭且动态灭灯输出(RBO)处于低电平(响应条件)。4、当灭灯输入/动态灭灯输出(BI/RBO)开路或保持在高电平,且将低电平加到试灯输入(LT)时,所有段的输出端都得打开。 * BI/RBO 就是用作灭灯输入(BI)与/或动态灭灯输出(RBO)的线与逻辑。

指针式时钟课程设计报告

青岛理工大学 C++面向对象课程设计报告 院(系):计算机工程学院 专业:网络工程 学生姓名:赵建 班级:网络081 学号: 题目:指针式时钟 起讫日期: 2011.7.5—2011.7.14 设计地点:学院机房101 指导老师:吴万春 完成日期:2011年7月14日

一、课程设计目的 时钟几乎是每个人生活中必备的生活用品。时钟虽小确非常重要。一款良好的时钟可以给人们带来极大的便利。当然,现在关于时钟的各种应用程序层出不求,我的目的是设计一款界面简单、方便易用、功能相对丰富的指针式时钟程序。为了达到上述目标,以及课程设计的要求,结合自己自身的情况,选择了PC平台、Windows操作系统、Visual C++ 6.0开发平台、MFC框架来实现自己的程序。而且希望能通过自己这款小应用程序的设计,来掌握面向对象的程序设计方法,了解C++面向对象的设计方法和技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养分析实际问题和解决问题的能力,具备使用面向对象程序设计开发工具设计实际系统的能力。 二、课程设计内容及要求 程序所实现的功能:运行界面是一指针式时钟,包括时分秒三个指针,有12个钟点的显示,并通过指针的转动来实时更新时间。同时可以显示相应时间的数字钟形式。通过菜单可以实现闹铃功能、表盘背景、指针颜色设置、倒计时等功能。同时为程序窗口增加了一张精美图片作为背景 三、系统分析与设计 1、系统分析 为了使程序的显示更加美观,该程序使用了C++可视化程序设计方法进行设计。在可视化程序设计中,建立了一个MFC单文档应用程序工程,该工程包括了视图类、文档类对话框类和主框架类。在主框架类中修改窗口等属性,使整个时间的显示更加协调。模拟电子时钟是一个显示和计时的小程序,因此只要在视图类和文档类添加相关的属性和方法即可完成模拟电子时钟的功能。 文档类定义时钟的相关属性,包括int类型的year、month、day、hour、minute、second,和包括CString类型的str_year、str_month、str_day、str_hour、str_minute、str_second等信息。int类型的时间日期属性用以计算,CSrting类型的时间日期属性用以显示,通过CString 类中的成员函数Formart可以把int型的数据转成CString型的。 视图类实现时钟的主要功能,在该类的OnDraw函数里面对时间日期进行显示输出。向窗口输出信息时,为了保证高刷新率下绘图不闪烁,使用内存绘图的方法,在内存中创建一个与屏幕绘图区域一致的对象,使得重绘视图时可以大大提高运行速度。为了使计时能够达到几乎无误差,使用了一个获取系统两秒间隔作为计时间隔的方法,使得计时间隔和系统时间间隔一致。每次重绘视图的时候都重新获取系统时间,当该两次获得的秒不一致时,就对时间加一秒。通过一个计时器消息,使视图50ms刷新一次,以保证时间的准确性。 在视图类中需要添加几个方法:用于计算时间的方法RunTime()、计算星期的方法Week()、int型转CString型的方法Change()、获取系统时间的方法GetDateTime()、重获系统时间方法OnReset()和计时器消息。 在计算时间日期的时候,每达到1秒的时候对second进行加1,然后判断是否达到60秒,达到的话minute就加1,同样的方法对hour、day、month和year进行计算,在对day 计数时,考虑到大小月和闰年,对day进行加1时,判断是哪一月和是否为闰年。在确定年、月、日之后,使用函数Week()进行对星期几的计算,根据1901年每月1号是星期几可以得出现在是星期几。 1

数字时钟设计实验报告47686

word专业整理 电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

量。由振荡器与分频器组合产生秒脉冲信号。 ?振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ?分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。其电路图如下: 图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平

指针式时钟仿真

#include #include #include #include #include #include //#include uchar code LCD_WIDTH =16; uchar code LCD_HEIGHT =64; uchar gCurRow,tCurCol; uchar ShowModeSW; uint txthome,grhome; uchar Status_BIT_01(); uchar Status_BIT_3(); uchar LCD_Write_Command(uchar cmd); uchar LCD_Write_Command_P1(uchar cmd,uchar para1); uchar LCD_Write_Command_P2(uchar cmd,uchar para1,uchar para2); uchar LCD_Write_Data(uchar dat); uchar LCD_Read_Data(); void cls(); char LCD_Initialise(); void SetShowMode(uchar mode); void Set_LCD_POS(uchar row,uchar col) reentrant; void Line(uchar x1,ucahr y1,uchar x2,uchar y2,bit Mode); void Pixel(uchar x,uchar y,uchar Mode) reentrant; uchar gCurRow,gCurCol; ucahr tCurRow,tCurCol; uint txthome,grhome; //状态STA1,STA0判断(读/写指令和读/写数据) uchar Status_BIT_01() { uchar i; for(i =10;i>0;i--) { if((LCMCW & 0x03)) break; } return i; //错误时返回0 }

数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告

实验三、综合实验电路 一、实验目的: 通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。 二、实验原理: 根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路 三、实验设备与器件: 主机与实验箱 四、实验内容: (1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟, 要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。 (2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时 的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。 (3)实验设计流程:

(4)输入输出表: (5)各个功能模块的实现: A、计时功能模块的实现(电路图及说明)秒表部分及说明

说明:该部分是实现功能正常计时中的秒部分的计时工作。如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。 注解:第一个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平VCC 第二个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平第一个163的预置位段 分钟部分以及说明:

数字电子钟仿真

数字电子钟课程总结 题目:基于Multisim10.0的多功能电子钟的设计与仿真 学院:电子工程学院 专业:电子信息工程 学 号: 20121271008 姓名:卫丽业 指导教师:蒋品群 2014年 05月

基于Multisim10.0的多功能电子钟的设计与仿真 摘 要: 数字钟是由555定时器电路产生1KHz秒时钟信号, 经过分频器分频后输出稳定的秒脉冲, 作为时间基准。秒计数器满60向分计数 器进位,分计数器满60向时计数器进位, 时计数器以24为一个周 期。计数器的输出经译码器送到数码管显示,可将时、分、秒在相 应位置正确显示。计时出现误差或者调整时间时可以用校时电路 进行时、分的调整,并实现整点报时功能。 关键词: 数字钟 分频器 译码器 校时电路 整点报时电路 定时器 1.概述 主要是通过Multisim10.0软件作为应用平台,设计出电子数字钟逻辑电路,并在这个平台上进行仿真,验证它的工作状态是否正常,以实现要求的功能电路。 1.1 研究目标与任务 设计一个24小时制的数字时钟。要求计时、显示精确到秒、有校时功能,采用中小规模集成电路设计。 1.2 研究步骤 (1)根据要求,设计出比较合理的方案,选取合适的硬件器件,熟悉各个器件的性能; (2)通过Multisim10.0软件进行仿真和调试; (6)实验总结。 2.总体设计和电路框图 2.1 设计思路 1).由秒时钟信号发生器、计时电路、校时电路和整点报时电路构成。 2).秒时钟信号发生器可由555定时器构成。 3).计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 4).校时电路采用开关控制时、分计数器的时钟信号为校时脉冲以完成校时。 2.2 电路框图

时钟设计报告

教师签名: 说明:答辩未通过者总分记为0并重修。 总分 = 程序╳50% + 设计报告╳20% + 答辩╳30% 成都信息工程学院 课程设计 时钟设计报告 姓名:张双 学院:电子工程学院学院 学号:3140301005

摘要 时钟可以说是现代人们生活中必备的生活用品。市场上各种类型、款式的时钟数不胜数,一款良好的时钟可以给人们带来极大的便利。关于时钟的各种应用程序层出不穷,而我的目的是设计一款界面简单、方便易用、功能相对简洁实用的指针式时钟程序。 本次设计的简易时钟通过菜单栏可以实现启动时钟、暂停时钟、时钟清零以及时间设置等功能。一个时钟大致可由时钟背景、时针、分针、秒针四个部分构成。 该时钟的设计主要使用Windows操作系统、Visual C++ 6.0集成开发环境开发、MFC应用程序开发框架。通过本设计,我们进一步掌握Visual C++应用程序,系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境Visual C++。 关键词:时钟;MFC ;VC++

第一章绪论 随着社会的发展,各种类型的时钟已经进入了千家万户。而操作简单、美观大方的指针式时钟备受家庭喜爱。本次时钟设计主要是了解简单的时钟显示窗口,进一步掌握Visual C++应用程序,系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境Visual C++ 1.1课程设计目的 时钟几乎是每个人生活中必备的生活用品。时钟虽小确非常重要。一款良好的时钟可以给人们带来极大的便利。当然,现在关于时钟的各种应用程序层出不求,我的目的是设计一款界面简单、方便易用、功能相对丰富的指针式时钟程序。为了达到上述目标,以及课程设计的要求,结合自己自身的情况,选择了PC平台、Windows操作系统、Visual C++ 6.0开发平台、MFC框架来实现自己的程序。而且希望能通过自己这款小应用程序的设计,来掌握面向对象的程序设计方法,了解C++面向对象的设计方法和技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养分析实际问题和解决问题的能力,具备使用面向对象程序设计开发工具设计实际系统的能力。 1.2 技术应用的基本现状 Microsoft公司1998年推出了Visual C++6.0,它是支持Win32平台应用程序(application)、服务(service)和控件(control)开发的可视化编程的集成环境。与VC++5.0的最大不同之处是它的帮助功能更强大,MSDN(Microsoft Developer Networking)为包括VC++6.0在内的所有微软的程序产品提供在线帮助;另外,类的对象的可用成员函数、成员变量及函数的参数类型与个数都能动态显示在屏幕上,用户无须记住那些复杂而又枯燥乏味的函数名及复杂的参数,这无疑使得用VC++编程更加容易。所以VC++6.0可谓是Microsoft公司的王牌产品,编程功能强大而赢得广大程序的偏爱。

数字时钟的Multisim设计与仿真(精.选)

电子电路Multisim设计和仿真 学院: 专业和班级: 姓名: 学号:

数字时钟的Multisim设计和仿真 一、设计和仿真要求 学习综合数字电子电路的设计、实现和调试 1.设计一个24或12小时制的数字时钟。 2. 要求:计时、显示精确到秒;有校时功能。采用中小规模集成电路设计。 3.发挥:增加闹钟功能。 二、总体设计和电路框图 1. 设计思路 1).由秒时钟信号发生器、计时电路和校时电路构成电路。 2).秒时钟信号发生器可由555定时器构成。 3).计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 4).校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 2. 电路框图 图1. 数字钟电路框图 三、子模块具体设计 1. 由555定时器构成的1Hz秒时钟信号发生器。 由下面的电路图产生1Hz的脉冲信号作为总电路的初输入时钟脉冲。

图2. 时钟信号发生电路 2.分、秒计时电路及显示部分 在数字钟的控制电路中,分和秒的控制都是一样的,都是由一个十进制计数器和一个六进制计数器串联而成的,在电路的设计中我采用的是统一的器件74LS160D的反馈置数法来实现十进制功能和六进制功能,根据74LS160D的结构把输出端的0110(十进制为6)用一个与非门74LS00引到CLR端便可置0,这样就实现了六进制计数。 由两片十进制同步加法计数器74LS160级联产生,采用的是异步清零法。 显示部分用的是七段数码管和两片译码器74LS48D。 图3. 分秒计时电路 3. 时计时电路及显示部分 由两片十进制同步加法计数器74LS160级联产生,采用的是同步置数法,u1输出端为0011(十进制为3)与u2输出端0010(十进制为2)经过与非门接两片的置数端。 显示部分用的是七段数码管和两片译码器74LS48D。

单片机电子时钟设计报告

单片机电子时钟设计报告 随着我国科学技术的飞速发展,单片机的应用越来越广泛。单片机是由随机存储器、只读存储器和中央处理器组成的单片机。它是一个集成定时计数和各种接口的微控制器。它体积小、成本低、功能强,广泛应用于智能工业和工业自动化。为了进一步了解51单片机的定时器,设计一个电子时钟,本文对AT89C51单片机的时钟计数进行了研究。数字时钟是一种使用数字电路技术来计时小时、分钟和秒钟的时钟。与机械钟相比,它具有更高的精度和直观性,更长的使用寿命,并得到了广泛的应用。设计数字时钟有很多方法。例如,中小规模的集成电路可以用来形成电子钟。特殊的电子钟芯片也可以用来形成需要显示电路和外围电路的电子钟。单片机也可以用来实现电子钟等。3,实际任务和内容 设计内容: 1,利用其定时器/计数器计时和计数原理,结合显示电路、发光二极管数码管和外部中断电路来设计定时器 2,系统可实现六位发光二极管显示,显示时间以小时:分:秒为单位3.当系统时间正好是1: 00时,指示灯闪烁(2hz)5秒钟设计目标: 1。掌握单片机定时器和中断的应用方法2.掌握按键和数码管的扩展方法 4、团队合作 项目组组长:张成 项目组成员:余江东、张翔

项目组,共三人,以张成为组长,分工合作,各负其责。具体分工如下:(1)负责数字钟硬件设计和调试;主要由张翔完成(2)基于proteus 的电路仿真;主要在江东完成(3)负责数字钟程序编写;主要由张成完成(4)报告编写;主要由张成、余江东、张翔完成。在我们小组拿到作业后,我们首先讨论了实习的内容和任务。一起讨论用什么方法来实现任务手册的要求和细节。为了不浪费时间,每个人都开始分工合作,专注于自己的任务,同时互相帮助。在这个过程中,我们互相合作,默契配合。我们一起讨论并解决了遇到的问题。两个有着不同想法和观点的人一起分享了讨论,最终采用了获得的最理想和最完美的方案。最后的调试是和我们一起进行的。我们在调试过程中遇到了许多问题。我们一起分析和搜索数据。百度试图解决这些问题。在这个过程中,我们训练了自己的团队合作和沟通技巧。这次供应链管理实习在我们三人的完美合作下圆满完成。每个人都很好地完成了自己的任务,充分证明了团结就是力量。同时,它也使我们认识到团队合作的重要性质。我们是一个完美的团队。 5、总体设计方案概述 系统总体结构图A T89C51单片机显示电路时钟电路机复位电路系统分为单片机控制模块、时钟电路模块、复位电路模块和发光二极管显示模块(1)时钟电路设计 单片机采用外部12MHZ晶振形成振荡电路作为时钟源,时钟电路原理如下当系统通电并启动时,

基于Multisim的数字时钟设计

东北大学 课程设计报告 课程设计名称:数字电子技术课程设计 专题题目: 指导教师: 学生姓名:学号: 专业:计算机科学与技术班级: 设计日期: 2017 年7 月 3 日~ 2017 年7 月7日

目录 摘要 (3) Abstract (3) 第1章概述 (4) 1.1设计思路 (4) 1.2主要内容 (4) 第2章课程设计任务及要求 (5) 2.1 设计任务 (5) 2.2 设计要求 (5) 第3章系统设计 (6) 3.1 方案论证 (6) 3.2 系统设计 (6) 3.2.1 结构框图及说明 (6) 3.2.2 系统原理图及工作原理 (7) 3.3单元电路设计 (8) 3.3.1数字时钟秒脉冲信号的设计 (8) 3.3.2器件分析 (8) 3.3.3 计数器设计 (9) 3.3.4 计时电路设计 (11) 3.3.5 数字时钟电路设计 (12) 3.3.6 校时电路 (12) 3.3.7 整点报时 (13) 3.3.8 闹钟电路 (14) 第4章仿真调试 (16) 4.1时钟显示 (17) 4.1.1 时钟显示完整的00:00:00 (17) 4.1.2 时钟完整显示01:00:00 (17) 4.1.3 时钟完整显示23:59:59 (18) 4.1.4 仿真开关校准“秒”电路 (18) 4.1.5 仿真开关校准“分”电路 (19) 4.1.6 仿真开关校准“时”电路 (19) 4.2 整点报时 (20) 4.2.1 07:59:50—07:59:59报时 (20) 4.3 闹钟电路 (21) 4.3.1 7:59:00闹钟设定 (21) 第5章结论 (22) 第6章利用Multisim14.0仿真软件设计体会 (23) 参考文献 (23) 第7章收获、体会和建议 (24)

电子时钟设计报告

电子时钟设计报告Last revision on 21 December 2020

电子时钟设计报告 1 设计任务与要求 设计任务 用STM32设计一个数字电子钟,采用LCD12864来显示并修改,时间或闹铃。 设计要求 1)显示功能:可显示时间等基本功能。 2)具有闹铃功能。 3)按键改变时间。 4)按键改变闹铃。 5)温度的显示。 2 方案设计与论证 整个系统用stm32单片机作为中央控制器,由单片机执行采集内部RTC 值,时钟信号通过单片机I/O口传给TFT彩屏,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出。系统设有按键模块用于对时间进行调整及扩展多个小键盘。

显示电路 方案一:TFT彩屏。显示质量高,没有电磁辐射,可视面积大,应用范围广,画面效果好,数字式接口,“身材”匀称小巧,功耗小。 方案二:数码管动态显示。动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O 口,降低了能耗。 从节省单片机芯片I/O口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案一,既TFT彩屏显示。 电源电路 本数字电子钟设计所需电源电压为直流、电压值大小5V的电压源直接用mini USB通过电脑USB接口供电。 按键电路 本数字电子钟设计所需按键用于进行显示时间的调整与设置扩展的小键盘。 单片机芯片4个I/O口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求。

multisim_时钟的设计与仿真

[键入公司名称] [键入文档标题] 目录 1.设计要求 2. 总电路图及工作原理 3.电路组成介绍 3.1脉冲形成电路 3.2分频电路 3.3 60进制计数器及显示电路 3.4 24进制计数器及显示电路 3.5 时间设置电路 4. 电路的测试 5. 分析与评价 附录:元器件清单 1.设计要求

本次设计任务是要求用Multisim10.0软件设计一个数字时钟电路,即用数字显示出时间结果。设计要求如下: (a)以数字形式显示时、分、秒。 (b)小时计时采用24进制的计时方式,分、秒采用60进制的计时方式。 (c)要求能够对时钟进行时间设置。 2. 总电路图及工作原理 数字时钟的总电路图如下所示: 数字时钟工作原理:数字时钟电路由555振荡发生器、分频器、两个60进制分秒计数器、一个24进制小时计数器以及6个数字显示器组成。电路工作时由555振荡器产生频率为1000HZ 的脉冲,经由三个74LS90D 构成的千分频的分频器得到频率为1HZ 的脉冲,脉冲输入计数电路(分秒由60进制计数电路计数,小时由24进制计数电路计数),然后将相应数字显示到数字显示器上即所要显示的时间。另外,时钟的时间设置可以通过三个与单刀双掷开关相连的时钟信号发生器来实现。 电路的设计流程图如下所示 3.电路组成介绍

3.1 脉冲形成电路 脉冲形成电路为555计时器组成的振荡电路。考虑到时钟对精度要求较高,故在时钟电路中由555振荡电路产生频率为1KHz的脉冲信号,然后经过千分频的分频器分频产生1Hz脉冲。555振荡器的参数确定:T=0.7(R1+R2)C=1ms,f=1/t=1KHZ,故可令R1=5kΩ,R2=5KΩ,C=100nF。(以上设置在实际仿真的时候速度过慢,故在实际仿真中) 脉冲形成电路如下所示: 3.2 分频电路 分频电路是三个用十进制计数器74LS90串联而成的千分频的分频器。分频原理是在74LS90的输出端子中,从低位输入10个脉冲才从高位输出1个脉冲,这样一片74LS90就可以起十分频的作用,三个74LS90串联就构成了千分频的电路,输出的便是1HZ的标准脉冲信号。 分频电路如下所示: 3.3 60进制计数器及显示电路 在数字时钟电路中,分与秒的计数电路是由两个74LS90D组成的60进制的计数电路实现的。在下图中,U9是十进制计数器,U9的QD作为十进制的进位信号,74ls90计数器是十进制异步计数器,用反馈归零的方法实现十进制计数,U8和与非门构成六进制,其中与非门输出进位信号。 3.4 24进制计数器及显示电路 在数字时钟电路中,小时的计数电路是由两个74LS90D组成的24进制的计数电路实现的。如下图所示,计数电路由U16和U6俩部分组成。当时个位U6计数为4,U16计数为2时,两片74ls90复零,从而构成24进制计数。 3.5 时间设置电路 时间设置电路由一个单刀双掷开关与一个脉冲计数器组成。用单刀双掷开关切换计数功能与调时功能,另一端接计数器的脉冲输入端,开关置于函数发生器这一端便可以校时,置于计数器的进位端便是计时。不校正时间时开关都应打在与非门的那一端,校时时可用键盘操作改变开关的状态。如此,在时钟运行前及正在运行的过程中均可实现调时功能。 时间设置线路图如下所示(双掷开关左打调时,右打计数):

相关文档
最新文档