单片机课程设计多功能万年历.docx
- 文档编号:25058276
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:13
- 大小:474.37KB
单片机课程设计多功能万年历.docx
《单片机课程设计多功能万年历.docx》由会员分享,可在线阅读,更多相关《单片机课程设计多功能万年历.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计多功能万年历
1需求分析
本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。
系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
2概要设计
主程序:
Ds18b20子程序:
Ds1302子程序:
12864LCD子程序:
定时器定时设定子程序:
在年份显示中设置了闰年判断语句:
//判断闰年,leap=1表示闰年
leap=(nian%4==0&&nian%100!
=0)||(nian%400==0)?
1:
0;
//整点自动报时
if((fen1==0&&fen2==0&&miao1==0&&miao2==0)&&kaiguan==1)
3运行环境
Protues软件仿真。
4开发工具和编程语言
通过PROTEUSISIS软件的VSM(虚拟仿真技术),用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。
用PROTEUSISIS设计硬件电路的过程
①选择设计图纸的到小
根据设计所使用到元器件的多少,选择合适大小的设计图纸,操作是单击菜单栏上的System→SetSheetSize,然后弹出如图5-1所示的对话框,从中选择合适大小的图纸,也可以选择User进行图纸的自定义设置。
在设计过程中也可以通过此方法调整图纸的大小。
图5-1
②选取仿真所需的元器件
选取元器件的方式是,单击如图5-2所示的按钮“P”。
会弹出如图5-3所示的窗口。
图5-2
图5-3
从此窗口的左上角的“Keywords”中输入电子万年历设计用到的器件,如输入“AT89C51”,在中间会列出带有输入关键字的元器件,选择合适的元器件并双击它,则已经选择好了该元器件。
然后再在“Keywords”中输入其他所需的元器件,用同样的方法进行操作。
最后选择好所有的元器件如图5-4所示。
图5-4所用器件
其中74LS174表示三个串行接口,AT89C51代表单片机会,DS1302代表时钟芯片,RESPACK-8代表八排电阻。
③把元器件放到图纸的合适位置,进行布线
单击如图5-4所示的元器件AT89C51,再在右边图纸上单击,就把元器件放入到了图纸上。
再用同样的方法把ds1302放入到图纸的合适位置。
如果元器件放置错误,这可通过两次右击删除所放置的元器件,如果位置放得不理想,可以先右击该器件,然后按住左键进行移动。
在布线之前,如果觉得元器件的引脚的方向不好布线,则可以通过单击
这四个按钮进行调整,这四按钮的意思分别是:
顺时针旋转90°,逆时针旋转90°,沿Y轴对称,沿X轴对称。
通过这样的调整,可以使整个布局合理一些。
接着进行布线,由于PROTEUSISIS有自动布线的功能,比如要把AT89C51的P2口连到74LS164的OUT8口,只要先在P2引脚上单击一下,再在OUT8引脚上单击,则ISIS自动将两个引脚连上线。
图5-5at89c51与ds1302的连接
ISIS还提供了网络布线,即不使用线连接也可以把两个引脚虚拟的连接了起来。
具体操作是:
单击要连线的一个引脚,连出适当的距离后双击,另一个引脚也同样操作,在单击如图6-5所示的“LBL”按钮,再在图中P0.1引脚的A处单击,在弹出的窗口中的“String”中填入名称,如“A”,对OUT7引脚进行同样的操作,在“String”中也填入名称“A”,这样就完成了P3.4引脚与RES引脚的网络连接,这个好处避免两个距离比较远的器件进行真实线的连接,使布线美观。
④编辑窗口连接端子
要让最后的设计成功仿真时,必须放置并连接端子。
选择
,从中可以选择电路原理中的两个通用的端子,一个是接地,一个是电源。
如图5-6所示。
图5-6连接端子
用PROTEUSISIS进行电子万年历的仿真测试
①添加Keil中编写的代码文件
单击工具栏中的Source→Add/RemoveSourcefiles...,弹出一个对话框,分别单击“New”,然后选择在Keil中编写的数字电压表.ASM汇编语言程序,单击“OK”,完成添加代码文件。
②编译源程序,生成.HEX目标代码文件
单击Source→BuildAll。
如果编译结果没有错误,会出现如图5-8所示的结果。
图5-8
③加载.HEX目标代码文件
通过如图5-9所示的对话框,选择刚才编译生成的.HEX文件。
设置使单片机的运行频率为6MHz。
图5-9
⑤PROTEUS的调试功能
由于使用的是汇编语言编写的程序,如果在测量的时候测量值显示错误,说明程序中存在问题,这个问题只用在仿真测量的时候才能被发现,这时可以使用PROTEUS对程序进行调试。
单击
按钮,再单击菜单栏中的Debug,可以在最下面选择打开内存观察窗口,寄存器值观察窗口,汇编语言源代码窗口等等。
在汇编语言源代码窗口中,也可以在所需要设置断点的语句前双击设置断点,当设置断点的时候,程序运行到所设断点处停止,从而可以在内存、寄存器等的值的变化,从而找出程序出错的地方。
5详细设计
源程序名列表。
main.c文件:
voiddelay_ms(t)/*对于12M时钟,约延时1ms*/
voidMusic(z)//语音芯片驱动程序
voidmain()//主函数
LCD12864.c文件(液晶显示)
voiddelayNOP()//延时4us
bitlcd_busy()//检查LCD忙状态
voidwrite_cmd(ucharcmd)//写指令数据到LCD
voidlcd_wdat(uchardat)//写显示数据到LCD
voidlcd_init()//LCD初始化设定
voidlcd_pos(ucharX,ucharY)//设定显示位置
voiddisplay()//主显示程序
DS18B20.c文件(温度检测)
voiddsreset(void)//DS18B20复位,初始化
bittempreadbit(void)//读一位数据
uchartempread(void)//读一字节(8位)
voidtempwritebyte(uchardat)//向DS18B20写一个字节数据
voidtempchange(void)//开始获取温度并转换
uintget_temp()//获取温度
voiddisplay2(uinti)//数据格式转换
voidtemper()//显示温度
DS1302.c文件(时钟芯片)
voiddelay(intms)//延时xms
voidWriteByte(ucharCommand,ucharWriteData)//写位数据
ucharReadByte(ucharCommand)//读取DS1302一字节数据,address为命令字节
voidEdit(ucharflag)//时间日期编辑程序
voidKeyFun()//按钮功能函数
voidReadDS1302()//读取DS1302的秒,分,时,日,月,星期,年
voiddate_change()//数据格式转换
timer.c文件(定时器定时)
voidTimer0Init()//定时器初始化
voidTime0Isr(void)interrupt1//定时器0中断函数
6调试分析
电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。
电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。
最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。
在软件的调试过程中主要遇到的问题如下:
1.烧入程序后,LED数码管显示闪动,而且亮度不均匀。
解决:
首先对调用的延时进行逐渐修改,可以解决显示闪动问题。
其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。
2.修改时间、日期时没有农历没有自动对应上。
解决:
把不相关的程序暂时屏蔽,地农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。
最后把相应的十进制进行修改,使得可以与十六进制对应,最后解决了此问题.
7测试结果
8参考文献
[1]朱善君,孙新亚,吉吟东编著.单片机接口技术与应用.北京:
清华大学出版社,2005
[2]王福瑞等编著.单片微机测控系统设计大全.北京:
北京航空航天大学出版社,2004
[3]籍顺心等编著.单片机的C语言应用程序设计.北京:
北京航空航天大学出版社,1999
心得体会
经过近两周的努力,终于完成了这次课程设计,从中我学会了很多知识,以及动手能力,从中深刻意识到了单片机的强大与实用之处,程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,终于能够完成它。
在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。
也练就了我们的耐心,做什么事都在有耐心。
此次设计中学到了很多很多东西,这是最重要的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 多功能 万年历