欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机实训二程序课室打铃控制系统Word文档格式.docx

    • 资源ID:3690354       资源大小:19.78KB        全文页数:18页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机实训二程序课室打铃控制系统Word文档格式.docx

    1、void lcd_pos(char pos); /LCD数据指针位置程序 void lcd_init(); /LCD初始化设定程序 void pro_timedate(); /时间日期处理程序 void pro_display(); /显示处理程序 void pro_key(); /按键处理程序 void time_alarm(); /定时报警功能(闹钟) unsigned char scan_key(); /按键扫描程序 unsigned char week_proc(); /星期自动计算与显示函数 bit leap_year(); /判断是否为闰年 void lcd_sef_chr();

    2、/LCD自定义字符程序 void update_disbuf(unsigned char t1,unsigned char t2,unsigned char dis_h,unsigned char dis_m,unsigned char dis_s); /更新显示缓冲区函数 / 延时程序 void delay(unsigned char ms) while(ms-) unsigned char i; for(i = 0; i 250; i+) _nop_(); /执行一条_nop_()指令为一个机器周期 /测试LCD忙碌状态 bit lcd_busy() bit result; rs = 0;

    3、 rw = 1; ep = 1; result =(bit)(P0&0x80); /LCD的D0-D7中,D7=1为忙碌,D7=0为空闲 ep = 0; return result;/写入指令到LCD void lcd_wcmd(char cmd) while(lcd_busy(); /当lcd_busy为1时,再次检测LCD忙碌状态,lcd-busy为0时,开始写指令 rw = 0; P0 = cmd;/写入数据到LCD void lcd_wdat(char dat) /当lcd_busy为1时,再次检测LCD忙碌状态,lcd-busy为0时,开始写数据 rs = 1; P0 = dat;/

    4、LCD数据指针位置程序 void lcd_pos(char pos) lcd_wcmd(pos|0x80); /数据指针=80+地址码(00H27H,40H67H) /设定二个自定义字符,(注意:LCD1602中自定义字符的地址为0x00-0x07,即可定义8个字符) /这里我们设定把一个自定义字符放在0x00位置(000),另一个放在0x01位子(001) void lcd_sef_chr() /第一个自定义字符 lcd_wcmd(0x40); /01 000 000 第1行地址 (D7D6为地址设定命令形式D5D4D3为字符存放位置(0-7),D2D1D0为字符行地址(0-7) lcd_w

    5、dat(0x1f);XXX 11111 第1行数据(D7D6D5为XXX,表示为任意数(一般用000),D4D3D2D1D0为字符行数据(1-点亮,0-熄灭) lcd_wcmd(0x41);01 000 001 第2行地址 lcd_wdat(0x11);XXX 10001 第2行数据 lcd_wcmd(0x42);01 000 010 第3行地址 lcd_wdat(0x15);XXX 10101 第3行数据 lcd_wcmd(0x43);01 000 011 第4行地址 第4行数据 lcd_wcmd(0x44);01 000 100 第5行地址 第5行数据 lcd_wcmd(0x45);01

    6、000 101 第6行地址 lcd_wdat(0x0a);XXX 01010 第6行数据 lcd_wcmd(0x46);01 000 110 第7行地址 第7行数据 lcd_wcmd(0x47);01 000 111 第8行地址 lcd_wdat(0x00);XXX 00000 第8行数据 /第二个自定义字符 lcd_wcmd(0x48);01 001 000 第1行地址 lcd_wdat(0x01);XXX 00001 第1行数据 lcd_wcmd(0x49);01 001 001 lcd_wdat(0x1b);XXX 11011 lcd_wcmd(0x4a);01 001 010 lcd_

    7、wdat(0x1d);XXX 11101 lcd_wcmd(0x4b);01 001 011 lcd_wdat(0x19);XXX 11001 lcd_wcmd(0x4c);01 001 100 lcd_wcmd(0x4d);01 001 101 lcd_wcmd(0x4e);01 001 110 lcd_wcmd(0x4f);01 001 111 第8行数据 /LCD初始化设定 void lcd_init() lcd_wcmd(0x38); /设置LCD为16X2显示,5X7点阵,八位数据借口 delay(1); lcd_wcmd(0x0c); /LCD开显示及光标设置(光标不闪烁,不显示-

    8、) lcd_wcmd(0x06); /LCD显示光标移动设置(光标地址指针加1,整屏显示不移动) lcd_wcmd(0x01); /清除LCD的显示内容 /闰年的计算 bit leap_year() bit leap; if(year%4=0&year%100!=0)|year%400=0)/闰年的条件 leap=1; else leap=0; return leap;/星期的自动运算和处理 unsigned char week_proc() unsigned char num_leap; unsigned char c; num_leap=year/4-year/100+year/400;/

    9、自00年起到year所经历的闰年数 if( leap_year()& month 59) sec = 0; min+; if(min59) min=0; hour+; if(hour23) hour=0; date+; if (month=1|month=3|month=5|month=7|month=8|month=10|month=12) if (date31) date=1;month+; /大月31天 if (month=4|month=6|month=9|month=11) 30) date=1; /小月30天 if (month=2) if( leap_year() /闰年的条件

    10、if (date29) date=1; /闰年2月为29天 28) date=1; /平年2月为28天 if (month12) month=1;year+; if (year99) year=0; week_proc(); if (sec=armsec & min=armmin & hour=armhour) if (alarm) TR1=1; /闹钟启用时,报警时间到,启动Timer1 /显示处理程序 void pro_display() unsigned char i; lcd_pos(0x00); for (i=0;i= 100) /1秒时间 (100*10ms=1000ms=1s)

    11、sec100 = 0; pro_timedate();/调用时间和日期处理程序 if (sec&0x01) /willar闪一秒,停一秒 update_disbuf(0x00, ,hour,min,sec); /0x00表示显示00位置的自定义字符 pro_display(); /调用显示处理函数 /按键扫描程序 unsigned char scan_key() skey=0x00; /给变量vkey置初值 skey|=PRE; /读取PRE键的状态 skey=skey23) armhour=0; /光标回到原调整位置 case 2:armmin+; if (armmin59) armmin=0;armsec+; if (armsec59) armsec=0;,armhour,armm


    注意事项

    本文(单片机实训二程序课室打铃控制系统Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开