8位数字钟程序

8位数字钟程序
8位数字钟程序

51数字钟程序(8位)

8位共阴数码管,外部中断进入调时模式,4个按键实现:时+;时-;分+;分-。分享给大家。

参考教材——《手把手教你学51单片机》C语言版

#include

unsigned char code LedChar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//共阴unsigned char LedBuff[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};

unsigned char KeySta[]={0xFF,0xFF,0xFF,0xFF};

unsigned char hour=0;

unsigned char min=0;

unsigned char sec=0;

unsigned char k=0; //用于KeyAction和KeyDriver

bit flag=0;

bitkeyflag=1;

sbitKeyAddhour = P2^4;

sbitKeyDechour = P2^5;

sbitKeyAddmin = P2^6;

sbitKeyDecmin = P2^7;

voidExchangeTime();

voidKeyDriver();

voidKeyAction();

void main()

{

EA = 1;

IT0 = 1;

TMOD = 0x01;

TH0 = 0xFC;

TL0 = 0x67;

ET0 = 1;

EX0=1;

TR0=1;

while(1)

{

if(keyflag)

{

ExchangeTime();

}

else

{

KeyDriver();

}

LedBuff[0]=LedChar[hour/10];

LedBuff[1]=LedChar[hour%10];

LedBuff[2]=LedChar[min/10];

LedBuff[3]=LedChar[min%10];

LedBuff[4]=LedChar[sec/10];

LedBuff[5]=LedChar[sec%10];

LedBuff[6]=LedChar[10];

}

}

voidExchangeTime()

{

if(flag==1)

{

flag=0;

sec++;

if(sec>=60)

{

sec=0;

min++;

if(min>=60)

{

min=0;

hour++;

if(hour>=24)

hour=0;

}

}

}

}

voidKeyDriver()

{

static unsigned char backup[4]={1,1,1,1};

for(k=0;k<4;k++)

{

if(backup[k]!=KeySta[k])

{

if(backup[k]!=0)

{

KeyAction();

}

backup[k]=KeySta[k];

}

}

}

voidKeyAction()

{

if(k==0)

{

hour++;

if(hour>=24)

hour=0;

}

else if(k==1)

{

hour--;

if(hour==-1)

hour=23;

}

else if(k==2)

{

min++;

if(min>=60)

{ min=0;

hour++;

if(hour>=24)

hour=0;

}

}

else if(k==3)

{

min--;

if(min==-1)

{

min=59;

hour--;

if(hour==-1)

hour=23;

}

}

else {}

}

voidLedScan()

{

static unsigned char i=0;

P1=0x00;

switch(i)

{

case 0:P0=0xFF;P1=LedBuff[0];i++;break;

case 1:P0=0xDF;P1=LedBuff[1];i++;break;

case 2:P0=0xBF;P1=LedBuff[6];i++;break;

case 3:P0=0x9F;P1=LedBuff[2];i++;break;

case 4:P0=0x7F;P1=LedBuff[3];i++;break;

case 5:P0=0x5F;P1=LedBuff[6];i++;break;

case 6:P0=0x3F;P1=LedBuff[4];i++;break;

case 7:P0=0x1F;P1=LedBuff[5];i=0;break;

}

}

voidKeyScan()

{

unsigned char j;

static unsigned char keybuff[4]={0xFF,0xFF,0xFF,0xFF};

keybuff[0]=(keybuff[0]<<1)|KeyAddhour;

keybuff[1]=(keybuff[1]<<1)|KeyDechour;

keybuff[2]=(keybuff[2]<<1)|KeyAddmin;

keybuff[3]=(keybuff[3]<<1)|KeyDecmin;

for(j=0;j<4;j++)

{

if((keybuff[j]&0x0F)==0x00)

{

KeySta[j]=0;

}

else if((keybuff[j]&0x0F)==0x0F)

{

KeySta[j]=1;

}

}

}

voidInterruptTime() interrupt 1

{

static unsigned intcnt=0;

TH0=0xFC;

TL0=0x67;

cnt++;

if(cnt>=1000)

{

cnt=0;

flag=1;

}

LedScan();

KeyScan();

}

void int0_inter() interrupt 0 {

keyflag=~keyflag;

}

多功能数字钟——时分秒

电子电路综合实验设计报告 ——多功能数字钟的设计

目录 目录 (2) 一.实验目的 (3) 二.设计要求 (3) 三.总体设计概要 (3) 四.单元电路设计 (4) 4.1振荡器电路 (4) 4.2分频器电路 (7) 4.3 时间计时单元的设计 (9) 4.4译码与显示电路的设计 (13) 4.5校时电路的设计 (15) 4.6定时控制电路的设计 (17) 4.7方案一整体电路图 (18) 4.8 模块接线图及仿真结果 (18) 4.8.1用EWB软件绘制的单元接线图 (18) 4.8.2单元模块仿真 (21) 4.8.3整体仿真 (22) 五.测试结果分析 (23) 六.面包板 (23) 七.设计过程中出现的问题 (25) 八.实验用到的器件 (25)

一.实验目的 (1)加深对数字电子技术的理论知识的理解,结合实践进一步加深对单元电路基本功能的掌握和应用。 (2)通过具体数字电路模型,掌握一种常用电子电路仿真的软件,使学生能利用所学理论知识完成实际电路的设计、仿真和制作。 (3)掌握数字钟的基本知识以及所用数字钟相关芯片的功能及使用方法。 (4)了解面包板结构及其接线方法。 (5)熟悉数字钟电路的设计与制作。 二.设计要求 本课题是设计一个多功能数字钟,准确计时,以数字形式显示,时、分、秒的时间;小时的计时要求为“12翻1”,分和秒的计时要求为60进位。三.总体设计概要 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。数字钟电路系统的组成方框图如下。

基于eda的数字钟程序设计

一、课题要求: (1)技术要求:1、掌握多功能数字钟的工作原理。 2、应用EDA技术,VHDL语言编写程序。 3、层次化设计,设计原理框图。 4,、硬件设计及排版。 (2)功能要求:1、基本功能:能进行正常的时、分、秒计时功能,分别 由6个数码管显示24小时、60分钟、60秒的计数器 显示。 2、扩展功能:(1)能够利用按键实现“校时”“校分” “清零”功能。 (2)能利用扬声器做整点报时,整点前 五秒短声,整点长声。 (3)本人工作:负责软件部分,,编写各部分模块的VHDL程序,并且锁定 引脚,将程序下载到芯片中。 二、设计方案: 原理框图: 数字钟原理框图 一共有11个小模块:分频,片选,按键,小时,分,秒,显示模块,七段显示译码器,报时,扬声,36译码器。 左边第一个是时钟信号输入端,50Mhz到分频模块。第二个为清零按键,第三个为校分按键,第四个为校时按键。 右边第一个为七段显示译码器输出端,第二个为扬声器输出端,第三个为6个数码管输出端。

中间模块为数字钟的核心,有计时,报时,校时功能。 三、单元模块设计 1、分频模块 该模块是将时钟脉冲50Mhz分频到1000、500和1,分别给报时模块和及时模块。

2、秒模块 仿真图

该模块为60进制计数器,有分频模块得到的1hz进行计时,计时输出为秒的数值,在计时到59时进位1到co端。当按下s3时,秒清零。 3.、分模块 仿真图

该模块也为60进制计数器,计时输出为分的数值。在EN信号有效且时钟来时,计数器加1、在s2按下时,EN使能端有效,实现校分功能。 4、时模块 仿真图 该模块为24进制计数器,计时输出为小时的数值,在EN信号到来时,计数器

EDA课程设计——多功能数字钟

哈尔滨工业大学(威海) 电子学课程设计报告带有整点报时的数字钟设计与制作 姓名: 蒋栋栋 班级: 0802503 学号: 080250331 指导教师: 井岩

目录 一、课程设计的性质、目的和任务 (3) 二、课程设计基本要求 (3) 三、设计课题要求 (3) 四、课程设计所需要仪器 (4) 五、设计步骤 (4) 1、整体设计框图 (4) 2、各个模块的设计与仿真 (4) 2.1分频模块 (4) 2.2计数器模块 (6) 2.3控制模块 (10) 2.4数码管分配 (13) 2.5显示模块 (14) 2.6报时模块 (16) 六、调试中遇到的问题及解决的方法 (18) 七、心得体会 (18)

一、课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。 通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。 二、课程设计基本要求 掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。 三、设计课题要求 (1)构造一个24小时制的数字钟。要求能显示时、分、秒。 (2)要求时、分、秒能各自独立的进行调整。 (3)能利用喇叭作整点报时。从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。整点报时声的频率应与其它的报时声频有明显区别。 #设计提示(仅供参考): (1)对频率输入的考虑 数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。 (2)计时部分计数器设计的考虑 分、秒计数器均为模60计数器。 小时计数为模24计数器,同理可建一个24进制计数器的模块。 (3)校时设计的考虑 数字钟校准有3个控制键:时校准、分校准和秒校准。 微动开关不工作,计数器正常工作。按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。 (4)报时设计的考虑

数字时钟完整版

设计报告撰写要求 1.设计报告,报告中要包括以下几部分内容: (1)封皮:设计题目,姓名、学号,班级,授课教师姓名【格式见后面附表】 (2)写明设计任务 (3)写出设计题目的原理框图; (4)完成设计功能所选用的器件,及相应各器件的引脚排列图和功能表;(5)画出综合逻辑电路图; (6)用仿真软件进行调试的调试过程(即:在调试时遇到了哪些实际问题,你是如何解决的); (7)各人在本次设计中的体会和收获。 正文小四号宋体,1.5倍行间距。

课程设计报告 学生姓名:学号: 学院:电气工程学院 班级: 电自1116 题目: 数字时钟设计 指导教师:张光烈职称: 2013 年 7月 4 日

一.设计要求 多功能数字钟具有时间显示、闹钟设置、报时功能、校正作用。走时准确、显示直观、精度、稳定等优点。电路装置十分小巧,安装使用也方便。同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。数字钟广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 数字钟已成为我们生活中不可缺少的必须品,广泛的应用于家庭以及办公室等公共场所。给我们生活、学习、工作、娱乐带来了极大的方便。 本次设计主要是采用555定时器提供定时脉冲,74160集成块作为计时模块,8段数码显示管作为显示工具。应用电子工作平台软件来设计和仿真多功能数字钟设计,并通过硬件实验的调试来相互验证实际结果。 由振荡器输出稳定的高频脉冲信号作为时间基准,经分频振荡器输出标准的秒脉冲,秒计数器满60向分计数器进位,分计数器满60向小时进位,小时计数器按“12翻1”规律计数,计数器经译码器送到显示器;计数出现误差可用校时电路进行校时、校分、校秒。并具有可整点报时与定时闹钟的功能。 设计一种多功能数字钟,该数字钟具有基本功能和扩展功能两部分。其中,基本功能部分的有准确计时,以数字形式显示时、分、秒的时间和校时功能。扩展功能部分则具有:定时控制、、自动报整点时数和触摸报正点的功能。数字钟的电路也是由主体电路和扩展电路两部分构成,在电路中,基本功能部分由主体电路实现,而扩展功能部电路实现。这两部分都有一个共同特点就是它们都要用到振荡电路提供的1Hz脉冲信号。在计时出现误差时电路还可以进行校时和校分,为了使电路简单所设计的电路不具备校秒的功能。并且要用数码管显示时、分、秒,各位均为两位显示,扩展部分要有相应的响应电路。分则由扩展能按时钟功能进行小时、分钟、秒计时,能调时调分,能整点报时,使用3个2位数码管显示。 总体设计

c语言程序代码

1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include int main() { printf(“this is a c program.\n”); return 0; } 2.求两个整数之和。 程序: #include int main() { int a,b,sum; a=122; b=234; sum=a+b; printf(“sum is %d\n”,sum); return 0; } 3.求两个整数之间的较大者。

#include int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 4.有人用温度计测量出华氏发表示的温度(如69°F),今要求把 她转换成以摄氏法表示的温度(如20℃)。 公式:c=5(f-32)/9. 其中f代表华氏温度,c代表摄氏温度。

#include int main() { float f,c; f=64.0; c=(5.0/9)*(f-32); printf("f=%f\nc=%f\n",f,c); return 0; } 5.计算存款利息。有1000元,想存一年。有一下三种方法可选: (1)活期:年利率为r1;(2)一年定期:年利率为r2;(3)存两次半年定期:年利率为r3。分别计算一年后按三种方法所得到的本息和。 程序: #include int main() { float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2);

简易数字钟的设计

第三单元简易数字钟的设计 数字钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无需机械传动等优点。因而得到了广泛的应用。小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数字电子钟,数字钟到处可见。 在数字电路的学习中,已经学习过用计数器芯片搭建数字钟。51单片机内部集成了定时器/计数器,这为构建数字钟带来了方便。在本单元中,学习如何用51单片机来构建一个功能数字钟。 【任务要求】 在6个数码管上显示时、分、秒,共6位数字。 通过单片机内部定时器控制走时,走时准确。 系统有四个按键,功能分别是调整时间,加,减,确定。在按下调整键时候,显示“时”的两位数码管以1 Hz 频率闪烁。如果再次按下调整键,则“分”开始闪 烁,“时”恢复正常显示,依次循环,直到按下确定键,恢复正常的显示。在数码 管闪烁的时候,按下加或者减键可以调整相应的显示内容。按键支持短按和长按, 即短按时,所修改的数字每次增加1或者减小1,长按时候以一定速率连续增加或 者减少10。 【学习知识点】 数码管的原理,驱动程序的实现。 51单片机内部定时器的原理及应用 独立按键的原理及程序的实现。 【内容安排】 第一节:数码管显示原理及应用实现 第二节:独立按键检测原理及应用实现 第三节:计时的原理及实现 第四节:基于定时器的程序改进 第五节:数字钟的构建

第一节数码管显示原理及应用实现 1.1 数码管显示原理 数字钟要把时间显示到数字显示装置上,常用的数字显示装置有数码管、液晶、LED、CRT显示器等。在单片机系统设计中,LED数码管是最基本的显示装置。在数字钟的设计中我们用数码管对中的小时、分和表来进行显示。 LED数码管能显示各种数字或符号,由于它具有显示清晰、亮度高、寿命长、价格低廉等特点,因此使用非常广泛。图1.1是几个数码管的图片:a图为单位数码管, b图为双位数码管,c图为四位数码管。 a 单位数码管 b 双位数码管 c 四位数码管 图1.1 数码管图片 那么数码管是如何的工作呢?还记得我们小时候玩过的“火柴棒游戏”吗,几根火柴组合起来,可以拼成各种各样的图形,数码管实际上就是利用这个原理做成的。 图1.2 单个数码管引脚标号,共阴和共阳的内部连接图

数字电路课程设计数字时钟

《数字时钟》技术报告 概要 数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒。一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。 本设计中的数字时钟采用数字电路实现对“时”、“分”、“秒”的显示和调整。通过采用各种集成数字芯片搭建电路来实现相应的功能。具体用到了555震荡器,74LS90及与非,异或等门集成芯片等。该电路具有计时和校时的功能。 在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求! 一、系统结构。 (1)功能。 此数字钟能显示“时、分、秒”的功能,它的计时周期是24小时,最大能显示23时59分59秒,并能对时间进行调整和校对,相对于机械式的手表其更为准确。 (2)系统框图。

系统方框图1 (3)系统组成。 1.秒发生器:由555芯片和RC组成的多谐振荡器,其555上3的输出频率由接入的电阻与电容决定。 2.校时模块:由74LS03中的4个与非门和相应的开关和电阻构成。 3.计数器:由74LS90中的与非门、JK触发器、或门构成相应芯片串接得到二十四、六十进制的计数器,再由74LS90与74LS08相连接而得到秒、分、时的进分别进位。 4.译码器:选用BCD锁存译码器4511,接受74LS90来的信号,转换为7段的二进制数。

5.显示模块:由7段数码管来起到显示作用,通过接受 CD4511的信号。本次选用的是共阴型的CD4511。 二、各部分电路原理。 1.秒发生器:555电路内部(图2-1)由运放和RS触发器共同组成,其工作原理由8处接VCC,C1处当Uco=2/3Vcc>u11时运放输出为1,同理C2也一样。最终如图3接口就输出矩形波,而形成的秒脉冲。 图2-1 内部结构图 图2-2 555功能表 2.校时模块:校时模块主要由74LS03中的4个与非门构成(图2-3),由其功能图看得出只要有一个输入端由H到L或者从L到H都会使输出端发生高低变化。因此通过开关的拨动产生高低信号从而对时、分处的计数器起到调数作用。

数字钟在单片机上的实现(汇编语言)

武汉大学电子信息学院电子系统综合设计课程论文数字钟在单片机上的实现(汇编语言) 专业: 年级: 作者:_____________ _____________ 指导教师: 2012年06 月29 日

目录 1 作品的背景与意义 (1) 2 功能指标设计 (1) 2.1设计要求 (1) 2.1.1 基本要求 (1) 2.1.2 拓展要求 (1) 2.2 功能设计方案 (1) 3 作品方案设计 (2) 3.1总体方案的选择 (2) 3.2模块划分及分析 (3) 3.3 单模块设计流程图 (3) 4 模块源程序 (7) 5 系统测试 (35) 测试数据: (36) 6 心得体会 (36)

1 作品的背景与意义 数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。 2 功能指标设计 2.1设计要求 2.1.1 基本要求 1.设计一个精确的1秒定时器; 2.根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显 示在LED上; 3.设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考 电子表)。 2.1.2 拓展要求 1.增加小时、分钟、秒的键盘直接修改功能; 2.设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置 闹钟开关; 3.增加万年历功能。 2.2 功能设计方案 1. 实现正常走时(秒-分-时-日-月-年进位); 2. 能够设置时间和日期; 3. 能够自动区分平闰年和大小月及2月; 4. 具有5个闹钟及其设置功能; 5. 在任何设置状态下,修改位会闪烁显示。

电子钟显示时分秒c语言程序

/*电子钟显示时分秒*/ #include sbit INCH=P3^2; //小时加1 sbit INCM=P3^3; //分钟加1 #define LCDP P0 // 定义LCM 接至P0 sbit RS = P2^7; // 暂存器选择位元(0:指令,1:资料) sbit RW = P2^6; // 设定读写位元(0:写入,1:读取) sbit E = P2^5; // 致能位元(0:禁能,1:致能) sbit BF = P0^7; // 忙碌检查位元(0:不忙,1:忙碌) char count=20; // 中断次数计数,20次*50ms=1秒 char time0[]="CLOCK"; // 显示时间阵列(第1行) char time[11]; // 显示时间阵列(第2行) bit ampm=1; // 0:上午(am),1:下午(pm),初值下午 char hour=11; // 声明时,初值为11点 char minute=59; // 声明分,初值为59分 char second=50; // 声明秒,初值为50秒 void transfer(void); // 转换时分秒至time阵列中 void write_inst(char); // 写入指令函数 void write_char(char); // 写入字元函数 void write_pat(void); // 写入自建字型函数 void check_BF(void); // 检查忙碌函数 void init_LCM(void); // 声明LCM初始设定函数 void delay(int); //去抖函数 main() { char i; init_LCM(); // 初始设定 IE=0X87; // T0、INT0、INT1中断使能TMOD=0x01; // T0设为MODE1 TH0=(56636-50000) / 256; // 填入计时量之高位元组 TL0=(56636-50000) % 256; // 填入计时量之低位元组 TR0=1; // 启动Timer 0 write_inst(0x85); // 指定第1列位置 for (i=0;i<5;i++) write_char(time0[i]); //显示CLOCK while(1) { transfer(); // 转换时分秒至time阵列中write_inst(0xC0); // 指定第2列位置 for (i=0;i<11;i++) write_char(time[i]);// 显示时间 } } //转换函数 void transfer(void)

C语言程序设计 入门源代码代码集合

#include <> void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c)); return 0;

} int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include <> int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5 #include <>

12小时数字钟电路设计

沈阳航空航天大学 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:12小时数字钟电路设计与实现 院(系):计算机学院 专业:计算机科学与技术 班级:34010104 学号:2013040101164 姓名: 指导教师:胡光元 完成日期:2016 年 1月 13 日

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (2) 1.1设计原理 (2) 1.2设计思路 (2) 1.3设计环境 (2) 第2章详细设计方案 (2) 2.1算法与程序的设计与实现 (3) 2.2流程图的设计与实现 (4) 第3章程序调试与结果测试 (7) 3.1程序调试 (7) 列举出调试过程中存在的问题 (7) 3.2程序测试及结果分析 (7) 参考文献 (9) 附录(源代码) (10)

第1章总体设计方案 1.1设计原理 通过Verilog语言,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码表示,顶层用写的代码生成的原理图文件链接组成,最后在加上输入输出端口。采用自上而下的方法,顶层设计采用原理图设计输入的方式。 1.2设计思路 1.实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。 2.手动校准。按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。 1.3设计环境 (1)硬件环境 ?伟福COP2000型计算机组成原理实验仪 COP2000计算机组成原理实验系统由……… ?COP2000集成调试软件 COP2000集成开发环境是为…………. (2)EDA环境 ?Xilinx foundation f3.1设计软件 Xilinx foundation f3.1是Xilinx公司的可编程期间………….

数电课程设计报告数字钟的设计

数电课程设计报告数字钟的设计

数电课程设计报告 第一章设计背景与要求 设计要求 第二章系统概述 2.1设计思想与方案选择 2.2各功能块的组成 2.3工作原理 第三章单元电路设计与分析 3.1各单元电路的选择 3.2设计及工作原理分析 第四章电路的组构与调试 4.1遇到的主要问题 4.2现象记录及原因分析 4.3解决措施及效果 4.4功能的测试方法,步骤,记录的数据 第五章结束语 5.1对设计题目的结论性意见及进一步改进的意向说明5.2总结设计的收获与体会 附图(电路总图及各个模块详图) 参考文献

第一章设计背景与要求 一.设计背景与要求 在公共场所,例如车站、码头,准确的时间显得特别重要,否则很有可能给外出办事即旅行袋来麻烦。数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确度和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。 设计一个简易数字钟,具有整点报时和校时功能。 (1)以四位LED数码管显示时、分,时为二十四进制。 (2)时、分显示数字之间以小数点间隔,小数点以1Hz频率、50%占空比的亮、灭规律表示秒计时。 (3)整点报时采用蜂鸣器实现。每当整点前控制蜂鸣器以低频鸣响4次,响1s、停1s,直到整点前一秒以高频响1s,整点时结束。 (4)才用两个按键分别控制“校时”或“校分”。按下校时键时,是显示值以0~23循环变化;按下“校分”键时,分显示值以0~59循环变化,但时显示值不能变化。 二.设计要求 电子技术是一门实践性很强的课程,加强工程训练,特别是技能的培养,对于培养学生的素质和能力具有十分重要的作用。在电子信息类本科教学中,课程设计是一个重要的实践环节,它包括选

C语言程序设计-入门源代码代码集合

演示1 #include void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "stdio.h" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "stdio.h" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

return 0; } int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

简易数字钟设计

信息与电气工程学院 课程设计说明书(2014 /2015 学年第二学期) 课程名称:单片机课程设计 题目:简易数字钟设计 专业班级: 学生姓名: 学号: 指导教师: 设计周数:2周 设计成绩: 2015年6 月25 日

1、课程设计目的 (1)综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验。 (2)学习A T89C51定时/计数器的原理及基本应用。 (3)掌握多为数码管动态显示方法。 (4)掌握Keil uVision2 IDE的使用方法。【包括项目文件的建立,给项目添加程序件, 编译、连接项目,形成目标文件,运行调试观察结果,多文件的处理,仿真环境的设置。】 (5)掌握Keil C51的调试技巧。【包括如何设置和删除断点,如何查看和修改寄存器的内容,如何观察和修改变量,如何观察存储器区域,并行口的使用,定时器/计数器的使用,串行口的使用,外中断的使用。】 (6)掌握PROTEUS软件使用过程。 2、简易数字钟的要求及软硬件的分析 2.1简易数字钟的设计要求 利用电子电路构成一个简易数字钟,该数字钟电路主要由C51单片机、4位共阳极数码管、时计数、分计数器、蜂鸣器、LED灯、NPN型和PNP型三极管、按键、若干电阻和导线组成。其中电路系统的分计数器采用60进制,时计数器采用24进制,。译码器显示电路将时、分计数器的输出状态通过三个两位共阳数码管显示出来。整点报时电路根据计时系统的输出状态产生一个脉冲信号,用蜂鸣器输出。相对机械钟而言,数字钟能达到准确计时,并显示小时、分钟,同时通过不同按键的不同功能对该数字钟进行小时和分钟调整,也可通过按键来接她通蜂鸣器来发出响声。 2.2数字钟的软件分析 2.1.1数字钟软件的系统分析 系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理; (2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改; (3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;

数字逻辑电路课程设计数字钟

数字逻辑课程设计 数字钟 姓名: 学号: 班级:物联网工程131班 学院:计算机学院 2015年10月10日

一、任务与要求 设计任务:设计一个具有整点报时功能的数字钟 要求: 1、显示时、分、秒的十进制数字显示,采用24小时制。 2、校时功能。 3、整点报时。 功能: 1、计时功能: 要求准确计时,以数字形式显示时、分、秒的时间。小时的计时要求为“12翻1”。 2、校时功能: 当数字钟接通电源或者计时出现误差时,需要校正时间(简称校时)。校时是数字钟应具备的基本功能,一般电子手表都具有时、分、秒等校时功能。为使电路简单,这里只进行分和小时的校时。对校时电路的要求是:在小时校正时不影响分和秒的正常计数;在分校正时不影响秒和小时的正常计数。校时方式有“快校时”和“慢校时”两种。“快校时”是通过开关控制,使计数器对1Hz的校时脉冲计数。“慢校时”是用手动产生单脉冲作校时脉冲。 3、整点报时: 每当数字钟计时快要到整点时发出声响;通常按照4低音1高音的顺序发出间断声响;以最后一声高音结束的时刻为整点时刻。 二、设计方案 电路组成框图: 主体电路 扩 展 电 路时显示器 时译码器 时计数器 分显示器 分译码器 分计数器 校时电路 秒显示器 秒译码器 秒计数器 定时控制 仿电台报时 报整点时数

数字钟电路是一个典型的数字电路系统,其由时、分、秒计数器以及校时和显示电路组成。其主要功能为计时、校时和报时。利用60进制和12进制递增计数器子电路构成数字钟系统,由2个60进制同步递增计数器完成秒、分计数,由12进制同步递增计数器完成小时计数。秒、分、时之间采用同步级联的方式。开关S1和S2分别是控制分和时的校时。报时功能在此简化为小灯的闪烁,分别在59分51秒、53秒、55秒、57秒及59秒时闪烁,持续的时间为1秒。 三、设计和实现过程 1.各元件功能 74LS160:可预置BCD异步清除器,具有清零与置数功能的十进制递增计数器。 74LS00:二输入端四与非门 74LS04:六反相器 74LS08:二输入端四与门 74LS20:四输入端双与非门 2.各部分电路的设计过程 (1)时分秒计数器的设计 时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。 秒/分钟显示电路:由于秒钟与分钟的都是为60进制的,所以它们的电路大体上是一样的,都是由一个10进制计数器和一个6进制计数器组成;有所不同的是分钟显示电路中的10进制计数器的ENP和ENT引脚是由秒钟显示电路的进位信号控制的。 分和秒计数器都是模M=60的计数器,其计数规律为00—01—…—58—59—00…。可选两片74LS160设计较为简单。 时计数器是一个“12翻1”的特殊进制计数器,即当数字钟运行到12时59分59秒时,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为01时00分00秒,实现日常生活中习惯用的计时规律。可选两片74LS160设计。

fpga数字钟课程设计报告

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 学号:20133638 姓名:王一丁 指导教师:李世平 设计时间:2016年1月

摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟

目录 摘要 1 课程设计目的 2 课程设计内容及要求 2.1 设计任务 2.2 设计要求 3 VHDL程序设计 3.1方案论证 3.2 系统结构框图 3.3设计思路与方法 3.3.1 状态控制模块 3.3.2 时分秒模块 3.3.3 年月日模块 3.3.4 显示模块 3.3.5脉冲产生模块 3.3.6 扬声器与闹钟模块 3.4 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献

1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 2.1 设计任务 (1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。 (2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、 五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。 (3)up为高时,upclk有脉冲到达时,预置位加一,否则减一。 2.2 设计要求 (1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。 (2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。

一些比较简c语言程序源代码

/**返回的long型的最大值是startLongValue+count-1(产生一个随机数) * param needCount * param count * param startLongValue * return */ public static List randomNoRepeatLongArray(int needCount,int count,long startLongValue){ //这种情况会出现无限循环的 if(needCount>count) return null; Random random = new Random(); int[] ints = new int[count]; for(int i=0;i list = new ArrayList(); while(list.size() #include #include

单片机课程设计--数字钟

单片机课程设计--数字钟 一、设计目的及意义 (1)巩固、加深和扩大51系列单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力; (3)对课题设计方案的分析、选择、比较、熟悉用51单片机做系统开发、研制的过程,软硬件设计的方法、内容及步骤 二、原理图设计中简要说明设计目的 (1)功能:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。 (2)原理图中所使用的元器件功能在图中的作用 1.主要元件AT89C51 P3.2 /INT0(外部中断0) 定时器/计数器0溢出中断 2.LED及按键开关 用于时间的显示和设定 (3)各器件的工作过程及顺序 计时状态,AT89C51通过P1口持续向LED发送信号,使LED扫描显示刚前时分秒,当出现定时器/计数器0溢出中断时,时间加多1秒,AT89C51从P1口向LED输出新的时间;只按住SET UP键时,进入外部中断0,时间计数停止,通过点击按键H,M,S对时分秒进行调整,新的时间值送给了计时程序,松开SET UP键退出中断,回到计时状态; 按住SET UP键和ALARM键时,进入外部中断0,时间计数停止,通过点击按键H,M对时分进行闹钟定时,AT89C51记忆时分值,退出时先松开SET UP键再松开ALARM; 闹铃:当时间值和设定闹铃值一样时,进行闹铃一分钟。

(3)流程图 Y Y 按下设定键 N (4)程序清单 #include #define uint unsigned int #define uchar unsigned char sbit wela1=P2^0; sbit wela2=P2^1; sbit wela3=P2^2; sbit wela4=P2^3; sbit wela5=P2^4; sbit wela6=P2^5; sbit dp= P1^7; sbit c0= P0^0; sbit c1= P0^1; sbit c2= P0^2; sbit c3= P0^3; sbit c4= P0^4; sbit c5= P0^5; 定时器溢出中断0 LED 扫描显示 初始设定 时间加1秒 外部中断0 按下闹钟? 时间调整 闹钟定时 时间相同? 闹铃

C语言程序设计(医院信息管理系统)附源代码

专业设计报告 课程名称: C 语言程序设计 课题名称:医院信息管理系统 专业班别: 12本计算机科学与技术二班 姓名: 学号: 指导教师: 设计日期: 2012-5-25

教师评语:

成绩评定: 指导教师签名: 日期: 2012 年月日 课程设计题目医院信息管理程序 作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以将链表中的病人信息保存在文件中,并且可以对文件中的病人信息进行读取与显示 1.专业设计目的

1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历 2、掌握对二进制文件的创建、增添等基本操作。 3、熟悉C语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息,结构体中包括病的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件、、、 5、系统完成后应实现类似下面所示界面

3、算法分析 1、数据结构 设计链表中的一个节点存储一个病人的信息,使用下面的结构体类型定义:struct patient{ char id[10]; char name[10]; char casehist[200]; int cost[3]; int transfusion;

相关文档
最新文档