基于PSOC3的自报时系统(时钟).docxVIP

  • 11
  • 0
  • 约2.42万字
  • 约 28页
  • 2018-06-23 发布于浙江
  • 举报
基于PSOC3的自报时系统(时钟)

基于PSOC3的自动报时系统.功能:可以调时、计时。显示日期,时间。还具有闹钟功能。整点报时原理图如下:引脚分配:P2是LCD的接口。Pin_3\Pin_4是两个按钮。Pin_1是蜂鸣器。Mian.c的程序如下:#include device.huint8 StatusRegister;uint8 InterruptCnt;uint8 secl,sech,minl,minh,houl,houh,a_secl=9,a_sech=5,a_minl=9,a_minh=5,a_houl=3,a_houh;uint16 sec=50,min=59,hou=3,day=1,mon=1,yea=2013,a_sec=0,a_min=0,a_hou=0;uint8 my_mode=0;flag=0;char*alarmclock_state=OFF;uint8 alarmclock_other_flag=0;uint8 alarmclock_flag1=0,alarmclock_flag2=0,alarmclock_flag3=0; uint8 blank_flag=0;uint8 test_flag=0;uint8 mode0_flag=0;uint8 baoshi_flag=0;uint8 baoshi_cishu=0;uint8 cnt=0;uint8 alarm_bee_flag=0;CY_ISR(TT1){ test_flag++; my_mode=0; if(alarm_bee_flag==1) {Pin_1_Write(0); alarm_bee_flag=0;} alarmclock_flag2=0; alarmclock_flag3=0; alarmclock_state=OFF; mode0_flag=0;}CY_ISR(MY_I){ if((a_houh==(hou/10))(a_houl==(hou%10))(a_minh==(min/10))(a_minl==(min%10))(a_sech==(sec/10))(a_secl==(sec%10))(alarmclock_flag1==1)) {alarm_bee_flag=1;} if(alarm_bee_flag==1) {Pin_1_Write(1);} if(baoshi_flag==1) { cnt++; if(cnt2) {Pin_1_Write(1);} if(cnt2) {Pin_1_Write(0);} if(cnt==4) {cnt=0; baoshi_cishu--;if(baoshi_cishu==0){baoshi_flag=0;}} } else {baoshi_flag=0;} StatusRegister = Timer_1_ReadStatusRegister(); InterruptCnt++;if(InterruptCnt==2){ InterruptCnt=0; sec++;if(sec==60) { sec=0; min++; if(min==60) { hou++; min=0; if(hou==24) {{hou=0; day++; if(day==29) {if(~((yea/4==0yea/100!=0)||(yea/400==0))(mon==2)) {day=0; mon++;}} if(day==31) {if(~((mon==1)||(mon==3)||(mon==5)||(mon==7)||(mon==8)||(mon==10)||(mon==12))) {day=0; mon++;}} if(day==32) { day=0; mon++; } if(mon==13) {yea++;}} } } } if((min==0)(sec==0)) {baoshi_flag=1; baoshi_cishu=hou;} }} CY_ISR(B_b){ if(my_mode==0) { mode0_flag++; if(mode0_flag==15) {mode0_flag=0;} } if(my_mode==1) { if(alarmclock_flag3==0) { alarmclock_flag1++; if(alarmclock_flag1==2) {alarmclock_flag1=0; } if(alarmclock_flag1==1) {alarmclock_flag2++; if(alarmclock_flag2==2) {alarmclock_flag2=0;} } } else { switch(alarmclock_flag3) {case 1:a_houh++;if(

文档评论(0)

1亿VIP精品文档

相关文档