




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1 课程设计的目的和意义 21.1 设计目的 21.2 设计意义 22 系统方案设计及确定 33 系统硬件设计 43.1 AT89S51 最小系统设计 43.1.1 时钟电路硬件设计 43.1.2 复位电路硬件设计 43.2 键盘电路硬件设计 53.3 显示电路硬件设计 63.4 蜂鸣器电路硬件设计 64 系统软件设计 74.1 系统主程序设计 74.2 定时器设计 84.3 秒表设计 94.4 闹钟设计 94.5 其他主要子程序设计 105 系统调试 116 总结 12参考文献 13附录 14附录一 程序清单 1414 系统硬件原理图附录二课程设计的目的和意义1设计目的 1.1灵活运用单
2、片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB 制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。设计意义1.2单片机课程设计过程中,我们通过查阅资料、硬件设计、程序设计、安装调试等环节,完成了一个涉及 89S51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用。使我们不但能够将课堂上学到的理论知识与实际应用
3、结合起来,而且能够对电子电 路、电子元器件、原理图绘制等方面的知识进一步加深认识,同时在软件编程、排错调试、 焊接技术、相关软件及仪器设备的使用技能等方面得到较全面的锻炼和提高。使我们增进 对单片机的感性认识,加深对单片机理论方面的理解。使我们了解和掌握单片机应用系统 的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。提高我们在单 片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以致用的原则。.系统方案设计及确定2本次课程设计,要求用单片机及6位LED数码管显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间
4、),使用按键开关可实现时、分调整,秒表(或闹钟)/时钟功能转换,以及实现省电(关闭显示)功能。1 .时钟功能利用单片机片内定时器(如T0)产生1s计时,自行设定时钟计数单元地址,包括秒单元、分单元、时单元,最大计数值为 23时59分59秒。用6位LED数码管显示时、分、 秒,以24V小时计时方式运行;使用按键开关可实现时、分调整,可增加“熄灭符”用于时间调整时的闪烁功能;能整点提醒(短蜂鸣,次数代表整点时间);可通过按键使系统进入省电状态(数码管不亮,时钟不停)。2 .秒表功能能通过按键实现秒表/时钟功能之间的转换;利用单片机内部定时器(如T1)实现秒表的计时,自行设定秒表计数单元地址,包括1
5、0ms单元、秒单元、分单元,通过6位LED数码管显示,最大计数值为99分59.99秒可通过按键实现秒表的暂停、清零、启动。3 .闹钟功能能通过按键实现闹钟/时钟功能之间的转换;可通过按键设定闹钟时间,在定时I铃时精确到分,可通过6位LED数码管显示闹钟设定时间。可通过按键实现闹铃有效、无效,以及在设定闹钟后取消闹时功能。在闹铃时,可通过按键开关使蜂鸣停止。4 .系统设计方案框图如下:电源独立按键电路数码管显示电路AT89S51时钟电路单片机蜂鸣器电路 复位电路 图2-1系统设计方案框图系统硬件设计3最小系统设计 3.1AT89S51单片机最小系统单片机,或者称为最小应用系统,是指用最少的元件组
6、成的单片机可以工作的 系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电总复位电路 .下面给出一个 51单片机的最小系统电路图:图3-1 51单片机最小系统原理图时钟电路硬件设计3.1.1时钟电路是计算机最核心的部分,它控制着计算机的工作。AT89S51单片机内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1 ,输出端为XTAL2 ,分别是单片机的19脚和18脚。在 XTAL1和XTAL2两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。石英晶振起振后要能在XTAL2线上输出一个 3V左右的正弦波,使片内的 OCS电路按石英晶振相同频率自激震荡。通常,
7、 OCS的输出时钟频率 fosc为0.5MHZ16MHz ,典型值为 12MHz 电容器 C1和 C2通常取 30pF左右,对震荡频 率有微调作用。调节它们可以达到微调震荡周期fosc的目的。时钟电路如下:.图3-2时钟电路电路图复位电路硬件设计 3.1.2单片机的RST管脚为主机提供一个外部复位信号输入端口。复位信 号是高电平有效,高电平有效的持续时间应为 2个机器周期以上。单片机的复位方式有上电自动复位和手工复位两种。图4-2所示是51系列单片机常用的上电复位电路,只要 Vcc上升时间不超过 1m它们都能很好地工作。复位以后,单片机内各部件恢复到初始 状态。电阻电容器件的参考值:R1=20
8、0Q,R2=1KQ,C3=22pF。RET按键可 以选择专门的复位按键,也可以选择轻触开关。复位电路如下,I图3-3复位电路电路图键盘电路硬件设计 3.2单片机中常见的键盘有独立式键盘和矩阵式键盘,独立式键盘适 用于实现功能较少的场合、矩阵式键盘适用于功能复杂的场合。本 次课程设计,采用独立式键盘即可。键盘电路如下:.图3-4键盘电路电路图上拉电阻保证按键释放时,输入检测线上有稳定的高电平。当某 一按键按下时,对应的检测线就变成了低电平,与其他按键相连的 检测线仍为高电平,只需读入输入线的状态,判别哪一条I/O I/O输入线为低电平,很容易识别哪个键被按下。键的闭合与否,输出电压上就是呈现高电
9、平或低电平。高电平, 表示键断开,低电平则表示键闭合,通过对电平的高低状态的检测, 可确认按键按下以及按键释放与否。为了确保对一次按键动作只确 认一次按键有效,必须消除抖动的影响,去抖有硬件去抖和软件去 抖,本次设计采用软件去抖。显示电路硬件设计 3.3本次课程设计,采用数码管作为显示装置。LED数码管有共阴极、共阳极两种结构,本次采用共阳极数码LED管。共阳极数码管的发光二极管的阳极连接在一起,公共阳极LED接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点 亮,相应的段被显示段共阳极段码如下:LED 83-1 8段共阳极LED段码表去口 JXTAL1用口用aTil 12FD.1AR
10、D1 由Rfig而与用Surrlhut 但1rzS/a 口 .工*上1中ALE院统口工川网台显示012345678 字符段码 80H82HA4H99HC0HF9HF8H92HB0H显示全灭全亮CEFDA9B字符段码 FFH90H86H00H88HC6H83H8EHA1H数码管有静态显示和动态显示两种显示方式。静态显示方 LED式,数码管亮度高、软件编程简单,但是需要占用大量的口, I/O一般在多位显示时不采用此种方法。动态显示方式,数码管亮度稍低、软件编程复杂,但是占用的口少,在显示多位数字的时候I/O适合采用此种方法。考虑到本次课程设计需要显示六位数字,故采用动态显示方式。数码管段选、位选驱
11、动电路均采用作为驱动芯DM74LS244 LED片。蜂鸣器电路硬件设计3.4蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器的工作原理是,接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。本次课程设计中,由于单片机的口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放I/O大驱动电流,从而可以让蜂鸣器发出声音。蜂鸣器电路如下:XL1蜂鸣器电路电路图3-5图系统软件设计4系统主程序设计4.1程序中,采用按键
12、 1作为主功能切换键,按键 2、按键3、按键4作为子功能控制键。在主程序中,开始即进入定时器子程序,显示当前时间,并同时对按键1进行扫描。、按键3、按键4 如果按键1第一次被按下,则进入调整时间子程序,并同时对按键2进、按键3、按键4 2分别作为调整时、分、秒按钮使用;如果按键 1第行扫描,此时按键二次被按下,则进入秒表子程序,并同时对按键2、按键3、按键4进行扫描,按键 2、按键3、按键4分作为秒表启动、暂停、停止并清理按钮使用;如果按键 1第三次被按下,则进入闹钟子程序,并同时对按键2、按键3、按键4进行扫描,按键 2、按键3、按键4分作为闹钟的启动/关闭、调整时、调整分按钮使用;如果按键
13、1第四次被按下,则进入节能子程序,此时将不对按键2、按键3、按键4分进行扫描;如果按键 1第五次被按下,则重新回到定时器子程序,如此循环。始开调用定时器函数N?按下键1被按Y显设时钟置及调用数函示N按键1被按下?Y显及制调用秒表控数示函N按键1被按下?Y显及钟用闹控制调数函示N ?下按被1键按Y数函节调用能N下按键下按被 1Y主程序流程图定时器设计4.2在定时器子程序当中,采用定时器T0产生定时中断。定时器 T0工作于方式 2,初值为TH0=0x9C , TL0=0x9C ,时钟电路采用12MHz 晶振,所以每 0.1ms产生一次中断,再在中断中对时间进位进行判断处理,使之产生较为精准的定时。
14、产T定日n num+0.1m中断 num=1000十时钟=6分=6,分十时钟小清? =24小时小时清零定时器子程序秒表设计4.3在秒表子程序当中,采用定时器T1产生定时中断。定时器 T1同意工作于方式2,初值为TH0=0x9C , TL0=0x9C ,时钟电路采用12MHz 晶振,所以每 0.1ms产生一次中断,再在中断中对时间进位进行判断处理,使之产生较为精准的定时。被按下按被按下被按下按按计时停止并清零计计时暂停开始计时时值秒表子程序闹钟设计4.4在闹钟子程序里,按键2被按下奇数次时,闹钟打开并在第一位数码管上显示标志位;按键2被按下偶数次时,闹钟关闭并熄灭第一位数码管上的标志位。按下按键
15、3,则定时时间的小时位加一;按下按键4 ,则定时时间的分钟位加一。开始被按下? 2被按下?按键4按键被按下? 3按键闹闹钟打开并点亮标志位/+定时分钟+定时小时闹钟子程序其他主要子程序设计4.5钟关闭并熄灭标志位在时钟设置子程序中,按键2被按下,则当前时间的小时位加一;按键当前时间的分钟位加一;按键4被按下,则当前时间的秒位被清零。3被按下,则被按下按被按下按按被按下秒清零分钟+小时+时钟设置子程序当进入节能子程序时,数码管将全部被熄灭,此时按键 2、按键3、按键4即使被按下也不采取任何操作。开始数码管全部熄灭节能子程序其他说明:当时间的小时位进一时,蜂鸣器将响起,响的“嘀”次数等于当前时间小
16、时位的值。当当前时间等于闹钟定时时间时,蜂鸣器将不断响起“嘀”声,按下按键1后,“嘀”声停止。.系统调试5本次课程设计采用伟福仿真器进行程序的调试,下面介绍伟福仿 真器的调试及使用。进入WAV嗽件后,第一步要进行仿真器设置,在仿真器选项卡中,仿真器为选择“ E6000/S”,仿真头选择 POD-H8X5X,CPU选 择“89C51RX;在目标文件选项卡中,将所有选项前均打钩,;在 通讯设置选项卡中,将“使用伟福软件模拟器”的勾掉,然 后选择“COM 1 口,点击“测试串行口”,测试成功后,就完成了所 有的仿真器设置。第二步,开始创建项目工程,在 C盘根目录下创建“ Project ”文件夹,双
17、击打开,再创建“ program . c”文件。注意,这里Project ”文件夹为工程项目所存放的文件夹,文件夹名必须是英文,汉字不能用。“program. c”文件为程序源文件,若是用汇编语言,则相应的改为“ program. asm文件。这里文件夹名和原文件名可以是任意英文字符。点击菜单栏“文件(F) ” ? “新建项目”找到刚才创建的源文件(以 C 语言源文件为例) ,点击“打开” ,然后键入工程项目文件名字 (以 project 为例, 项目文件名可以任意) ,并点击“保存”保存。 双击左侧源文件“ program . c” ,此时即可开始编写程序了。(WAVE600薨成开发软件是基
18、于C语言内核的,仅支持“ /* */ ”注释方式,不支持“ / ”注释方式) 。最后介绍程序的编译及执行,点击菜单栏“项目” ? “编译” ,无语法错误,编译通过。点击菜单栏上“执行”?“全速执行”,进行硬件仿真调试。按停止按钮则退出调试状态。本次课程设计,我主要是参考了郭天祥老师的一些例子程序,从而逐步掌握了有关单片机数码管动态显示、按键的扫描及去抖、时钟定时赋值等一些内容。然后根据老师的原理图,参照例子程序,利用 C 语言进行编程。程序调试过程中难免出现各种各样的问题,通过请教老师、 网络查询、 同学之间相互帮助, 都逐一得到了解决。 总结 6为期三周的课程设计就这样结束了,通过这次课程设
19、计,我们不仅对单片机的学习有了更多的认识和理解,而且又填补了很多以前的知识漏洞。本次课程设计,收获最多的当然是单片机方面,但是同时我们又一次学习了语言、制图等,熟悉掌握了 Protel C的使用。 AVE6000W课程设计是培养我们综合运用所学知识 , 发现、提出、分析和解决实际问题 , 锻炼实践能力的重要环节 , 是对我们实际工作能力的具体训练和考察过程. 回顾起此次课程设计,至今我仍感慨颇多。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,唯有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高我们自己的实际动手能力和独立思考的能力。在设计的过程
20、中,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的很多的不足,自己知识的很多漏洞,对以前所学过的知识理解得不够深刻,掌握得不够牢固,看到了自己基础知识还是不够扎实,实践经验还是比较缺乏,理论联系实际的能力还待急需提高。通过这次课程设计之后,一定把以前所学过的知识重新温故。在这个过程中,我真切的感到了,我又知道了很多,同时也掌握了很多以后在工作和生活中能真正用到的很多东西。但是我不会因此而骄傲,相反以后我将会更加虚心,因为我知道这只是个简单的开始,以后还有很多的路要走。在此,再次感谢带领我们课程设计的王老师、杜老师、张老师和蔡老师,正是有了老师们的细心教导、耐心指导、苦心监督,我们才
21、能够顺利完成各项学习任务、收获真知识、锻炼真本领 。 参考文献【 1】 单片机原理与接口技术 胡汉才清华大学出版社.M【2】 系列单片机原理及应用王瑾、杜波等中国电.MCS-51 M.力出版社【3】新概念51单片机C语言教程.郭天祥电子工业出版社.M【4】 跟我学用单片机肖洪兵北京航空航天大学出版社.M.【 5】 单片机实验与实践教程夏继强北京航空航天大学出. M.版社 ,【 6】 ProtelDXP 电路设计技术孙玉军. 冶金工业出版社M.【7】 单片机应用设计200 例 . 下(第一版) 张洪润 . 北京航 M.空航天大学出版社【8】C语言程序设计杨忠宝、董晓明北京大学出版社.M.附录附录
22、一程序清单/* 头文件 */ #include #define uint unsigned int#define uchar unsigned char/* 定义按键 */ sbit key1=P1A0;sbit key2=PWi;sbit key3=P1A2;sbit key4=P1A3;/* 定义蜂鸣器*/sbit bell=P1A7;/* 定义数码管位控*/sbit LED1=P2A5;sbit LED2=P2A4;sbit LED3=P2A3;sbit LED4=P2A2;sbit LED5=P2A1;sbit LED6=P2A0;/* 定义变量*/uchar miao,fen,shi
23、,shm,sec,min,nshi,nfen;uchar d1,d2,d3,d4,d5,d6,m1,m2,m3,m4,m5,m6,n1,n2,n3,n4;uint num,num1,num2,num3,ge,ss;/* 共阴极段选码(0-9) */uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/* 延时函数 */void delay(uint x)uint i,j;for(i=80;i0;i -)for(j=x;j0;j -);/* 时钟显示函数*/void display()d1=shi/10;/* 高低
24、位分离*/d2=shi_x0010_;d3=fen/10;d4=fen_x0010_;d5=miao/10;d6=miao_x0010_;LED1=1;/* 时高位 */P0=tabled1;delay(1);LED1=0;LED2=1;/* 时低位 */P0=tabled2;delay(1);LED2=0;LED2=1;/* 时低位小数点显示*/P0=0x80;delay(1);LED2=0;LED3=1;/* 分高位 */P0=tabled3;delay(1);LED3=0;LED4=1;/* 分低位 */P0=tabled4;delay(1);LED4=0;LED4=1;/* 分低位小数
25、点显示*/P0=0x80;delay(1);LED4=0;LED5=1;/* 秒高位 */P0=tabled5;delay(1);LED5=0;LED6=1;/* 秒低位 */P0=tabled6;delay(1);LED6=0;/* 时钟调整函数*/void tiaozheng()if(key2=0)/* 时 +*/delay(10);if(key2=0)while(!key2);shi+;delay(20);if(shi=24)shi=0;if(key3=0)/* 分 +*/delay(10);if(key3=0)while(!key3);fen+;delay(20);if(fen=60)
26、fen=0;if(key4=0)/* 秒清零 */delay(10);if(key4=0)miao=0;/* 时钟调整数码管闪烁显示函数*/void display1()d1=shi/10;d2=shi_x0010_;d3=fen/10;d4=fen_x0010_;d5=miao/10;d6=miao_x0010_;if(ss=1)LED1=1;/* 时高位 */P0=tabled1;delay(1);LED1=0;LED2=1;/* 时低位 */P0=tabled2;delay(1);LED2=0;LED2=1;/* 时低位小数点显示*/P0=0x80;delay(1);LED2=0;LED
27、3=1;/* 分高位 */P0=tabled3;delay(1);LED3=0;LED4=1;/* 分低位 */P0=tabled4;delay(1);LED4=0;LED4=1;/* 分低位小数点显示*/P0=0x80;delay(1);LED4=0;LED5=1;/* 秒高位 */P0=tabled5;delay(1);LED5=0;LED6=1;/* 秒低位 */P0=tabled6;delay(1);LED6=0;/* 整点报时功能函数*/void baoshi()*/ 整点报时功能if(fen=59)&(miao=59)/*uchar bs;bs=shi;bs+;while(bs0)
28、/* 报时次数等于小时数*/bs-;bell=0;delay(100);bell=1;delay(100);/* 秒表功能控制函数*/void miaobiao()if(key2=0)/* 秒表开始计时*/delay(10);if(key2=0)while(!key2);TR1=1;if(key3=0)/* 秒表暂停 */delay(10);if(key3=0)while(!key3);TR1=0;if(key4=0)/* 秒表清零 */delay(10);if(key4=0)while(!key4);TR1=0;shm=0;sec=0;min=0;/* 秒表显示函数*/void displa
29、y2()m1=min/10;m2=min_x0010_;m3=sec/10;m4=sec_x0010_;m5=shm/10; m6=shm_x0010_;LED1=1;/* 分高位 */ P0=tablem1;delay(1);LED1=0;LED2=1;/* 分低位 */P0=tablem2;delay(1);LED2=0;LED2=1;/* 分低位小数点显示*/P0=0x80;delay(1);LED2=0;*/秒高位 LED3=1;/*P0=tablem3;delay(1);LED3=0;LED4=1;/* 秒低位 */P0=tablem4;delay(1);LED4=0;LED4=1;
30、/* 秒低位小数点显示*/P0=0x80;delay(1);LED4=0;LED5=1;/*10ms 高位 */P0=tablem5;delay(1);LED5=0;LED6=1;/*10ms 低位 */P0=tablem6;delay(1);LED6=0;/* 闹钟设置功能函数*/void naozhong()if(key2=0)/* 设置闹钟的开关*/delay(10);if(key2=0)while(!key2);num2+;if(num2=3)*/ 闹钟打开 num2=1;/*if(key3=0)/* 定点小时 +*/delay(10);if(key3=0)while(!key3);n
31、shi+;if(nshi=24)nshi=0;if(key4=0)/* 定点分钟 +*/delay(10);if(key4=0)while(!key4);nfen+;if(nfen=60)nfen=0;/* 闹钟显示函数*/void display3()n1=nshi/10;n2=nshi_x0010_;n3=nfen/10;n4=nfen_x0010_;if(num2=1)/* 第一位全显示表示闹钟打开*/LED1=1;P0=0xff;delay(1);LED1=0;if(num2=2)/* 第一位全灭表示闹钟关闭 */LED1=1;P0=0x00;delay(1);LED1=0;LED3=
32、1;/* 小时高位 */P0=tablen1;delay(1);LED3=0;LED4=1;/* 小时低位 */P0=tablen2;delay(1);LED4=0;LED4=1;/* 小时低位小数点显示*/P0=0x80;delay(1);LED4=0;LED5=1;/* 分钟高位 */P0=tablen3;delay(1);LED5=0;LED6=1;/* 分钟低位 */P0=tablen4;delay(1);LED6=0;/* 到点提醒功能函数*/void tixing()if(num2=1)&(nshi=shi)&(nfen=fen)/* 闹钟 */*/while(num2=1)/* 按键 key1 控制蜂鸣器停止,并关闭闹钟bell=0;delay(100);bell=1;delay(100);if(key1=0)delay(10);if(key
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子测量仪器软件算法分析与设计考核试卷
- 电信企业文化建设与品牌塑造考核试卷
- 气动元件的绿色制造技术考核试卷
- 碱性溶液的化学分析考核试卷
- 油气仓储与能源科技创新发展战略考核试卷
- 2025年-吉林省安全员-C证考试题库
- 2025年-天津建筑安全员C证考试(专职安全员)题库附答案
- 浙江卷-2025届高考生物学全真模拟卷(有解析)
- 2025年江西省安全员C证考试(专职安全员)题库附答案
- 2025年-福建省建筑安全员知识题库及答案
- 智能仓储管理实战手册
- 中考英语时态专项练习题(附答案)
- 提高住院病历完成及时性持续改进(PDCA)
- 气门摇臂轴支座的机械加工工艺及夹具设计毕业设计
- 企业职工代表任命协议书
- 地下管线测绘及数据处理
- 附件1:中国联通动环监控系统B接口技术规范(V3.0)
- 卫生院B超、心电图室危急值报告制度及流程
- 医疗器械经营公司-年度培训计划表
- 校园青年志愿者培训(服务礼仪讲解)
- 教练员教学质量信誉考核表
评论
0/150
提交评论