单片机原理课程设计_基于at89c52的电子时钟设计(编辑修改稿)内容摘要:
10 void delay(uint z) { uint x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } delay1ms(uchar time) //延时 1ms { uchar i,j。 for(i=0。 itime。 i++) { for(j=0。 jj++)。 } } //LCD 驱动部分 enable() { rs=0。 rw=0。 e=0。 delay1ms(3)。 e=1。 } write2(uchar i) { P0=i。 rs=1。 rw=0。 e=0。 delay1ms(2)。 e=1。 } write1(uchar data *address,m) { uchar i,j。 for(i=0。 im。 i++,address++) { j=*address。 write2(j)。 } } //LCD 显示 lcdshow() { P0=0XC。 //显示器开、光标关 enable()。 P0=0x80。 //第一行 0~15 enable()。 write1(time1,16)。 P0=0xc1。 //第二行 1~14 enable()。 11 write1(time2,15)。 } //DS1302 读写子程序 write(uchar address) { uchar i。 clk=0。 _nop_()。 rst=1。 _nop_()。 for(i=0。 i8。 i++) { dat=addressamp。 1。 _nop_()。 clk=1。 address=1。 clk=0。 } } uchar read() { uchar i,j=0。 for(i=0。 i8。 i++) { j=1。 _nop_()。 clk=0。 _nop_()。 if(dat) j|=0x80。 _nop_()。 clk=1。 } return(j)。 } //部分显示数据初始化 timestart() { time1[6]=time1[9]=39。 39。 time1[2]=39。 239。 ,time1[3]=39。 039。 time2[2]=time2[5]=39。 :39。 write(0xc1)。 alarm[0]=read()。 rst=0。 write(0xc3)。 alarm[1]=read()。 rst=0。 write(0xc5)。 12 time1[0]=read()。 rst=0。 } //读取时间 readtime() { uchar i,m,n。 write(0x8d)。 //读取年份 m=read()。 rst=0。 time1[4]=m/16+0x30。 time1[5]=m%16+0x30。 time1[15]=m+0x30。 for(i=7,n=0x89。 i11。 i+=3,n=2) //读取月份和日期 { write(n)。 m=read()。 rst=0。 time1[i]=m/16+0x30。 time1[i+1]=m%16+0x30。 } for(m=0,i=0,n=0x85。 i7。 i+=3,n=2,m++) //读取时 ,分 ,秒 { write(n)。 time[m]=read()。 //将实时的时分秒给 time[] rst=0。 time2[i]=time[m]/16+0x30。 time2[i+1]=time[m]%16+0x30。 } } baoshi() //整点报时 { beep=1。 if(time[1]==0) if(time[2]==0) {beep=0。 delay(10)。 beep=1。 } } //闹钟部分 showalarm() { uchar i。 for(i=1。 i10。 i++) {beep=0。 delay(1000)。 beep=1。 } } 13 //根据日期的变动自动调整星期 //设置时间 settime() { uchar i=0x85,year,month,day,n。 time2[6]=time2[7]=0x30,time1[14]=time1[15]=0x20。 lcdshow()。 while(1) { P0=0x0e。 //显示器开显示、开光标 enable()。 P0=i。 //定光标 enable()。 P1=0xf0。 if(P1!=0Xf0) //有按钮按下 { delay1ms(100)。 //延时 去抖动 if(P1!=0Xf0) { j=7。 if(P1==0X70) //K1,设置时钟 { i+=3。 if(i==0x8e) i=0xc2。 else if(i0xc5) i=0x85。 } else if(P1==0xb0) //K2,上调 { year=(time1[4]amp。 0xf)*10+(time1[5]amp。 0xf)。 month=(time1[7]amp。 0xf)*10+(time1[8]amp。 0xf)。 day=(time1[10]amp。 0xf)*10+(time1[11]amp。 0xf)。 if(i==0x85) { year++。 if(year99) year=0。 if((year%4)!=0) if(month==2amp。 amp。 day==29) day=28。 } else if(i==0x88) { 14 month++。 if(month12) month=1。 if(dayDay[month1]) { day=Day[month1]。 if(month==2amp。 amp。 (year%4)==0) day=29。 } } else if(i==0x8b) { day++。 if(dayDay[month1]) { if(month==2amp。 amp。 (year%4)==0) { if(day29) day=1。 } if(month!=2) day=1。 } } else if(i==0xc2) { n=(time2[0]amp。 0xf)*10+(time2[1]amp。 0xf)。 n++。 if(n23) n。单片机原理课程设计_基于at89c52的电子时钟设计(编辑修改稿)
相关推荐
电压量同时加到具有不同基准电压的比较电路输入端进行比较,对应某一定值 oU ,只有相应的一个比较电路输出为高电平,则其余比较器输出为低电平; ( 4)对比较器输出的高电平进行二进制编码; ( 5)经显示译码器译码; ( 6)驱动数码管显示出相应的档次代号。 、模块结构与方框图 转换电路 比较电路 基准电压 译码 显示 编码 8 第三部分 电路设计与器件选择 、转换电路: 模块电路及参数计算:
I 方式单独执行该程序段,检查是否还存在同样故障。 4)若机床故障与机床动作有关,在可能的情况下,应检查在手动情况下执 行该动作.是否也有同样的故障。 5)机床是否发生过同样的故障。 周围的数控机床是否也发生同一故障。 等等 ⑷故障时的外界条件 记录 1)发生故障时的周围环境温度是否超过允许温度。 是否有局部的高温存在。 2)故障发生时,周围是否有强烈的振动源存在。 3)故障发生时
科已在该区域竞得 5 幅地块。 华联宾馆及周边改造项目 10 图四 中心区域黄金地块的大面积出让推动了土地价格的快速上涨,市内四区楼面地价同比上涨 个百分点至每平方米 4,021 元(图五)。 其中中山区、沙河口区和甘井子区分别由于东港、胜利路、大化搬迁 改造区域地块的出让土地价格大幅度上涨,分别比 2020 年上涨 %、 %和 %
及挑战目标。 一笔业务这次可以不签单,但必须阻击竞争对手。 有时候“吃肉”的同时还是要给对手留下“汤”,让对方陪着一路走下去。 有的业务必须全部拿下,不给对手留下任何机会。 有些战略性项目的考核不是赚钱,只要不让对手得到就已达到目标等。 华为十分重视销售项目分析,包括客户分析、竞争对手分析及自身分析。 客户分析 项目背景、客户决策链、决策人、决策过程、决策原则与因素等分析。 华为认为不仅要知己
份为 12和 1月 , 月降雨量分别为 6毫米左右 .暴雨期普遍出现在 5~9 月 ,常年暴雨出现的始终期分别在 6月底 7月初和 8月下旬 ,常年大雨出现的始终期分别在 5 月底到 6 月初和 9 月中旬左右 , 全市 19602020 年区域性洪涝总次数为 44 次 ,常年出现区域性洪涝为 1次 .年总日照时数为 小时。 最多风向为静风 ,风向频率为 39%,次多风向为北风 ,风向频率为
niixi1 精馏段 Tf=℃时乙醇( A) 的粘度μ AFAF 3 6 0 04 9 6 801 0 0 =•s TD=℃时 ADAD 6086 = Tw=℃时 AWAW 3 6 4 9 6 0 0 801 0 0 = 提馏段 Tf=℃时丙醇( B)的粘度μ BFBF 4 4 0 06 1 4