课程设计 实时时钟
实时时钟设计试验报告
实验报告5.按下Key4 Key3执行时,该按键执行加一操作,Led灯按照5秒顺时针一个一个亮。
6.按下Key5 Key3执行时,该按键执行减一操作,Led灯按照5秒顺时针一个一个亮。
7.按下Key6 Key3执行时,该按键执行确定操作,Led灯按照5秒顺时针一个一个亮。
8.按下INT 闹钟关闭。
5、实验总结本次实验是对课本上“电子日历钟设计”的加深。
通过本次试验我对led和led显示有了更加熟悉的认识,能熟练应用它们的功能。
同时我对时钟计数器也有了一定的认识,可以使用定时中断实现实时时钟,更重要的是我的实践能力有很大的提高。
程序设计中遇到的问题(1)、问题:初始完成程序后秒针走的时间很快,不是精确的一秒走一次。
原因:单片机只能用主系统时间,修改fprs后可以真确显示。
(2)、问题:时间切换函数与显示函数和设计的不一样,如只需要显示时,却多显示分。
原因:在仔细看代码后发现每次按键中断都在调用time1()函数,而seeond++在里面,所以每次都会加快秒的运行。
把seeond++移到外面放入time()函数后这个问题就解决了。
(3)、问题:运行时发现按键中断总会加快秒的运行,不是很精确。
原因:最后设置了一个虚拟的key7,当执行完时间指向ease7,然后调用Freshddisplaybuffer函数,这样就很好的解决了这个问题。
在程序调试过程中,设置断点并且在断点处增加一个LED灯,通过判断灯是否亮可以判断程序是否执行到该位置,对程序调试有很大的帮助。
开始WhileKey? 6 1 3 2 4 结束主程序流程图附件程序流程图:Yd_c_inter() Freshddisp laybuffer(); Set_D_T(); noise(); key=7; , 5 NDownNum() ; Freshddispl aybuffer(); Set_D_T(); noise(); key=7; FreshddisplaybufferTime1();Show_Time();Show_Time(); Time1() Freshddis playbuffer ();; Display_D ate(); noise(); 初始化蜂鸣器并关闭蜂鸣器BZOE = 0;初始化 INT 按键 Init_Inter();初始化 Lcd 和 Led; Init_Lcd(),Init_Led();UpNum(); Freshddis playbuffer (); Set_D_T(); noise(); key=7; key = 0; noise(); Time1(); Freshddis playbuffer (); Set_D_T(); noise();初始化按键中断InitKey_INTKR();Time1(); noise();关中断DI ()关中断EI()开中断EI();源代码:#pragma sfr#pragma EI#pragma DI#pragma access#pragma interrupt INTTM000 Time#pragma interrupt INTKR OnKeyPress#pragma interrupt INTP5 OnKeyOver void Init_Led();void InitKey_INTKR();void Init_Lcd();void Init_Inter();void LightOneLed(unsigned char ucNum);void LightOff();int Count_Day(int month);〃定义变量i,是切换时间的标志//定义 key=0 〃用于存放当前月的天数 〃默认的秒second=0 〃默认的分minute=0 〃默认的时hour=12 〃默认的天day=1 〃默认的月month=5 〃默认的年year=2014 〃默认的闹钟时=1 〃默认的闹钟分=1 〃秒的数码显示缓存区 〃分的数码显示缓存区 〃时的数码显示缓存区 〃天的数码显示缓存区 〃月的数码显示缓存区 〃年的数码显示缓存区 〃月,天的数码显示缓存区 〃时,分的数码显示缓存区 〃分,秒的数码显示缓存区 〃闹钟时的数码显示缓存区 〃闹钟分的数码显示缓存区 //INT 中断中间变量LCD_num[10]={0X070d,0x0600,0x030e,0x070a,0x0603,0x050b,0x050f,0x0700,0x070f,0x070b);//数字0〜〜9的显示码unsigned char Scond;// ......................................................... 延时函数1 .............................................. //void Delay(int k){int i,j;for(i=0;i<k;i++){for(j=0;j<k;j++){〃使用特殊功能寄存器 〃开中断 〃关中断 〃使用绝对地址指令 〃定义时间中断函数为Time 〃定义按键中断为OnKeyPress //定义INT 中断为OnKeyOverchar i=0;int key=0;int temp=1;int temp1 = 1;int second=0;int minute=0;int hour=12;int day=1;int month=5;int year=2014;int c_hour=1;int c_minute=1;int buffs[2];int buffm[2];int buffh[2];int buffday[2];int buffmonth[2];int buffyear[4];int buffmd[4];int buffhm[4];int buffms[4];int buffch[2];int buffcm[2];unsigned char Que = 0;int// .................................................. 初始化Led函数................ //void Init_Led(){PM13=0XF0; 〃端口13的第四位为输出模式PM14=0XF0; 〃端口14的第四位为输出模式PM15=0XF0; 〃端口15的第四位为输出模式)// ............................................................. 按键中断函数............... •//void InitKey_INTKR(){PM4 = 0x3F; //P4的六个端口设置为输入模式PU4 = 0x3F; 〃接通上拉电阻KRM = 0x3F; 〃允许六个按键中断KRMK = 0;PM3.0 = 1;PU3.0 = 1;EGP.5 = 1;PMK5 = 0;PPR5 = 0;KRPR = 1;)// ............................... 初始化lcd函数............... //void Init_Lcd(){ PFALL=0x0F; 〃所有接lcd引脚指定为lcd引脚LCDC0=0x34; 〃设置原时钟和时钟频率LCDMD=0x30; //设置lcd电压为3/5电压LCDM=0xC0; //4分时1/3偏压模式)// ............................... 初始化定时器Inter函数.............. 〃void Init_Inter(){ CRC00)=0; //CR000为比较寄存器PRM00=0X04; 〃计数时钟为fprs/2A8 CR000=0X7FFF;//时间间隔为1s TMMK010=1;//TMMK010 中断屏蔽TMMK000=0; //TMMK000 中断允许TMC00=0X0C; //TM00和CR000相等时进入清零&启动模式)void Time(){ second++;)// ............................................................. 按键中断函数............... •//void OnKeyPress(){DI();switch(P4&0x3F) 〃判断哪个按键按下{case 0x3e:key=1; //按键keyl按下break;case 0x3d:key=2; //按键key2按下break;case 0x3b:key=3; //按键key3按下break;case 0x37:key=4; //按键key4按下break;case 0x2f:key=5; //按键key5按下break;case 0x1f:key=7; //按键key6按下break;default:break;)EI();)// ............................................................... I NT按键中断函数............... //void OnKeyOver(){DI();Que = 0; //判断Que是否为0BZOE = 0; 〃蜂鸣器关闭EI();)// ................................................... Led小灯函数............... //void LightOneLed(unsigned char ucNum){switch(ucNum){ 〃检测变量ucNumcase 0:case 1:case 2:case 3:P13 |= (unsigned char) 1 << (ucNum);〃如果为0到3中的一个值则让LED1到LED4中的一个亮break;case 4:case 5:case 6:case 7:P14 |= (unsigned char) 1 << (ucNum - 4);〃如果为4到7中的一个值则让LED5到LED8中的一个亮break;case 8:case 9:case 10:case 11:P15 |= (unsigned char) 1 << (ucNum - 8);〃如果为8至U 11中的一个值则让LED9至U LED12中的一个亮break;default:break;))// ................................................... Led小灯熄灭函数............... 〃void LightOff(){P13 = 0;P14 = 0;P15 = 0;)// ............................................. 时间函数.............. 〃void Time1(){if((second % 5) == 0){ 〃秒大于 5 变为0Scond = second / 5 + 1;LightOff(); 〃调用小灯亮函数LightOneLed(Scond % 12);)if(second>=60){minute++; //秒大于60时分加1second=0;if(minute>=60){minute=0;hour++; //分大于60时时加1if(hour>=24){hour=0;day++; 〃时大于24时天加1temp=Count_Day(month);if(day>=temp){day=1;month++; 〃天大于当前月份的天数时月加1if(month>=13){month=1;year++; //月大于12时年加1))))))// ...................................... 计算当前月的天数.............. •//int Count_Day(int month){int day;if((month==4)||(month==6)||(month==9)||(month==11))//4,6,9,11 月为30 天day=30;else if(month==2){if((year%4==0&&year%100==0)||(year%400==0))day=29; 〃闰年2月29天elseday=28; //平年2月28天)elseday=31; //1,3,5,7,8,10,12 月为31 天return (day);)// ................................ 倒计时函数 ...... //void Show_Time(){ pokew(0xFA40,0x00); pokew(0xFA42,0x00); pokew(0XFA48,buffs[1]); pokew(0XFA4A,buffs[0]); pokew(0XFA44,buffm[1]); pokew(0XFA46,buffm[0]); pokew(0xFA4C,0x00); pokew(0xFA4E,0x00); Delay(100);) // ..................................................................... 日期显示函数 ................. •// void Display_Date(){buffm[0]|=0x0800;pokew(0xFA40,buffyear[3]);〃显示年 pokew(0xFA42,buffyear[2]);pokew(0xFA44,buffyear[1]);pokew(0xFA46,buffyear[0]);pokew(0xFA48,buffmonth[1]);〃显示月 pokew(0xFA4A,buffmonth[0]);pokew(0xFA4C,buffday[1]);〃显示日pokew(0xFA4E,buffday[0]);temp1=0;) // .................................................................... 时间显示函数 .............. •//void Display_Time(){ pokew(0xFA40,0x00);pokew(0xFA42,0x00);pokew(0xFA44,buffh[1]);〃显示时 pokew(0xFA46,buffh[0]);pokew(0xFA48,buffm[1]);〃显示分 pokew(0xFA4A,buffm[0]);pokew(0xFA4C,buffs[1]);〃显示秒 pokew(0xFA4E,buffs[0]);)// ..................................................................... 设定时间函数 .............. •//void Set_D_T(){int lcd_addr;lcd_addr = 0xFA40;switch(i){case 1:pokew(lcd_addr,buffyear[3]);〃时间年 pokew(lcd_addr+2,buffyear[2]);pokew(lcd_addr+4,buffyear[1]);pokew(lcd_addr+6,buffyear[0]);pokew(lcd_addr+8,0x00);pokew(lcd_addr+10,0x00);pokew(lcd_addr+12,0x00);pokew(lcd_addr+14,0x00);break;case 2:pokew(lcd_addr,0x00);pokew(lcd_addr+2,0x00);pokew(lcd_addr+4,0x00);pokew(lcd_addr+6,0x00);pokew(lcd_addr+8,buffmonth[1]);〃时间月 pokew(lcd_addr+10,buffmonth[0]);pokew(lcd_addr+12,0x00);pokew(lcd_addr+14,0x00);break;case 3:pokew(lcd_addr,0x00); //在lcd 右边显示1〃在lcd 右边显示0 〃在lcd 右边显示1 〃在lcd 右边显示0pokew(lcd_addr+2,0x00);pokew(lcd_addr+4,0x00);pokew(lcd_addr+6,0x00);pokew(lcd_addr+8,0x00);pokew(lcd_addr+10,0x00);pokew(lcd_addr+12,buffday[1]); 〃时间日pokew(lcd_addr+14,buffday[0]);break;case 4:pokew(lcd_addr,0x00);pokew(lcd_addr+2,0x00);pokew(lcd_addr+4,buffh[1]); 〃时间时pokew(lcd_addr+6,buffh[0]);pokew(lcd_addr+8,0x00);pokew(lcd_addr+10,0x00);pokew(lcd_addr+12,0x00);pokew(lcd_addr+14,0x00);break;case 5:pokew(0xFA40,0x00);pokew(0xFA42,0x00);pokew(0xFA44,0x00);pokew(0xFA46,0x00);pokew(0xFA48,buffm[1]); 〃时间分pokew(0xFA4A,buffm[0]);pokew(0xFA4C,0x00);pokew(0xFA4E,0x00);break;case 6:pokew(0xFA40,0xd1);pokew(0xFA42,0xd0);pokew(0xFA44,0xd7);pokew(0xFA46,0xd1);pokew(0xFA48,0x50);pokew(0xFA4A,0x56);pokew(0xFA4C,buffch[1]); 〃闹钟时pokew(0xFA4E,buffch[0]);break;case 7:pokew(0xFA40,0xd1);pokew(0xFA42,0xd0);pokew(0xFA44,0xd7);pokew(0xFA46,0xd1);pokew(0xFA48,0x50);pokew(0xFA4A,0x00);pokew(0xFA4C,buffcm[1]); 〃闹钟分pokew(0xFA4E,buffcm[0]);break;default:break;))// ........................................................ 切换时间函数 .............. …// void d_c_inter(){DI(); 〃关中断i++;if(i>7) 〃切换标志>7, i=1,否则i++i=1;EI(); 〃开中断)// ........................................................ 调整时间加函数 .............. •// void UpNum(){ switch(i){ case 1:year++;case 2:month++;if(month > 12){month = 1;)break;case 3:temp = Count_Day(month);day++;if(temp < day)day = 1;break;case 4:hour++;if(hour > 23)hour = 1;break;case 5:minute++;if(minute > 59)minute = 0;break;case 6:c_hour++;if(c_hour > 23)c_hour = 1;break;case 7:c_minute++;if(c_minute > 59)c_minute = 0;break;default:break;))// ........................................................ 调整时间减函数.............. …// void DownNum(){switch(i){case 1:year--;case 2:month--;if(month < 1){month = 12;)break;case 3:temp = Count_Day(month);day--;if(day < 1)day = temp;break;case 4:hour--;if(hour < 1)hour = 23;break;case 5:minute--;if(minute < 0)minute = 59;break;case 6:c_hour--;if(c_hour < 1)c_hour = 23;break;case 7:c_minute--;if(c_minute < 0)c_minute = 59;break;default: break;))// .................................................. 闹铃以及小灯函数.............. •//void noise(){if(c_hour == hour && c_minute == minute && Que == 1){ 〃闹铃的时,分与系统时,分相等,并且闹钟标志开启CKS=0XE0; 〃开启蜂鸣器输出,输出频率为0.98khz的音频Time1(); 〃调用时间函数))// ........................................................ 显示缓存区刷新时间函数.............. •//void Freshddisplaybuffer(){buffs[1]=LCD_num[second/10];/期的显示码放入秒的数码显示缓存区buffs[0]=LCD_num[second%10];buffm[1]=LCD_num[minute/10];//分的显示码放入分的数码显示缓存区buffm[0]=LCD_num[minute%10];buffm[0]|=0x0800; 〃分的后面显示一个"."buffh[1]=LCD_num[hour/10]; 〃时的显示码放入时的数码显示缓存区buffh[0]=LCD_num[hour%10];buffh[0]|=0x0800; 〃时的后面显示一个"."buffday[1]=LCD_num[day/10];//天的显示码放入天的数码显示缓存区buffday[0]=LCD_num[day%10];buffmonth[1]=LCD_num[month/10];//月的显示码放入月的数码显示缓存区buffmonth[0]=LCD_num[month%10];buffmonth[0]|=0x0800; 〃月的后面显示一个"."buffyear[3]=LCD_num[year/100/10];/^的显示码放入年的数码显示缓存区buffyear[2]=LCD_num[(year/100)%10];buffyear[1]=LCD_num[(year%100)/10];buffyear[0]=LCD_num[(year%100)%10];buffyear[0]|=0x0800; 〃年的后面显示一个"."buffmd[3]=LCD_num[month/10];//月,天的显示码放入月,天的数码显示缓存区buffmd[2]=LCD_num[month%10];buffmd[2]|=0x0800; 〃月,天后显示一个"."buffmd[1]=LCD_num[day/10];buffmd[0]=LCD_num[day%10];buffhm[3]=LCD_num[hour/10];//时,分的显示码放入时,分的数码显示缓存区buffhm[2]=LCD_num[hour%10];buffhm[2]|=0x0800; 〃时,分的后显示一个"."buffhm[1]=LCD_num[minute/10];buffhm[0]=LCD_num[minute%10];buffms[3]=LCD_num[minute/10];/^,秒的显示码放入分,秒的数码显示缓存区buffms[2]=LCD_num[minute%10];buffms[2]|=0x0800; 〃分,秒的后显示一个"."buffms[1]=LCD_num[second/10];buffms[0]=LCD_num[second%10];buffch[1]=LCD_num[c_hour/10];//闹钟时的显示码放入闹钟时的数码显示缓存区buffch[0]=LCD_num[c_hour%10];buffcm[1]=LCD_num[c_minute/10];//闹钟分的显示码放入闹钟分的数码显示缓存区buffcm[0]=LCD_num[c_minute%10];)// ................................. 主函数............... 〃void main(){DI(); 〃关中断PM3.4 = 0; //P3.3,P3.4端口设置为输出模式P3.4 = 1; //led灯初始化为点亮状态PM3.3 = 0;P3.3 = 0;BZOE = 0; 〃蜂鸣器初始化为熄灭Init_Lcd(); 〃初始化lcdInit_Led(); 〃初始化ledInitKey_INTKR(); 〃初始化按键EI(); 〃开中断Init_Inter(); //初始化中断while(1){ Time1(); noise(); switch(key){ case 0: Freshddisplaybuffer(); Time1(); Show_Time();Show_Time(); break; case 1:Time1();Freshddisplaybuffer(); Display_Date(); noise();break;case 2:Time1();Freshddisplaybuffer(); Display_Time(); noise();break;case 3:d_c_inter();Freshddisplaybuffer(); Set_D_T();noise();key=7; break;case 4:UpNum();Freshddisplaybuffer(); Set_D_T();noise();key=7; break;case 5:DownNum();Freshddisplaybuffer(); Set_D_T();noise();key=7; break;case 6:key = 0;if(i > 5)Que = 1;1 = 0;noise();case 7:Time1();Freshddisplaybuffer(); Set_D_T(); 〃调用计算时间函数 〃调用闹钟函数 〃没有按键执行 〃调用刷新函数 〃计算时间 〃调用显示时间函数 //按键1执行 〃计算时间 〃调用刷新函数 〃调用显示日期函数 〃调用闹钟函数 //按键2执行 //计算时间 //调用刷新函数 //调用时间显示函数 //调用闹钟函数 //按键3执行 〃调用时间切换函数 //调用刷新函数 〃调用时间设置函数 //调用闹钟函数 //按键4执行 〃调用时间加函数 //调用刷新函数 //调用时间设置函数 //调用闹钟函数 //按键5执行〃调用时间减函数 //调用刷新函数 //调用时间设置函数//调用闹钟函数//按键6执行〃判断是否确认 //调用闹钟函数〃虚拟按键7 //调用刷新函数//调用时间设置函数〃调用闹钟函数noise();break;。
日了实时时钟设计
一、设计目的、意义、内容及要求1.1设计目的多功能波形发生器是科学实验研究中常用的电子仪器之一。
本实验通过设计一个由微机控制的多功能波形信号发生器,旨在使学生能够做到以下几点。
1.熟悉几种典型波形产生的原理。
2.进一步掌握A/D转换电路在智能化仪表装置中的应用。
3.了解由微机控制的多功能波形发生器的设计思路与实现方法。
1.2设计意义本课程涉及到的基础理论知识较广,应用范围广,在国内外同类课程中占有十分重要的地位。
二十世纪八十年代,微机技术日臻成熟,日趋完善,在国内外许多企业的微机应用中发挥着重要作用,占主导地位。
随着机电一体化水平的不断提高,微机的应用越来越广泛,微机技术在我国应用范围逐步扩大,而且用人单位急需微机应用方面的人才,所以该课程具有一定的领先性和代表性。
本课程在将以上内容有机地联系在一起的基础上,遵循“重原理轻细节、重系统轻局部”的原则,结合微机技术的发展,不断地对课程结构和教学内容进行优化和更新。
以提高学生能力与素质为重点,对教学思想、教学内容,教学手段与方法进行了系统改革,将理论教学、实验与多媒体课内外实践相结合,提高学生的素质与能力。
通过本课程的教学试验,使学生能够掌握微型计算机的基本知识、基本组成、体系结构和工作模式,从而很清楚的了解微机的结构和工作流程,建立起系统的概念。
1.3设计内容及要求本实验设计一个由微机控制的多功能波形发生器。
具体设计要求如下。
1.使用DAC0832和CPU相连,用软件延时编制程序产生三角波、锯齿波、方波、正弦波,在DAC0832和OUT端用示波器观察波形。
2.波形频率在1KHZ~10KHZ间可调。
3.设计人机接口,实现波形与频率的选择。
具体设计内容如下:1.设计DAC0832的接线,用键盘输入要求的波形与频率。
2.至少产生三种波形。
3.键盘与显示处理程序分为两种:1)使用LED显示;2) 使用实验箱键盘。
二、总体设计方案2.1设计思想本实验通过开关程序来控制波形之间的切换,当某个开关打开对应的某个波形就出现在示波器上,开关用外围芯片8255A来实现。
stm32数字时钟课程设计
stm32 数字时钟课程设计一、课程目标知识目标:1. 学生能理解STM32的基本结构和工作原理,掌握其编程方法。
2. 学生能掌握数字时钟的基本原理,包括时钟源、分频器、计数器等组成部分。
3. 学生能了解实时时钟(RTC)的功能及其在STM32中的应用。
技能目标:1. 学生能运用C语言编写程序,实现STM32控制数字时钟的功能。
2. 学生能通过调试工具,对程序进行调试和优化,确保数字时钟的准确性。
3. 学生能运用所学知识,设计具有实用价值的数字时钟产品。
情感态度价值观目标:1. 培养学生对电子技术和编程的兴趣,激发其探究精神。
2. 培养学生团队合作意识,使其在项目实施过程中学会相互沟通、协作。
3. 培养学生严谨、细致、负责的工作态度,提高其解决实际问题的能力。
课程性质:本课程为实践性较强的课程,结合STM32和数字时钟知识,培养学生的动手能力和实际操作技能。
学生特点:学生具备一定的电子技术基础和C语言编程能力,对实际操作感兴趣,但可能缺乏项目实践经验。
教学要求:注重理论与实践相结合,引导学生主动探索,提高其分析问题、解决问题的能力。
在教学过程中,关注学生的个体差异,因材施教,使每位学生都能在原有基础上得到提高。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容本课程教学内容主要包括以下几部分:1. STM32基本原理与编程基础:介绍STM32的内部结构、工作原理,C语言编程基础及其在STM32中的应用。
- 教材章节:第一章至第三章- 内容:微控制器基础、STM32硬件结构、C语言编程基础、STM32编程环境搭建。
2. 数字时钟原理与设计:讲解数字时钟的基本原理、组成部分以及设计方法。
- 教材章节:第四章至第五章- 内容:时钟源、分频器、计数器、实时时钟(RTC)、数字时钟设计方法。
3. STM32实现数字时钟功能:结合STM32和数字时钟知识,指导学生动手实践,实现数字时钟功能。
linux实时时间显示课程设计
linux实时时间显示课程设计一、教学目标本课程的教学目标是让学生掌握Linux系统中实时时间显示的原理和方法。
具体包括:1.知识目标:–了解Linux操作系统的基本结构;–掌握Linux系统中的时间管理机制;–理解实时时间显示的原理和方法。
2.技能目标:–能够配置Linux系统的时钟;–能够使用命令行工具获取实时时间;–能够编写简单的脚本实现实时时间显示。
3.情感态度价值观目标:–培养学生的动手实践能力,提高他们对计算机科学的兴趣;–培养学生团队合作精神,提高他们的问题解决能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Linux操作系统基本结构:介绍Linux操作系统的内核、文件系统、进程管理等基本组成部分;2.时间管理机制:讲解Linux系统中的时间管理机制,包括时钟、时间源、时间同步等;3.实时时间显示原理:介绍实时时间显示的原理,包括硬件时钟、软件时钟、NTP协议等;4.实时时间显示方法:讲解如何在Linux系统中实现实时时间显示,包括命令行工具的使用、脚本的编写等。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:用于讲解Linux操作系统基本结构、时间管理机制等理论知识;2.讨论法:通过小组讨论,让学生深入理解实时时间显示的原理和方法;3.案例分析法:分析实际案例,让学生掌握命令行工具和脚本的使用;4.实验法:让学生动手实践,配置Linux系统的时钟,编写实时时间显示的脚本。
四、教学资源本课程所需的教学资源包括:1.教材:《Linux操作系统原理与应用》;2.参考书:《Linux系统编程》;3.多媒体资料:PPT课件、实验指导视频等;4.实验设备:计算机、网络设备等。
以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和理解程度;2.作业:布置相关的编程练习和理论作业,评估学生对知识的掌握和应用能力;3.实验报告:评估学生在实验过程中的操作技能和对实时时间显示原理的理解;4.期末考试:采用闭卷考试的方式,全面测试学生的理论知识和实践能力。
实时钟的设计
课程设计任务书班级:姓名:指导教师:时间:2011年6月教研室主任签字:年月日目录实时钟的设计 (3)1 引言 (3)2系统设计 (4)2.1电路组成及工作原理 (4)2.2总体设计框图 (5)3系统硬件电路的设计 (5)3.1单片机系统 (5)3.2调时及功能电路 (7)3.3 上点复位电路 (9)3.4显示电路 (10)3.5键盘工作模块 (11)3.6闹钟电路 (12)3.7 直流稳压电源部分 (12)3.8电压检测电路 (12)3.9备用电池功耗问题 (13)3.10 滤波电路 (13)3.11 电源变压器 (13)3.12稳压电路 (14)4. 软件设计 (14)4.1时钟主程序流程图 (14)4.2显示子程序 (15)4.3定时器T0中断服务程序流程图 (15)4.4定时器T1中断服务程序流程图 (16)4.5调时功能程序 (17)4.6秒表功能程序 (17)4.7闹钟时间设定功能程序 (18)5 调试及性能分析 (18)5.1 硬件调试 (18)5.2软件调试 (18)5.3性能分析 (18)5.4时钟计时检测 (18)6单片机C源程序 (19)7总结与体会 (19)8.参考文献 (19)附录:总电路图 (20)实时钟的设计1 引言单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。
实时时钟课程设计
实时时钟课程设计一、课程目标知识目标:1. 学生能理解实时时钟的基本概念,掌握时钟的组成部分及运行原理。
2. 学生能够运用所学知识,分析并描述实时时钟的显示格式和功能。
3. 学生了解实时时钟在日常生活和科技领域中的应用。
技能目标:1. 学生能够运用所学知识,设计并制作一个简单的实时时钟电路。
2. 学生通过实际操作,提高动手实践能力和问题解决能力。
3. 学生能够运用实时时钟知识,解决实际问题,培养创新思维。
情感态度价值观目标:1. 学生对实时时钟产生兴趣,培养主动学习和探究的精神。
2. 学生在团队协作中,学会相互尊重、沟通和协作,培养集体荣誉感。
3. 学生认识到实时时钟在科技发展中的重要性,增强对科技进步的热爱和责任感。
本课程针对五年级学生,结合学生好奇心强、动手能力逐渐提高的特点,以实用性为导向,旨在帮助学生掌握实时时钟相关知识,提高实践操作能力,培养科学素养和团队协作精神。
课程目标具体、可衡量,便于教学设计和评估。
二、教学内容本章节教学内容主要包括以下三个方面:1. 实时时钟基础知识:- 时钟的组成部分:时钟芯片、晶体振荡器、计数器、显示装置等。
- 时钟运行原理:振荡器产生稳定的时钟信号,计数器对时钟信号进行计数,显示装置显示时间。
2. 实时时钟的应用与设计:- 显示格式:12小时制和24小时制,了解其转换方法。
- 功能介绍:闹钟、定时器、日期显示等。
- 设计实时时钟电路:使用时钟芯片,结合晶体振荡器、计数器等组件,设计并制作一个简单的实时时钟。
3. 实时时钟在实际应用中的案例:- 日常生活:电子时钟、手机、电脑等设备中的应用。
- 科技领域:物联网、智能设备、嵌入式系统等领域的应用。
教学大纲安排如下:1. 第一周:实时时钟基础知识学习,了解时钟的组成部分和运行原理。
2. 第二周:学习实时时钟的显示格式和应用功能,进行实际操作。
3. 第三周:设计实时时钟电路,分组进行实践操作,培养团队协作能力。
实时时钟设计报告
单片机系统设计》(课程设计)实验报告题目:实时时钟组号:任课教师:组长:成员:联系方式:年月日目录一、实施方案11.1设计要求 11.2实现功能 11.3设计方案 1二、原理简述 22.1主控模块 22.2时钟电路 32.3显示电路 52.4键盘输入电路72.5蜂鸣器电路8三、调试过程93.1 硬件调试93.2软件调试9四、主要程序10五、心得体会12实施方案1.设计要求通过对DS1302 编程,实现实时时钟功能,用数码管显示时、分,用小数点作秒闪。
可用键盘设置时间。
2.实现功能本组的课程设计成果最终将实现如下功能:(1)实现实时时钟功能,四位数码管前两位显示时、后两位显示分,小数点作秒闪;(2)按下S8键,可实现对小时的加1 设置;(3)按下S7键,可实现对分钟的加1 设置;(4)按下S1 键,可实现小时的单独显示;(5)实现整点蜂鸣器报时功能。
3.设计方案根据系统设计的功能的要求,初步确定设计系统由主控模块、时钟电路、显示电路、键盘输入电路及蜂鸣器电路组成。
电路系统框图如图1 所示。
图1 系统设计框图其中,主控芯片使用51 系列AT89C52单片机,时钟芯片使用DS1302,晶振为11.0592MHz,显示电路由四位共阳LED 数码管完成,键盘采用线性连接,使用查询法实现调整功能,蜂鸣器电路由有源蜂鸣器完成。
二、原理简述1. 主控模块图2 AT89C52 管脚图AT89C52是低功耗、高性能的CMOS8位单片机。
片内带有8KB 的Flash 存储器,且允许在系统内改写或用编程器编程。
另外,AT89C52 的指令系统和引脚与80C52 完全兼容。
管脚功能如下:VCC:供电电压;GND:接地;P0口:P0口为一个8 位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。
;P1 口:P1口是一个内部提供上拉电阻的8位双向I/O 口,P1口缓冲器能接收输出4TTL 门电流;P2口:P2口为一个内部上拉电阻的8位双向I/O 口,P2口缓冲器可接收,输出4个TTL 门电流,当P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。
c课程设计实时钟表
c课程设计实时钟表一、课程目标知识目标:1. 学生能够理解实时钟表的基本概念,掌握时、分、秒的相互关系及其在钟表上的表示方法。
2. 学生能够运用所学知识,识别并准确读取各种类型的实时钟表时间。
3. 学生了解钟表的历史发展及其在日常生活和科技领域中的应用。
技能目标:1. 学生能够通过观察、分析,正确设置和调整钟表时间,培养实际操作能力。
2. 学生能够运用所学知识解决与实时钟表相关的问题,提高问题解决能力。
3. 学生能够运用信息技术手段,设计并制作简单的实时钟表模型。
情感态度价值观目标:1. 学生培养对时间观念的尊重,养成守时、珍惜时间的良好习惯。
2. 学生在小组合作中,培养团队协作精神,学会分享和交流。
3. 学生通过学习实时钟表,认识到科技与生活的紧密联系,增强对科学技术的兴趣和探索精神。
课程性质:本课程为小学四年级信息技术课程,旨在通过实时钟表的学习,让学生掌握时间的基本概念,提高观察、操作和问题解决能力。
学生特点:四年级学生对新鲜事物充满好奇,动手操作能力强,但注意力容易分散,需要结合实际操作和趣味性教学。
教学要求:教师应注重理论与实践相结合,运用生动、形象的教学方法,激发学生兴趣,引导学生在实践中掌握知识,培养技能和情感态度价值观。
通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 实时钟表的基本概念:时、分、秒的定义及其关系,钟表的构造及其工作原理。
2. 钟表时间的读取与设置:各类钟表(电子钟、指针钟、数字钟)的读取方法,如何调整和设置时间。
3. 钟表的应用与制作:- 钟表在日常生活和时间管理中的应用;- 设计并制作简易实时钟表模型,运用信息技术手段实现基本功能。
4. 钟表与科技发展:介绍钟表的历史演变,探讨钟表在科技领域的应用。
教学大纲安排:第一课时:实时钟表的基本概念及构造,了解时、分、秒的关系。
第二课时:学习读取和设置各类钟表时间,培养实际操作能力。
第三课时:探索钟表在日常生活和时间管理中的应用,培养时间管理意识。
实时时钟课程设计报告
河海大学计算机与信息学院(常州)课程设计报告题目实时时钟电路设计专业、学号自动化0862510126授课班号275803学生姓名潘增岩同组同学倪舟指导教师奚吉完成时间2010-12-30课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:实时时钟电路设计Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、增强学以致用的思想,提高解决问题的能力和百折不饶的品质。
二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、数字钟为人们日常生活提供准确时间,并且可以提供定时闹钟,整点报时等。
三、课程设计预期效果1、本次课设统一采用学校实验箱Alter Cyclone EP1C6Q240C8N型号。
2、进度安排①2010.10.27 ——2010.10.28 深入理解课题要求,查询相关的资料。
②2010.10.28 ——2010.10.29 编写各个功能模块并进行相应测试。
③2010.10.29 ——2010.10.30 整体功能的测试,为答辩做相关准备。
④2010.10.30 ——2010.10.31 撰写课程设计论文。
学生姓名:潘增岩专业年级:08自动化摘要Verilog是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。
随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD结构,成为设计专用集成电路和其他集成电路的主流。
通过应用Verilog HDL对多功能电子钟的设计,达到对Verilog HDL的理解,同时对CPLD器件进行简要了解。
数字钟是日常生活中随处可见的一种生活用品,市场上出现的数字钟大都非常的花哨,外观很美,而它们实际上都是同一个原理。
数字钟是采用设计数字电路,并显示出时、分、秒,广泛用于个人家庭,车站,学校,医院等公共场所,成为人们日常生活中不可少的必需品。
本次数字钟采用Verilog HDL语言设计一个数字钟电路,并且在8个数码管上显示。
时分电子时钟课程设计
时分电子时钟课程设计一、课程目标知识目标:1. 学生能理解时分电子时钟的基本原理,掌握时钟的数字电路组成和工作方式。
2. 学生能够描述电子时钟中时分秒的显示方式,了解其换算关系。
3. 学生掌握电子时钟的调整方法,包括校时、校分等操作。
技能目标:1. 学生能够运用所学知识,设计简单的时分电子时钟电路。
2. 学生通过动手实践,提高电子元件的连接和调试技能。
3. 学生能够运用逻辑思维和问题解决能力,分析和解决电子时钟在使用过程中可能出现的简单问题。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,增强学习电子技术的自信心。
2. 学生在团队合作中,培养沟通与协作能力,学会相互尊重和关心。
3. 学生认识到电子时钟在现代生活中的重要性,增强珍惜时间的意识。
课程性质:本课程为电子技术实践课程,以理论联系实际,注重培养学生的动手操作能力和实际应用能力。
学生特点:五年级学生,具有一定的逻辑思维能力和动手操作能力,对新鲜事物充满好奇心。
教学要求:结合学生特点,采用启发式教学,激发学生兴趣,引导学生主动探索,注重培养学生的实际操作能力。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 电子时钟原理:介绍电子时钟的基本工作原理,包括振荡器、分频器、计数器、译码器等组成部分的功能和作用。
相关教材章节:第五章《数字电路基础》2. 时分秒显示与换算:讲解时分秒的显示方式,以及它们之间的换算关系。
相关教材章节:第六章《计数器与显示电路》3. 电子时钟电路设计:引导学生学习设计简单的时分电子时钟电路,包括电路图的绘制、元件的选择和连接。
相关教材章节:第七章《数字电路设计与应用》4. 电子时钟调整方法:介绍电子时钟的校时、校分等调整方法,以及注意事项。
相关教材章节:第八章《数字电路调试与维修》5. 实践操作:组织学生进行电子时钟的组装、调试和测试,培养学生的动手操作能力。
相关教材章节:实验指导书《数字电路实验》教学进度安排:第一课时:电子时钟原理学习,了解电子时钟的组成和功能。
电子实时时钟万年日历系统-单片机课程设计(含电路图、流程图、汇编语言)
一、题目:电子实时时钟/万年日历系统二、功能要求:1.基本要求:⑴显示准确的北京时间(时、分、秒),可用24小时制式;⑵随时可以调校时间。
2.发挥要求:⑴增加公历日期显示功能(年、月、日),年号只显示最后两位;⑵随时可以调校年、月、日;⑶允许通过转换功能键转换显示时间或日期。
三、方案考虑:1、硬件方案:⑴显示器采用6位LED数码管(共阳),可分别显示时间或日期。
⑵显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。
但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。
可采用74LS244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码。
⑶采用“一键多用方案”,以减少按键数目。
本方案采用了4按键。
⑷整体上要考虑:结构简单、布局美观、操作方便、成本低廉。
2、设计电路图如下:3、元件清单:(我们使用的是TX-1C开发板)⑴ 89C52 1个⑵IC座(40脚) 3个(其中1个用于接插89C51、2个用于接插LED段数码管)。
⑶ 74LS244 1个(用于驱动6个共阳的LED段数码管)。
⑷ IC座(20脚) 1个(用于接插74LS244)。
(5)显示器:LED_8段数码管(共阳型)6个三极管:(6)PNP(8550)6个(用于驱动6个共阳型LED段数码管)。
(7)微型开关:3个(其中1个用于复位电路、其它用于键盘)。
(8)晶体振荡器(12MHz):1个(用于振荡电路)。
(9)电阻器:⑴ 3KΩ 1个(用于系统复位电路)。
⑵ 1KΩ 6个(用作PNP三极管基极电阻)。
⑶ 100Ω 7个(驱动器用作74LS244输出限流电阻)。
(10)电容器:⑴ 10μF1个(用于系统复位电路)。
⑵ 30 pF 2个(用于系统振荡电路)。
(11)其它:⑴万能电路板(10×15):1块⑵焊锡条: 2米⑶带插头、座的电源端子: 1条⑷各种颜色外皮的导线:各1米(12)工具:1.电烙铁:1把2.剪钳:1把3.镊子:1把4.万用表:1个(13)设备:编程器(MEP300或TOP851)6个4、软件方案:(1)使用全汇编编写(2)时钟基准时间由单片机内部定时中断来提供,定时时间应该乘以一个整数得到,且不宜太长或太短,最长不能超过16位定时器的最长定时时间,最短不能少于定时中断服务程序的执行时间。
实时时钟实验课程设计
实时时钟实验课程设计一、课程目标知识目标:1. 学生能够理解实时时钟的基本原理,掌握时钟的组成部分及其功能。
2. 学生能够掌握日期和时间的表示方法,理解时、分、秒的概念及其相互关系。
3. 学生能够了解实时时钟在日常生活和科技领域中的应用。
技能目标:1. 学生能够运用所学知识,独立完成实时时钟电路的搭建和调试。
2. 学生能够通过实际操作,学会读取和设置实时时钟,提高动手实践能力。
3. 学生能够运用编程思维,编写简单的程序实现对实时时钟的控制。
情感态度价值观目标:1. 学生能够培养对时间管理和珍惜时间的意识,养成良好的作息习惯。
2. 学生能够培养团队协作意识,学会在小组合作中共同解决问题。
3. 学生能够体验科技的魅力,激发对科学技术的兴趣和求知欲。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,培养学生的动手能力和创新能力。
学生特点:六年级学生具有一定的电子知识基础,好奇心强,善于观察和思考,具备一定的合作能力。
教学要求:教师需注重理论与实践相结合,引导学生主动探究,关注学生的个体差异,提高学生的综合素养。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 实时时钟基础知识:- 时钟的组成部分及其功能- 时、分、秒的概念及其相互关系- 日期和时间的表示方法2. 实时时钟电路原理:- 时钟电路的基本原理- 常见时钟芯片的介绍与应用- 电路元件的识别与使用3. 实践操作:- 实时时钟电路的搭建与调试- 读取和设置实时时钟- 编写程序实现对实时时钟的控制4. 教学内容安排与进度:- 第一课时:实时时钟基础知识学习- 第二课时:实时时钟电路原理学习- 第三课时:实践操作,实时时钟电路搭建与调试- 第四课时:实践操作,读取和设置实时时钟- 第五课时:实践操作,编写程序实现对实时时钟的控制5. 教材章节及内容:- 教材第四章第二节:时钟电路的原理与应用- 教材第五章第三节:实时时钟芯片的介绍与编程教学内容注重科学性和系统性,结合课程目标,确保学生在掌握理论知识的基础上,提高实践操作能力。
单片机仿真课程设计——基于51单片机的实时时钟
基于51系列单片机及DS1302时钟芯片的实时时钟仿真设计一、课程设计目的意义通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解并灵活运用。
二、实现目标本设计主要为实现一款可正常显示时钟/日历的实时电子时钟。
对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现电子时钟。
本设计应用AT89C52芯片作为核心,LCD显示屏,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。
这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。
三、硬件设计本设计采用具有32根I/O引脚的AT89C52单片机。
AT89C52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含4KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-52兼容。
片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。
因此,AT89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域。
AT89C52具有以下主要性能:1.4KB可改编程序Flash存储器;2.全静态工作:0——24Hz;3.128×8字节内部RAM;4.32个外部双向输入/输出(I/O)口;5.6个中断优先级; 2个16位可编程定时计数器;6.可编程串行通道;7.片内时钟振荡器。
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。
eda课程设计数字时钟设计
eda课程设计数字时钟设计一、教学目标本课程旨在通过数字时钟设计项目,让学生掌握EDA(电子设计自动化)工具的基本使用,理解数字电路的设计原理,培养学生的动手实践能力和创新能力。
具体目标如下:1.知识目标:•掌握数字电路的基本概念和设计方法。
•学习常用的EDA工具,如Multisim、Proteus等,并能够运用它们进行数字电路的设计和仿真。
•了解时钟信号的产生和应用,理解RTC(实时时钟)的工作原理。
2.技能目标:•能够运用EDA工具设计简单的数字时钟电路。
•能够进行电路仿真,调试并优化设计。
•学会阅读和理解电子电路图,培养良好的电子工程实践能力。
3.情感态度价值观目标:•培养学生对电子科技的兴趣,增强其科技意识。
•培养学生团队协作精神和自主学习能力。
•培养学生解决问题的能力,增强其面对挑战的信心。
二、教学内容本课程的教学内容主要包括数字电路基础、EDA工具的使用、数字时钟设计原理和RTC的应用。
具体安排如下:1.数字电路基础:•数字逻辑门电路•组合逻辑电路•时序逻辑电路2.EDA工具的使用:•Multisim和Proteus的基本操作•数字电路图的绘制和仿真3.数字时钟设计原理:•常见的时钟信号生成电路•数字时钟电路的设计方法4.RTC的应用:•RTC的工作原理•RTC在数字时钟中的应用三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:用于讲解数字电路基础和EDA工具的使用方法。
2.案例分析法:通过分析具体的数字时钟设计案例,让学生理解数字时钟的设计过程。
3.实验法:让学生动手实践,使用EDA工具进行数字时钟的设计和仿真。
四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:选用《数字电路与EDA技术》作为主要教材。
2.参考书:提供《EDA技术教程》等参考书籍,供学生课后自主学习。
3.多媒体资料:制作课件和教学视频,用于课堂讲解和课后复习。
4.实验设备:提供计算机、EDA工具软件、电路仿真实验板等,供学生进行实验和实践。
课程设计数字时钟设计方案
课程设计数字时钟设计方案一、课程目标知识目标:1. 学生理解数字时钟的构成和工作原理,掌握时、分、秒的概念及其相互关系。
2. 学生学会运用所学数学知识,设计并计算出任意给定时间点的数字时钟显示。
3. 学生掌握24小时计时法,并能将其应用于数字时钟的设计。
技能目标:1. 学生能够运用所学知识,独立设计一个简单的数字时钟电路,并正确显示时间。
2. 学生通过实际操作,培养动手能力、问题解决能力和团队协作能力。
3. 学生能够运用数学知识进行时间计算,提高逻辑思维能力和数学应用能力。
情感态度价值观目标:1. 学生培养对数字电路和数学的兴趣,激发学习热情,形成积极的学习态度。
2. 学生在团队协作中,学会尊重他人,培养合作精神和沟通能力。
3. 学生通过数字时钟设计,认识到数学知识在实际生活中的应用价值,增强实践意识。
课程性质:本课程为信息技术与数学跨学科综合实践活动,旨在让学生将所学数学知识应用于实际生活,提高学生的创新意识和动手能力。
学生特点:六年级学生具备一定的数学基础和动手能力,对新鲜事物充满好奇心,但可能缺乏实际操作经验。
教学要求:教师应注重引导学生运用所学知识解决实际问题,鼓励学生进行团队合作,培养学生的创新精神和实践能力。
教学过程中,关注学生的个体差异,给予不同学生个性化的指导。
通过课程学习,使学生达到上述具体的学习成果。
二、教学内容本课程教学内容紧密围绕课程目标,结合课本知识,制定以下详细教学大纲:1. 数字时钟基础知识:- 时、分、秒的概念及相互关系- 24小时计时法及应用2. 数字时钟电路设计:- 数字时钟的构成及工作原理- 常用电子元件的认识与使用(如LED灯、按钮、电阻等)- 简单数字时钟电路图的绘制3. 数字时钟程序设计:- 编程软件的认识与使用- 基本程序结构(循环、条件语句等)- 数字时钟程序编写与调试4. 实践操作与展示:- 分组进行数字时钟电路搭建与程序编写- 各小组展示作品,分享设计过程和经验- 评价与反馈,总结经验教训教学内容安排与进度:1. 第一周:数字时钟基础知识学习,了解时、分、秒的关系,掌握24小时计时法。
数字时钟课程设计实验内容
数字时钟课程设计实验内容一、课程目标知识目标:1. 学生能理解数字时钟的显示原理,掌握时、分、秒的概念及其相互关系。
2. 学生能够运用所学知识,分析并描述数字时钟的显示方式及其变化规律。
3. 学生了解数字时钟在实际生活中的应用,认识到数字时钟的实用性。
技能目标:1. 学生能够独立操作简单的数字时钟设备,进行时间设定和调整。
2. 学生通过课程实验,培养动手能力、观察力和问题解决能力。
3. 学生能够运用数字时钟相关知识,设计并制作简单的数字时钟模型。
情感态度价值观目标:1. 学生培养对时间管理和珍惜时间的意识,养成守时、高效的作息习惯。
2. 学生在实验过程中,培养合作精神、探究精神和创新意识。
3. 学生通过学习数字时钟,激发对电子科技的兴趣,提高对科技发展的认识。
课程性质:本课程为信息技术与电子学的综合实践课程,以实验操作和观察为主,结合理论知识,培养学生动手能力和实际应用能力。
学生特点:五年级学生对新鲜事物充满好奇心,具备一定的动手能力,但注意力容易分散,需要通过趣味性和实践性强的活动来提高学习兴趣。
教学要求:课程设计要注重理论与实践相结合,注重学生的参与度和互动性,通过有趣的实验活动,引导学生主动探究数字时钟的原理和应用。
同时,关注学生的个体差异,给予不同层次的学生指导和帮助,确保课程目标的实现。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容本课程依据课程目标,结合教材内容,组织以下教学大纲:1. 数字时钟基础知识- 时、分、秒的概念及其相互关系- 数字时钟的显示原理2. 数字时钟的组成与功能- 数字时钟的电路组成- 数字时钟的显示方式及其变化规律- 数字时钟的功能及应用3. 数字时钟操作与制作- 数字时钟的操作方法- 数字时钟模型的制作教学进度安排如下:第一课时:数字时钟基础知识- 导入:介绍时间的重要性,引导学生关注时间管理- 新课:讲解时、分、秒的概念及其相互关系,学习数字时钟的显示原理第二课时:数字时钟的组成与功能- 复习:回顾上节课的知识点- 新课:学习数字时钟的电路组成,了解显示方式及其变化规律,探讨数字时钟的功能及应用第三课时:数字时钟操作与制作- 操作实践:指导学生进行数字时钟操作,体验时间设定与调整- 制作实践:引导学生分组制作数字时钟模型,培养动手能力和合作精神教学内容与课本紧密关联,注重科学性和系统性,确保学生能够掌握数字时钟相关知识,并能够应用于实际操作和制作中。
rtc时钟的课程设计
rtc时钟的课程设计一、课程目标知识目标:1. 学生能理解RTC时钟的基本概念,掌握其工作原理;2. 学生能了解RTC时钟在日常生活和科技领域中的应用;3. 学生能掌握RTC时钟与计算机系统时间同步的方法。
技能目标:1. 学生能通过实际操作,学会设置和调整RTC时钟;2. 学生能运用所学知识,解决与时间相关的实际问题;3. 学生能运用编程语言,实现RTC时钟与计算机系统时间的同步。
情感态度价值观目标:1. 学生培养对时间管理和珍惜时间的意识,养成良好的时间观念;2. 学生在探究RTC时钟的过程中,增强对科学技术的兴趣和好奇心;3. 学生通过团队协作,培养沟通与合作的良好品质。
课程性质:本课程为信息技术课程,旨在让学生了解和掌握RTC时钟的相关知识,提高学生的实际操作能力。
学生特点:五年级学生对时间概念有了一定的认识,对科技产品充满好奇心,具备一定的动手能力和团队协作能力。
教学要求:结合学生特点,通过理论讲解、实际操作和团队合作,使学生在掌握RTC时钟知识的基础上,提高实际应用能力。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. 引言:介绍RTC时钟的概念、发展历程及其在现代社会的重要性。
- 相关章节:课本第三章第二节“实时时钟RTC”2. 理论知识:- RTC时钟的组成与工作原理- 时钟芯片的常用参数与性能指标- RTC时钟在各类设备中的应用实例- 相关章节:课本第三章第二节“实时时钟RTC”3. 实际操作:- RTC时钟的设置与调整方法- RTC时钟与计算机系统时间的同步操作- 相关章节:课本第三章实践操作部分4. 技能拓展:- 编程实现RTC时钟与计算机系统时间的同步- 探讨时间同步在物联网、智能家居等领域的重要性- 相关章节:课本第三章实践操作部分及拓展阅读5. 团队合作与讨论:- 分组讨论RTC时钟在实际应用中的优缺点- 分组研究RTC时钟在不同场景下的应用案例- 相关章节:课本第三章实践操作部分及拓展阅读教学安排与进度:共4课时- 第1课时:引言、理论知识学习- 第2课时:实际操作1,RTC时钟设置与调整- 第3课时:实际操作2,RTC时钟与计算机系统时间同步- 第4课时:技能拓展、团队合作与讨论教学内容科学、系统,结合课本内容,注重理论与实践相结合,旨在提高学生对RTC时钟知识的掌握和应用能力。
实时时钟课程设计
实时时钟课程设计一、课程目标知识目标:1. 让学生了解实时时钟的基本概念,掌握时钟的组成部分及时钟运行的原理。
2. 使学生理解时间与日期的设置方法,学会使用编程语言进行实时时钟的设计与显示。
技能目标:1. 培养学生运用所学知识,独立设计并实现一个实时时钟的能力。
2. 培养学生通过小组合作,解决实时时钟设计过程中遇到的问题,提高团队协作能力。
情感态度价值观目标:1. 培养学生对实时时钟的兴趣,激发他们探索时间与科技的奥秘。
2. 培养学生珍惜时间,养成良好的时间管理意识,树立正确的价值观。
课程性质:本课程为信息技术课程,旨在让学生掌握实时时钟的设计与编程实现,提高他们的实际操作能力和创新能力。
学生特点:学生为四年级学生,具备一定的计算机操作基础和编程知识,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,采用任务驱动法,引导学生主动探究,培养他们的实践能力和创新精神。
将课程目标分解为具体的学习成果,以便于后续的教学设计和评估。
二、教学内容1. 实时时钟基础知识:- 时钟的组成部分:时针、分针、秒针、数字显示等。
- 时钟运行原理:时间计数器、时钟振荡器等。
2. 实时时钟编程设计:- 时间与日期的设置方法:学习使用编程语言进行时间日期的获取与设置。
- 时钟界面设计:运用图形用户界面设计时钟的显示效果。
3. 教学大纲:- 第一课时:实时时钟基础知识学习,了解时钟的组成部分和运行原理。
- 第二课时:学习时间与日期的设置方法,进行简单的时钟编程实践。
- 第三课时:时钟界面设计,提高实时时钟的显示效果。
- 第四课时:综合实践,小组合作完成一个实时时钟的设计与编程。
4. 教材章节:- 《信息技术》四年级下册第四章:实时时钟设计与编程。
- 内容列举:实时时钟基础知识、实时时钟编程设计、时钟界面设计等。
5. 教学内容安排与进度:- 每课时1小时,共计4课时。
- 第一、二课时:学习实时时钟基础知识和编程方法。
课程设计 实时时钟..
单片机原理课程设计报告题目:实时时钟院(系)专业年级姓名学号指导教师设计时间2013.11.25-2013.12.6电子信息工程专业10级学生单片机原理课程设计任务书目录1. 设计要求与方法论证 (3)1.1 设计要求 (3)1.2 系统基本方案选择和论证 (3)1.2.1 单片机芯片的选择方案和论证 (3)1.2.2 显示模块选择方案和论证 (4)1.3 电路设计最终方案决定 (4)2. 系统的硬件设计与实现 (4)2.1 电路设计框图 (4)2.2 系统硬件概述 (5)2.3 系统硬件模块 (5)2.3.1 AT89C51 (5)2.3.2 DS1302 (6)2.3.3点阵式LCD (7)3.系统的软件设计 (7)4. 硬件电路调试 (7)5. 结论 (9)6. 致谢 (9)参考文献 (10)附录 (11)实时时钟摘要:二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。
实时时钟的开发与研究在信息化时代的今天亦是当务之急,因为它有极广阔的应用市场,可以说遍及人们生活的每一个角落。
本文设计的实时时钟属于小型智能家用电子产品。
利用单片机进行控制,实时时钟芯片DS1302时钟芯片进行记时,本文设计的实时时钟具有读数方便,操作简单,适用范围宽等特点。
关键字:实时时钟,Proteus,51单片机,DS13021.设计要求与方案论证1.1设计要求(1)采用DS1302作为实时时钟芯片进行计时(2)读出DS1302中的时间数据(3)能显示时间数据,包括年月日,时分秒(4)显示方式不限1.2系统基本方案选择和论证1.2.1 单片机芯片的选择方案和论证方案一:用中小规模集成电路74/54系列和CC4000系列及555集成电路构建秒脉冲源,再利用分频器、计数器、缓存器等得到分、时、日、月、年的计时信号,最后用译码器驱动数码管显示,得到时钟功能。
方案二:采用AT89C51单片机,完全兼容MCS-51系列单片机的所有功能,并且本身带有2K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单方便等优点,具体如下:1)AT89C51单片机是最早期也最典型的产品,低功耗、高性能、采用CHMOS 工艺的8位单片机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理课程设计报告题目:实时时钟院(系)专业年级姓名学号指导教师设计时间2013.11.25-2013.12.6电子信息工程专业10级学生单片机原理课程设计任务书课程设计题目二、实时时钟指导教师职称高级工程师设计任务和要求:1.基本要求(1)采用DS1302作为实时时钟芯片进行计时(2)读出DS1302中的时间数据(3)能显示时间数据,包括年月日,时分秒(4)显示方式不限2. 设计步骤(1) 使用Proteus按设计要求绘制电路图。
(2) 按要求编写相应程序。
(3) 使用Proteus仿真程序,对程序进行调试。
(4) 撰写课程设计报告3.撰写课程设计报告课程设计报告内容包括题目、摘要、目录、正文、结论、致谢、参考文献等。
学生在完成上述全部工作之后,应将全部内容以先后顺序写成设计报告一份,阐述整个设计内容,要求重点突出、特色鲜明、语言简练、文字通畅,字迹工整。
报告书以A4纸打印,装订成册(文字不少于3000 字)。
目录1. 设计要求与方法论证 (3)1.1 设计要求 (3)1.2 系统基本方案选择和论证 (3)1.2.1 单片机芯片的选择方案和论证 (3)1.2.2 显示模块选择方案和论证 (4)1.3 电路设计最终方案决定 (4)2. 系统的硬件设计与实现 (4)2.1 电路设计框图 (4)2.2 系统硬件概述 (5)2.3 系统硬件模块 (5)2.3.1 AT89C51 (5)2.3.2 DS1302 (6)2.3.3点阵式LCD (7)3.系统的软件设计 (7)4. 硬件电路调试 (7)5. 结论 (9)6. 致谢 (9)参考文献 (10)附录 (11)实时时钟摘要:二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。
实时时钟的开发与研究在信息化时代的今天亦是当务之急,因为它有极广阔的应用市场,可以说遍及人们生活的每一个角落。
本文设计的实时时钟属于小型智能家用电子产品。
利用单片机进行控制,实时时钟芯片DS1302时钟芯片进行记时,本文设计的实时时钟具有读数方便,操作简单,适用范围宽等特点。
关键字:实时时钟,Proteus,51单片机,DS13021.设计要求与方案论证1.1设计要求(1)采用DS1302作为实时时钟芯片进行计时(2)读出DS1302中的时间数据(3)能显示时间数据,包括年月日,时分秒(4)显示方式不限1.2系统基本方案选择和论证1.2.1 单片机芯片的选择方案和论证方案一:用中小规模集成电路74/54系列和CC4000系列及555集成电路构建秒脉冲源,再利用分频器、计数器、缓存器等得到分、时、日、月、年的计时信号,最后用译码器驱动数码管显示,得到时钟功能。
方案二:采用AT89C51单片机,完全兼容MCS-51系列单片机的所有功能,并且本身带有2K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单方便等优点,具体如下:1)AT89C51单片机是最早期也最典型的产品,低功耗、高性能、采用CHMOS 工艺的8位单片机。
2)它在硬件资源和功能、软件指令及编程上与Intel 80C3X单片机完全相同。
在应用中可直接替换。
3)在AT89C51内部有FLASH程序存储器,既可用常规的编程器编程,也可用在线使之处于编程状态对其编程。
编程速度很快,擦除时也无需紫外线,非常方便。
4)AT89C5X系列可认为是Intel 80C3X的内核与Atmel FLASH技术的结合体。
它为许多嵌入式控制系统提供了灵活、低成本的解决方案。
方案比较:由两种方案可以看出,用方案一实现设计要求需要使用大量的集成电路,系统结构复杂,电路连接困难。
单个芯片的质量对系统的稳定性影响甚大,逻辑功能出现错误不易定位,整体调试费时费力。
扩展系统功能工作量极大,甚至有可能要将整个设计方案推倒重来。
方案二利用单片机作为控制核心,硬件按照技术手册要求连接后基本不需要调试,相关的逻辑功能全部由软件实现,修改方便。
功能扩展只需要在现有程序的基础上增加函数即可实现,无需对已实现功能的程序进行改动,调试方便,问题定位快捷、准确。
综上所述,我们采用方案二实现系统总体要求。
1.2.2 显示模块选择方案和论证方案一:采用LED数码管动态扫描, LED数码价格适中,对于显示数字最合适,而且采用动态扫描方法与单片机连接时,占用的单片机口线少,驱动电路简单,且LED在亮度、功耗、可视角度和刷新速率等方面,都更具很大的优势。
但所需数码管太多焊接困难极易出错,所以不采用LED数码管作为显示。
方案二:采用点阵式LCD显示,LCD1602是字符型液晶,显示字母和数字比较方便,控制简单,功耗低,体积小,显示内容丰富,超薄轻巧,可以用电池供电,便于携带,成本较低。
在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
本设计需要显示较多的数字和字符,因此,采用点阵式LCD显示。
1.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定:采用AT89C51作为主控制系统;点阵式LCD作为显示;DS1302提供时钟。
2.系统的硬件设计与实现2.1 电路设计框图0123456776543210XTAL218XTAL119ALE 30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C S 11C S 22G ND 3V C C 4V 05R S 6R /W 7E 8D B 09D B 110D B 211D B 312D B 413D B 514D B 615D B 716R S T 17-V o u t 18LCD1AMPIRE128X64X1CRYSTALC133pC233pR110k R210k R310k R410k R510k R610k R710k R810k50%RV11kRST 5SCLK 7I/O6X12X23VCC18VCC21U2DS1302BAT13VX232.768MHzC31pFC410pFC510pFR101k C610uR910k2.2 系统硬件概述本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在4.5V 超低压工作;显示部分用LCD1602实现,能够同时显示16x02即32个字符;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM 的实时时钟电路,可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V.采用三线接口与单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM 寄存器。
可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能,本设计中为DS1302增加了备用电池,当主电源掉电时,备用电池自动为其供电。
2.3 系统硬件模块2.3.1 AT89C51 各引脚的功能为:VCC :供电电压。
GND :接地。
P0口:P0口为一个8位双向I/O 口。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O 口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,P3.0 RXD(串行输入口),P3.1 TXD(串行输出口),P3.2 /INT0(外部中断0),P3.3 /INT1(外部中断1),P3.4 T0(记时器0外部输入),P3.5 T1(记时器1外部输入)。
2.3.2 DS1302各引脚的功能为:1:Vcc2:5V电源。
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电;2、3:X1、X2 是外接晶振脚(32.768KHZ的晶振);4:地(GND);5:CE/RST:复位脚;6:I/O:数据输入输出口(双向);7:SCLK:串行时钟,输入;8:Vcc1:备用电池端。
2.3.3 点阵式LCD3. 系统的软件设计4. 硬件电路调试76543210C S 11C S 22G N D 3V C C 4V 05R S 6R /W 7E 8D B 09D B 110D B 211D B 312D B 413D B 514D B 615D B 716R S T 17-V o u t 18LCD1AMPIRE128X6450%RV11k当连接完电路、编写完程序以后,需要进行对各个器件进行检测,特别注意DS1302芯片。
进行仿真时如果LCD不显示数据应该检测编写的程序是否正确。
DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。
DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。
这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。
传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。
但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。