温度显示的数字时钟设计课程设计报告(编辑修改稿)内容摘要:
eSecond%10 + 39。 039。 TimeTimeString[8] = 39。 39。 } else { TimeTimeString[6] = 39。 39。 TimeTimeString[7] = 39。 39。 TimeTimeString[8] = 39。 39。 } TimeDateString[9] = 39。 \039。 } void baoshi(SYSTEMTIME *Time) { if(TimeHour22amp。 amp。 TimeHour8amp。 amp。 TimeMinute/10==0amp。 amp。 TimeMinute%10==0amp。 amp。 TimeSecond/10==0amp。 amp。 TimeSecond%10==0) music()。 } void naozhong(SYSTEMTIME *Time) { if(TimeMinute%10==(f%10)amp。 amp。 TimeMinute/10==(f/10)amp。 amp。 TimeHour%10==(h%10)amp。 amp。 TimeHour/10==(h/10)amp。 amp。 TimeSecond%10==(m%10)amp。 amp。 TimeSecond/10==(m/10)) music()。 } void Initial_DS1302(void) //时钟芯片初始化 { unsigned char Second=Read1302(DS1302_SECOND)。 if(Secondamp。 0x80) //判断时钟芯片是否关闭 { Write1302(0x8e,0x00)。 //写入允许 Write1302(0x8c,0x07)。 //以下写入初始化时间 日期 :07/07/ : 3. 时间 : 23:59:55 Write1302(0x88,0x07)。 Write1302(0x86,0x25)。 Write1302(0x8a,0x07)。 Write1302(0x84,0x23)。 Write1302(0x82,0x59)。 Write1302(0x80,0x55)。 Write1302(0x8e,0x80)。 //禁止写入 } } /***********ds18b20 子程序 *************************/ /***********ds18b20 延迟子函数(晶振 12MHz ) *******/ void delay_18B20(unsigned int i) { while(i)。 } /**********ds18b20 初始化函数 **********************/ void Init_DS18B20(void) { unsigned char x=0。 DQ = 1。 //DQ 复位 delay_18B20(8)。 //稍做延时 DQ = 0。 //单片机将 DQ 拉低 delay_18B20(80)。 //精确延时 大于 480us DQ = 1。 //拉高总线 delay_18B20(14)。 x=DQ。 //稍做延时后 如果 x=0 则初始化成功 x=1 则初始化失败 delay_18B20(20)。 } /***********ds18b20 读一个字节 **************/ unsigned char ReadOneChar(void) { uchar i=0。 uchar dat = 0。 for (i=8。 i0。 i) { DQ = 0。 // 给脉冲信号 dat=1。 DQ = 1。 // 给脉冲信号 if(DQ) dat|=0x80。 delay_18B20(4)。 } return(dat)。 } /*************ds18b20 写一个字节 ****************/ void WriteOneChar(uchar dat) { unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。 0x01。 delay_18B20(5)。 DQ = 1。 dat=1。 } } /**************读取 ds18b20 当前温度 ************/ void ReadTemp(void) { unsigned char a=0。 unsigned char b=0。 unsigned char t=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳过读序号列号的操作 WriteOneChar(0x44)。 // 启动温度转换 delay_18B20(100)。 // this message is wery important Init_DS18B20()。 WriteOneChar(0xCC)。 //跳过读序号列号的操作 WriteOneChar(0xBE)。 //读取温度寄存器等(共可读 9 个寄存器) 前两个就是温度 delay_18B20(100)。 a=ReadOneChar()。 //读取温度值低位 b=ReadOneChar()。 //读取温度值高位 temp_value=b4。 temp_value+=(aamp。 0xf0)4。 } void temp_to_str() //温度数据转换成液晶字符显示 { TempBuffer[0]=temp_value/10+39。 039。 //十位 TempBuffer[1]=temp_value%10+39。 039。 //个位 TempBuffer[2]=0xdf。 //温度符号 TempBuffer[3]=39。 C39。 TempBuffer[4]=39。 \039。 } void naoz() { if(hide_h2) { nao[0]=h/10+39。 039。 nao[1]=h%10+39。 039。 } else { nao[0]=39。 39。 nao[1]=39。 39。 } nao[2]=39。 :39。 if(hide_f2) { nao[3]=f/10+39。 039。 nao[4]=f%10+39。 039。 } else { nao[3]=39。 39。 nao[4]=39。 39。 } nao[5]=39。 :39。 if(hide_m2) { nao[6]=m/10+39。 039。 nao[7]=m%10+39。 039。 } else { nao[6]=39。 39。 nao[7]=39。 39。 } nao[8]=39。 \039。 } void Delay1ms(unsigned int count) { unsigned int i,j。 for(i=0。 icount。 i++) for(j=0。 j120。 j++)。 } /*延时子 程序 */ void mdelay(uint delay) { uint i。 for(。 delay0。 delay) {for(i=0。 i62。 i++) //1ms 延时 . {。 } } } void outkey() //跳出调整模式 ,返回默认显示 { uchar Second。 if(out==0||wireless_1==1) { mdelay(8)。 count=0。 hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0。 Second=Read1302(DS1302_SECOND)。 Write1302(0x8e,0x00)。 //写入允许 Write1302(0x80,Secondamp。 0x7f)。 Write1302(0x8E,0x80)。 //禁止写入 done=0。 while(out==0)。 while(wireless_1==1)。 } } void outkey1() //跳出调整模式 ,返回默认显示 { uchar Second。 if(out==0||wireless_1==1) { mdelay(8)。 count=0。 hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0。 Second=Read1302(DS1302_SECOND)。 Write1302(0x8e,0x00)。 //写入允许 Write1302(0x80,Secondamp。 0x7f)。 Write1302(0x8E,0x80)。 //禁止写入 key=0。 while(out==0)。 while(wireless_1==1)。 } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// void Upkey()//升序按键 { Up=1。 if(Up==0||wireless_2==1) { mdelay(8)。 switch(count) {case 1: temp=Read1302(DS1302_SECOND)。 //读取秒数 temp=temp+1。 //秒数加 1 up_flag=1。 //数据调整后更新标志 if((tempamp。 0x7f)0x59) //超过 59 秒 ,清零 temp=0。 break。 case 2: temp=Read1302(DS1302_MINUTE)。 //读取分数 temp=temp+1。 //分数加 1 up_flag=1。 if(temp==0) { music()。 delay(2)。 } if(temp0x59) //超过 59 分 ,清零 temp=0。 break。 case 3: temp=Read1302(DS1302_HOUR)。 //读取小时数 temp=temp+1。 //小时数加 1 up_flag=1。 if(temp0x23) //超过 23 小时 ,清零 temp=0。 break。 case 4: temp=Read1302(DS1302_WEEK)。 //读取星期数 temp=temp+1。 //星期数加 1 up_flag=1。 if(temp0x7) temp=1。 break。 case 5: temp=Read1302(DS1302_DAY)。 //读取日数 temp=temp+1。 //日数加 1 up_flag=1。 if(temp0x31) temp=1。 break。 case 6: temp=Read1302(DS1302_MONTH)。 //读取月数 temp=temp+1。 //月数加 1 up_flag=1。 if(temp0x12) temp=1。 break。 case 7: temp=Read1302(DS1302_YEAR)。 //读取年数 temp=temp+1。 //年数加 1 up_flag=1。 if(temp0x85) temp=0。 break。 default:break。 } while(Up==0)。 while(wireless_2==1)。 } } void Upkey1()//升序按键 { Up=1。 if(Up==0||wireless_2==1) { mdelay(8)。 switch(count) {case 1: m=m+1。 //秒数加 1 up_flag=1。温度显示的数字时钟设计课程设计报告(编辑修改稿)
相关推荐
,任何人不得擅自代换。 ①、 钢筋加工制作 【 1】钢筋质量 所用钢筋,除品种、规格、焊接及力学性能符合设计要求外,钢筋表面必须洁净,粘着的油污、泥土、浮锈使用前必须清理干净,弯折变形必须调直,带有颗粒状或片状老锈 的钢筋不得使用。 【 2】钢筋抽料 钢筋抽料人员要详细熟悉图纸、会审纪要和施工规范,按图纸要求的规格、形状、尺寸、数量合理地填写钢筋抽料表,并计算出钢筋的用量。 【 3】直筋加工:梁
****移民生产生活现状 由于历史原因,移民安置时遗留下许多问题,给移民群众生产生活带来诸多困难。 主要有人畜饮水困难、居住条件差、土地严重盐碱化、生产基础设施差等。 1990年以来,随着党和国家对移民问题的不断重视和关怀,投资力度的加大,经过各级政府和高度重视和移民部门的艰苦努力,先后投资近千万元以上,基本解决了移民生产生活中存在的突出问题,促进移民区经济发展,维护区域社 会稳定。
用卡规检查。 钢筋直螺纹的完整牙数不小于规定牙数。 接完的钢筋头必须用油漆作标记,其外露丝扣不得超过一个完整丝扣。 3. 梁钢筋绑扎: 模内绑扎:画主次梁箍筋间距→放主梁次梁箍筋→穿主次梁底层纵筋及弯起筋→穿次梁底层纵筋并与箍筋固定→穿主梁上层纵向架立筋→按箍筋间距绑扎→穿次梁上层纵向钢筋→按箍筋间距绑扎。 模外绑扎(先在梁模板上口绑扎成型后再入模内)
段码(或称字型码)。 段码与字节中各位对应关系 代码位 D7 D6 D5 D4 D3 D2 D1 D0 显示段 dp g f e d c b a 八段 LED数 码管段代码编码 表 字形 0 1 2 3 4 5 6 7 8 9 共阳 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 共阴 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH
生了具有视觉艺术效果的设计品。 “艺术设计”是对于这种艺术设计的过程和结果的称谓。 温 州市山君电气科技有限公司系列广告设计 第 4 页 共 16 页 所以总体上说 ,平面广告是通过文字 ,色彩的基本设觉语言元素进行设计依靠二维空间形态的广告媒介形式进行信息传播的 ,其制作方式主要是通过电脑编辑 ,印刷 ,喷绘等几个方面平面广告对人们的影响是不言而喻的
温州双屿公路枢纽站二期市政配套工程二标段( 27 地块 4~7 号楼)实施性施工组织设计 杭州 汇鸿建设 有限公司编制 16 桥涵基础,墩台等无盘或少盘的结构 10- 30 配筋较密,断面高而窄的钢筋混凝土结构 70- 90 泵送混凝土 (如果人工捣实,坍落度 \增加 20- 30mm) 混凝土配合比,对水灰比和水泥用量有如下要求 混凝土最大水灰比合最小水泥用量 序号 混凝土结构 所处的位臵