已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、引言在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机系统结构几乎是一个计算机的缩影,可谓是麻雀虽小,五脏俱全,简单的单片机数字钟设计为单片机的应用与开发的学习建立了良好的开端。二、设计任务与要求数字钟设计1 开机时,显示12:00:00的时间开始计时;2 P1.0控制“秒、分、十切换”的调整,每按一次在秒、分、十之间切换一次;3 P1.1控制“加1”的调整,每按一次在相应的功能上加1;4 P1.2控制“减1”的调整,每按一次在相应的功能上减1;5. 每次按键蜂鸣器响声一次。6. 到达闹钟时间、实现15S的蜂鸣器响声。三、实验目的1综合运用单片机课程中所学的理论知识完成课程设计。2通过查阅手册和文献资料,提高独立分析和解决实际问题的能力。3熟悉常用电子器件的类型和特征,并掌握合理选用的原则。4. 充分理解数码管显示原理。5. 熟悉单片机内部定时器工作方式与原理。四、设计步骤1、分析题目,寻找相关资料 2、策划设计方案3、设计电路、编写源程序4、对程序和原理图进行仿真1)在keil软件中对源程序进行编译,生成.hex文件2)在proteus软件中画出电路图,单片机中添加上一步中的.hex 文件3)运行并调试5、 总结优化实验五、方案选择与原理图(1)、设计思想:利用单片机来设计数字钟是单片机初学者的入门设计,而51系列单片机易学、易懂,应用广泛。分析题可知:当LED的显示位数较多时,I/O口较少时,为了简化电路,降低成本,由I/O口控制共阴极点或共阳极数码管显示。如果各位同时导通,LED只能显示相同的字符。要想每位显示不同的字符并且使用最少的I/O口,必须采用扫描显示方式动态显示。 (2)、扫描原理:在某一瞬间,只让某一位的字位线处于选通状态,即共阴极的为低电平,共阳极为高电平,同时字段线上输出相应位要显示字符的字段码。而其他各位的字位线处于悬空状态,不显示,这样,在每一瞬时,每位LED只有选通的那一位LED显示出字符,而其他位是熄灭的,同样在下一瞬时,只显示下一位LED,如此循环每位LED。虽然这些字符是在不同的瞬时轮流显示出来的,但由于人眼的视觉残留效应,看到的是每位同时显示字符。(3)、驱动电路:LED显示器所需的工作电流较大。在静态显示方式下,一般每段需要几mA。在动态显示方式下,为了要达到足够的亮度,瞬时电流约为静态方式的N倍(N是显示器位数)。共阴极点或共阳极点处的电流因要考虑8段同时导通,其数值就更大,因此在LED接口电路中常接有驱动器。常用的驱动器有7406(六反相缓冲/驱动器,OC门)、 7407(六缓冲/驱动器,OC门) 、75452(双与非驱动器)等。也可以用分立元件三极管作为驱动器。 在一些场合为了更进一步节约I/O口的开支,采用硬件译码的形式,即,将待显示的数据不在CPU内部查表,而是直接用4条I/O口线输出BCD码,用BCD7段字段码的硬件如MC14495、74LS47、74LS48等器件来译码,然后输出。 (4)、设计结构框图A T 8 9 S 5 1 数码管显示按键控制电源电路蜂鸣器单片机晶振电路单片机复位电路(5)、电路仿真图(6)、电路原理图(7)、PCB制作图 (8)、3D效果图 五、数字钟的使用手册如下:数字钟工作初始时刻为: 12:00: 00图中有三个开关按键1:控制“秒、分、十”之间的切换、每按键一次在“秒、分、十“间切换一次(且时间停止不及时),当按键1按了4次以后重新进入计时状态。按键2: 数字钟的 “加1” 位,每按一次加1。按键3: 字钟的 “ 减1“位,每按一次减1。六、元器件清单ObjectKindObjectHandlePathDescription DesignatorFootPrintPartTypePart0D12051C:0D13A514Sheet1.Sch*U1LED4_4X2 LED4_LWQPart0D12051C:0D13B0C8Sheet1.Sch*U2LED4_4X2 LED4_LWQ Part0D12051C:0D13BCECSheet1.Sch*R1axial0.3 510RPart0D12051C:0D13C8F0Sheet1.Sch*R2axial0.3 510RPart0D12051C:0D13D50CSheet1.Sch*R3axial0.3510RPart0D12051C:0D13E128Sheet1.Sch*R4axial0.3510RPart0D12051C:0D13ED44Sheet1.Sch*R5axial0.3510RPart0D12051C:0D13F960Sheet1.Sch*R6axial0.3510RPart0D12051C:0D14057CSheet1.Sch*R7axial0.3510RPart0D12051C:0D141198Sheet1.Sch*R8axial0.3510RPart0D12051C:0D141DB4Sheet1.Sch*R11axial0.3510RPart0D12051C:0D1429D0Sheet1.Sch*R12axial0.3510RPart0D12051C:0D1435ECSheet1.Sch*R14axial0.3510RPart0D12051C:0D144208Sheet1.Sch*R15axial0.3510RPart0D12051C:0D144E24Sheet1.Sch*R16axial0.3510RPart0D12051C:0D145A40Sheet1.Sch*R17axial0.3510RPart0D12051C:0D14665CSheet1.Sch*R18axial0.3510RPart0D12051C:0D147278Sheet1.Sch*R19axial0.3510RPart0D12051C:0D147E94Sheet1.SchPNP TransistorQ2TO-92A8550Part0D12051C:0D148AA0Sheet1.SchPNP TransistorQ3TO-92A8550Part0D12051C:0D1496B8Sheet1.SchPNP TransistorQ4TO-92A8550Part0D12051C:0D14A2D0Sheet1.SchPNP TransistorQ5TO-92A8550Part0D12051C:0D14AEE8Sheet1.SchPNP TransistorQ6TO-92A8550Part0D12051C:0D14BB00Sheet1.SchPNP TransistorQ7TO-92A8550Part0D12051C:0D14C718Sheet1.SchPNP TransistorQ8TO-92A8550Part0D12051C:0D14D330Sheet1.SchPNP TransistorQ9TO-92A8550Part0D12051C:0D14DF48Sheet1.Sch*Q1DIP4089S51Part0D12051C:0D14EB60Sheet1.Sch*C1RAD0.1CAPPart0D12051C:0D14F778Sheet1.Sch*C2RAD0.1CAPPart0D12051C:0D150390Sheet1.SchCrystalY1XTAL1CRYSTALPart0D12051C:0D150FA8Sheet1.Sch*R9SIP9RES*8Part0D12051C:0D151BC0Sheet1.Sch*S1SW_1XSW-PBPart0D12051C:0D1527D8Sheet1.Sch*S2SW_1XSW-PBPart0D12051C:0D1533F0Sheet1.Sch*S3SW_1XSW-PBPart0D12051C:0D15400CSheet1.Sch*S4SW_1XSW-PBPart0D12051C:0D154C24Sheet1.Sch*S5SW_1XSW-PBPart0D12051C:0D15583CSheet1.SchBi-Polar CapacitorE2RB.2/.4CAP2Part0D12051C:0D156454Sheet1.Sch*R21AXIAL0.3200RPart0D12051C:0D15707CSheet1.Sch*R22AXIAL0.310KPart0D12051C:0D157C98Sheet1.Sch*R23AXIAL0.31KPart0D12051C:0D1588B4Sheet1.SchPNP TransistorQ10TO-92A8550Part0D12051C:0D1594C0Sheet1.Sch*LS1AXIAL0.4SPEAKERPart0D12051C:0D15A0E8Sheet1.Sch*U4SIP4USBPart0D12051C:0D15ACF4Sheet1.Sch*D2LEDLEDPart0D12051C:0D15B90CSheet1.SchConnectorH1SIP2VCC_INPart0D12051C:0D15C524Sheet1.SchCapacitorC3RAD0.1CAPPart0D12051C:0D15D13CSheet1.SchCapacitorC4RAD0.1CAPPart0D12051C:0D15DD54Sheet1.Sch*U3TO-126LM7805Part0D12051C:0D15F3B4Sheet1.SchBi-Polar CapacitorE1RB.2/.4CAP2Part0D12051C:0D15FFCCSheet1.SchBi-Polar CapacitorE3RB.2/.4CAP2Part0D12051C:0D1615A8Sheet1.Sch*D1DQ1BRIDGE2Part0D12051C:0D162A30Sheet1.Sch*R13axial0.310kPart0D12051C:0D163658Sheet1.Sch*D3LEDLEDPart0D12051C:0D164264Sheet1.Sch*J1DIP10*Part0D12051C:0D170D40Sheet1.Sch*R20AXIAL0.310KPart0D12051C:0D178E64Sheet1.Sch*R10SIP3SIP3七、设计流程图八、源程序#include#define key1 P1_0 /秒、分、时间的切换键#define key2 P1_1 /加1#define key3 P1_2 /减1#define speaker P3_1unsigned char code table1 =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /笔段码unsigned char code table2 =0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe; /位选码unsigned char count1=0 ;/*/unsigned char hour = 12, min = 0,sec = 0; /时钟赋初值/*T0_50mS中断程序*/void T0_1s(void) interrupt 1 / 50mS中断程序 static unsigned char count = 0; TR0 = 0; TH0 = (65536 - 50000 ) / 256; /设置T0初始值为:15536 TL0 = (65536 - 50000 ) % 256; /记数为50000次/50000*1us=50ms*20=1s TR0 = 1;count+;if(count = 20) /中断服务程序/定时1s时间到(需要中断20次) count = 0;sec+; if(sec=60) /1分钟时间到 sec=0; min+; if(min=60) /1小时时间到 min=0; hour+; if(hour=24)/24小时时间到 sec =0;min =0;hour=0; /*/void delay_5ms() /动态扫描显示-软件延时unsigned char i,j;for(i=0;i20;i+) for(j=0;j50;j+) /50;/*/void disp_led()/*显示时钟 */ P0=table1hour/10; /显示小时十位数P2=table20; delay_5ms();P0=0xff;P0=table1hour%10; /显示小时个位数 P2=table21; delay_5ms(); P0=0xff; P0=0xbf; /显示分隔符- P2=table22; delay_5ms(); P0=0xff; P0=table1min/10; /显示分钟十位数 P2=table23; delay_5ms(); P0=0xff; P0=table1min%10; /显示分钟个位数 P2=table24; delay_5ms(); P0=0xff; P0=0xbf; /显示分隔符- P2=table25; delay_5ms(); P0=0xff;P0=table1sec/10; /显示秒十位数 P2=table26;delay_5ms(); P0=0xff; P0=table1sec%10; /显示秒个位数 P2=table27;delay_5ms(); P0=0xff;/*闹钟程序*/void clock()unsigned int i;if(hour=12 & min=0 & sec=30) speaker=0;for(i=0;i500;i+)/15秒蜂鸣器disp_led(); speaker=1;/*蜂鸣器按键声*/void speak()unsigned char m;speaker=0;for(m=0;m3;m+)disp_led(); speaker=1;/*按键扫描程序*/void delay_10ms() /键盘去抖动-软件延时 unsigned char i,j;for(i=0;i20;i+) for(j=0;j40;j+) ; /*调时钟按键扫描*/void key_scan() /键盘扫描子程序 if(key1=0)/检测是否有键按下 delay_10ms(); /去抖动延时 if(key1=0) /再次确认否有键按下 speak(); count1+;/切换次数TR0=0;/关计时ET0=0; if(count1=4) count1=0; /到4次后重新记TR0=1; /开计时ET0=1; while(key1=0) disp_led(); /等待按键释放,并且调用显示程序 if(count1=1)if(key2=0)/调整秒钟加/检测是否有键按下 delay_10ms(); /去抖动延时 if(key2=0) /再次确认否有键按下speak(); /按键声sec+;if(sec=60)sec=0;while(key2=0) disp_led(); /等待按键释放,并且调用显示程序 if(key3=0)/调整秒钟减/检测是否有键按下 delay_10ms(); /去抖动延时 if(key3=0) /再次确认否有键按下 speak(); sec-;if(sec=-1) sec=59; while(key3=0) disp_led(); /等待按键释放,并且调用显示程序 if(count1=2)if(key2=0) /调整分钟加/检测是否有键按下 delay_10ms(); /去抖动延时 if(key2=0) /再次确认否有键按下speak();min+;if(min=60) min=0;while(key2=0) disp_led(); /等待按键释放,并且调用显示程序 if(key3=0) /调整分钟减/检测是否有键按下 delay_10ms(); /去抖动延时 if(key3=0) /再次确认否有键按下speak();min-;if(min=-1)min=59;while(key3=0) disp_led(); /等待按键释放,并且调用显示程序 if(count1=3) if(key2=0) /调整小时加/检测是否有键按下 delay_10ms(); /去抖动延时 if(key2=0) /再次确认否有键按下speak();hour+;if(hour=24)hour=0;min=0;sec=0;while(key2=0) disp_led(); /等待按键释放,并且调用显示程序 if(key3=0) /调整小时减/检测是否有键按下 delay_10ms(); /去抖动延时 if(key3=0) /再次确认否有键按下speak();hour-;if(hour=-1)hour=23;while(key3=0) disp_led(); /等待按键释放,并且调用显示程序 /*主函数*/void main()TMOD = 0x01; TH0 = (65536 - 50000 ) / 256; /设置T0初始值 TL0 = (65536 - 50000 ) % 256;ET0 = 1; /开中断EA = 1; /开CPUTR0 = 1; /开定时while(1)disp_led(); /时钟显示key_scan(); /时钟扫描 clock(); /闹钟/*/九、结论与心得 电子设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (劳务员)继续教育题库过关检测试卷及参考答案详解【模拟题】
- 三年级学生必须掌握的语文知识点知识讲解
- 元旦安全教育内容
- 2026年全国专利代理师专利代理保密义务试题及答案
- 2026年医院药房综合知识培训模拟题库及答案
- 2026年幼儿园保育员基础考试试题(及答案全真模拟)
- 2026年道具财富测试题及答案解析
- 2026年芭蕾舞蹈研复试题(附答案)
- 六年级道德与法治第二单元我们是公民教案
- 企业年度工作方案的格式及范文
- 开学食堂安全培训课件
- 动静脉内瘘的穿刺与护理
- 消防工程造价控制重点、难点分析及应对措施
- 宿管员管理课件
- 《数学曲线之美》课件
- 工程铺砖合同协议
- 消防-认识及使用消防器材
- 泥头车防御性驾驶技术培训
- 应聘简历教师个人简介
- 【高考语文】2024年全国高考新课标I卷-语文试题评讲
- 2024年高中语文复习:必修上下册课内文言实词汇编助记(知识梳理+考点精讲精练+实战训练)
评论
0/150
提交评论