




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 课程名称 单片机课程设计题目名称 多功能电子钟 学生学院 物理与光电工程学院 专业班级 学 号 学生姓名 指导教师 一、 课程设计题目:多功能电子钟二、 设计要求:1)、时钟部分分为三个部分,分别为计时、校时、和定时闹钟。1、计时部分:用T2进行的,T2每10ms溢出一次,每一百秒刷新一次。每60秒就进一,且个位置零。凡是闰年的2月为28天,非闰年为29天,可先定义闰年和非闰年的2月天数。等比较是闰年时就显示相应的天数。2、较时部分:用计数器T2进行溢出计时,按下UP键进入校时状态通过。按F,E,D,C,B可分别在LED上显示年,月,日,小时,分钟,秒和星期。8和5两键是对高位进行调整的,而9和6是对低位年进行调整的。ENTER键为退出。3、定时闹钟:闹钟的实现是通过CONPARE子程序的比较,当所有的时间条件都一样时,闹钟报警。因为设计了32个可报警时间定时,所以系统根据检测到的时间闹钟而分别响应。2)、显示部分: LED数码管显示(动态显示)1、定时/中断的实现:每一次中断/定时只显示一位数码2、设计显示缓冲区:时,分,秒共六位,用六个字节的存储单元。3、查到笔形码。4、采用数码管的动态扫描工作方式,可通过键盘分别选择显示年或者月/日或者时/分或者分/秒。5LED数码管的笔段码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf共阳数码管,代表0-9,以及-。3)、键盘部分在键盘电路中,使用的是54键盘。键盘在源程序中的功能安排如下:、第一次中断判断有无键按下,若有按下则实行定时一次,下一次中断开始扫描。2、键盘的设置键盘表面如图:ENTERESC其中各键设置为:键定义为“设置时间的递增”键。ENTER键定义为“确认”键,即设置完时间后,按此键保存。ESC键定义为“返回”键,即不保存设置,返回正常时间状态。 键定义为“设置时间的递减”键。 F 键定义为“时间翻页”键。按一下,时间就向下依次翻页显示一次,顺序为:年,月/日,时/分,分/秒,星期。E键定义为“校时”键。即可通过此键来设置年,月/日,时/分,分/秒,星期为可调。D 键定义为“闹钟”键,即按此键显示闹钟时间,如果再按时间递增减键,则可调闹钟C 键定义为“闹钟查询”键。即按下此键可以查询闹钟设置,但是不能修改闹钟。 B 键定义为“时间高位/低位切换”键。控制时间递增减键在哪位上设置。键定义为“闹钟确定”键。按下次键即可打开闹钟状态。 4)、系统:MCS-51单片机三、 实际整体系统设计:1)、时钟部分分为三个部分,分别为计时、校时、和定时闹钟。1、计时部分:用T2进行的,T2每10ms溢出一次,每一百秒刷新一次。每60秒就进一,且个位置零。每24小时,天数进一。2、较时部分:用计数器T2进行溢出计时,按下键9 T2停止计时。按键3开始校正时间,校正位闪烁,再次按下键3,移动校正位。键5进行加操作,键8进行减操作。键2确定当前设置时钟,键6退出时间校正。3、定时闹钟:闹钟的实现是通过设置标志位,标志位置位且时间到达闹钟报警。只能设置一个闹钟。2)、显示部分: LED数码管显示(动态显示)1、由8位7段共阳数码管组成,显示时-分-秒,年-月日。2、查到笔形码。3、采用数码管的动态扫描工作方式,可通过键盘分别选择显示时间、日期或者闹钟。4、LED数码管的笔段码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf共阳数码管,代表0-9,以及-。2)、键盘的设置键盘表面如图:其中各键设置为: 键定义为“查询日期”键定义为“设置完成确认”设置完时间、日期、闹钟之后必须按下此键完成设置。键定义为“设置、移位”,在查询时间、日期、闹钟界面时,按下下此键,每按下一次,设置位移位一位键定义为“查询闹钟”,按下此键可查看当前闹钟。键定义为“设置位数值递增”,在设置时间、日期、闹钟时,可令当前设置位数值加一。键定义为“设置完毕退出键”, 在设置时间、日期、闹钟时,按下此键,重回时钟显示界面。键定义为“启动或禁止闹钟”,在设置闹钟时,按下此键可启动或者禁止当前闹钟。键定义为“设置位数值递减”,在设置时间、日期、闹钟时,可令当前设置位数值减一。键定义为“设置时间”,按下此键,时间停止计数。4)、系统:STM8105s4c6单片机四、 设计方案:1)、程序的流程图主程序初始化定时器以及IO口启动定时显示时间按键处理程序扫描按键分别对三行键盘引脚置低电平,读取列引脚的值,显示闹钟、设置时闹钟设置位闪烁显示日期、设置时日期设置位闪烁显示时间、设置时时间设置位闪烁2)、关键程序介绍(主时钟为系统上电默认时钟2MHz)1、定时器2的初始化void TIM2_Init(void) /*允许自动重裝载*/ TIM2_CR1 |= 0x80; /*设置为2分频*/ TIM2_PSCR |= 0x01; /*计数器初值设置为 0*/ TIM2_CNTRH = 0; TIM2_CNTRL = 0; /*自动重转载寄存器的值为10000,每10ms中断一次*/ TIM2_ARRH = 0x27; TIM2_ARRL = 0x10; /*允许更新中断*/ TIM2_IER |= 0x01; /*使能TIM2*/ TIM2_CR1_CEN = 1; 2、数码管显示/*显示时间*/void Display_Time() uint8_t i; for(i=0;i8;i+) PD_ODR=(0x01i); switch(i) case 0: PB_ODR=blockSec%10; break; case 1: PB_ODR=blockSec/10; break; case 2: PB_ODR=block10; break; case 3: PB_ODR=blockMin%10; break; case 4: PB_ODR=blockMin/10; break; case 5: PB_ODR=block10; break; case 6: PB_ODR=blockHour%10; break; case 7: PB_ODR=blockHour/10; break; Delay_Ms(1); /*不显示当前位时间*/void No_Display_Time(uint8_t w) uint8_t i; for(i=0;i8;i+) PD_ODR=(0x0160) Sec=0; break; case 1:Sec+=10; if(Sec60) Sec=Sec%10; break; case 3:Min+; if(Min60) Min=0; break; case 4:Min+=10; if(Min60) Min=Min%10; break; case 6:Hour+; if(Hour23) Hour=0; break; case 7:Hour+=10; if(Hour23) Hour=Hour%10; break; /*当前校正位减一*/ if(flag=8) switch(x) case 0:Sec-; if(Sec=0) Sec=59; break;case 1:if(Sec/10=0) Sec=60+Sec%10;Sec-=10; break;case 3:Min-; if(Min=0) Min=59; break;case 4:if(Min/10=0) Min=60+Min%10;Min-=10; break;case 6:Hour-; if(Hour=0) Hour=23; break;case 7:if(Hour/10=0) Hour=30+Hour%10; Hour-=10; break; flag=Keyscan(); /*退出时间设置,时钟重新启动*/ TIM2_CR1_CEN = 1; .5、主程序void main() TIM2_Init(); GPIO_Init();TIM4_Init();/*开启中断*/ _asm(rim); while(1) Display_Time(); Process(); if(Hour=Clock_h&Clock_m=Min&Clock_flag) PA_ODR=0x00; 3)、元器件介绍1、STM8105s4(1片):44个引脚,34个GPIO引脚,定时器有TIM1/TIM2/TIM3/TIM4。2、共阳数码管(2个):直插式,4位7段共阳数码管具有12管脚,8根LED段位及4根位选位。3、微动开关(9个):直插式微动开关,引脚两两内部相连。4、8550PNP型三极管(9个):贴片式,低电压,大电流,小信号的PNP型硅三极管。5、电容(若干):主要用于电源滤波。6、电阻(若干):用于限流分压。五、 调试过程:我在调试的时候是分步骤来调试的,最起初我调试数码管能否显示并且实现位选,将程序烧录进去之后发现数码管没有一点反应。数码管不显示可能存在两方面的原因,一是程序上的问题,二是硬件方面的问题,在检查程序没有什么问题时,接着用万用表测量对应引脚的高低电平是否与程序所实现的一致,检测结果表示,程序并不存在问题,所以便沿着对应的走线继续测量,结果发现驱动数码管的三极管不能正常工作,于是重回原理图查看引脚连接是否正确,发觉无误后,到PCB界面查看,发现三极管的封装引脚与自己想想的不一样,于是通过查看三极管的数据手册,最后原来引脚真的错了,因为用的是PCB软件自带的库,所以这种问题出现的可能性很大。在对硬件方面做了改正之后,再次烧录,这次,数码管虽然能够显示,但却无法通过动态扫描实现位选,这次就是程序方面的问题了,在对动态扫描的位选语句进行分析实验,发现确实值这里有问题,PD_ODR=(0x01i),这语句是正确的,但之前错误的语句是PD_ODR=0xfei,我想通过这样让第i个数码管置0,以实现位选,这语句虽让能让第i为置0,但也让i以下的位也置0,因为移位操作时,低位也是自动补0的,自然就不能实现位选了。接下来就是键盘功能的实现,在检测到最后,有一个键不能实现功能,原因是因为画PCB是漏画了一根线,最后给接回去就实现了。至此,显示的数码管,操作的按键都没有硬件上的问题,接下来就是实现数字钟功能的单片机编程了。六、 结论设计的内容基本都实现了,但闹钟部分还没能实现,时间、日期都能显示,并且通过按键进行设置,在设置时设置为也能闪烁。闹钟也还没实现保存32个。七、 问题讨论与总结设计方案虽然能实现部分功能,但依旧还存在一些不足的地方,以及还有一些可以继续改进地的部分。不足:就如上所述,闹钟功能还不能实现,无法储存多个闹钟,这个可以通过外接储存芯片实现,但对于STM8来说,它有足够的内存来储存这些闹钟,所以,可能不用外接储存单元。改进:1、对于供电部分可以用纽扣电池与硬件电路组合在一起,这样就可以不用那么麻烦,在使用时就可以不用再外接电源了。2、在掉电时,可以把当前的时间存储在内存中,下次上电时就可以直接读取掉电是的值,继续计数,这个实现可以外接一个24c02,用IIC读写EEPROM的方式将当前值存到24c02上。3、同时也可以设置预备电源,当掉电时,单片机不停止工作,但数码管等外设不工作,减少损耗,再次上电时,就能够与外部的时钟同步。4、可以再添加一个温度传感器18B20,这样就可以轻易获取周围环境的温度,使该系统具备更多的功能。5、还能在系统上添加红外接收管,通过这样的方式替代键盘实现时间日期等的设置。此次课程设计的感受:整个设计过程来来回回也折腾了两个星期左右,这期间虽然有时候比较烦躁,但最后基本上把这个系统的硬件完成了。最开始我是用电协的开发板来实现功能,打算功能实现之后就按照原理图把电路画出来再做成PCB。一开始在用STM8实现数码管的位选就花了相当长的时间,这一点真令我有点受挫,最后查来查去是引脚太混乱了, 51转STM8的转接板把我弄得晕头转向,引脚老师对不上号。原本是打算用库来编写的,但最后因为这个原因,不得不回到寄存器操作来。在设置时间日期那部分,对于如何让设置位闪烁我也思考了好久,最后是通过两个循环实现亮灭的。在程序实现了时间正常的功能之后,便开始做硬件电路,做电路办事,我就觉得STM8105的引脚有44根而实际上用不了这么多,所以在实现数码管的位选那部分,我决定抛弃低啊写开发板通过595传入并出的串行移位寄存器来扩展IO引脚,而是直接使用整一组PD口来实现,这样就显得容易一些了。所以,原来写得差不多的程序又必须进行大面积修改,但修改对于刚开始的按要求编写就来的容易了。电路的制作也大概花了两天的功夫在制作调试,看上去并不复杂,但实际上会费了不少时间。经过不断地编写代码,修改代码,调试程序,一路下来,基本的功能都可以实现了。对于理工科的我们来说,动手能力是至高无上的,而整个过程我才发觉我严重缺乏实践,以至于这样简单的电路、程序还要花这么多时间,而且功能也不尽完善。这次课设也是给我机会去多动手,多实践,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二手房交易电子合同范本:房屋交易电子档案管理
- 2025年度对外贸易合同二:国际贸易电子商务平台运营合作合同
- 2025版化工设备采购与安全验收总承包合同范本
- 2025版房产交易资金监管合同范本
- 2025版汽车行业区块链技术应用与解决方案合同
- 2025版商业综合体食堂厨具设备采购、安装及运营管理合同
- 2025年北京城市绿地系统建设工程施工合同
- 2025版豪华汽车年租合同样本
- 2025年拆除施工合同含施工进度款支付及结算条款
- 2025年农业产业链上下游销售采购合作协议范本
- 财务岗位安全培训课件
- 2025年贵州省中考语文试卷真题(含答案)
- 2025至2030中国电容膜片真空计行业发展趋势分析与未来投资战略咨询研究报告
- 社工儿童沟通技巧课件
- 2025年甘肃省高考物理试卷(含答案)
- 2025二年级语文下册期末统考测试卷汇-总
- 血管活性药物静脉输注护理
- 造林绿化落地上图技术规范(试行)
- 2025年浙江省杭州市西湖区九年级中考一模科学试卷
- 苯乙酮项目可行性研究报告
- T/CIE 166-2023企业级固态硬盘测试规范第2部分:性能测试
评论
0/150
提交评论