基于单片机的可编程作息时间控制器的设计内容摘要:
16 第五章 总结 此次课程设计为准备近两个多月,是在肖辉老师的指导下做出来的,我从中获益匪浅。 本课程设计是《单片机原理与应用技术》的综合训练。 从选题、确定方案、设计原理图、仿真、焊接的过程中,我们学 到了很多,这对我们来说是一次将课本所学知识应用到具体实践中的一次考验。 虽然在这个过程中我们遇到了很多困难,编写程序需要一步一步并认真的调试,一个小小的错误都可导致整个程序的不可用,硬件仿真需要考虑硬件与软件的连调,才能保证硬件与软件协同工作。 我们通过查阅资料、同学的帮助,最终基本解决这些问题,从而基本完成了课程设计的要求。 在这个过程中我们学会了发现问题、分析问题并最终解决问题,为我以后的工作和学习打下了一定的基础。 此次课程设计,也使我们发现了自己的缺点,课本所学知识与实践是有一定距离的,我们不仅要学好科 学文化知识,更要积极的参与实践学习,真样才能有更大的收获,真正学到知识,要把理论与实际相结合,从而成为真正有用的人。 通过校园作息时间控制系统的设计,让我体会到单片机使用的广泛性以及其重要性,单片机技术的出现给现代控制领域带来了一项新的改变。 在此次的设计中我遇到了很多的问题:首先,在查找资料的时候,对于校园作息时间控制系统这个方面 AT89C51 的资料非常多,而关于单片机 PIC16F877A 这个方面的资料很有限。 其次,在建立总体框架的时候,总体思路不够明确,从而导致框架结构建造缓慢。 最后,硬件的实现还是有一定困 难。 总之这次毕业设计让我把理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生的全面素质。 这些在我今后的学习和工作当中都会有很大的帮助。 四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。 我不是最出色的学生,但我所付出的并不少,我学会了基本的思考方式,我坚信路要一步一步的走。 17 文献阅读 [1]余发山 .王福忠编著 . 单片机原理及应用技术 [M].徐州:中国矿业大学出版 社 ,2020 年 . [2]李光飞 .单片 机 C 程序设计指导 [M].北京 :北京航空航天大学出版社 ,2020 年 1 月 [3]耿长清 .单片机应用技术 [M].化学工业出版社 ,2020 年 8 月 . [4]胡健 ,刘玉宾 ,朱焕立 .单片机原理及接口技术实践教程 [M].机械工业出版社 ,2020 年 . [5]黄仁欣 .单片机原理及应用技术 [M].清华大学出版社 ,2020 年 3 月 . [6]刘守义 .单片机应用技术 [M].电子科技大学出版社 ,2020 年 . [7]李群芳 ,张士军 ,黄建 .单片微型计算机与接口技术 [M].电子工业出版社 . [8]彭为 ,黄科 ,雷道仲 .单片机典型系统设计实例讲解 [M].2020 年 . [9]何立民 .单片机应用技术选编 [M].北京 :北京航空航天大学出版社 ,2020 年 . [10]杨刚 ,周群 .电子系统设计与实践 [M].北京 :电子工业出版社 ,2020 年 . 致谢 此次论文是在我的指导老师,肖辉老师的亲切关怀与细心指导下完成的。 从课题的选择到论文的最终完成,肖辉老师始终都给予了细心的指导和不懈的支持,在他的身上,我们可以感受到一个学者的严谨和务实,这些都让我们获益匪浅,并且将终生受用无穷。 毕竟“经师易得,人师难求”,希望借此机会向肖辉老师表示最衷心的感谢。 感谢学院为我提 供良好的做毕业设计的环境,最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友,以及在设计中被我引用或参考的论著的作者 18 附件 1:硬件图 19 附 2:源程序代码 include //调用 头函数 __CONFIG(XT amp。 WDTDIS amp。 LVPDIS)。 //设置单片机工作模式 define uchar unsigned char //无符号字符型定义符重说明 define uint unsigned int //无符号整型定义符重说明 define lcd_rs RA1 //LCD 端口定义 define lcd_rw RA2 define lcd_e RA3 define i_o RB5 //DS1302 端口定义 define sclk RB6 define rst RB7 define K1 RB1//键盘端口定义 define K2 RB2 define K3 RB3 uchar test=7,sw[]={5,5,2,9,1,0,3}。 uchar presetTime[]={0x00,0x30,0x09,0x13,0x05,0x03,0x21,0x00}。 //初始时间日期 秒、分、小时、年、月、星期 、日 存放表 uchar dateTime[7]。 uchar bell_n=3,yuzhi[][3]={0x00,0x30,0x01,0x15,0x30,0x02,0x30,0x30,0x03}。 const uchar digit[]={:}。 //定义字符数组显示数字 const uchar weekstr[][4]={SUN,MON,TUE,WEN,THR,FRI,STA}。 //定义字符数组显示 uchar time_rx @ 0x30。 //定义接收寄存器 static volatile bit time_rx7 @ (unsigned)amp。 time_rx*8+7。 //接收寄存器的最高位 void delay(uchar n)//延时函数 { uchar i。 for(i=0。 i50。 i++)。 } void port_init() //端口初化函数 { // ADCON1=0X07。 //设置 A 口为普通 I/O 口 TRISA=0X00。 //设置 A 口为输出 TRISB=0X1f。 //设置 A 口为输出 TRISC=0X00。 //设置 C 口为输出 20 TRISE0=0。 } //DS1302 时间控制有关函数 uchar time_read_1() //读一个字节函数子程序 { int j。 //设置循环变量 TRISB5=1。 //设置数据口方向为输入 for(j=0。 j8。 j++) //连续读取 8bit { sclk=0。 //拉低时钟信号 time_rx=time_rx1。 //接收寄存器右移 1 位 time_rx7=i_o。 //把接收到的数据放到接收寄存器的最高位 sclk=1。 //拉高时钟信号 } TRISB5=0。 //恢复数据口方向为输出 sclk=0。 //拉低时钟信号 return(time_rx)。 //返回读取到的数据 } void time_write_1(uchar time_tx) //写一个字节数据函数子主程序 { int j。 //设置循环变量 for(j=0。 j8。 j++) //连续写 8bit { i_o=0。 //先设置数据为 0 sclk=0。 //时钟信号拉低 if(time_txamp。 0x01) //判断待发送的数据位是 0 或 1 { i_o=1。 //待发送数据位是 1 } time_tx=time_tx1。 //待发送的数据右移 1 位 sclk=1。 //拉高时钟信号 } sclk=0。 //写完一个字节,拉低时钟信号 } void get_time() //读取时间函数子程序 { int i。 //设置循环变量 rst=1。 //使能 DS1302 time_write_1(0xbf)。 //发送多字节读 取命令 for(i=0。 i7。 i++) //连续读取 7 个字节数据 { dateTime[i]=time_read_1()。 //调用读取 1 个字节数据的函数 21 delay(100)。 } rst=0。 //复位 DS1302 } void set_time() //设置时间函数子程序 { int i。 //定义循环变量 rst=1。 //使能 DS1302 time_write_1(0xbe)。 //时钟多字节写命令 for(i=0。 i8。 i++) //连续写 8 个字节数据 { time_write_1(presetTime[i])。 //调用写一个字节函数 delay(100)。 } rst=0。 //复位 } void ds1302_init() //DS1302 初始化函数子程序 { sclk=0。 //拉低时钟信号 rst =0。 //复位 DS1302 rst=1。 //使能 DS1302 time_write_1(0x8e)。 //发控制命令 time_write_1(0)。 //允许写 DS1302 rst=0。 //复位 } //LCD1602 显示控制有关函数 void lcd_writeComd(uchar cmdChar) //写命令函数 { PORTC=cmdChar。 lcd_rs=0。 //该字节数据为命令,而 不是数据 lcd_rw=0。 //此次操作为写,而不是读 lcd_e=0。 //拉低使能信号 delay(50)。 //保持使能信号为低一段时间 lcd_e=1。 //拉。基于单片机的可编程作息时间控制器的设计
相关推荐
要电路的设计 主要芯片 89C51的功能及引脚图 芯片 89C51共有 40个引脚,其中电源引脚有 4个,控制引脚有 4个,并行的 I/O接口有 32个,其引脚图如图 22所示: 图 22 89C51引脚 ( 1)电源及时钟引脚( 4个) Vcc:电源接入引脚; Vss:接地引脚; XTAL1:晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地); XTAL2
在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。 如音乐集成单片机,看似简单的功能,微缩在纯 电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。 如:音乐信号以数字的形式存于存储器中(类似于 ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。 在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
DB++ 文件和 STEP。 DXP 平台:软件集成平台,为所有编辑器和浏览器提供 GUI 支持,用于设计文档预览的设计洞察功能,设计编译器,文件管理,版本控制接口和脚本引擎。 原理图 浏览器:打开、查看及打印原理图文档和器件库。 PCB 浏览器:打开、查看及打印 PCB文档,增加了查看和三维 PCB 文档导航的功能 CAM 文件 浏览器:打开并导入 CAM和机械文件。 原理图 Soft
志位 RING EQU 22H。 响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,0FH。 初设抢答时间为15s MOV R2,0AH。 初设答题时间为10s MOV
一起使用 ,便可构成石英晶体振 8 荡器。 晶振电路的 应用 : 通用晶体振荡器,用于各种电路中,产生振荡频率。 时钟脉冲 用石英晶体谐振器, 与其它元件配合产生标准脉冲信号,广泛用于数电路中。 微处理器用石英晶体谐振器。 钟表用石英晶体振荡器。 晶振电路的作用:提供系统振荡脉冲 ,稳定频率 ,选择频率。 在本次设计中就是提供了此作用,让电路得到了稳定的工作频率,使抢答器能正常工作而且时间准确
本系统采用 AT89S5x 系列单片机和可编程并行 I/O接口芯片为中心件来设计交通灯控制器,进行交通灯路口的管理。 它用简 单的硬件电路模拟交通灯信号灯的交替变换,实现红绿灯循环点亮。 用 LED 数码管作为倒计时指示,通行指示灯采用发光二极管, LED显示动态扫描,以节省端口,特殊紧急车辆通行采用实时中断完成。 本次设计中车流量较大时可通过控制结果来改变十字路口的各个方向的通车时间