基于单片机的多功能电子时钟设计内容摘要:
0x0F)。 write_sfm(0,u0)。 lcd_w(0x80+0x40+1)。 //显示时 lcd_w(0x38)。 lcd_w(0x0f)。 //显示功能开,有光标 } if(an==4) { n3=Read_ds1302(Read_day)。 n3=((n3amp。 0x70)4)*10+(n3amp。 0x0F)。 write_sfm1(8,n3)。 lcd_w(0x80+9)。 //显示日 lcd_w(0x38)。 lcd_w(0x0f)。 //显示功能开,有光标 } if(an==5) { n2=Read_ds1302(Read_month)。 n2=((n2amp。 0x70)4)*10+(n2amp。 0x0F)。 write_sfm1(5,n2)。 lcd_w(0x80+6)。 //显示月 lcd_w(0x38)。 lcd_w(0x0f)。 //显示功能开,有光标 } if(an==6) { n1=Read_ds1302(Read_year)。 n1=((n1amp。 0x70)4)*10+(n1amp。 0x0F)。 write_sfm1(2,n1)。 12 lcd_w(0x80+3)。 //显示年 lcd_w(0x38)。 lcd_w(0x0f)。 //显示功能开,有光标 } if(an==7) { lshi=0。 an=0。 Write_ds1302(Write_second,0x00)。 //从新开启时钟 lcd_w(0x38)。 lcd_w(0x0c)。 n=1。 } } } switch(an) { case1:if(ID2==0) {delay(4)。 if(ID2==0) { while(!ID2)。 _asm(NOP)。 jia_key(Write_second,Read_second,6,1)。 _asm(NOP)。 } } if(ID3==0) //秒 的减 { delay(4)。 if(ID3==0) { while(!ID3)。 _asm(NOP)。 jia_key(Write_second,Read_second,6,0)。 _asm(NOP)。 } } break。 case 2 :if(ID2==0) //分的加 { delay(4)。 if(ID2==0) {while(!ID2)。 _asm(NOP)。 13 jia_key(Write_minute ,Read_minute,3,1)。 _asm(NOP)。 } } if(ID3==0) //分的减 { delay(4)。 if(ID3==0) { while(!ID3)。 _asm(NOP)。 jia_key(Write_minute ,Read_minute,3,0)。 _asm(NOP)。 } } break。 case 3 :if(ID2==0) //时的加 { delay(4)。 if(ID2==0) { while(!ID2)。 _asm(NOP)。 hjia_key(Write_hour,Read_hour,0,1)。 _asm(NOP)。 } } if(ID3==0) //小 时的减 { delay(4)。 if(ID3==0) { while(!ID3)。 _asm(NOP)。 hjia_key(Write_hour,Read_hour,0,0)。 _asm(NOP)。 } } break。 case 4: if(ID2==0) //日的加 { delay(4)。 if(ID2==0) { while(!ID2)。 _asm(NOP)。 rjia_key(Write_day,Read_day,8,1)。 _asm(NOP)。 } 14 } if (ID3==0) //日的减 { delay(4)。 if(ID3==0) { while(!ID3)。 _asm(NOP)。 rjia_key(Write_day,Read_day,8,0)。 _asm(NOP)。 } } break。 case 5: if(ID2==0) //月的加 { delay(4)。 if(ID2==0) { while(!ID2)。 _asm(NOP)。 yjia_key(Write_month ,Read_month,5,1)。 _asm(NOP)。 } } if(ID3==0) //月的减 { delay(4)。 if(ID3==0) { while(!ID3)。 _asm(NOP)。 yjia_key(Write_month ,Read_month,5,0)。 _asm(NOP)。 } } break。 case 6:if(ID2==0) //年的加 { delay(4)。 if(ID2==0) { while(!ID2)。 _asm(NOP)。 njia_key(Write_year,Read_year,2,1)。 _asm(NOP)。 } } 15 if(ID3==0) //年的减 { delay(4)。 if(ID3==0) { while(!ID3)。 _asm(NOP)。 njia_key(Write_year,Read_year,2,0)。 _asm(NOP)。 } } break。 } } while(lshi==1)。 _asm(NOP)。 return(n)。 return(n)。 } void Write_ds1302(uchar addr,uchar dat) { uchar i。 PC_DDR |=0xFF。 PC_CR1 |=0xFF。 PC_CR2 |=0X00。 ce = 0。 //先复位 sclk = 0。 //清零,保持 io口的低电平,以待数据的写入 ce = 1。 //置 1,开始写数据 //发送地址 for(i =0。 i8。 i++) { dio= addramp。 0x01。 //将一位 bcd 码的数据送给 io 口 addr=addr 1。 //右移一位 sclk =1。 //产生上升沿,发送数据 sclk =0。 } //发送数据 for(i=0。 i8。 i++) { dio= datamp。 0x01。 //将一位 bcd码的地址数据送给 io 口 dat =dat1。 sclk=1。 //产生上升沿,发送数据 delay(1)。 sclk=0。 } 16 ce = 0。 } //读操作 // Read_ds1302(uchar addr) { uchar i。 uchar k。 uchar dat。 da_od。基于单片机的多功能电子时钟设计
相关推荐
外部接口接收来话和数据业务,然后通过 IP 语音 ( VoIP) 技术 以及局域网( LAN)和广域网( WAN)将内部和接收到的语音数据传送到接处警坐席。 在于传统通信网络进行互联时,可以采用 ISDN PRI和 SS7信令。 在与不同专用无线通信系统进行集成时,将根据客户所具有的无线系统的具体情况以及功能要求,采用不同的集成方式和集成接口,最终实现系统与无线系统的无缝结合。
8.强大而完善的输出功能 印制电路板设计环境 1.丰富的设计规则 2.易用的编辑环境 3.智能化的交互式手工布线 4.丰富的封装元件库及便简的元件库编辑和组织操作 5.智能化的基于形状的自动布线功能 6.可靠的设计校验 四、电路板设计 一般而言,设计电路板最基本的过程可以分为以下 3 大步骤。 1.电路原理图的设计 电路原理图的设计主要是用 Protel 99 SE
e=text/javascript $() .script() .wait(function(){ ()。 })。 /script LABjs 的独特之处在于它能够管 理依赖关系。 一般来说 script标签意味着每个文件下载(或按顺序,或并行,如前所述),然后按顺序执行。 在某些情况下这非常必要,但有时未必。 wait() call after the first script():LABjs
斜率累加器 比较 低温度系数振荡器 计数器 1 温度寄存器 Tx 预置 =0 高温度系数振荡器 0 计数器 2 T1 加 1 停止 T2 5 64位 ROM的结构开始 8位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通信的原因。 温度报警触发器 TH 和 TL,可通过软件写入户报警上下限
零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电 压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。 由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于 弦波和脉冲信号进行测量。 预处理电路的第二级采用带施密特触发器的反相器 DM74LS14来把放大器生成的单相脉冲转换成与
黄河科技学院毕业 论文 (文献翻译) 第 10 页 1Wire munication line by storing energy on an internal capacitor during periods of time when the signal line is high and continues to operate off this power source during