欢迎来到天天文库
浏览记录
ID:40639810
大小:66.00 KB
页数:5页
时间:2019-08-05
《声像1001班实训要求》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、声像1001班《单片机原理及应用》课程设计马子龙2011.12.19一、题目要求用C语言编写AT89C51单片机程序,设计一个智能数字钟。基本要求:1.C语言程序要求是模块化设计。2.该闹钟基于AT89C51单片机及相关外围电路进行设计。3.该闹钟有4个数码管(共阳极),可分别显示时间(时、分、秒)、及定时时间(分、秒)。4.该闹钟有4个按钮,S1是切换显示按键,该键按下时可分别实现切换正常走时显示、设定走时显示、设置定时时间,启动定时,回到正常状态等功能。S2是设定键,即该键按下,将分别选中需要设定的选项。S3键是加键,即按下
2、去表示相应选项加1。S4键是减键,即按下去表示相应的选项减1。5.该闹钟可以定时时间到,LED将发出提示闪光,且持续30s。发挥要求:1.定时时间可被打断,即打断后恢复时继续计时。2.设置闹钟报警功能;3.能切换显示年月日等信息。二、设计器材1.计算机2.KeilC51开发软件3.AT89C51单片机实训开发板4.双龙烧写软件三、成绩评定实训成绩=实训作品×50%+实训报告×20%+答辩成绩×20%+平实成绩×10%四、时间安排1.周一上午:布置题目,查找相关资料下午:介绍、讲解发软件的使用2.周二上午:学习、讲解KeilC51
3、开发软件的使用方法下午:自行设计课程方案3.周三上午:分析设计方案下午:按照设计方案进行编程4.周四上午:编写源程序代码下午:继续编写源程序代码5.周五上午:程序调试与功能测试下午:撰写实训报告书五、功能分析根据题目要求,经分析,其系统框图如图19所示。整个系统由4个部分组成:单片机控制部分、按键部分、蜂鸣器报警部分和数码管及发光二极管显示部分。数码管显示按键1×451单片机控制器LED显示图1按键部分由四个按键组成,低电平有效;数码管部分由1个四位共阳极数码管组成。LED显示部分为8个发光二极管。(1)硬件设计51单片机有四个
4、I/O口,可分别分配如下:①P0.0-P0.3分别接4个LED,即LED1(P0.0)、LED2(P0.1)、LED3(P0.2)、LED4(P0.3)。②P1.0-P1.5分别接6个数码管的使能控制端。③P2.1-P2.4分别接4个按键,即S1(P2.4)、S2(P2.3)、S3(P2.2)、S4(P2.1)。④P3.0-P3.7分别接6个数码管的字型控制端。时钟电路引脚(19脚)和(18脚)接12MHz的晶振,构成时钟电路。(2)软件设计该闹钟系统的软件设计要求采用C语言进行模块化设计,功能明确,条理清晰,通俗易懂。设计思路
5、是:利用51单片机的定时T0的中断功能,选择方式1,定时50ms,即每隔50ms产生一个定时中断。在中断服务程序中,设定一个计数变量,该变量计数20次,表示历时1s,此时将调用计时函数jishi(),在计时函数中,秒变量每增加至60,则分变量加1;分变量每增加至60,则时变量加1;时变量每增至24,则天变量加1及星期变量加1等等,以此类推。在主函数中,设定时间、闹钟、日历等初始值。然后进入一个死循环,使之不停地调用按键函数扫描是否有键按下,若有,则执行相应的代码。若无则显示当前的时间。具体软件设计流程图下图所示。六、部分源程序设
6、计流程图(闹钟程序)1.主函数main()流程图2.中断复位子程序timer0()3.计时子函数jishi()4.S1按键扫描函数key_change(),S2按键扫描函数key_set()六、调试1.编译时常见错误(1)语句漏掉分号“;”或多加分号。(2)使用未定义的变量。(3)源程序中出现中文字符。(4)调用的子函数参数类型不一样;(5)子函数写在主调函数前,但未声明。(6)关键词“#include”、“#define”、“main()”等书写有误。(7)字符串常量与字符常量混淆。(8)忽略了“=”与“==”的差别。(9)s
7、witch语句中,漏掉break语句,使程序意义改变。同时要注意case后的是一个冒号“:”,而非分号“;”。(10)忽视了while与do…while的区别。(11)//是单行注解符号,/*…*/是多行注解符号,且两种要相匹配,不要忽略其一,否则将有多行源程序被屏蔽掉。(12)花括号{}不匹配,漏掉了其中一个或多写了几个。2.联调设置(1)将C源程序在Keil软件内编译成功后,生成*.hex文件。(2)在Proteus仿真软件中搭建仿真电路,设置仿真参数,并将*.hex文件加载到51单片机中。(3)点击仿真开始按钮,观察结果是
8、否正常。(4)若存在问题,可在Keil软件中调试更正,再编译,然后可直接点击仿真按钮,观察问题是否排除。3.注意事项(1)sbit的应用,在单片机C语言中,可以用sbit设置某个I/O端口,使之独立控制其运行。如:sbitfm=P1^6;此处将P1^6口定义为蜂
此文档下载收益归作者所有