单片机技术课程设计报告家用多功能定时器设计与制作

上传人:仙*** 文档编号:36982308 上传时间:2021-11-01 格式:DOC 页数:18 大小:349.50KB
返回 下载 相关 举报
单片机技术课程设计报告家用多功能定时器设计与制作_第1页
第1页 / 共18页
单片机技术课程设计报告家用多功能定时器设计与制作_第2页
第2页 / 共18页
单片机技术课程设计报告家用多功能定时器设计与制作_第3页
第3页 / 共18页
点击查看更多>>
资源描述
吉首大学单片机技术课程设计报告 项目名称: 家用多功能定时器设计与制作 专业年级: 物理机电工程工程2012级 学 号: 学生姓名: 指导教师: 报告完成日期 2015 年 7 月 1 日 评阅结果 评阅教师 第一章 绪论11.1 系统背景11.1.1 单片机的电子技术11.1.2 定时器介绍11.2 设计要求2第二章 系统电路设计22.1 设计框架介绍22.2 系统硬件单元电路设计22.2.1 复位电路设计22.2.2 时钟电路设计32.2.3 按键电路设计42.3 系统硬件总电路4第三章 系统软件设计53.1 系统软件流程图53.2 系统程序设计53.2.1 主程序53.2.2 中断程序12第四章 实验结果和分析134.1 实验使用的仪器设备134.2测试结果分析13结束语13参考文献14第一章 绪论1.1 系统背景 1.1.1 单片机的电子技术 单片机是将CPU、RAMROM定时器/计数器以及输入输出(I/O)接口等计算机的主要部件集成在一块的集成电路芯片,作为微机系统它还可以实现模/数转换、脉宽调制、计数器捕获/比较逻辑、高速I/O口和WDT各种控制功能。通过在MCS-51系列的单片机中增设了全双工串行口I/O、片内数据存储器采用寻址范围为256kb的8位地址、均有四种工作方式的2个16位的定时/计数器、增加了中断系统、增设了颇具特色的布尔处理机、让单片机具有较强的指令寻址和运算功能这些技术,使单片机拥有了完善的外部并行总线(AB、DB、CB)具有多机识别功能的串行通信接口,规范了功能单元的特殊功能寄存器控制模式及适应控制器特点的布尔处理系统和指令系统,位发展具有良好兼容性的新一代单片机奠定了良好的基础。单片机被广泛地应用在各种领域。例如用来作家用电器中如洗衣机、电冰箱、微波炉、电饭煲、电视机、录像机以及其他视频音像设备的控制器;在办公室中用作大量通信、信息的承载体,比如磁盘驱动、打印机、复印机、 等;它还可以来构成电子秤、收款机、仓储安全检测系统、空气调节系统等冷冻保鲜系统等的专用系统;在工业中,像工业过程控制、过程监制以及机电一体化控制等系统都是以单片机为核心火多网络系统;它还可以构成一些智能仪表与集成智能传感器传统的控制电路,实现一些像存储、数据处理、查找、判断、联网和语音功能等智能化功能,还可以构成一些电子系统中的集中显示系统、动力检测控制系统、自动驾驶系统、通信系统以及运行监视器等的冗余网络系统。 1.1.2 定时器介绍 人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。 1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。 定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多,家用电器都安装了定时器来控制开关或工作时间。1.2 设计要求 主要内容和任务:完成单片机最小系统板设计与制作,在此基础上通过编程设计家用多路定时控制器。目标:通过编写程序,使单片机最小系统具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。第二章 系统电路设计2.1 设计框架介绍按键输入电路:对定时器输入定时时间、时钟时间,并对其调整。时钟电路:给单片机一个时钟信号,让其工作。复位电路:使单片机为初始状态,并从初态开始工作。数码管 :显示时间或者其它。2.2 系统硬件单元电路设计2.2.1 复位电路设计复位操作有上电自动复位、按键电平复位和外部脉冲复位三钟方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于2个机器周期。2.2.2 时钟电路设计该时钟电路是由晶体振荡器和两个微调电容组成的。在单片机芯片内部有一个高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。只需要在片外通过XTAL1和XTAL2引脚跨接晶体振荡器或在引脚与地之间加接微调电容,形成反馈电路,振荡器即可工作。由于该晶振使用的是12MHZ的晶体,因此它的时钟周期是0.167us,机器周期为1us。2.2.3 按键电路设计键K1(图中下方)控制状态的切换:K1为0时,表示出处在正常的计时工作状态;为1,处在校正数字钟的“时”;为2,处在校正数字钟的“分”;为3,处在调整定时起始时间的“时”;为4,处在调整定时起始时间的“分”;为5,处在调整定时终止时间的“时”;为6,处在调整定时终止时间的“分”。 键K2(图中上方)为加号键,控制在各状态时加1。 该系统键扫描的方式为中断扫描方式,当键位上有键压下时,产生中断请求,CPU响应中断,执行中断服务程序,判断键位上压下的键的键号,继而做相应的处理。2.3 系统硬件总电路第三章 系统软件设计3.1 系统软件流程图主程序在执行时,通过单片机内部中断对程序不断的扫描判断、刷新显示,当有键按下时,将数字钟中的时间与定时时间相比较,然后根据比较程序显示状态,并且还要延时消除抖动,之后进行按键处理,从而显示不同的状态,如此周期循环。3.2 系统程序设计3.2.1 主程序ORG 0000HLJMP START; ORG 0003H; LJMP KEY_1 ;时钟、定时时间修改的切换键ORG 000BHLJMP TO_50ms ;数字钟时间定时器。每次定时时间为50ms,20次定时为1S,产生数字钟所需要的秒ORG 0013H; LJMP KEY_2 ;时钟、定时时间修改的+号键ORG 0030HSTART: MOV SP,#60H ;初始化堆栈首地址 MOV 5FH,#0 ;定时器T0溢出次数单元清零 MOV 5EH,#0 ;“秒”计数单元清 MOV 5DH,#00 ; 数字钟“分”初始值为0分钟 MOV 5CH,#12 ;数字钟“时”初始值设为12点 MOV 5BH,#30 ;定时起始时间“分”初始值设为30分 MOV 5AH,#11 ;定时起始时间“时”初始值设为11MOV 50H,#40 ;定时终止时间“分”初始值设40分 MOV 4fH,#11 ;定时终止时间“时”初始值设11点MOV 51H,#00H;设置显示方式为:显示正常时间和定时时间的初始时间SETB 20H.0CLR 20H.1;首先显示定时时间的起始时间;中断和定时器初始化MOV TMOD,#00000001H;设定定时器T0工作在定时方式,工作在方式1,16位计数方式SETB IE0;外部中断INT0为边沿触发方式SETB IE1;外部中断INT1为边沿触发方式SETB ET0;允许定时器产生中断SETB EX0;允许外部中断INT0产生中断SETB EX1;允许外部中断INT1产生中断SETB EA;开启所有中断mov p1,#0ffhclr p1.0;定时器初始化MOV TH0,#3CH;设置定时时间常数,定时时间为50msMOV TL0,#0B0H;SETB TR0;启动T0开始定时计数LOOP1: lcall key_1 lcall key_2 jb 20h.1,loop_qishiLCALL BCD;将数字钟和定时器的时间转换为显示字符码,送相应的字符码存储单元ljmp loopaloop_qishi:lcall bcd1loopa:JB 20H.0,LOOP2;在小时的低位的数码管的小数点每0.5秒闪动一次MOV A,58HANL A,#01111111BMOV 58H,ALJMP LOOP4LOOP2:MOV A,58HORL A,#10000000BMOV 58H,AJB 20H.1,LOOP3;如果处在调整定时终止时间状态,则定时时间“小时”的低位数码管的小数点点亮,否则该小时点熄灭MOV A,54HANL A,#01111111BMOV 54H,ALJMP LOOP4LOOP3:MOV A,54HORL A,#10000000BMOV 54H,ALOOP4: LCALL DISPLAY ;调用显示子程序,显示数字钟时间和定时时间 LJMP LOOP1SJMP $KEY_1:jb p1.6 ,key_1k;lcall delay40mslcall delay40mslcall delay40msjb p1.6 ,key_1k MOV A,51HCJNE A,#06H,KEY_1AMOV 51H,#00HSJMP KEY_1endKEY_1A:INC 51Hkey_1end:mov a,51hcjne a,#00h,key_1ccclr 20h.1sjmp key_1kkey_1cc:cjne a,#01h,key_1cclr 20h.1sjmp key_1kkey_1c:cjne a,#02h,key_1dclr 20h.1sjmp key_1kkey_1d:cjne a,#03h,key_1eclr 20h.1sjmp key_1kkey_1e:cjne a,#04h,key_1fclr 20h.1sjmp key_1kkey_1f:cjne a,#05h,key_1hsetb 20h.1sjmp key_1kkey_1h:cjne a,#06h,key_1ksetb 20h.1key_1k:RETkey_2:jb p1.7,key_2bb;lcall delay40mslcall delay40mslcall delay40msjb p1.7 ,key_2end MOV A,51HCJNE A,#01H,KEY_2AMOV A,5CHCJNE A,#23,KEY_2BMOV 5CH,#00HLJMP KEY_2ENDKEY_2B:INC 5CHkey_2bb:LJMP KEY_2ENDKEY_2A:CJNE A,#02H,KEY_2CMOV A,5DHCJNE A,#59,KEY_2DMOV 5DH,#00HLJMP KEY_2ENDKEY_2D:INC 5DHLJMP KEY_2ENDKEY_2C:CJNE A,#03H,KEY_2EMOV A,5AHCJNE A,#23,KEY_2FMOV 5AH,#00HLJMP KEY_2ENDKEY_2F:INC 5AHLJMP KEY_2ENDKEY_2E:CJNE A,#04H,KEY_2GMOV A,5BHCJNE A,#59,KEY_2HMOV 5BH,#00HLJMP KEY_2ENDKEY_2H:INC 5BHLJMP KEY_2ENDKEY_2G:CJNE A,#05H,KEY_2IMOV A,4FHCJNE A,#23,KEY_2JMOV 4FH,#00HLJMP KEY_2ENDKEY_2J:INC 4FHLJMP KEY_2ENDKEY_2I:CJNE A,#06H,KEY_2ENDMOV A,50HCJNE A,#59,KEY_2KMOV 50H,#00HLJMP KEY_2ENDKEY_2K:INC 50HKEY_2END:RETBCD: MOV DPTR,#TAB ;设置字符码首地址 MOV A,5CH ;取数字钟“小时”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 59H,A ;通过高位的值查表,获得高位数的字符码,并存入59H单元 MOV A,B MOVC A,A+DPTR MOV 58H,A ;通过低位的值查表,获得低位数的字符码,并存入58H单元 MOV A,5DH ;取数字钟“分”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 57H,A ;通过高位的值查表,获得高位数的字符码,并存入57H单元 MOV A,B MOVC A,A+DPTR MOV 56H,A ;通过低位的值查表,获得低位数的字符码,并存入56H单元 MOV A,5AH ;取定时器“小时”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 55H,A ;通过高位的值查表,获得高位数的字符码,并存入55H单元 MOV A,B MOVC A,A+DPTR MOV 54H,A ;通过低位的值查表,获得低位数的字符码,并存入54H单元 MOV A,5BH ;取定时器“分”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 53H,A ;通过高位的值查表,获得高位数的字符码,并存入53H单元 MOV A,B MOVC A,A+DPTR MOV 52H,A ;通过低位的值查表,获得低位数的字符码,并存入52H单元 RET BCD1: MOV DPTR,#TAB ;设置字符码首地址 MOV A,5CH ;取数字钟“小时”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 59H,A ;通过高位的值查表,获得高位数的字符码,并存入59H单元 MOV A,B MOVC A,A+DPTR MOV 58H,A ;通过低位的值查表,获得低位数的字符码,并存入58H单元 MOV A,5DH ;取数字钟“分”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 57H,A ;通过高位的值查表,获得高位数的字符码,并存入57H单元 MOV A,B MOVC A,A+DPTR MOV 56H,A ;通过低位的值查表,获得低位数的字符码,并存入56H单元 MOV A,4fH ;取定时器“小时”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 55H,A ;通过高位的值查表,获得高位数的字符码,并存入55H单元 MOV A,B MOVC A,A+DPTR MOV 54H,A ;通过低位的值查表,获得低位数的字符码,并存入54H单元 MOV A,50H ;取定时器“分”的值 MOV B,#10 DIV AB ;分离高位和地位的值 ,A中存放高位值,B中存放低位的值 MOVC A,A+DPTR MOV 53H,A ;通过高位的值查表,获得高位数的字符码,并存入53H单元 MOV A,B MOVC A,A+DPTR MOV 52H,A ;通过低位的值查表,获得低位数的字符码,并存入52H单元 RET DISPLAY: MOV P2,#11111110B ;将数字钟“小时”的高位的字符码送第一个数码管显示 MOV P0,59H LCALL DELAY20MS ;显示时间为20ms MOV P2,#11111101B ;将数字钟“小时”的低位的字符码送第二个数码管显示 MOV P0,58H LCALL DELAY20MS ;显示时间为20ms MOV P2,#11111011B ;将数字钟“分”的高位的字符码送第三个数码管显示 MOV P0,57H LCALL DELAY20MS ;显示时间为20ms MOV P2,#11110111B ;将数字钟“分”的低位的字符码送第四个数码管显示 MOV P0,56H LCALL DELAY20MS ;显示时间为20ms MOV P2,#11101111B ;将定时器“时”的高位的字符码送第五个数码管显示 MOV P0,55H LCALL DELAY20MS ;显示时间为20ms MOV P2,#11011111B ;将定时器“时”的低位的字符码送第六个数码管显示 MOV P0,54H LCALL DELAY20MS ;显示时间为20ms MOV P2,#10111111B ;将定时器“分”的高位的字符码送第七个数码管显示 MOV P0,53H LCALL DELAY20MS ;显示时间为20ms MOV P2,#01111111B ;将定时器“分”的低位的字符码送第八个数码管显示 MOV P0,52H LCALL DELAY20MS ;显示时间为20ms RET ;上述显示方式,一直循环,实现动态显示3.2.2 中断程序TO_50ms: CLR TR0;关闭T0中断MOV A,5FH;读中断次数CJNE A,#9,TO_50ms2;判断是否到0.5秒CPL 20h.0;到0.5秒,标志位求反,实现“时”的地位闪动效果,是对秒指示TO_50ms2:CJNE A,#19,TO_50ms1;未到1秒,中断次数加1,退出定时中断MOV 5FH,#00H;到1秒,中断次数单元内容清0,同时转到对“秒”的判CPL 20h.0;到0.5秒,标志位求反,实现“时”的地位闪动效果,是对秒指示SJMP MIAOTO_50ms1:INC 5FHLJMP T0_ENDMIAO:MOV A,5EH;读秒单元内容CJNE A,#59,MIAO1;判断是否到60秒,没有到60秒,则秒单元加1MOV 5EH,#00H;否则秒单元清0,同时转到”分”单元的判断LJMP FENMIAO1:INC 5EHLJMP T0_ENDFEN:MOV A,5DH;读分单元内容CJNE A,#59,FEN1;判断是否到60分,没有到60分,则分单元加1MOV 5DH,#00H;否则分单元清0,同时转到对“时“单元的判断LJMP SHIFEN1:INC 5DHLJMP T0_ENDSHI:MOV A,5CH;读“时”单元内容CJNE A,#23,SHI1;判断是否到24小时,没有到24小时,则时单元加1MOV 5CH,#00H;否则时单元清0,LJMP T0_ENDSHI1:INC 5CHT0_END:SETB TR0;启动T0中断MOV TH0,#3CH;设置定时时间常数,定时时间为50msMOV TL0,#0B0H;RETIDELAY20MS: MOV R7,#10DELAY1: MOV R6,#200DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RETDELAY40MS: MOV R7,#100DELAY3: MOV R6,#200DELAY4: DJNZ R6,DELAY4 DJNZ R7,DELAY3 RETTAB: DB 40H,79H,24H,30H,19H,12H,02H ;0 1 2 3 4 5 6的字符码 DB 78H,00H,10H,08H,03H,46H,21H,06H,0EH;7 8 9 A B C D E F的字符码TAB1: DB 8CH;P.的字符码TAB2: DB 7FH;空,不显示的字符 END第四章 实验结果和分析4.1 实验使用的仪器设备 电脑,PTOTEUS软件,KEIL软件,电烙铁,吸锡器,钳子,直流电源,电阻,电容等基本元器件。4.2测试结果分析 程序烧录到单片机中后,将其接到+5V左右的直流电源中,并开始按键实现时间控制或调整,设置多路定时时间,每路定时时间有起始时间和终止时间。当设定好每路时间段后,按键恢复时钟状态并开始计时。当到了指定的时间后,LED灯便会开始亮直至定时时间结束。具体的显示情况如下: 第一次按下K1进入计时的小时调节;第二次按下K1进入计时的分钟调节;第三次按下K1进入定时器的小时调节;第四次按下K1进入定时器的分钟调节;第五次按下K1进入调整定时终止时间的时;第六次按下K1进入调整定时终止时间的分;第七次按下K1进入正常工作计时状态结束语通过本次实验学会了用keil编程,实现计时、多路定时功能,然后通过数码管显示时间还有LED灯的亮来提示定时。当恢复到原来的初始状态时,再按按键可以看到原来的所定的三路时间的终止时间。在制作PCB板的过程中和编程过程中,理解和加强了对单片机的了解。这次设计课题中,在给定的源程序上修改并增加了多路定时程序,实现实验要求。在焊接电路板过程中也没有出现过什么问题,只是在Protues仿真实验中有出现数码管显示数字成零不断跳动,而且LED灯自动跳变,相当于是中断不停执行、判断键值,特别不稳定。虽然这次实验没有创新,但是也是自己动手查资料,修改程序,达到实验要求。之前做过直流稳压电源,两级放大电路和数显温度计,但是都是照葫芦画瓢,没有融合自己的思想在所做的板子当中。虽然达到实验要求,但是总是觉得只是为了完成老实交代的任务而已,并没有思考很多。有时,只有经过自己亲手试验,才能更深层次的懂得实验原理和每部分电路的功能。参考文献 张俊谟.单片机中级教程原理与应用(第二版).北京:北京航空航天大学出版社,2006.10. 谭浩强.C程序设计.北京:清华大学出版社,2009. 沈卫红.单片机应用系统实例与分析.北京:北京航空航天大学出版社,2002 苏文平.新型电子电路应用实例精选M.北京:北京航空航天大学出版社.2000.5.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!