版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、吉首大学单片机技术课程设计报告 项目名称: 家用多功能定时器设计与制作 专业年级: 物理机电工程工程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 中断程序1
2、2第四章 实验结果和分析134.1 实验使用的仪器设备134.2测试结果分析13结束语13参考文献1414单片机课程设计第一章 绪论1.1 系统背景 1.1.1 单片机的电子技术 单片机是将cpu、ramrom定时器/计数器以及输入输出(i/o)接口等计算机的主要部件集成在一块的集成电路芯片,作为微机系统它还可以实现模/数转换、脉宽调制、计数器捕获/比较逻辑、高速i/o口和wdt各种控制功能。通过在mcs-51系列的单片机中增设了全双工串行口i/o、片内数据存储器采用寻址范围为256kb的8位地址、均有四种工作方式的2个16位的定时/计数器、增加了中断系统、增设了颇具特色的布尔处理机、让单片机
3、具有较强的指令寻址和运算功能这些技术,使单片机拥有了完善的外部并行总线(ab、db、cb)具有多机识别功能的串行通信接口,规范了功能单元的特殊功能寄存器控制模式及适应控制器特点的布尔处理系统和指令系统,位发展具有良好兼容性的新一代单片机奠定了良好的基础。单片机被广泛地应用在各种领域。例如用来作家用电器中如洗衣机、电冰箱、微波炉、电饭煲、电视机、录像机以及其他视频音像设备的控制器;在办公室中用作大量通信、信息的承载体,比如磁盘驱动、打印机、复印机、电话等;它还可以来构成电子秤、收款机、仓储安全检测系统、空气调节系统等冷冻保鲜系统等的专用系统;在工业中,像工业过程控制、过程监制以及机电一体化控制等
4、系统都是以单片机为核心火多网络系统;它还可以构成一些智能仪表与集成智能传感器传统的控制电路,实现一些像存储、数据处理、查找、判断、联网和语音功能等智能化功能,还可以构成一些电子系统中的集中显示系统、动力检测控制系统、自动驾驶系统、通信系统以及运行监视器等的冗余网络系统。 1.1.2 定时器介绍 人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。 1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。 定时器确实是一项了不起的发明,使相当多需要人控制时间的
5、工作变得简单了许多,家用电器都安装了定时器来控制开关或工作时间。1.2 设计要求 主要内容和任务:完成单片机最小系统板设计与制作,在此基础上通过编程设计家用多路定时控制器。目标:通过编写程序,使单片机最小系统具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。第二章 系统电路设计2.1 设计框架介绍按键输入电路:对定时器输入定时时间、时钟时间,并对其调整。时钟电路:给单片机一个时钟信号,让其工作。复位电路:使单片机为初始状态,并从初态开始工作。数码管 :显示时间或者其它。2.2 系统硬件单元电路设计2.2.1 复位电路设计复位操作有上电自动复位、按键电平复
6、位和外部脉冲复位三钟方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于2个机器周期。2.2.2 时钟电路设计该时钟电路是由晶体振荡器和两个微调电容组成的。在单片机芯片内部有一个高增益反相放大器,其输入端为引脚xtal1,其输出端为引脚xtal2。只需要在片外通过xtal1和xtal2引脚跨接晶体振荡器或在引脚与地之间加接微调电容,形成反馈电路,振荡器即可工作。由于该晶振使用的是12mhz的晶体,因此它的时钟周期是0.167us,机器周期为1us。2.2.3 按键电路设计键k1(图中下方)控制状态的切换:k1为0时,表示出处在正常的计时
7、工作状态;为1,处在校正数字钟的“时”;为2,处在校正数字钟的“分”;为3,处在调整定时起始时间的“时”;为4,处在调整定时起始时间的“分”;为5,处在调整定时终止时间的“时”;为6,处在调整定时终止时间的“分”。 键k2(图中上方)为加号键,控制在各状态时加1。 该系统键扫描的方式为中断扫描方式,当键位上有键压下时,产生中断请求,cpu响应中断,执行中断服务程序,判断键位上压下的键的键号,继而做相应的处理。2.3 系统硬件总电路第三章 系统软件设计3.1 系统软件流程图主程序在执行时,通过单片机内部中断对程序不断的扫描判断、刷新显示,当有键按下时,将数字钟中的时间与定时时间相比较,然后根据比
8、较程序显示状态,并且还要延时消除抖动,之后进行按键处理,从而显示不同的状态,如此周期循环。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 ;“秒”计
9、数单元清 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工作在定时方式,工作在方式
10、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;将数字钟和定时器的时间转换为
11、显示字符码,送相应的字符码存储单元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
12、,#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,
13、#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
14、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,#
15、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,
16、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 ;取数字钟“分”
17、的值 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
18、+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 ;
19、分离高位和地位的值 ,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 ;通过低位的
20、值查表,获得低位数的字符码,并存入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 ;通过高
21、位的值查表,获得高位数的字符码,并存入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 ;将数字钟“分”的高位的字符码送第三个
22、数码管显示 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,#10111
23、111b ;将定时器“分”的高位的字符码送第七个数码管显示 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:cjn
24、e 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
25、,#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,#10delay
26、1: 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软件,k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年反担保协议协议样本
- 2024年有限责任公司成立协议模板
- 2024年钻孔桩作业人工分包协议范本
- 2024企业员工福利补充协议
- 常州办公室职员劳动协议书
- 2024年原材料供应直接承包协议
- 2024年综合能源管理专项服务协议
- 2024年协议法规定的技术咨询协议
- 海洋地理课件教学课件
- 阅读专项课件教学课件
- 北师大版三年级数学上册原创天天练
- 苏教版(2024新版)一年级上册科学全册教案教学设计
- DB11T 2250-2024重点用能单位能耗在线监测系统接入技术规范
- 电力工程投标方案(技术标)
- 正畸提前结束协议书
- 2024年山西电力职业技术学院单招职业适应性测试题库汇编
- 故事绘本愚公移山
- 中国文化概论-第三章中国传统服饰文化
- 工程标书范文(十六篇)
- MOOC 地理信息系统(GIS)实验-南京师范大学 中国大学慕课答案
- (2024年)游泳教学课程教案
评论
0/150
提交评论