片单机课程设计学校作息时间控制系统设计--大学毕设论文.doc
《片单机课程设计学校作息时间控制系统设计--大学毕设论文.doc》由会员分享,可在线阅读,更多相关《片单机课程设计学校作息时间控制系统设计--大学毕设论文.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理及应用课程设计说明书题目学校作息时间控制系统的设计系(部)专业(班级)姓名学号指导教师起止日期 系部:电信系 专业:2011级电子信息工程课题名称学校作息时间控制系统的设计设计内容及要求(1)课题内容:以单片机为核心,设计一个智能化作息时间控制器。该控制器要求的功能有:按本校作息时间接通/断开蜂鸣器,每次响铃时间为10 秒;用12864 液晶屏作显示器,第一行显示“作息时间控制系统”,第二行显示设计者姓名和学号,第三行显示实时时钟,显示的内容要求有时、分、秒各两位,第四行显示最近的闹铃时间。发挥部分:设置按键对小时和分钟调节;可以通过键盘任意调整响铃时间。(2)要求:完成该系统的硬件
2、和软件的设计,在Proteus 软件上仿真通过后,提交一篇课程设计说明设计工作量1、汇编或C51语言程序设计;2、程序调试;3、在Proteus 上进行仿真成功后,进行实验板下载调试;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。进度安排起止日期设计内容(或预期目标)备注第一天课题介绍,答疑,收集材料,C51介绍第二天设计方案论证,练习编写C51程序第三天第六天程序设计第六天第八天程序调试、仿真第九天第十天系统测试并编写设计说明书教研室意见 年 月 日系(部)主管领导意见 年 月 日目录程序4一、设计内容及要求131.1 设计内容
3、131.2 设计要求13二、设计目的13三、设计原理133.1 总的设计133.2 分模块设计133.3 设计示意图14四、仿真分析144.1 调节工作模式154.2 闹钟实现154.3 温度测量16五、心得体会17六、参考文献17程序#include reg52.h #include #define uchar unsigned char #define uint unsigned int #define IO_ADDR P2 #define delayNOP(); _nop_();_nop_();_nop_();_nop_(); sbit RS=P10; sbit RW=P11; sbit
4、 EN=P12; sbit RST=P13; sbit PSB=P15; sbit mode=P00;/key1模式 sbit inc=P01;/kye2分 sbit dec=P02;/key3 时 sbit fmq=P34;/蜂鸣器接口/= code uchar data116=作息时间控制系统; code uchar data2=吴智勇 2011026103; code uchar data3=时间: : : ; code uchar data4=打铃: : : ; uchar disp_buff416;/定义一个二维数组,4行,16个字符 uchar hour,min,sec,minis
5、ec; uchar mode_value=0 ,xf; /调节模式 uchar ds202 = 8,0,8,45,8,55,9,40,10,0,10,45,10,55,11,40,14,0,14,45,14,55,15,40,16,0,16,45,16,55,17,40,19,0,19,45,19,55,20,40;/=/*/void delay(int ms) while(ms-) uchar i; for(i=0;i250;i+) _nop_(); _nop_();_nop_();_nop_(); /=void delayus(uint i) uchar y; while(-i) for(
6、y=0;y2;y+) ; /=uchar read_data(void)/读状态。/返回值1-空。0-忙。 uchar temp; RS=0; RW=1; delayus(2); EN=1; delayNOP(); IO_ADDR=0XFF; temp=IO_ADDR;/读输入口。 temp=temp&0x80; EN=0; if(temp=0x00) return(0); else return(1);/注:如需软件仿真,需要将此处改为1/=void write_data(uchar type,uchar date)/写命令或写数据。 while(read_data(); /delayus(
7、100); if(type)/写数据1 RS=1; else/0/写命令 RS=0; delayus(1);/1。5US RW=0; delayus(1);/1。5US EN=0; delayus(1); delayus(1); delayus(1); IO_ADDR=date; delayNOP(); EN=1; delayNOP(); EN=0; delayus(10);/* void init_system()/12864初始化部分。 PSB=1; RST=1; delayus(4); RST=0; delay(3); RST=1; delay(3); write_data(0,0x30
8、);/功能设定,8位并行接口 delay(5); write_data(0,0x30);/功能设定,基本指令集。 delay(5); write_data(0,0x30);/功能设定,8位并行接口 delay(5); write_data(0,0x01);/清屏, delay(5); write_data(0,0x01);/清屏, delay(5); write_data(0,0x02);/将地址指针移到开头位置。 write_data(0,0x0c);/整体显示开。 write_data(0,0x01);/清屏, write_data(0,0x01);/清屏,/= /=void displa
9、y_buff()/显示2维数组内的内容。 uchar i; uchar *point; point=&disp_buff00; /write_data(0,0x01);/清屏, /delayus(5); /write_data(0,0x02);/地址归0 /delayus(10); /write_data(0,0x06);/地址归0 /一行一行的显示/ /行地址:0X80 0X90 0X88 0X98 write_data(0,0X80);/移到0X80位置。 delayus(1); for(i=0;i16;i+) write_data(1,*point); point+; delayus(1
10、); /=/= write_data(0,0X90); delayus(1); for(i=0;i16;i+) write_data(1,disp_buff1i); delayus(1); write_data(0,0X88); for(i=0;i16;i+) write_data(1,disp_buff2i); delayus(1); write_data(0,0X98); for(i=0;i20) minisec=0;if(+sec59) sec=0; if(+min59) min=0; if(+hour24) hour=0;min=0; sec=0; void delaysj(unsig
11、ned char j)/延时程序unsigned char i;while(j-)for(i=0;i50;i+); /蜂鸣器 void s_fmq()unsigned char j=2; /蜂鸣器叫while(j-)fmq=0;delaysj(200);/*闹铃判断*/void nling() uchar i ; for(i=0;i20;i+) if(hour=dsi0&min=dsi1) /判断是否到闹铃时间 if(sec10) s_fmq(); /调用蜂铃 /调节模块 void tiaojie() uchar i;if(mode=0)while(!mode);mode_value+;/zi
12、fu(0xbc,0xb8,2,mode_value,&shu); switch(mode_value) /模式0:正常工作。显示“天天向上”case 0:/uchar i; for(i=0;i16;i+) disp_buff0i=data1i; disp_buff1i=data2i; break ;case 1: / 模式1:可以修改时间,其中inc是改分钟,dec是改小时if(inc=0) while(!inc);min+;if(min=60) min=0;if(dec=0) while(!dec);if(min=0) min=60; min-;/if(dec=0) while(!dec);
13、hour+; if(hour=24) hour=0;/uchar i; for(i=0;i16;i+) disp_buff2i=data3i; disp_buff25=(hour/10)+0x30; disp_buff26=(hour%10)+0x30; disp_buff28=(min/10)+0x30; disp_buff29=(min%10)+0x30; disp_buff211=(sec/10)+0x30; disp_buff212=(sec%10)+0x30; display_buff(); ;break;case 2:if(inc=0) while(!inc);hour+;if(h
14、our=24) hour=0; /模式2:选择一个需要改变的闹铃/if(inc=0) while(!inc);min+;if(min=60) min=0;if(dec=0) while(!dec);if(hour=0) hour=24;hour-; /uchar i; for(i=0;i16;i+) disp_buff2i=data3i; disp_buff25=(hour/10)+0x30; disp_buff26=(hour%10)+0x30; disp_buff28=(min/10)+0x30; disp_buff29=(min%10)+0x30; disp_buff211=(sec/1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单机 课程设计 学校 作息 时间 控制系统 设计 大学 论文
限制150内