第一篇:单片机课程设计计划
华东交大理工学院_2013-2014_学年第_一_学期
课程设计安排计划
班级:11级电气12、34、56班课程:单片机应用综合设计
一、课程设计题目:
跑马灯游戏机的设计
二、设计内容及要求:
1、设计内容:
此课程设计的课题为跑马灯游戏机设计,设计内容是:由单片机I/O口控制发光二极管(LED)依次点亮短暂延时后熄灭,周而复始。当外部功能按键(连接于INT0/1)作用时,分别实现开始、停止功能。具体过程为:按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其它LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响2秒,以示庆祝,反之则蜂鸣器鸣响500ms示意输掉游戏。下次按下开始后,游戏仍能继续。
2、设计要求
(1)要求学生掌握单片机I/O口和外部中断等资源的使用,并实现由外部输入信号如何控制输出信号的功能。
(2)要求学生用所提供的元件来完成对跑马灯游戏机的硬件设计。
(3)要求学生用所学语言(汇编语言或C语言)来完成跑马灯游戏机的软件设计。
(4)要求学生掌握电路调试的方法,培养解决实际问题的能力。
三、设计方法与步骤:
1、设计方法:硬件电路设计、软件设计、电路的组装与调试。
2、设计步骤:
(1)查找参考电路图所用器件使用数据手册,掌握其使用方法;(2)依设计功能说明,设计出硬件电路图;
(3)依设计功能,设计出详细的程序流程图,并编写出程序;(4)对设计的硬件和软件,通过计算机辅助软件进行仿真(5)安装调试、自制印刷板;
(6)撰写设计报告、调试总结报告及使用说明书。
四、设计时间安排:
13周-15周完成,每周安排8个课时的教学。
五、其他需说明的事项(课设如到本部做,请注明实验室名称;还有学校需提供的软件和硬件环境)
指导老师:陈芳时间: 2013-11-8
联系电话:***
华东交通大学理工学院课程设计教学安排
任课老师:陈芳指导老师:陈芳任课班级:11电气1、2班课程名称:《单片机应用综合设计》
第二篇:单片机课程设计
镇江高等专科学校课程设计1 项目要求
基于AT89S51单片机的密码锁设计,具体功能如下:(1)总共可以设置8位密码,每位密码值范围为1~8。(2)用户可自行设定和修改密码。(3)按每个密码时都有声音提示。
(4)若键入的8位开锁密码不完全正确,则报警5s已提醒他人注意。
(5)开锁密码连续错3次要报警1分钟,报警期间输入密码无效,以防窃贼多次试探密码。
(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1s的提示音。(7)电磁锁的电磁线圈每次充电5s,然后恢复初态。
(8)密码键盘上只允许有8个密码按键。锁内有备用电池,只有内部上电复位才能设置或修改密码,因此,仅仅在门外按键是不能修改或设置密码的。(9)密码设置完毕后要有2s的提示音。硬件设计
2.1 设计思路
按照系统设计的要求和功能,将系统分为主控模块;按键扫描模块;蜂鸣器;电源电路;复位电路晶振电路;驱动电路几个模块,系统组成框图如图1-1所示。主控模块采用AT89S51单片机。
电源电路复位电路主控模块晶振电路AT89S51按键扫描模块驱动器蜂鸣器 图1-1 基于AT89S51单片机的密码锁组成框图 镇江高等专科学校课程设计2.2 硬件图及说明(硬件图见图1-2,)
元件型号单片机晶振电容型号数量/个用途元件型号蜂鸣器电阻型号数量/个用途AT89S52 1 控制核心12MHz 1 晶振电路30pF 2 晶振电路1 报警电路1kΩ10kΩ4.7kΩ1 上拉电路1 复位电路1 放大电路电阻电阻继电器电源电解电容20uF/10V 1 复位电路按键三极管二极管9 按键电路8550 2 放大电路IN4004 1 5V 1 控制对象+5V/0.5A 1 提供+5V电源 图1-3 基于AT89S51单片机的密码锁元件清单
注:1.AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
2.蜂鸣器的工作原理: 软件设计
2.1 设计思路 镇江高等专科学校课程设计应位置的,分析程序时可以仔细对照参考。该密码锁中RAM存储单元的分配方案如下所示
如图1-3所示给出了该单片机密码锁电路的软件软件流程图。图中AA1~AA8以及START,SET,SAVE是程序中的标号,是为了理解程序而专门标在流程图的对 31H~38H;依次存放8位设定的密码,首位密码存放在31H单元中。 R0:只指向密码地址 R2;已经输入密码的位数
R3:存放允许的错码次数3与实际错码次数的差值。 R4~ R7:延时用。 00H:错码标志位。
对于ROM存储单元的分配,由于程序比较短,而且占用的存储空间的较少,因此,在无特殊要求时,可以从0030H单元(其他地址也可以)开始存放主程序。3.2 程序流程图
开始初始化1s提示音等待设置密码NN有键按下?Y短音提示保存设置密码N是否够8位?Y长音提示错误次数清零错误标识清零N有键按下?Y短音提示密码对否?Y是否够8位?Y标志=1?N开锁并长音提示延时锁恢复错误清零错3次?Y报警1 min错误次数清零报警5s错误标志清零Y错误次数加1NN错误标志置1 图1-4 基于AT89S51单片机的密码锁程序流程图
3.3 程序清单(注释)
LOC OBJ LINE SOURCE
0000 1 ORG 0000H 0000 0130 2 AJMP START 0030 3 ORG 0030H 镇江高等专科学校课程设计0030 11A1 4 START:ACALL BP 0032 7831 5 MOV R0,#31H 0034 7A08 6 MOV R2,#8 0036 7590FF 7 SET1:MOV P1,#0FFH 0039 E590 8 MOV A,P1 003B B4FF02 9 CJNE A,#0FFH,L8 003E 0136 10 AJMP SET1
0040 11B0 11 L8: ACALL DELAY 0042 B4FF02 12 CJNE A,#0FFH,SAVE 0045 0136 13 AJMP SET1 0047 11A1 14 SAVE: ACALL BP 0049 F6 15 MOV @R0,A 004A 08 16 INC R0 004B DAE9 17 DJNZ R2,SET1 004D 7D10 18 MOV R5,#16 004F 11A1 19 D2S: ACALL BP 0051 DDFC 20 DJNZ R5,D2S 0053 7831 21 MOV R0,#31H 0055 7B03 22 MOV R3,#3 0057 7A08 23 AA1: MOV R2,#8 0059 7590FF 24 AA2: MOV P1,#0FFH 005C E590 25 MOV A,P1 005E B4FF02 26 CJNE A,#0FFH, L9 0061 0159 27 AJMP AA2 0063 11B0 28 L9:ACALL DELAY 0065 B4FF02 29 CJNE A,#0FFH,AA3 0068 0159 30 AJMP AA2 006A 11A1 31 AA3: ACALL BP 006C C3 32 CLR C 006D 96 33 SUBB A, @R0 006E 08 34 INC R0 006F B40002 35 CJNE A,#00H,AA4 0072 0176 36 AJMP AA5 0074 D200 37 AA4: SETB 00H 镇江高等专科学校课程设计0076 DAE1 38 AA5: DJNZ R2,AA2 0078 20000E 39 JB 00H,AA6 007B C2B5 40 CLR P3.5 007D 7D08 41 L3:MOV R5,#8 007F 11A1 42 ACALL BP 0081 DCFA 43 DJNZ R4,L3 0083 7B03 44 MOV R3,#3
0085 D2B5 45 SETB P3.5 0087 0157 46 AJMP AA1 0089 DB0C 47 AA6: DJNZ R3,AA7 008B 7D18 48 MOV R5,#24 008D 7CC8 49 L5: MOV R4,#200 008F 11A1 50 L4: ACALL BP 0091 DCFC 51 DJNZ R4,L4 0093 DDF8 52 DJNZ R5,L5 0095 7B03 53 MOV R3,#3 0097 7D28 54 AA7: MOV R5,#40 0099 11A1 55 ACALL BP 009B DDFA 56 DJNZ R5,AA7 009D C200 57 AA8: CLR 00H 009F 0157 58 AJMP AA1 00A1 C2B7 59 BP: CLR P3.7 00A3 7FFA 60 MOV R7,#250 00A5 7E7C 61 L2: MOV R6,#124 00A7 DEFE 62 L1: DJNZ R6,L1 00A9 B2B7 63 CPL P3.7 00AB DFF8 64 DJNZ R7,L2 00AD D2B7 65 SETB P3.7 00AF 22 66 RET 00B0 7F14 67 DELAY:MOV R7,#20 00B2 7E7D 68 L7: MOV R6,#125 00B4 DEFE 69 L6: DJNZ R6,L6 00B6 DFFA 70 DJNZ R7,L7 00B8 22 71 RET 镇江高等专科学校课程设计 72 END 3.4 程序调试
按键AN1~AN7分别代表数码1~7,按键AN0代表8。在没有键按下时,P1.0~P1.7全是高电平1;若某个键被按下,相应的口就变为低电平0.加入设定的密码是612345678,当按键AN6被按下时,P1.6变为低电平,P1端口其余口线为高电平,此时从P1口输入的数值为10111111,存到31H单元的密码值就是10111111,也就是BFH。以此类推,存到32H至38H单元的密码值分别是FDH,FBH,F7H,EFH,DFH,7FH,FEH。开锁时必须先按AN6,使从P1口读入的第一个密码值与31H单元存储的设定值相同,再按顺序按AN1,AN2,AN3,AN4,AN5,AN7,AN0才能开锁。否则不能开锁,同时开始报警。小结
通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰
参考文献:(另起一页)
【1】杨居义。单片机课程设计指导。北京:北京大学出版社,2009。
【2】王效华,张咏梅。单片机原理与应用。北京:北京交通大学出版社,2007。【3】杨光义,马宁,靳光明等。单片机原理与工程应用。北京:清华大学出版社,2009。
第三篇:单片机课程设计
中北大学单片机原理及接口技术课程设计说明书 绪论
电子钟已成为人们日常生活中必不可少的物品,广泛用于个人、家庭以及车站、影院、办公室等公共场所,给人们的生活、学习、工作带来了极大的方便。随着电子技术的发展,人们已不再满足于钟表原先最简单的报时,希望出现一些新的功能,诸如日历的显示、闹钟的非接触式止闹、秒表功能、重要日期倒计时显示等,以带来更大的方便,而所有这些,又都是以数字化的电子时钟为基础的。因此,研究数字电子钟及其扩展应用,有着非常现实的意义和实用价值。
单片机是指将微处理器、一定容量的RAM和ROM以及I/O口、定时器等电路集成在一块芯片上的完整计算机系统。89C51单片机是一种低功耗、高性能的,它采用CMOS工艺和高密度非易失性存储器(NURAM)技术,其输出引脚和指令系统都与MCS-51兼容;片内的Flash ROM允许在系统内改编程序或用常规的NURAM编程器来编程。因此,89C51是一种功能强、灵活性高,而且价格合理的单片机,可以方便的利用AT89C51定时器和6位7段数码管,设计一个电子时钟。显示格式位 “XX XX XX”,从左向右分别是:时、分、秒。1.1 设计目的
利用MCS-51芯片及相关芯片设计数字钟。1.2 设计内容 1)硬件设计
设计数字钟的电路原理图,用PROTEUS绘制硬件电路。制作实物。2)软件设计
(1)时、分、秒的设置及显示;(2)画出程序框图;(3)调试与分析。用PROTEUS仿真。
//buf
中北大学单片机原理及接口技术课程设计说明书
{
keyrel=1;keyprocess(buf);buf=0xff;} display();} } //按键处理函数
void keyprocess(unsigned char key)//键值处理,正常计时,设置时分秒 { switch(key){ case 0xe0:status++;//按下设置键 if(status>=4)status = 0;
break;case 0xd0:switch(status)//按下加1键,3种模式下加1
{
case 0x01:if(hhh<24)hhh++;
else hhh=0;break;case 0x02:if(mmm<60)mmm++;
else mmm=0;break;case 0x03:if(sss<60)sec++;
else sss=0;break;} break;case 0xb0:switch(status)//按下减1键 { case 0x01:if(hhh>0)hhh--;
else hour=23;break;
中北大学单片机原理及接口技术课程设计说明书
} } //定时器0中断函数
void timer0()interrupt 1 using 2 { static uint count;TH0=(65536-1000)/256;// 定时器0设置初始值1ms中断初始值 TL0=(65536-1000)%256;TR0=1;count++;//正常计时
if(count>=1000)// 定时 1S 到,以下为时钟的正常走钟逻辑 { count=0;sss++;if(sss>60){ sss=0;mmm++;if(mmm>60){ mmm=0;hhh++;if(hhh>24){ hhh=0;}
} } }
}
第四篇:单片机课程设计
《单片机技术》课程设计说明书
音乐盒
院、部:电气与信息工程学院 学生姓名:刘亮 指导教师:凌云职称讲师 专业:电子信息工程 班级:电子1302班 学
号:1330340220 完成时间: 2016年1月11日
摘要
音乐盒起始于中世纪欧洲,当时为使教会的钟塔报时,而将大小的钟表上装置机械设备,被称为可发出声音的组钟。
本次的课题主要分为数码管显示模块、供电模块、按键模块、发声模块、复位电路和AT89S52单片机。数码管显示模块采用共阳极数码管,通过P0口控制,实现歌曲序号的显示;供电模块采用+5V供电;按键通过P3口控制,实现歌曲播放顺序的调换和暂停播放功能;扬声器由P3.1口控制,实现歌曲播放。
主要的工作过程是通过按键控制下一首和上一首播放以及暂停和播放,同时有数码管显示当前正在播放的歌曲序号,扬声器播放出音乐。
此次设计主要用到PROTEUS、KEIL编程和AD作图软件。用PROTEUS画出原理图,用KEIL编写程序,将程序导入原理图中进行仿真。最后用AD画出PCB图,打印图纸进行腐蚀焊接。将程序下载到单片机中,利用I/O口产生方波,驱动扬声器,发出音调,从而演奏乐曲。
关键词:扬声器;AT89S52单片机;I/0口
目 录
背景意义、任务要求及设计原理、框图··························1 1.1 背景意义···············································1 1.2 任务要求···············································1 1.3 设计原理···············································1 1.4 设计框图···············································1 2 硬件系统····················································3 2.1 数码管模块··············································3 2.2 键盘模块················································3 2.3 复位电路················································3 2.4 蜂鸣器模块··············································4 3 软件系统·····················································5 3.1 主程序介绍及流程图······································5 3.2 各个模块及功能介绍······································6 3.2.1 定时器模块········································6 3.2.2 延时模块··········································6 3.2.3 中断模块··········································7 3.2.4 数码管显示模块 ···································9 4 电路仿真和程序检测··········································10 5 实物制作及调试··············································11 结束语 ····························································12 参考文献 ··························································13 致 谢· ···························································14 附 录· ···························································15 背景意义、任务要求及设计原理、框图
1.1 背景意义
音乐盒的起源是中世纪欧洲的教会用来钟塔报时,后来,随着工业的发展,逐渐的体积变小,功能变多,不过多数以机械音乐盒为主,这样的音乐盒大部分体积较大音调单一,容易受到外界的影响,而且,代价昂贵。
此次设计的音乐盒,是基于单片机设计制作的电子音乐盒。与传统的相比更加小巧,音质更优美而且可以演奏和弦音乐。单片机音乐盒的动力是+5V的电源,制作简单,可以批量生产,控制功能强大,可以随时的加减歌曲,使用更加的方便而且不易受到外界的影响而音质变坏,另外,可以根据需要,添加流水彩灯等外设更改外观,使音乐盒的功能更加丰富。
1.2 任务要求
此次的设计要求为:设计一个具有特定功能的音乐盒,要求包含软件和硬件两大模块,能够通过按键来选择曲目,切换曲目,显示器来显示曲目编号,能够准确的播放曲目。
1.3 设计原理
本次的设计最主要的在于蜂鸣器的设计,想要蜂鸣器发出不同的音调,通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需要算出某一音频的周期,然后取半周期的时间定时。利用定时器计时这半个周期时间,每当计时到之后,就将输出脉冲的I/O反向,然后在重复计时此周期时间再对I/O口反相,就可在I/O口得到此频率的脉冲。如中音DO,频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=926。在每计数956次时将I/O口反相,就可以得到中音。
每当有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出曲目。数码管采用共阳极数码管,通过单片机P0口控制,实现曲目序号的显示。功能键盘采用按键开关,通过P3口控制,实现曲目播放顺序的调换和暂停播放功能,蜂鸣器由P3.1口控制,实现音乐播放。
1.4 设计框图
单片机接+5V电源供电,晶振电路负责产生单片机所需要的时钟信号,通过功能键产生外部中断,控制音乐盒的上一曲和下一曲。在由I/O口输出控制蜂鸣器发声。另外可以用复位电路对程序初始化,在程序出错时,重启单片机。具体 的设计框图如图1所示。
图1 总体设计框图
编程设置好定时时间,通过编程器写入AT89S52单片机系统中。由AT89S52单片机的定时器每秒通过P1口控制LED数码管显示,复位信号由按键输入,没按一次,系统恢复原始状态。电源,晶振电路,单片机,功能键,和扬声器部分具体介绍在后面有介绍。硬件系统
2.1 数码管模块
歌曲显示部分用数码管来显示,LED显示器件是通过发光二极管显示字段的器件,该设计采用的是7段数码管,原理是由P0口控制数码管中的7端LED发光二极管,通过单片机给予P0口不同的数值来显示不同的数字。数码管分为共阳极和共阴极两种,共阳极的数码管,当管脚是低电平有效,而阴极的数码管,是管脚高电平有效。这样,单片机给予P0口的数值将会发生差异,也就是说,不同种类的数码管,对应的ASCII码就会不同。本次选用的是共阳极数码管,其引脚如图2所示。
图2 数码管引脚
2.2 键盘模块
本次的键盘模块采用按键开关这样操作简单,辨别容易的开关。用到4个按键开关,分别是复位按键,下一首按键,上一首按键,和暂停按键。上一首按键和下一首按键接单片机的外部中断0,外部中断1。暂停按键接定时器1,复位按键在复位电路中,接单片机RES。
2.3 复位电路
复位电路主要用于初始化程序,当单片机音乐盒发生死机时,用复位电路初始化程序来重启单片机。两个电容,两个电阻和一个复位按键组成,当单片机死机时,按下按键,即可重启,其电路原理图如图3所示。
图3 复位电路原理图
2.4 扬声器模块
扬声器模块最为重要,当单片机输出脉冲经过扬声器时,会是扬声器发声,不过因为设计中用到的元件较多,不能保证通过扬声器的电流足够大,所以要用三极管放大电路来放大电流,这样才能让扬声器正常工作,具体的原理图如图4所示。
图4 扬声器原理图 软件系统
3.1 主程序介绍及流程图
一个系统的正常运行不仅需要硬件的运行,还需要软件系统的支持。同时软件要根据硬件的连接来设计,来配合硬件的工作,例如,本次的设计用到的是P 0口和P3口。所以,设计的时候就要注意,只能用到P0和P3。本次用到的软件设计选用课堂学到的汇编语言。另外用KEIL软件来编写程序,用课堂上学到的中断和循环等来编写程序。
主程序要开始定义音频输出端口,歌曲总数以及每首歌的入口地址;然后对定时器初始化,确定工作方式,赋初值,开放中断启动定时器工作;对音频输出端口初始化;设置音节起始位置和节拍间距,把音节和节拍的入口地址信息存放在固定存储单元中,查询音乐的节拍表;当6首歌曲的节拍查询结束后,音乐播放完毕,程序结束。主程序的清单在附录中,其流程图如图5所示。
图5 主程序流程图
3.2 各个模块及功能介绍 3.2.1 定时器模块
单片机中有两个16位的可编程计数器/定时器,他们具有定时和计数的功能,可用于定时控制,延时,对外部的事件检测和计数。
定时器的核心部件是加一计数器,通过TMOD寄存器可以使定时器工作在定时或者计数,还可以选择工作方式,工作方式关系到后面音调和节拍的调用,因此,要选择合适的工作方式。定时器模块的程序清单见附录。图6为定时程序流程图。
图6 定时器模块流程图
3.2.2 延时模块
此处的延时模块并不是固定的延时程序,而是将节拍表中的接拍数存放在固定的单元中,再将固定单元中的内容送给延时程序中,这样空拍就可以将节拍分开,这样,图7为延时程序流程图。
图7 延时流程图
3.2.3 中断模块
中断模块主要用来进行上一首,下一首和暂停的控制,本次的中断主要用到INT0,INT1和T1三个I/O口。不同的中断有不同的程序。因为单片机中只有两个外部中断,因此,我决定选用定时器1来改变成中断,即应定时器1的F0判断,当F0为1时,为中断。在此仅具体介绍上一曲的功能。下面为流程图介绍。
图8 中断程序流程图
3.2.4 数码管显示模块
本次设计采用的是共阳极的数码管,因此要采用相应的数值来控制数码管的亮灭。另外还要求通过按键在改变曲目顺序的时候改变数码管显示数字。下面为数码管显示模块的流程图。
图9 数码管显示模块流程图 电路仿真和程序检测
仿真图作图用到的是PROTEUS软件,对于这个软件,我们已经相当的熟悉,所以用起来比较顺利,首先将各个元件搜索出来,必须要有单片机最小系统,显示模块,按键模块,发声模块。根据要求,可以画出仿真图。如图10所示。
图10 设计仿真图
将KEIL中写好的程序导入到单片机中,开始检测,首先检测是否能够清晰的播放出音乐,其次通过控制三个按键来检测上一首,下一首和暂停的功能是否实现,观察数码管的数字是否随着按键的变化,通过以上检测,发现程序和仿真完全符合标准,表示仿真和程序检测通过,可以制作实物。
5实物调试
将程序编译好产生.hex文件,通过无需驱动程序将编译好的.hex文件导入到三合一的实验板中,在外边接入三个按键开关来控制上一首,下一首和暂停,调试过程与仿真图的调试过程相同,可以通过按键来控制歌曲的调换和暂停,而且也可以控制数码管按曲目的调换来显示序号。实验成功,实验成品如图11所示。
图11 实物图 11
结束语
首先要感谢凌老师平时的耐心教导,才能让我对单片机这门课程产生兴趣,在平时的课堂上都会跟着老师的思路走,下课后,努力的完成老师布置的作业是凌老师让我学到了很多关于单片机的知识。
其次对这次制作课程设计的感想。本次的课题是音乐盒,最主要的就是程序设计,经过比较分,决定采用51编程语言,因为平时上课接触最多的就是汇编语言,对于C语言,了解比较少,并不是非常熟练。运用课堂上学到的定时,中断,循环,以及数码管显示和按键程序,可以比较完整的制作出这次的课题。不仅可以复习近平时学到的知识,还会有新的能力学到,比如AD绘图的使用和熟悉。
最后,了解了单片机的方便性,和强大性。这是我们走向岗位的通行证,必须学会单片机,才会在大四毕业的时候找到适合自己的好工作。
参考文献
[1]李广弟.单片机基础[M].第3版.北京:北京航空航天大学出版社,2003.06.[2]李全利.单片机原理及应用(C51编程)[M].北京:高等教育出版社,2012.12.[3]楼然苗.51系列单片机设计实例[M].北京:北京航空航天大学出版社,1999.06.[4]李叶紫.单片机应用教程[M].北京:清华大学出版社,2002.01.[5]李光飞.单片机课程设计实例指导[M].北京:北京航空航天大学出版社,2004.09.致
谢
这次的设计可以说是给了我很多,不仅仅是学习上的,更多的是精神上和生活中的
首先要感谢老师的教育,让我学到了这么多的知识,在这段制作单片机课设的时候更是有感触,当听到设计的音乐盒发出声音的时候,第一感觉是好舒畅,因为第一次可以看到自己制作出这样的东西,在这些自豪中,更能感觉到老师对我们的栽培是那么的重要。
还要感谢同学们的帮助,有的时候,自己真的是不懂了,就去问同学,这不仅仅是问问而已,更能加深同学之间的友情,而且还会收获更多的知识,在这样的学习氛围中,收益的是我们大家。所以我要感谢在这次课设里帮助过我的所有同学。
这次的设计给我最大的启发就是,在学习中马虎不得。当你马虎的对待学习,学业也会马虎的对待你,这样吃亏的还是自己,学业本来就是自己的,自己不努力,难道就会白白得来吗?所以以后的学习中不能有一丝的马虎大意,就算是为了自己也要学下去。
附
录
附录A 电路原理图
附录B 电路实物图
附录C 元器件清单
名
称
型
号
个
数
芯片
AT89S52 1 数码管八段2
电容
22µF
电容
33pF
三极管1
电阻
470Ω
电阻
300Ω
电阻
200Ω
电阻
1KΩ LED灯8
下载口
晶振
12MHZ1
按键
排阻8位4
排阻
2位1
短路帽
插针
若干
附录D 程序清单
OUT BIT p3.1
N EQU 6 OUT_NUM EQU P0 ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ORG 000BH LJMP F_T0 ORG 0013H AJMP NEXT_SONG ORG 001BH AJMP START_PAUSE ORG 0030H MAIN: MOV SP ,#60H MOV DPTR,#TABLE MOV R0 ,#30H MOV R5 ,#00H MOV R6 ,#1 SET_TAB: MOV A,R5 MOVC A ,@A+DPTR MOV @R0 ,A INC R5 INC R0 MOV A ,R5 MOVC A ,@A+DPTR MOV @R0 ,A INC R5 INC R0 MOV A ,R5 MOVC A ,@A+DPTR MOV @R0 ,A INC R5 INC R0 MOV A,R5 MOVC A,@A+DPTR MOV @R0 ,A INC R0 INC R5 INC R6 CJNE R6,#N+1,SET_TAB MOV TMOD ,#61H MOV TH1,#0FFH MOV TL1,#0FFH SETB ET1 SETB ET0 CLR PT0 SETB PT1 SETB IT0 SETB PX0 SETB IT1 SETB PX1 SETB EX1 SETB EX0 SETB EA SETB TR1 SETB OUT CLR F0 MOV 22H ,#01H MOV DPTR,#OUT_TAB MOV A,22H MOVC A,@A+DPTR MOV OUT_NUM,A MOV R7,#00H
START0: MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR MOV 26H,A NEXT:MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR JZ END0 MOV R1,A ANL A,#0FH MOV R2,A MOV A,R1 SWAP A ANL A,#0FH JNZ SING CLR TR0 SJMP SING1 SING:DEC A MOV R3,A RL A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOVC A,@A+DPTR MOV 21H,A MOV TH0,A MOV A,R3 RL A INC A MOVC A,@A+DPTR MOV 20H,A MOV TL0,A SETB TR0 SING1: LCALL DELAY JB F0,FOR AJMP NEXT FOR:CLR TR0 JB F0,$ AJMP NEXT END0: CLR TR0 MOV A,22H CJNE A,#N,WW MOV 22H,#01H MOV R7,#00H MOV OUT_NUM,#11111001B AJMP WWW WW:MOV A,R7 ADD A,#4 MOV R7,A INC 22H CLR EA PUSH DPH PUSH DPL MOV A,22H MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A POP DPL POP DPH WWW:SETB EA AJMP START0 F_T0:MOV TH0,21H MOV TL0,20H CPL OUT RETI NEXT_SONG: PUSH ACC PUSH DPH PUSH DPL CLR EA MOV A,22H CJNE A,#N,Q MOV R7,#00H MOV 22H,#01H AJMP BACK Q: INC 22H MOV A,R7 ADD A,#4 MOV R7,A BACK: MOV R4,#00H MOV A,22H MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A MOV B ,R0 MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR MOV 26H,A DEC R4 MOV R0,B POP DPL POP DPH POP ACC SETB EA RETI LAST_SONG: PUSH ACC PUSH DPH PUSH DPL CLR EA MOV A,22H CJNE A,#1,QQ MOV 22H,#N MOV B,#4 MOV A,#N-1 MUL AB MOV R7,A AJMP BACK2 QQ: DEC 22H MOV A,R7 SUBB A,#4 MOV R7,A BACK2: MOV R4,#00H MOV A,22H MOV DPTR ,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A MOV B,R0 MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0 ,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR MOV 26H ,A DEC R4 MOV R0,B POP DPL POP DPH POP ACC SETB EA
RETI START_PAUSE: CPL F0 JB F0,RETURN SETB TR0 RETURN: RETI DELAY: MOV 27H,26H D2: D3:
MOV 28H,#125 MOV 29H,#248 DJNZ 29H,$ DJNZ 28H,D3 DJNZ 27H,D2 DJNZ R2,DELAY RET OUT_TAB: DB 0CH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH TABLE: DW SONG1,TABLE1,SONG2,TABLE2,SONG3,TABLE3,SONG4,TABLE4,SONG5,TABLE5,SONG6,TABLE6 TABLE1: DW 64580,64684,64777,64820,64898,64968,65030 DW 63628,63835,64021,64103,64260,64400,64524 SONG1: DB 04H DB 32H,54H,52H,32H,54H,52H,32H,12H,12H,32H,32H,54H,52H,32H,52H,52H,32H,32H,21H,31H,4H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H DB 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32 26
H,52H,54H,32H,34H,31H,21H,12H,24H,34H DB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,32H,32H,0E2H,0D1H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4H DB 22H,0D1H,11H,0E2H,0D2H,0C2H,0C4H,0C4H,32H,52H,52H,32H,62H,05H,61H,54H,31H,52H,31H,12H,31H,32H,54H,52H,32H,52H,52H,32H DB 32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52H,32H,62H,51H,61H,54H,31H,12H,32H,12H,32H,12H,32H,32H,54H,52H
DB DB DB 32H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H 32H,52H,52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32H,34H,31H,21H,12H,24H,24H DB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0D1H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4H TABLE2: DW 63835,64021,64103,64260,64400,64524,64580,64684,64777 DW 64820,64898,64968,65030,65058,65110,65157,65178 SONG2: DB 02H DB 04H,94H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,02H
02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C2H,0C2H,0D4H,0C2H,0D2H,0D8H,0D4H,0D2H,92H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H, 27
DB 0A4H,0A2H,0B2H,0B4H,0C4H,0E8H,0D8H DB 0C8H,0C8H,08H,08H,78H,28H,38H,34H,24H DB 24H,64H,64H,24H,64H,72H,72H,78H,58H,54H,44H,38H,34H,14H,34H,84H,74H,74H,62H,0D8H,78H,28H,38H,34H,24H
DB DB DB
58H,58H,58H,58H,0A8H,0A8H,0A4H,0B4H,0A4H,84H,0A4H, 24H,64H,64H,24H,64H,72H,72H,72H,94H,92H,94H,0A4H,58H,58H,54H,44H 94H,98H,98H,08H 84H,82H,82H,82H,82H,94H,0A2H,94H,92H,82H,74H,72H,74H,72H,72H,72H,72H,92H,91H,91H,94H,54H,74H,94H 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H
DB 0A4H,0A2H,0B2H,0B3H,0C4H,0E8H,0D8H DB 0C8H,0C8H,0C8H,08H DB 00H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,TABLE3: DW 64898,64968,65030,65086,65135,65158,65199,64260,64400,64524,64580,64684,64777,64862 SONG3: DB 03H DB 28
04H,04H,0C2H,14H,12H,12H,12H,11H,11H,0C2H,0D1H,0E1H,14H,14H,02H,32H,12H,21H,31H,52H,51H,51H,54H DB 32H,31H,31H,12H,11H,31H,52H,51H,31H,24H,24H,24H,64H,54H,24H,34H,52H,34H,52H,32H,21H,31H,12H,11H,21H,34H,04H DB 52H,51H,0D1H,12H,12H,32H,31H,31H,52H,51H,51H,22H,22H,22H,0D2H,0D1H,0D1H,24H,22H,0C2H,14H,12H,12H,34H,32H,32H,54H,54H,54H,54H DB 12H,11H,31H,52H,51H,51H,64H,54H,32H,31H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H DB 0A2H,0A1H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H,0C4H,14H,0C4H,14H,14H,04H DB 04H,04H,04H,04H DB 00H TABLE4: DW 64260,64400,64524,64580 ,64684,64777,64280,64898,64968,65030,65058,65110,65157,65178,65217 SONG4: DB 04H
DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H 29
DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 0C4H,0B4H,04H DB 00H DB 82H,01H,81H,94H,84H TABLE5: DW 64021,64103,64260,64400 ,64524,64580,64684,64777,64820,64898,64968,65030,64934 SONG5:
DB 05H DB 42H,82H,82H,82H,84H,02H,72H DB 62H,72H,62H,52H,48H DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H DB 12H,0A2H,0D2H,92H,88H DB 82H,0B2H,0B2H,0A2H,84H,02H,72H DB 62H,72H,62H,52H,44H,02H,12H DB 12H,62H,62H,52H,44H,02H,82H DB 72H,62H,52H,32H,48H DB 00H TABLE6: 64021,6103,64260,64400,64524,64580,64624,64777,64820,64898,64958,65030,65058,65110,65157 SONG6: DB 06H
DB 0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H DB 0B2H,0A2H,82H,72H,88H DB 72H,82H,0A2H,82H,72H,62H,42H,62H DB 0A4H,02H,0B2H,0A4H,84H DB 72H,82H,72H,62H,72H,84H,72H DB 64H,62H,12H,34H,02H,42H DB 38H,38H DW DB 38H,38H 30
DB 44H,02H,32H,44H,64H DB 72H,74H,82H,0A4H,02H,062H DB 0A8H,0A8H DB 0B2H,0B4H,0A2H,84H,82H,72H DB 62H,72H,82H,0A2H,88H DB 72H,74H,62H,42H,32H,32H,62H DB 78H,78H DB 82H,84H,72H,82H,0A2H,84H DB 72H,82H,72H,62H,48H DB 32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H DB 68H,68H DB 0B2H,0B2H,0B2H,0A2H,82H,84H,02H DB 72H,74H,62H,42H,32H,42H,62H DB 78H,78H DB 0A2H,0B2H,0A2H,72H,82H,84H,82H DB 72H,74H,62H,44H,64H DB 0A8H,0A4H,02H,0A2H DB 0A2H,0B1H,0A1H,82H,0A2H,0B4H,0B2H,0C2H DB 0A2H,0B2H,0A2H,82H,78H DB 84H,72H,62H,44H,02H,62H DB 72H,81H,71H,62H,72H,84H,02H,0A2H DB 0B4H,02H,82H,74H,82H,72H DB 68H,68H DB 00H END DB 72H,82H,72H,62H,72H,84H,0A2H 31
第五篇:单片机课程设计
基于单片机的火灾智能报警控制系统的设计
前言
在各种灾害中,火灾是最经常、最普通地威胁公众安全和社会发展的灾害之一。人类能够对火进行利用和控制,是文明进步的一个重要标志。火,给人类带文明进步、光明和温暖。但是,失去控制的火,就给人类造成灾害。据统计,我国 70 年代火灾年平均损失不到 2.5 亿元,80 年代火灾年平均损失不到
3.2 亿元。进入 90 年代,特别是 1993 年以来,火灾造成的直接财产损失上升到年均十几亿元,年均死亡 2000 多人。2010年上海静安区高层住宅着火,导致58人死亡,70余人受伤。2014年1月云南香格里拉大火,烧毁房屋100多栋,直接经济损失1亿多元人民币。火灾事件经常发生,防止火灾事故关系到人民群众的生命财产安全和社会和谐稳定。现在各种电子产品的普及,再加上人们防火意识的不强,这些都给火灾的发生带来了巨大的安全隐患。
对于火灾最关键的问题在于预防,目前防火报警系统趋于智能化、自动化,灵敏程度也越来越高。在这种背景下,基于单片机的火灾智能报警控制系统能突显出其巨大的优越性。目前,国内大多数偏重于商场、宾馆、高级写字楼、大型仓库等大型火灾报警系统的研发和设计。本系统侧重于小型火灾智能报警系统的设计,可在火灾发生初期检测到并且报警,还能够实时显示温度和烟雾浓度。