单片机课程设计实验报告-基于stc89c52rc的电子万年历设计内容摘要:
*// void key16() { key=keyboard()。 /************闹钟开关显示 ****************/ if(key==1) {if(clk_switch==0) {clk_switch=1。 TR0=0。 //write_1602(0x0f)。 //设置光标为闪烁 write_1602(er0x02+0x0f)。 write_1602dat(39。 O39。 )。 write_1602(er0x01+0x0f)。 write_1602dat(39。 N39。 )。 write_1602(er+0x0f)。 write_1602dat(39。 39。 )。 TR0=1。 } else {clk_switch=0。 TR0=0。 //write_1602(0x0f)。 //设置光标为闪烁 write_1602(er0x02+0x0f)。 write_1602dat(39。 O39。 )。 write_1602(er0x01+0x0f)。 17 write_1602dat(39。 F39。 )。 write_1602(er+0x0f)。 write_1602dat(39。 F39。 )。 TR0=1。 } } if(key2n==0||key2n==8) { if(key==11)////12 为功能键(时间设置键) { buzzer=0。 delay(20)。 buzzer=1。 key1n++。 if(key1n==9)key1n=1。 //设置按键共有 年 、 月 、 日 、 星期、 时 、 分 、 秒 、返回, 8 个功能循环 switch(key1n) { case 1: TR0=0。 //关闭定时器 write_1602(yh+0x04)。 //按动 1 次, nian write_1602(0x0f)。 //设置光标为闪烁 break。 case 2: write_1602(yh+0x07)。 //按动 2 次, yue break。 case 3: write_1602(yh+0x0a)。 //按动 3 次, ri break。 case 4: write_1602(yh+0x0e)。 //按动 4 次, week break。 case 5: write_1602(er0x02+0x03)。 //按动 5 次, shi break。 case 6: write_1602(er0x02+0x06)。 //按 6 次 fen 位置显示光标 break。 case 7: write_1602(er0x02+0x09)。 //按 7 次,秒位置显示光标 break。 case 8: write_1602(0x0c)。 //按动到第 8 次,设置光标不闪烁 TR0=1。 break。 //打开定时器 default:break。 } } if(key1n!=0)//当 key1 按下以下。 再按以下键才有效(按键次数不等于零) { if(key==3) //上调键 { write_1602(er0x02+0x09)。 //因为设置液晶的模式是写入数据后,指针自动加一, 18 在这里是写回原来的位置 buzzer=0。 //蜂鸣器短响一次 delay(20)。 buzzer=1。 switch(key1n) { case 1:nian++。 ri=1。 write_nyr(9,ri)。 if(nian==100) nian=0。 write_nyr(3,nian)。 //令 LCD 在正确的位置显示 加 设定好的年份数据 write_1602(yh+4)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 2:yue++。 ri=1。 write_nyr(9,ri)。 //令 LCD在正确的位置显示 加 设定好的日期数据 if(yue==13) yue=1。 write_1602(yh+7)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 write_nyr(6,yue)。 //令 LCD 在正确的位置显示 加 设定好的月份数据 write_1602(yh+7)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 3:ri++。 run=nian%4。 if(run==0) {} else run=1。 switch(yue) { case 1 : if(ri==32) ri=1。 break。 case 2 : if(run==0) {if(ri==30) ri=1。 break。 } else {if(ri==29) ri=1。 break。 } case 3 : if(ri==32) ri=1。 break。 case 4 : if(ri==31) ri=1。 break。 case 5 : if(ri==32) ri=1。 break。 case 6 : if(ri==31) ri=1。 break。 case 7 : if(ri==32) ri=1。 break。 case 8 : if(ri==32) ri=1。 break。 case 9 : if(ri==31) ri=1。 break。 case 10: if(ri==32) ri=1。 break。 19 case 11:if(ri==31) ri=1。 break。 case 12:if(ri==32) ri=1。 break。 default:break。 } write_nyr(9,ri)。 //令 LCD 在正确的位置显示 加 设定好的日期数据 write_1602(yh+10)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 4:week++。 if(week=8) week=1。 write_1602(yh+0x0C)。 //指定 39。 加 39。 后的周数据显示位置 write_week(week)。 //指定周数据显示内容 write_1602(yh+0x0e)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 5:shi++。 if(shi==24) {shi=0。 } write_sfm(2,shi)。 //令 LCD 在正确的位置显示 加 设定好的小时数据 write_1602(er2+3)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 6:fen++。 if(fen=60) fen=0。 write_sfm(0x05,fen)。 //令 LCD 在正确位置显示 加 设定好的分数据 write_1602(er2+6)。 //因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break。 case 7:miao++。 if(miao=60) miao=0。 //秒超过 59,再加 1,就归零 write_sfm(0x08,miao)。 //令 LCD 在正确位置显示 加 设定好的秒数 write_1602(er0x02+0x09)。 //因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 // write_1602(0x0b)。 break。 } 20 } } //减键 key3,各句功能参照 39。 加键 39。 注释 if(key==7) { buzzer=0。 //蜂鸣器短响一次 delay(20)。 buzzer=1。 switch(key1n) { case 1:nian。 ri=1。 write_nyr(9,ri)。 if(nian==1) nian=99。 write_nyr(3,nian)。 write_1602(yh+4)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 2:yue。 ri=1。 write_nyr(9,ri)。 //令 LCD在正确的位置显示 加 设定好的日期数据 if(yue==0) yue=12。 write_nyr(6,yue)。 write_1602(yh+7)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 3:ri。 run=nian%4。 if(run==0) {} else {run=1。 } switch(yue) {case 1 : if(ri==0) ri=31。 break。 case 2 : if(run==0) {if(ri==0) ri=29。 break。 } else {if(ri==0) ri=28。 break。 } case 3 : if(ri==0) ri=31。 break。 case 4 : if(ri==0) ri=30。 break。 case 5 : if(ri==0) ri=31。 break。 case 6 : if(ri==0) ri=30。 break。 case 7 : if(ri==0) ri=31。 break。 21 case 8 : if(ri==0) ri=31。 break。 case 9 : if(ri==0) ri=30。 break。 case 10: if(ri==0) ri=31。 break。 case 11:if(ri==0) ri=30。 break。 case 12:if(ri==0) ri=31。 break。 default:break。 } write_nyr(9,ri)。 write_1602(yh+10)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 4:week。 if(week==0) week=7。 write_1602(yh+0x0C)。 //指定 39。 加 39。 后的周数据显示位置 write_week(week)。 //指定周数据显示内容 write_1602(yh+0x0e)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 5:shi。 if(shi==1){ shi=23。 } write_sfm(2,shi)。 write_1602(er2+3)。 //因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break。 case 6:fen。 if(。单片机课程设计实验报告-基于stc89c52rc的电子万年历设计
相关推荐
4。 sbit rd1=P2^5。 sbit beep=P3^2。 uchar buffer0,buffer1,zhi,zhi1。 uchar table[]={0x7f,0xbf,0xdf,0xef,0xff}。 //设置位选 uchar table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f}。 //前两位数码管码表
0 点 / ㎡ 尺寸 160*320 常规单元点数 16*32 红色晶片中心波长 630NM 红色晶片亮度 150200MCD 亮度调整 可根据工作环境随机调整 显示方式 异步控制 显示模式 标准模式 输入格式 COM 伽码校正 每色逐点非线形视觉校正 分辨率 600 运行环境 2020/XP/VISTA 驱动方式 静态恒流驱动 4 扫 传输接口 TIA/EIA644LVDS 标准 传输速度
房间号 B504 工作内容 搬运 仪器设备 奥泰高效液相色谱仪 责任人 万红贵 参与人员 蔡枭、柏佐国、工人 旧房间号 科创大楼 A1620 新房间号 C60 C606 工作内容 搬运 仪器设备 旋光光谱仪 P1020 紫外扫描仪 PerkinElmer 微波仪 MARS5 液相仪( Beckman) 气相色谱仪 SP6890 责任人 曹飞 参与人员 蔡枭、柏佐国、工人 旧房间号 创新楼
触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输入电平。 若为低电平,使IE1(IE0)置“1”,申请中断;若为高电平,则IE1(IE0)清零。 边沿触发方式:CPU在每个机器周期S5P2期间采样外部中断请求引脚的输入电平。 如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平
输特性、弯曲衰减特性等指标应符合 表 、表 的规定。 表 皮线 光缆 纤芯技术指标 光纤类型 单模光纤 包层直径 (μm ) 125177。 衰减 (dB/km) 1310/1550nm: 1550nm 色散系数 ≤ 18 ps/nmkm 1310nm 模场直径 (μm ) 177。 光缆截止波长 (nm) ≤ 1260 表 皮线 光缆 纤芯弯曲衰减特性 条件 单位 技术指标 弯曲半径 圈数
两个带包括带进来和带出去,也就是把南亚各国的名特优产品及广东的产品、投资者、资金、技术、客户等带进园区,把 市乃至淮海经济圈的名优特产品、文化、品牌等带 出去; “ 6” —— 指六个服务中心,即 名优特产品展示交易中心、商务中心、物联网信息中心、创意与研发中心、综合配套中心和停车、车辆维护中心。 本项目主要有以下功能: 产业服务功能 货物集散功能 4 商贸物流功能 城市配送功能 配套服务功能