====================================== -1- 功能=================================================================================
1-- 时间 -- DS1302
2-- 温度 -- DS18B20
3-- 温度报警
4-- 闹钟
5-- 修改日期时自动更改星期
6-- 上位机改变下位机单片机的DS1302时间 闹钟时间 温度报警上下限值
7-- 可以通过键盘改变DS1302时间 闹钟时间 温度报警上下限值
8-- 改变值时光标会闪 可以控制闹钟的开关并在第一页上显示符号
9-- 年月日时分秒的临界值控制 平年闰年对应的二月判断
========================================== -2-按键说明 ================================================================================
4*4的矩阵键盘共用了4个键 一个用于选择屏幕 一个是屏幕中的子选项 另两个为数值+-(分别是(1 2) (3 1) (1 1) (1 2) 括号里面的值的第一个为行 第二个是列 如(1 2)代表第一行第二列的按键)
.
============================================ -3- 源码和原理图===========================================================================
单片机波特率为9600 如果正常的话,可以发送一个T,那么久会返回提示,具体提示可以在下面的网站上的图上看到
-----------------------------------------------------------------------------------------------------
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4375606&bbs_page_no=1&bbs_id=9999
在上面的帖子中的5楼有第一版的代码
大家顺便帮忙看看,那个上位机的问题.
源码:
点击此处下载
ourdev_595928VEA3YT.rar(文件大小:341K) (原文件名:Final_Sensor.rar)
------------------------------------------------------------------------------------------------------
原理图和PCB
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3967978&bbs_page_no=1&search_mode=3&search_text=QQ373466062&bbs_id=9999
=============================================== -4- 图片===================================================================
(原文件名:Keil .jpg)
屏幕1:(显示时间和温度可以用键盘和上位机修改)
(原文件名:20101107096.jpg)
屏幕1:(显示时间和温度,可以用键盘修改和上位机修改)
(原文件名:20101107097.jpg)
屏幕2:(显示温度报警下行限可以用键盘和上位机修改)
(原文件名:20101107098.jpg)
屏幕3:(显示和设置闹钟可以用键盘和上位机修改)
(原文件名:20101107099.jpg)
4*4键盘
(原文件名:20101107100.jpg)
设置闹钟: (光标闪)
(原文件名:20101107105.jpg)
设置时间:(光标闪)
(原文件名:20101107106.jpg)
上位机命令修改下位机子程序设计图:
(原文件名:20101107107.jpg)
================================================ -5- 程序说明 =======================================================
程序时国庆时候花两天写的 很多的模块是直接改写别人的,我将它们重新包装了下,某些地方也改了
程序有太多的地方需要改进. 希望大家说出了. 例如延时应该换用检测报警程序替代. 每一个状态机的运行时间不同而使按键灵敏度不同
源码:
点击此处下载
ourdev_595928VEA3YT.rar(文件大小:341K) (原文件名:Final_Sensor.rar)
程序在main函数中使用状态机思想(自认为),用于三个屏幕切换显示,在屏幕函数对于的子函数中采用简单的显示和键盘扫描与相关量更改处理.
对上位机接受函数中采用队列缓存.然后判断处理.
模块化:
(原文件名:Keil文件1.jpg)
代码量:
(原文件名:代码量.jpg)
你的图片怎么都反着
等一下借同学的单反过来
硬件是大二上学期(一年前)弄的,发现几个问题:
1 -- DS1302离单片机太远,而且没有加上拉电阻,因为用的是STC89C52所以能够正常使用,但是设计不规范
2 -- 调节LCD对比度的滑动变阻器放置位置不佳
3 -- 从Altium Designer 转到 Protel 99Se时,出现某些东西的丢失,没有检查.
再说说软件:
1 -- main函数过大过长
2 -- 用队列方式接收上位机命令,用时过长.
3 -- 状态机使用上,对键盘扫描灵敏度不同.
一周热门 更多>