《单片机及接口电路》课程设计报告(模板)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1评分标准(由评阅教师填写)黑龙江东方学院《单片机及接口电路》课程设计报告xxx系统设计学部计算机科学与电气工程专业电气工程及其自动化(电梯工程)姓名xxx年级2014级学号xxx任课教师韩洪涛、由赢公设计周期2周评分项目分值得分格式10分设计目标50分技术难度:1.8x8点阵动态扫描显示原理(25分)2.8x8点阵动态图象显示控制(30分)3.选层器或召唤器模拟控制(35分)4.选层器或召唤器模拟控制系统设计与实现(40分)原理与实现20分收获与心得体会20分合计100分2《单片机及接口电路》课程设计任务书姓名xxx学号xxx专业班级2014级电梯设计题目:设计依据:1.2.主要内容及要求1.主要内容(1)编写:液晶显示控制程序,即LCD显示驱动程序(字符和字符串的显示);(2)编写:软件延时子程序或定时中断程序。(3)硬件系统设计、仿真、焊接、调试与系统测试。2.设计要求(1)控制LCD显示屏的计时,通过pic单片机控制LCD输出计时字符,通过PORTB中三个端口控制LCD液晶显示计时的开始,终止,清零。(2)当按键1按下,显示屏开始计时,当按键2按下,屏幕清零。进度安排第一周、1.课程设计动员会、选题、学会利用AltiumDesigner查看典型电路模块。2.回顾MPLAB-IDE与Proteus7.7联机调试方法与步骤。3.根据设计题目进行系统总体设计(系统功能框图绘制、软件模块划分)。4.系统详细设计(单元电路仿真设计、软件模块设计);5.综合测试与运行调试。第二周、1.电源模块与单片机最小系统电子元器件安装、焊接与测试;2.峰鸣器、继电器电路电子元器件安装、焊接与测试;3.液晶、温湿度传感器(SHT10)电路电子元器件安装、焊接与测试;4.直流电机、串行通信电路电子元器件安装、焊接与测试;5.光电传感器电路电子元器件安装、焊接与测试;《课程设计报告》结题与验收。目录第1章系统概述……………………………………………………………………11.1系统研究的目的和意义………………………………………………………11.2系统研究的主要内容…………………………………………………………1第2章研究方案……………………………………………………………………22.1方案实施所需的条件…………………………………………………………22.1.1软件条件…………………………………………………………………22.1.2硬件条件…………………………………………………………………22.2存在的主要问题和技术关键…………………………………………………22.2.1存在的主要问题及解决方案……………………………………………22.2.2技术关键…………………………………………………………………2第3章系统硬件设计………………………………………………………………33.1系统硬件部局…………………………………………………………………33.2硬件各组成部分简介………………………………………………………33.3各组成部分功能及作用………………………………………………………33.4遇到的主要问题及如何解决………………………………………………3第4章系统软件设计………………………………………………………………44.1功能模块划分…………………………………………………………………44.2各模块程序流程………………………………………………………………44.3各模块程序代码………………………………………………………………5第5章单片机系统安装与调试……………………………………………………115.1系统设计与分工……………………………………………………………105.2系统运行实物图………………………………………………………………10设计心得………………………………………………………………………11参考文献…………………………………………………………………………12注:目录中页码要与实际内容对应!!!黑龙江东方学院《单片机及接口电路》课程设计报告-1-第1章系统概述1.1系统研究的目的和意义了解LCD工作原理及驱动程序,熟悉模块化编程的应用。1.2系统研究的主要内容了解LCD模块的驱动原理及驱动程序,设计1ms延时程序,设置3个外部按键,控制计时器的开始,清零,停止。黑龙江东方学院《单片机及接口电路》课程设计报告-2-第2章研究方案2.1方案实施所需的条件2.1.1软件条件1.MPLAB-IED8.91集成开发环境;2.Proteus7.7电子仿真软件。2.1.2硬件条件1.电烙铁、焊台、万用表等;2.Kit3PIC仿真器。2.2存在的主要问题和技术关键2.2.1存在的主要问题及解决方案int中断判断外部按键的识别,判断是否按下。解决方法:通过延时程序进行消抖,进行两次判断。确认按键按下,只能通过中断,进行判断。2.2.2技术关键控制字符的输出及按键的响应。黑龙江东方学院《单片机及接口电路》课程设计报告-3-第3章系统硬件设计3.1系统硬件布局图3-1系统硬件布局3.2硬件各组成部分简介Pic单片机,lcd液晶显示屏,三个按键,分别控制,计时的开始、暂停,清零。3.3各组成部分功能及作用Pic单片机控制lcd做出显示,并进行计时。3.4遇到的主要问题及如何解决不能在计时的情况下进行按键的扫描。通过中断完成理想的情况。黑龙江东方学院《单片机及接口电路》课程设计报告-4-第4章系统软件设计4.1功能模块划分图4-1功能模块划分4.2各模块程序流程(此流程图有错误!!!)否否是是是否否是图4-2模块流程图主程序Lcd液晶显示模块按键控制模块开始开始计时计时暂停判断暂停键是否再次按下计时继续判断清零键是否按下判断开始键是否按下判断暂停键是否按下黑龙江东方学院《单片机及接口电路》课程设计报告-5-4.3各模块程序代码主函数#includepic.h#includestdlib.h#includestdio.h#includeLCD1602.H#includedelay.HcharsNum[5];bitbFlag=0;constcharc_LCD_str[]=Seconds:;voidinterruptISR(void){if(INTF==1){INTF=0;bFlag=!bFlag;}}voidmain(void){unsignedintSec=0,Bai,Shi,Ge,i;INTEDG=1;TRISB0=1;INTE=1;GIE=1;RC1=1;kai_s:LCD_Init();LCD_Set_Cursor(0,0);//从第0行第0个字符位开始显示LCD_Puts_ROM(c_LCD_str);//显示Counter:while(1){if(RB1==0){DelayMS(10);if(RB1==0){while(1){for(Sec=0;Sec1000;Sec++){黑龙江东方学院《单片机及接口电路》课程设计报告-6-if(bFlag==0){LCD_Set_Cursor(0,10);//从第0行第0个字符位开始显示Bai=Sec/100+'0';//获得计数值的百位并转换成相应字符Shi=(Sec%100)/10+'0';//获得计数值的十位Ge=Sec%10+'0';//获得计数值的个位LCD_Put_Char(Bai);//显示百位字符LCD_Put_Char(Shi);//显示百位字符LCD_Put_Char(Ge);//显示百位字符RC0=1;DelayMS(500);//延时1秒RC0=0;DelayMS(500);}elseif(bFlag==1){Sec=Sec--;while(bFlag){if(RB2==0){DelayMS(1);if(RB2==0){bFlag=!bFlag;gotokai_s;};}}}}}}}}}Lcd驱动程序#includepic.h#includeLCD1602.h#includedelay.h//初始化LCD,采用软件复位序列方式voidLCD_Init(void)黑龙江东方学院《单片机及接口电路》课程设计报告-7-{LCD_CTRL_DIR=0x00;//LCD控制用寄存器置为输出LCD_DATA_DIR=0x00;//LCD数据用寄存器也置为输出LCD_DATA=0x00;//清数据寄存器DelayMS(5);//数据手册要求大于4.1ms//开始输出软件复位序列LCD_DATA=0x30;LCD_CMD_W_Timing();DelayMS(1);//数据手册要求等待时间大于100usLCD_DATA=0x30;LCD_CMD_W_Timing();DelayMS(1);//数据手册要求等待时间大于40usLCD_DATA=0x30;LCD_CMD_W_Timing();DelayMS(1);//数据手册要求查忙信号或者等待时间超过40usLCD_Write_CMD(DISP_2Line_8Bit);//显示模式设为2行,8位数据模式DelayMS(1);//数据手册要求查忙信号或者等待时间超过40usLCD_Write_CMD(DISP_OFF);//关显示DelayMS(1);//数据手册要求查忙信号或者等待时间超过40usLCD_Write_CMD(ENTRY_INC);//设定输入方式为地址增量DelayMS(1);//数据手册要求查忙信号或者等待时间超过40usLCD_Write_CMD(CLR_DISP);//清空屏幕显示DelayMS(1);//数据手册要求查忙信号或者等待时间超过40us//复位序列结束LCD_Write_CMD(DISP_ON);//开启LCD显示DelayMS(1);黑龙江东方学院《单片机及接口电路》课程设计报告-8-}//向LCD写指令voidLCD_Write_CMD(unsignedcharLCD_CMD){LCD_DATA=LCD_CMD;LCD_CMD_W_Timing();DelayMS(1);}//向LCD写数据voidLCD_Write_Data(unsignedcharLCD_CMD){LCD_DATA=LCD_CMD;LCD_DAT_W_Timing();DelayMS(1);}//向LCD输出一个字符voidLCD_Put_Char(unsignedcharLCD_Char){LCD_Write_Data(LCD_Char);}//LCD写命令时序函数voidLCD_CMD_W_Timing(void){LCD_RS=0;//0表示命令字NOP();LCD_RW=0;NOP();LCD_E=1;NOP();NOP();LCD_E=0;}//LCD写数据时序函数voidLCD_DAT_W_Timing(void){LCD_RS=1;//1表示数据NOP();LCD_RW=0;黑龙江东方学院《单片机及接口电路》课程设计报告-9-NOP();LCD_E=1;NOP();NOP();LCD_E=0;}//设置显示坐标//Row=(0or1)//Column=(0to15)voidLCD_Set_Cursor(unsignedcharRow,unsignedcharColumn){LCD_Write_CMD(DD_RAM_BASE+Row*0x40+Column);DelayMS(1);}//向LCD输出ROM中的字符串voidLCD_Puts_ROM(constchar*Str){unsignedcharStr_Temp;while(1){Str_Temp=*Str;if(Str_Temp!=0x00){LCD_Write_Data(Str_Temp);Str++;}elsereturn;}}//向LCD输出字符串,字符串在RAM中voidLCD_Put_String(char*Str){unsignedcharStr_Temp;while(1){黑龙江东方学院《单片机及接口电路》课程设计报告-10-Str_Temp=*Str;if(Str_Tem

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功