含有耦合电感的电路教案.docx_第1页
含有耦合电感的电路教案.docx_第2页
含有耦合电感的电路教案.docx_第3页
含有耦合电感的电路教案.docx_第4页
含有耦合电感的电路教案.docx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二十一次(2学时) 题目:第七章 含有耦合电感的电路(第1讲)教案.doc单片机课程设计报告 电子钟、密码锁设计题目 : 学生姓名 : 专 业 : 班 级 : 学 号 : 同组人 : 指导老师 : 摘 要 ?数字电子时钟 在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表. 即使现在钟表千奇百怪,但是它们都只是完成一种功能计时功能,只是工作原理不同而已. 本次课程设计之一-电子时钟设计,基于D8255AC芯片和LED数码管为核心,辅以必要的电路,并以汇编为程序设计为基础,构成一个简单的单片机数字电子时钟。由5.0V直流电源供电,通过数码管能够准确显示时间,时、分、秒,并且可以通过键盘进行校时。 本报告主要介绍了数字电子时钟的软、硬件部分及在设计调试过程中遇到的问题及解决方案。 关键字:D8255AC芯片 数字电子时钟 校时 ?简易电子计算器 随着社会的发展,计算器的用途越来越广泛,不断可以进行简单的加、减、乘、除,还可以用来做所有简单的计算,一些复杂的科学计算,单位换算,以及提供各种物理常数。 本次课程设计之二的选做实验,作者选择的就是简易电子计算器的设计。主要利用键输入数据和运算符号,用LED显示运算过程和结果,实现简单的加、减运算。 关键字:电子计算器 LED 加、减运算 目录 前言 第一章 数字电子时钟 ?1.1.设计要求 ?1.2设计思路. ?1.3设计框图 ?1.4硬件设计原理图及说明 ?1.5软件设计 1.5.1.设计流程图 1.5.2. 调试过程与说明 ?1.6小结第二章 简易计算器 ?2.1.设计要求 ?2.2.设计思路. ?2.3.设计框图 ?2.4. 硬件设计原理图及说明 ?2.5.软件设计 2.5.1.设计流程图 2.5.2.程序模块设计 2.5.3调试过程与说明 ?2.6.小结 第三章 总结与体会 参考文献 附录一 数字电子时钟程序清单 附录二 简易计算器程序清单 前言 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 单片机是智能仪器、计算机外部设备、生产过程控制的控制核心。单片机已经是一项十分成熟的技术,因其具有小型化、廉价、简单可靠和稳定性好等优点,在工业测控、电子仪器、汽车电子系统、日用家电、电子通信、办公自动化设备和尖端武器(如雷达、火炮的控制系统)等方面都有广泛的应用。 在本次设计中使用的是STC89C52单片机,它是一种新型的价格便宜而性能优良的单片机系统,结构简单,布局合理,适用于多种程序功能调试和模拟。本次设计用单片机开发系统来模拟密码锁的各种功能,在开发系统中输入编译好的程序,使用其键盘作为数字输入键和各功能键. 通过这次课程设计,进一步掌握了如何利用接口电路进行硬件系统的设计,如何进行软件的设计,同时增强了学习兴趣及动手能力。在报告中,详细地记述了整个设计过程的各个环节,其中的不足欢迎师生们指出或给予更好的建议。 第一章 数字电子时钟 ?1.1设计任务 1.1.1设计要求 用单片机开发系统,设计一个电子时钟,从左到右依次以时分秒的顺序显示时间。并且可以在程序代码中修改时间初始值。 提高要求: 1、可以加入闪烁显示,每过一秒使时和分,分和秒间的两点闪烁一次。 2、应用键盘扫描程序,能随时在键盘上修改时钟的初始值。 1.1.1 设计思路 本课题的数字电子时钟设计采用单片机定时器产生100MS的时,并开定时中断。设计出一个1S的定时程序。每进入一个定时中断,在其中断服务程序中计算分钟,时钟、钞钟。 预先资源定义:时分秒的存放空间 ?1.2设计框图及简要说明 主程序 数码动态扫描模块 当前时间计时模块 当前时间调整模块 数值转换模块 计时单元由单片机内部的定时器来实现;时间显示采用LED数码管动态扫描方式;LED数码管的段码输入,由并行口P1低四位输入。 ?1.3硬件设计原理图及说明 一、 原理图 图 1.3.1数字电子时钟设计原理图 二、应用原理 该原理图以8255为接口芯片。8255是intel公司生产的可编程输入输出接口芯片,它是具有3个8位的并行I/O端口,具有三种工作方式,被广泛地使用于单片机的并行I/O端口。 ? 工作方式0:基本输入输出方式 ? 工作方式1:选通输入输出方式 ? 工作方式2:双向传送方式 8255的读/写控制逻辑电路接受CPU发来的控制口号RD、WR、RESET和地址信号AA。然后根据命令端口,控制信号的要求,将端口的数据读出选信10CPU或者将CPU送来的数据写入端口,各端口的工作状态。如表1所示。 AARWC工作状态 I 0 D R S 1 0 0 1 0 A口数据送入数据总线 0 1 0 1 0 B口数据送入数据总线 1 0 0 1 0 C口数据送入数据总线 0 0 1 1 0 数据总线送入A口 0 1 1 0 0 数据总线送入B口 1 0 1 0 0 数据总线送入C口 1 1 1 0 0 数据总线送入控制字寄存器 表1-1 ?1.4软件设计 1.4.1程序设计流程图(主程序、中断服务子程序及修改时间) 一、主程序框图 开 始 设计初始化 初始化显示(调显) 调键盘扫描子程序 有键按下否 修改初值 按键错误 开始计时 定时中断 开定时中断 显示错误 调键扫 修改键否, 调修改子程序 返 回 图1.4.1 数字电子时钟主程序流程图 二、中断服务子程序框图 中断入口 中断保护 秒+1 调显示程序 秒59 秒清零送显缓 分+1 分59 分清零送显缓 时+1 时清零送显缓 时23 时的数量存进显缓 秒的数量存进显缓 中断返回 分的数量存进显缓 图1.4.2 数字电子时钟中断服务子程序流程图 三、修改时间子程序 开 始 设计初始化 初始化显示(调显) 调键盘扫描子程序 有键按下否 修改初值 按键错误 开始计时 定时中断 开定时中断 显示错误 调键扫 修改键否, 调修改子程序 返 回 图1.4.3 数字电子时钟修改时间子程序流程图 1.4.2调试过程与说明 在调试数字电子时钟程序时出现了数码管所显示时间重叠模糊的情况。通过对程序代码和对数码管显示原理的分析,得出了出现上述情况的原因是由于8个数码管显示的数码变化速度很快,受人眼视觉暂留的影响,人眼无法分辨前后两次所显示的数码。为解决这个问题所采取的措施是,在每显示一个数码管的内容后加一个延迟程序来减缓所显示数码的变换速度。改进后再调试程序时8个数码管所显示的时间十分清晰。 ? 1.5小结 在本次课程设计中遇到的最大的困难是如何利用软、硬件配合的方式产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断返回还不是很清楚,程序设计一度陷入停滞状态,最后在指导老师和同学们的帮助下,作者这个小组一起共同完成了该实验,实现了数字电子时钟的基本功能。 第二章 简易电子计算器 ? 2.1 设计要求 设计一个可以进行简易加减运算的计算器, 要求: 1、 键输入数和运算符号; 2、 LED显示运算过程和结果(十进制数); 3、 有清零和复位功能; ? 提高要求 能显示,位输入和,位输出。 ? 2.2 设计思路 显示设备采用八片七段共阴极LED显示器,共设置16 个键,其中数字键0,9 共十个,接下来依次是加号键、减号键、等于号键、清除键。 利用C52的定时器中断以给定的时间间隔扫描键盘,检测出键盘输入的信号,然后送至单片机进行处理,完成简单的加减的计算器功能,然后将结果送至LED的显示器,显示输出结果 ?2.3设计框图及简要说明 ?2.4硬件设计原理图及说明 由于本次课程设计以软件设计部分为主,简易电子计算器是继数字电子时钟的训练和巩固。所以在应用硬件方面的原理和设计和数字电子时钟相同。详细工作原理请见第一章1.3节硬件设计原理图及说明 ?2.5.软件设计 2.5.1程序设计流程图 开 始 初始化 提示输入一个数 调键盘子程序 保存该数据 提示输入另 一个数 键盘子程序 保存该数据 提示输入运算符 加法子程序 减法子程序 判断运算符类型 图2.5.1 简易电子计算器程序流程图 2.5.2程序模块设计 1、主程序的设计 主程序主要是用来进行初始化的,调用自检程序,清空各个标志位,清空缓存区,给定定时器0工作方式。在等待定时器0中断时主程序在以下程序段内循环: LP1: MOV PCON,#01H SJMP LP1 2、中断模块的程序设计 进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。如果不是则退出中断程序。 3、显示模块的程序设计 由于使用的是静态显示,故先要对SCON进行相关设置,让串口工作在方式0下,使用指令MOV SCON,#00H就可以了。 首先从高位开始进行灭零显示,并将最后一个灭零的位,标志为负号位,然后判断负数标志位是否为一,是则将标志为负号位的送出显示负号(笔形码0FEH),否则直接送出显示 2.5.3 调试过程与说明 在上机实践中,作者发现运算结果与实际结果不相符合,经过单步运行发现,原来是调用BCD码转二进制码子程序错误,于是作者调用成了二进制转BCD码子程序,原因是因为两个子程序的标号很接近,一不小心就会调用错误,说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块进行调适就可以了,充分体现了结构化编程的优势。一开始,设计只支持正整数的运算,并没有加入负数运算,因为时间问题,只是大概想了思路,并没实现。最后在班上同学的帮助下。终于实现了计算器的基本功能。 ?2.6 小结 由于简易电子计算器是继数字电子时钟的练习和巩固,大多数模块都已经熟悉。虽然在编程的过程中遇到了一些问题,但在同组人的共同努力下。完成了本次课程设计的基本要求 第三章 总结与体会 经过这次单片机专业课程设计,训练了作者的动手能力和理论实践相结合的能力,从中还体会到了团队的合作精神,因为一个人的能力毕竟有限,惟有善于合作的团队才能发挥出最大的能量。在这次课程设计中,作者真正体会到了合作的重要性,作者这个班级在这次程序设计中总在一起,从要实现的功能到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚了我们班级的力量。在遇到棘手的问题时,大家总是一起讨论,一起把问题解决;在作者遇到不很明白的程序时,是同学们耐心地帮助讲解;在面对有错的程序不知所措时,也是同学们帮助作者一步步地调试,耐心的指导,直至程序能正常运行。 总的来说,这次单片机课程设计对我们来说是很有意义的,以往在老师讲课时不是很明白的问题在这次课程设计中通过大家一起学习,一起动手,很多问题都迎刃而解。而且加强了作者班级同学之间的凝聚力 参考文献 1 于海生(微型计算机控制技术M (清华大学出版社(1999-6 2 孙涵芳(MCS-51系列单片机原理及应用M (北京航空航天大学出版社(1996-4 3 黄正谨(综合电子设计与实践M (东南大学出版社(2002-3 4 杨欣等(电子设计从零开始M (清华大学出版社(2005-10 附录一:数字电子时钟程序清单 DEDA EQU 33H ;50MS记数常数,满200次为1S(T0) 0.3S(T1) NUM EQU 34H ;0.3S记数常数,满6次为SEC EQU 30H ;秒数据存储区 MIN EQU 31H ;分数据存储区 HOU EQU 32H ;时数据存储区 SEC0 EQU 40H ;秒显缓区低位 SEC1 EQU 41H ;秒显缓区高位 MIN0 EQU 42H ;分显缓区低位 MIN1 EQU 43H ;分显缓区高位 HOU0 EQU 44H ;时显缓区低位 HOU1 EQU 45H ;时显缓区高位 SSEC0 EQU 60H ;秒显缓区低位字型码 SSEC1 EQU 61H ;秒显缓区高位字型码 SMIN0 EQU 62H ;分显缓区低位字型码 SMIN1 EQU 63H ;分显缓区高位字型码 SHOU0 EQU 64H ;时显缓区低位字型码 SHOU1 EQU 65H ;时显缓区高位字型码 GW BIT 06H ;个位标志 SW BIT 07H ;十位标志 HAL EQU 47H FUNCKEY EQU 0E7H HOUKEY EQU 0C7H MINKEY EQU 077H SECKEY EQU 87H KEY EQU 52H ;- ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 ;T0中断程序 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1执行 ;- ;主程序; ;- MAIN: MOV SEC,#0 MOV HOU,#23 MOV MIN,#59 MOV DEDA,#00H MOV NUM,#06H ; 0.3秒定时用初值 MOV SP,#0F0H MOV TMOD,#11H ;定时器0为方式1 MOV TH0,#50H ;赋初值 MOV TL0,#0C3H MOV TL1,#50H ;装定时器T1定时初值 MOV TH1,#0C3H SETB TR0 ;启动T0 MOV IE,#82H LCALL ROLL MOV SEC, #0 MOV HOU, #23 MOV MIN, #59 S: LCALL DISP LCALL KEY_SCAN ;键扫 LCALL DISP SJMP S ;- ;显示程序 ;- DISP: MOV A, SEC MOV B,#10 ;S转换送显缓区 DIV AB MOV SEC0,B MOV SEC1,A MOV A, MIN MOV B,#10 ;MIN转换送显缓区 DIV AB MOV MIN0,B MOV MIN1,A MOV A, HOU MOV B,#10 ;H转换送显缓区 DIV AB MOV HOU0,B MOV HOU1,A MOV R5 ,#6 MOV R0,#40H MOV R1 ,#60H LOOP: MOV A,R0 MOV DPTR ,#TAB; MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R5, LOOP JBC SW ,LOPP0 MOV 59H,#00H; MOV 58H,#00H; SJMP DISP0 LOPP0: MOV 59H,#09H; - MOV 58H,#09H; - DISP0: MOV A,#80H;写8255显示状态字 MOV DPTR,#0A003H MOVX DPTR,A MOV A,#0FEH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,SHOU1 ;HOURH MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#0FDH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,SHOU0 ;HOURL MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#0FBH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,58H ;- MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#0F7H MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,SMIN1 ;MINATEH MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#0EFH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,SMIN0 ;MINSTEL MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#0DFH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,59H ;- MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#0BFH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,SSEC1 ;SECONDH MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS MOV A,#7FH MOV DPTR,#0A001H;输出片选信号 MOVX DPTR,A MOV A,SSEC0 ;SECONDL MOV DPTR,#0A000H MOVX DPTR,A LCALL DE10MS RET DELAY: PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2 ,DELAY1 POP 02H DJNZ R2,DELAY RET DE10MS: ;延时子程序 DL1: MOV R7,#14H ; DL2: MOV R6,#17H DL3:DJNZ R6,DL3 DJNZ R7,DL2 RET TAB: ;共阴0-9字行码 DB 3FH ;0 DB 06H ;1 DB 5BH ;2 DB 4FH ;3 DB 66H ;4 DB 6DH ;5 DB 7DH ;6 DB 07H ;7 DB 7FH ;8 DB 6FH ;9 DB 00H ;熄灭符 SEG: ;- ;键盘扫描程序 ;- KEY_SCAN: MOV DPTR,#0A003H;设置状态字 MOV A,#89H MOVX DPTR,A LP51:MOV DPTR,#0A001H;设置端口B MOV A,#00H MOVX DPTR,A MOV DPTR,#0A002H MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,XD AJMP OVER XD: MOV R7,#80 DEL1: MOV R6,#123 DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,JKEY AJMP LP51 MOV R3,#4 MOV A,#0FEH JKEY: MOV DPTR,#0A001H MOVX DPTR,A MOV R5,A MOV DPTR,#0A002H MOVX A,DPTR ANL A,#0FH MOV R4,A CJNE A,#0FH,XD1 AJMP LP52 ;XUNHUAN XD1: MOV R7,#80 DEL11: MOV R6,#123 DEL22: DJNZ R6,DEL22 DJNZ R7,DEL11 MOVX A,DPTR ANL A,#0FH XRL A,R4 JNZ LP52 MOVX A,DPTR ANL A,#0FH XRL A,#0FH JNZ OVER MOV A,R5 ANL A,#0FH SWAP A ADD A,R4 MOV KEY,A AJMP JUST LP52: DJNZ R3,LP53 SJMP OVER LP53: MOV A,R5 ;片选信号移位 RL A AJMP JKEY OVER: RET OVER1: CALL JUST RET ;- ;调整子程序 ;- JUST: MOV A,KEY CJNE A,HOUKEY ,J1 INC HOU MOV A,HOU CJNE A,#24,JU1 MOV HOU,#0 JU1: LCALL DISP RET J1: MOV A,KEY CJNE A,MINKEY ,J2 INC MIN MOV A,MIN CJNE A,#60,JU2 MOV MIN,#00H JU2: LCALL DISP RET J2: MOV A,KEY CJNE A,SECKEY ,J3 INC SEC MOV A,SEC CJNE A,#60,JU3 MOV SEC,#00H JU3: LCALL DISP J3: RET DEY: DEL34: MOV R0,#10 ;延时0.65S DEL33: MOV R7,#0FH ;判断按键是否抬起,不抬起放弃此键 MOV R6,#0FH DJNZ R6,$ DJNZ R7,DEL33 DJNZ R0,DEL34 RET ;- ;中断程序 ;- P_INT: PUSH ACC ; MOV TL0 ,#58H MOV TH0 ,#9EH INC HAL INC DEDA MOV A,HAL CJNE A,#10,PP SETB SW MOV HAL,#0 PP: MOV A , DEDA CJNE A , #20 ,TT ;1S? MOV DEDA , #0 ;记数值清零 INC SEC ;秒加1 MOV A ,SEC CJNE A ,#60,TT ;1MIN? INC MIN MOV SEC , #0 MOV A, MIN CJNE A, #60, TT ;1H? INC HOU MOV MIN ,#0 MOV A ,HOU CJNE A ,#24,TT ;24H? MOV SEC ,#0 MOV MIN ,#0 MOV HOU ,#0 TT: POP ACC RETI ;- ; 闪动调时 程 序 ; ;- ;T1中断服务程序,用作时间调整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论