单片机课程论文设计-电子钟课程设计

2024-06-27

单片机课程论文设计-电子钟课程设计(通用6篇)

篇1:单片机课程论文设计-电子钟课程设计

单片机课程论文设计 ——电子钟

一 课程设计的主要内容 1 设计思想 1.1硬件设计思想 1.1.1电路设计思想

电路原理图见图1,由动态数码显示组成时、分、秒的显示。把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中S-S8端口上;“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上。

1.1.2键盘设计思想

键盘是微机的主要设备,按键的读取容易引起错误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms.1.2软件设计思想

本系统的主程序主要完成时间显示和修改时间的功能。而时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。

1.2.1数据与代码转换

由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,给CD4511译码后去驱动数码管显示。具体转换过程如下:

我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位 的BCD码,再放回A中,然后将A中的值输出。如:有一个单元存储了45这样一位数,则需转换成四位的BCD码:(0100)(0101)然后放入A中。A中BCD码,高位四位代表¡4¡低四位代表¡5¡同时送给两个译码器中,译码后¡ 45¡ 字就在两个LED中显示出来。

1.2.2计时功能的实现与中断服务程序

时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0打开后,进入计时,满100毫秒后,重装定时。中断一次,满一秒后秒进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位。得到时、分、秒存储单元的值,并经译码后,通过扫描程序送LED中显示出来,实现时钟计时功能。累加是用指令INC来实现的。进入中断服务程序以后,执行PUSH PSW和PUSH A将程序状态寄存器PSW的内容和累加器A中的数据保存起来,这便是所谓的¡ 保护现场¡.以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈的数据存取与一般的RAM存取又有区别,对它的操作,要遵循¡ 后进先出¡ 的原则。

1.2.3时间控制功能与比较指令

系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先将执行设备开启的时间和关闭时间置入RAM某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR指令,将对应的那路P3置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3置低电位,二极管截止。实现此控制功能用到的比较指令为CJNE A,#direct,rel,其转移条件是累加器A中的值与立即数不等则转移。

二 课程设计的目的

实现的功能:

①开机时,电子钟从12:00:00开始自动计时。②设置按键,能对时、分、秒进行调整。

三设计方案的论证

3.1电路原理与电路图 3.1.1电路原理

电路原理图见图1,由动态数码显示管组成时、分、秒的显示。P0口的8条数据线P0.0至P0.7分别与两个CD4511译码的ABCD口相接,P2口的P2.0至P2.2分别通过电阻R10至R13与VT1至VT3的基极相连接。这样通过P0口送出一个存储单元的高位、低位BCD显示代码,通过P2口送出扫描选通代码轮流点亮LED1至LED6,就会将要显示的数据在数码管中显示出来。从P0口输出的代码是BCD码,从P2口输出的就是位选码。这是扫描显示原理。

电路原理图

C130pFU1X119CRYSTAL18XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617S-0S-1S-2S-3S-4S-5S-6S-7C230pFXTAL2R210kR310kR410kR110k9RSTC310uF293031PSENALEEARP1987654321RESPACK-***78P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51时分秒S-7S-6S-5S-4S-3S-2S-1S-001234567

图 1 电路原理图

3.2 流程图与算法描述 3.2.1流程图

3.3软件设计

SECOND

EQU 30H;MINITE EQU 31H;HOUR

EQU 32H;HOURK

BIT P0.2 MINITEK BIT P0.1 SECONDK BIT P0.0 DISPBUF EQU 40H DISPBIT EQU 48H 流程图

秒寄存器

分寄存器

時寄存器 图

T2SCNTA

EQU 49H

T2SCNTB EQU 4AH TEMP

ORG 00H;

程序执行开始EQU 4BH 地址

LJMP

START;

执行

ORG

0BH;T0

LJMP

INT_T0;

;主程序

START: MOV

SECOND,#00H;

得单元

MOV

MINITE,#00H

MOV

HOUR,#12

MOV

DISPBIT,#00H

MOV

T2SCNTA,#00H

MOV

T2SCNTB,#00H

MOV

TEMP,#0FEH

LCALL

DISP;

子程序

MOV

TMOD,#01H

MOV

TH0,#(65536-2000)/ 256;

MOV

TL0,#(65536-2000)/ 256

SETB

TR0;

SETB

ET0;

SETB

EA;

WT:

跳转到标号START

中断程序入口

跳至IN-T0执行

清0存放秒分时值

在2KB范围内长调用 显示2毫秒

允许TO中断

开启T0定时器

总中断开放

按键扫描子程序及校时调整

JB

SECONDK, NK1;SECONDK为1(sp1建按下)时跳到

LCALL

DELY10MS

JB

SECONDK,NK1

INC

SECOND;

对计数器加1

MOV

A,SECOND

CJNE

A,#60, NS60;沒到60秒返回,到60秒清0;判断计数器是否满59

MOV

SECOND,#00H NS60:

LCALL

DISP

JNB

SECONDK,$;

NK1: JB

MINITEK,NK2;

LCALL

DELY10MS

JB

MINITEK,NK2;

INC

MINITE

MOV

A,MINITE

CJNE

A,#60, NM60

MOV

MINITE,#00H NM60:

LCALL DISP

JNB

MINITEK, $;

NK2:

JB

HOURK,NK3

LCALL

DELY10MS

JB

HOURK,NK3

INC

HOUR

MOV

A, HOUR

CJNE

A, #24,NH24

MOV

HOUR,#00H

不满60秒就循环执行 分控制键按下时跳转

分控制键按下时跳转

不满60分就循环执行

NH24:

LCALL

DIS

JNB

HOURK,$;

不满24小时就循环执行

NK3 LJMP

WT DELY10MS:;

延时1毫秒的子程序

MOV D1:

MOV

;显示子程序

DISP:

;

地址

MOV

ADD

DEC

MOV

MOV

MOV

DIV

MOV

DEC

MOV

MOV

DEC

MOV

MOV

DEC

MOV R6, #10 R7, #248 DJNZ

R7, $ DJNZ

R6, D1 RET

A, #DISPBUF;

A, #8 A R1, A A, HOUR;

B, #10;

AB @R1, A;

R1 A, B @R1, A R1;A, #10 @R1, A R1 A, MINITE;

将得出的时间存入40H(DISPBUF)之后的将temp中的十六进制数转换成10进制 時送A

10进制/10=10进制 累加器送内部RAM单元

分送A

MOV B, #10

DIV

AB;

十進制調整

MOV @R1, A

DEC

R1

MOV

A, B

MOV

@R1, A

DEC

R1

MOV

A, #10

MOV

@R1,A

DEC

R1

MOV

A, SECOND;

MOV

B, #10

DIV

AB;

MOV @R1, A

DEC

R1

MOV A, B

MOV @R1, A

DEC

R1

RET INT_T0:;T0

MOV TH0,#(65536-2000)/ 256;

MOV TL0,#(65536-2000)/ 256

MOV A, #0FFH

MOV P3, A

MOV A, #DISPBUF

ADD

A, DISPBIT;

MOV R0, A

MOV A, @R0;

MOV DPTR, #TABLE;

MOVC A,@A+DPTR;

秒送A

十进制调整 TIME子程序 2毫秒 地址加,并将时间的各位送到p1 取显示数据到A 取段码表地址

查显示数据对应段码

中断服务子程序,即计时

MOV

P1, A;

分十位送P1口显示

MOV

A, DISPBIT

MOV

DPTR, #TAB;

表地址送数据指针

MOVC A,@A+DPTR

MOV

P3, A

INC

DISPBIT

MOV A, DISPBIT

CJNE A, #08H, KNA

MOV

DISPBIT, #00H KNA:

INC

T2SCNTA;

MOV A, T2SCNTA

CJNE

A, #100, DONE

MOV T2SCNTA, #00H

INC T2SCNTB

MOV A, T2SCNTB

CJNE A, #05H, DONE

MOV T2SCNTB,#00H

INC

SECOND;秒加一

MOV A, SECOND;

CJNE A, #60, NEXT;

MOV SECOND, #00H;

INC

MINITE;分加1

MOV A, MINITE;

CJNE A, #60, NEXT;

MOV

MINITE, #00H;

INC

HOUR;

時加1

MOV A, HOUR

CJNE A, #24, NEXT;

MOV

HOUR, #00H

时间的增加与进位 到60秒了吗? 到60秒清0 到60分了吗? 到60分清0 到24小時了吗?

NEXT:

LCALL

DISP DONE:

RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H TAB:

DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07F

四 系统调试

系统由AT89C51、SEG数码管、按键、电容、晶振、电阻等部分构成,能实现时间的调整、时间校对、定时时间的设定,输出等功能。系统的功能选择由按键‘时’、‘分’、‘秒’、完成。开机时,显示12:00:00的时间开始计时;按键P0.0/AD0控制“秒”的调整,每按一次加1秒;P0.1/AD1控制“分”的调整,每按一次加1分;P0.2/AD2控制“时”的调整,每按一次加1个小时;系统的主程序主要完成时间显示和定时输出判断功能。而时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。该电子钟的精确度在仿真软件中效果良好。

五 心得体会

计算机控制技术是一门很综合的课程。任何一个计算机系统都是一个复杂的整体,学习计算机控制技术是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,灵活知识运用,具体地说,在了解了计算机编程后,剩下的是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

这次课程设计较为综合,主要的困难来自对程序的编写和校对,功夫不负有心人,经过我的虚心求学和查找资料,最终对实验的原理有了较清晰的认识。但是仍然存在很多的不足,今后需要加强的地方还是很多,所以在今后的求学路上我会更加努力。望老师批评改正。

六 参考文献:

[1].潘新民,王燕芳编著.微型计算机控制技术[M].北京:电子工业出版社,2003 [2].何立民.单片机应用技术选编(1)[M].北京:北京航空航天大学出版社,1995,6 [3].刘国荣,梁景凯.计算机控制技术与应用[M] .北京:机械工业出版社,1999,5 [4].齐维毅,丁言镁,齐振国.单片机原理及应用设计实验[M] .沈阳:辽宁大学出版社,2006,5 [5].李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993,8 [6].潘新民,王燕芳编著.单片微型计算机实用系统设计[M].北京:人民邮电出版社,1992

篇2:单片机课程论文设计-电子钟课程设计

目录

一、摘要

二、设计任务

三、基本原理

数码管显示可以用静态显示或动态显示方法。静态显示需要数据锁存器等硬件,接口复杂,时钟显示用四个数码管。动态显示相对简单,但需动态扫描,扫描频率要大于人视觉暂留频率,信息看起来才稳定。译码方式可分为软件译码和硬件译码,软件译码通过译码程序查的显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。

在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。另外,为了使用便,设计了简单的按键,可以通过按键实现时、分的调整,这样在主程序中就加入了按键设置子程序。

四、编程算法思路

五、程序流程图

六、硬件单元设计

七、软件单元设计

八、调试结果分析

九、设计总结及心得体会

十、参考文献

一设计任务

1、基本任务:利用定时器/计数器中断和静态显示或动态显示,实现电子时钟的时分秒精确走时和校准

。时间显示用四个数码管分别显示时、分、秒用点表示,在时和分的中间闪动,时间显示格式(18:49)

时间校准用2个键实现:一个键K1作移位选择(选中要修改的位,选中的位用闪烁指示),一个键K2做加1(对选中的位进行加1修改)。

2、功能增强型任务:在基本任务的基础上加上日历功能、准时报时功能和跑表功能

(1)日历功能:能实现时、分、秒和年、月、日计时,增加1个按键控制分3屏例如显开始的第1屏默认显示“时、分、秒”四位+秒点,按下K3键显示“月和日”四位,再按下课K3键显示“年份”四位,再按下K3键显示“时、分、秒”,依次类推。程序要能处理闰年、闰月功能。

(2)准点报时功能:可以在增加一个按键K4设计具有闹钟功能,实现定点报时。具体操作是:按下

K4键,进入闹钟设置功能,再通过K1、K2键来完成定点报警时间的设置。

(3)跑表功能:再增加一个按键K5设计跑表功能,实现启动毫秒计数,相当与田径运动比赛的跑

表工作。

三基本原理

软件时钟时利用单片机内部的定时器/计数器来实现的,它的过程如下:首先定单片机内部的一个定时器/计数器工作于定时方式,对机器周期形成基准时间,然后用另一个定时器/计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。然后通过数码管把它们的内容在相应位置显示出来即可。

四编程算法思路

1、主程序的设计:串行口工作方式0,定时器/计数器1工作在方式1进行初始化,然后通过循环(调用显示子程序)等待定时中断的到来。

2、按键的控制:KEY1控制时的调节,kEY2控制分的调节,KEY3控制时、分定型

3、中断服务程序的设计:中断服务程序主要功能是实现时、分、秒的计时处理。

4、时、分、秒计时的实现:秒计时时采用中断方式进行溢出次数的累计得到的。从秒到分,从分到时可通过软件的累加和比较到位方法来实现。要求每满1秒,则“秒”单元中的内容加1;“秒”单元每满60,则“秒”单元清0,同时“分”单元中的内容加1;“分”单元每满60,则“分”单元清0,同时“时”单元加1。“时”单元每满24,则将“时”单元清0。

5、显示子程序:采用数码管静态显示来显示时钟的走动

6,延时子程序:用来实现按键操控延时和实现整点12时报时

五程序流程图

六硬件单元设计

1、电路总设计图

2、AT89C51芯片

七软件单元设计

1、资源分配:定时器T1,P1.6为调整时钟,P1.5为调整分钟,P1.4为控制调整

30H秒显示单元,31H分显示单元,32H时显示单元,08H放分调整标

志,09H放时调整标志,0AH放闪烁标志

2、程序清单(加注释)

八调试结果分析

在实验操作过程中,将所写好的程序打入计算机内,通过编译检查其是否有错误,如有错误将其改正,直至无误后下载仿真器,实现运行。观察实验箱上的数码管显示,判断其是否为所需结果,如果与所要求的有差别,需继续调试,重新修改程序,检查硬件设施不断地调试,不断地检查直至得到所要的结果。在调试过程中,开始运行时能够实现时钟的显示,但是无法实现其闪烁功能,后经不断调试修改及同学的帮助最终实现该功能,能够达到时钟显示调节的基本要求,还可以实现整点报时。但在增加其功能显示年月时又出现一定的问题,未能实现该功能,程序存在一定的不足性,需继续完善,实现更多的功能

九设计总结及心得体会

经过两天的单片机课程设计,终于完成了我的电子时钟的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把一些基本功能都做了出来,只是一些增强型功能未能实现。

在本次设计的过程中,我发现很多的问题,虽然以前还做过一些实验但这次设计真的让我长进了很多单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,要有通篇的全局思想考虑问题。在操作的过程中,出现许多错误,都是在连接处不能够上下连贯正确运行,还需继续努力。有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在课程设计中的最大收获,同时,要把所学只是灵活应用才能真正领悟其中的意义,加深对它的理解与掌握。还有,通过此次的操作也使我的实践操作能力得到了进一步的提高。

十参考文献

【1】张毅刚,彭喜元,董继成。单片机原理及应用。北京:高等教育出版社,2003

【2】周航慈。单片机应用程序设计技术(修订版)。北京:北京航空航天大学出版社,2002

【3】万光毅等。单片机实验与实践教程。北京:北京航空航天大学出版社,2003

【4】何立民,I2C总线应用系统设计。北京:北京航空航天大学出版社,2002

篇3:单片机课程设计实践教学

为了巩固和加深学生对基本概念及基本原理的理解与掌握, 并进一步培养和提高学生分析问题和解决问题的能力, 因此, 在理论教学过程中完成相关的实验课程。但是, 单片机实验环节中往往都是学生被动的学习, 实验的内容也都是固定好的, 不利于培养学生自主创新能力。因此, 有必要在理论和实验教学的基础上开设单片机课程设计实践环节, 它是单片机教学实践中的一个重要环节。

当今世界, 随着电子信息技术的迅速发展, 要求学生在掌握所学的理论知识的同时, 自主的应用这些所学的专业知识, 在日后的就业中体现出创新意识, 成为社会有用之才, 而单片机课程设计实践教学环节就有利于培养学生这种自主创新的能力。

1 课程设计的对象和内容

单片机课程设计是为了让学生更好的学习和掌握对51系列单片机的学习, 其核心知识围绕着“单片机原理”理论教程, 为了让学生更好的掌握对所学知识的综合应用, 通过本次设计培养学生工程实践能力和自我创新能力。课程设计一般安排在第5学期, 学生通过前序课程的学习, 掌握了电子技术、计算机技术的相关实践知识, 才能开展本次设计。主要是针对学校在校大三的学生, 培养他们对所学知识的一个系统的、综合的应用, 又为大四毕业设计打下基础。

在我校以往的单片机教学过程中, 实践环节只是通过实验课程来体现, 这样并不能是学生灵活运用所学知识, 而单片机课程设计的开设通过学生自主选题、分工协作完成和答辩三个环节, 培养了学生独立思考解决问题的能力和团队意识, 大大提高了学生的学习热情。另一个方面, 实验课程缺乏一种系统的设计锻炼, 而在理论教学环节完成后安排课程设计实践环节, 十分有助于学生对所学的知识有一个系统的学习。

2 课程设计的教学过程

2.1 自主选题

在单片机课程理论教学中, 最大的特点就是学生层次良莠不齐, 因此在课程设计中应更加注重因材施教。为了满足不同层次学生的学习要求, 在课程设计过程中依据学生的能力设计难度不同的题目供学生进行选择, 满足不同口味的学生要求, 给学生更多的自主权, 激发了学生的学习兴趣。

本次设计中精心准备了三个层次的题目, 按照由易到难的顺序, 满足不同学生的口味要求。第一类是基础性的题目, 要求学生在对所学知识基本掌握的情况下就能实现一个功能简单的设计, 这个层次的题目对学生的要求不高, 满足底子薄弱的学生的学习要求, 此类题目见表1中所示。

二是中等难度的题目, 满足一般口味的学生, 要求学生在设计过程中能按设计要求顺利完成, 这个层次要求学生具有一定的的动手实践能力和处理问题能力, 并且涉及其它领域的知识, 要求学生具有较广的知识面, 此类题目见表2中所示。

三是拔高性的题目, 要求学生在比较短的时间内, 能够独立完成一些实际应用中的题目, 这种题目工作量较大, 既要求学生具有较广的知识面, 综合利用所学知识, 又要在设计过程中有有自己的想法, 有创新点, 此类题目见表3中所示。

2.2 分工协作

在知识爆炸的而今天, 一个人不可能完成所有的工作, 因此, 应在学生在校期间就培养学生分工合作的能力。在每个小组选完题目后, 在本次课程设计中每三个人划分为一组, 第一个人进行硬件连接和电路板绘制, 第二个人完成软件编程和调试, 最后一个人进行方案论证、资料汇总整理, 准备答辩。

2.2.1 硬件连接和电路图绘制

本次课程设计中采用Z Y 1 5 M C U 1 2 B D型综合单片机实验箱作为硬件电路。学生根据课堂上的实验内容, 小组讨论, 提出设计方案, 进行硬件电路连接。

教师根据学生电路连接情况, 给学生讲解电路连接的相关知识点, 并指导学生利用Protell99se软件进行电路板的绘制。大学的教育应当培养学生所学即所用, 如果学生不知道一个软件做什么用, 学习效果一定不会很好, 因此, 在课程设计过程中, 对照实物给学生绘制电路原理图, 针对学生绘图中出现的不同问题进行答疑是教学, 取得了良好的效果。

2.2.2 软件编程及调试

在硬件电路连接完成后, 由软件编程部分的学生对程序进行调试, 本次课程设计的实验箱内置仿真器的软件开发平台是使用Keil C51集成软件, Keil C51可以编写汇编语言源程序和C语言程序, 学生根据自身优势, 进行编程和调试。

2.2.3 方案论证、资料汇总及设计报告攥写

学生能针对课程设计中提出的要求, 写出可行性报告和拟采用的方法, 对资料的搜集可在网上或者图书馆进行查阅, 在根据同组人软件编程的代码和硬件绘制的图纸进行设计报告的攥写, 准备答辩。这个过程培养了学生的写作能力, 为今后毕业论文攥写和毕业后走上工作岗位上攥写个人工作报告打下了基础。

在这次单片机课程设计中让学生进行把一项任务进行分工, 让学生根据自己的特长和喜好进行分工协作, 即保证了个人的优势得以充分发挥, 又培养了学生的团队精神。

2.3 答辩及成绩考核

在课程设计的最后一个下午, 邀请学院的领导和学校单片机的教师参加答辩, 通过学生自述、老师提问、学生提问的方式来完成, 这个过程更有利月学生对单片机理论知识的学习和掌握, 也充分调动了学生的学习积极性。

3 结语

单片机课程设计教学实践教学环节注重培养学生的动手实践能力和独立思考问题、解决问题的能力, 为日后毕业设计打下了良好的基础。对于工科类的学生, 除了要掌握所学的理论知识外, 更需要具有较强的动手实践能力, 因此, 在理论教学过程中通过课程设计教学环节, 通过选题、分组和答辩的方式, 培养学生自主创新能力、分工协作能力和言语表达能力。

摘要:为了更好的学习和应用单片机理论知识, 在教学过程中开设了单片机课程设计环节, 并通过选题、分组、答辩的形式, 开发学生内在潜力, 培养学生创新精神和动手能力。

关键词:单片机,课程设计,实践教学

参考文献

[1]何立民.单片机高级教程——应用与设计[M].北京航天航空大学出版社, 2007, 1.

[2]李刚民.单片机原理及实用技术[M].高等教育出版社, 2008, 12.

篇4:单片机课程论文设计-电子钟课程设计

关键词:工作过程;C语言程序设计;单片机课程;电子设计竞赛

一、C语言程序设计在电子类专业中的现状

第一,单片机和C语言课程独立开设的,C语言的教学一般由计算机部门的教师担任,教学围绕的目标是学生的等级考试,教学内容全校一样,不能根据各专业学生的需求“量身定做”。而单片机课程由本学院的教师担任。教授C语言和教授微型单片机课程的教师之间交流、沟通少,课程之间的衔接少;第二,《C语言程序设计》课程通常以普通PC机作为C语言运行的主要硬件平台,学生不理解C语言有什么用,缺乏学习的动力,而且教学方法单调,模式单一,学生只是被动接受,缺乏主动参与;第三,单片机课程陆续引入了C语言进行教学,将教学内容项目化,采取项目引导、任务驱动的教学模式,取得了一定效果。但改革的力度仅仅局限在单片机课程内部,而忽视了前序课程《C语言程序设计》的统筹改革,因此其改革的力度和效果非常有限[2];第四,在教学思想方面,忽视了对学生实践能力和技能的培养,失去了高职院校的特色。因此,迫切的需要该课程无论在教学内容上,还是教学方式上都要改进和革新。

二、课程改革思路

高职教育理论研究和实践结果表明,加强教学过程的实践性、开放性、职业性,有利于提高学生职业技能水平。本研究以教育部文件精神为指导,根据应用电子技术专业的培养方向,必须加强与微型单片机有关的课程间的衔接,增加新知识与新技术,删除过时的内容,优化课程体系,与企业合作,建立突出实践能力培养的《单片机与C语言程序设计》课程标准,改革教学内容和教学模式,克服传统的《C语言程序设计》课程和单片机课程衔接不够紧密、科学的弊端,提高教学质量。

三、课程改革方法和措施

(1)提高学生学习兴趣。工程教学中始终贯穿着项目,学生按工程项目的任务、要求有针对性地学习知识,学习目的明确,学习热情高涨,由过去传统教学过程中的“厌学”,到现在的“爱学”,充分体现工程教育模式对学生的学习热情的激发作用;(2)提高教学效率。建立一套包括理论讲授、计算机辅助教学、实践教学在内的全方位的课程教学新体系,积极主动地运用现代化教育手段,更新教学手段,使用电子课件、多媒体教学设施等,充分调动教师和学生两方面的积极性,提高课程的教学质量和课堂教学效率。(3)增强学生实践应用能力。在工程教育的教学模式下强调教学与实践一体化,贯彻“学中做、做中学”的理念。教学过程中安排了大量的实践活动,学生亲自动手完成项目要求的各个实践任务,有些实验必须不断修改程序、反复调试才能达到项目设计要求,从而提高学生的思维和实践动手能力。(4)提高任课教师的师德、业务素质与水平,建立一支高水平的教学和研究梯队。

四、课程总体设计

本研究提出了一种基于工作过程的C语言课程与单片机课程有效结合的课程改革模式,如下图1所示。

图1 改革后的课程体系

从工作过程出发,将课程整体综合项目的应用分解为C语言课程任务、C语言与单片机的结合、单片机课程任务三个部分,C语言课程任务和单片机课程任务两者服务于C语言与单片机的结合;C语言课程任务主要面向C语言程序设计的知识点学习即C语言的课程领域;C语言与单片机的结合又可分解为C语言在单片机中的算法学习和单片机中的C语言程序设计;单片机课程任务主要面向单片机内部资源的学习即单片机课程领域;最后将两者优化整合,形成《单片机与C语言程序设计计》课程。

总结:本文融“教、学、做”为一体的教学模式,强化学生单片机系统应用能力的培养,将单片机课程与C语言课程进行了有机整合。课程整合以来,学生兴趣浓厚、学习效果大为提高,并为历届的全国大学生电子设计竞赛大赛参赛学员的储备和选拔提供了良好支撑。作为学院唯一与全国大学生电子设计竞赛大赛相关的院系,应用电子技术专业今年第七次代表学校参加比赛,我校竞赛小组每年均获得湖北省一等奖, 特别在2011年的大赛中一举取得了高职高专组全国一等奖的佳绩[2]。教学实践证明,课程改革效果良好,极大地提高了学生对实际问题进行电子设计制作的能力,促进了学生学生工程实践能力的培养。

参考文献:

[1] 阮越广.基于工作过程的高职单片机 C 语言教学设计[J].大学教育,2012.3:57-58

篇5:单片机课程论文设计-电子钟课程设计

电子课程设计心得体会范文(一)

通过这次为期近半月的课程设计,我们深感自己动手操作的重要性。我们在课堂上接触到的多半是苍白的理论,在实践层面上只有一定的指导作用。但是真正在实际运用过程中,我们如果缺乏必要的及时锻炼,那将会感觉到力不从心。理工科本来就是一门集思维和动手能力于一体的学科,要想真正掌握好,思考、假设和实验验证都是必不可少的。在通过很多的理论学习之后,我们通过课程设计和相关的实验把书本上的理论知识在实际运用中加以利用,巩固了理论知识的同时也增强了我们的动手能力。

另外,我们生活在一个讲究团队合作的社会里。通过团队的协作,也培养了我们团结互助,相互协调的团队合作能力。通过大家的努力,我们共同完成了小组的任务,大家集思广益,各抒己见,共同把一个个问题解决。虽然辛苦,但是我们也享受着这次课程设计中给我们带来的乐趣,那就是自己亲自动手解决好实际问题,虽然我们做的还不够,但是我们也算是迈出了艰难的一步。我们学习理论知识的最终目的还是要走向实际运用,通过这种模拟式的学习,我们加深认识到理论与实践的差异。通过这个课程设计,我们大家把整个学习阶段的各种学科知识窜联在一起,更好地认识到学习是一个系统工程。我们的每一个环节都是在为以后的实践环节做铺垫,我们的每一个环节都是要有所掌握才可以顺利完成任务。

通过这样的实践活动,我们还可以充分发挥自己的主观能动性,因人而异,合理分配任务,团结协作,一起朝着任务的方向不断地奋斗,大家都很辛苦,各自完成自己负责的那部分工作。我们都深感动手起来遇到的各种问题都要亲自去解决是一件很不容易的事情,同时我们也在实践过程中修复了以往学习的很多漏洞。我们也得到了不同程度的完善和提升。希望以后能多举行多参与这类型的实践活动。把理论知识结合到实践层面去,理论结合实际学习才会更有声有色。要把我们学到理论知识的真正利用到生产实际中还需要大量的实践和运用。

我们忘不了自己在这一过程中的努力与收获,我们也相信付出与收获成正比,我们付出的越多,相应地收获也就越多。我们有大块的时间在准备,在学习的过程中,我们要不断地改进和学习,多多交流才能更好更轻松地学习。

电子课程设计心得体会范文(二)

通过此次课程设计,使我更加扎实的掌握了有关高频电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等,掌握了焊接的方法和技术,通过查询资料,也了解了收音机的构造及原理。

我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。

此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

电子课程设计心得体会范文(三)

本学期实时测量技术实验以电子设计大赛的形式,老师命题,学生可以选择老师的题目也可以自己命题,并且组队操作其他的事情(包括设计总体方案、硬件电路、软件设计、焊接、调试等工作)。趣味性强,同时也可以学到很多东西。

我们认为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。

之所以使用avr单片机作为我们的执行核心,不仅是因为老师说avr现在是社会上应用比较多的单片机,也因为想通过使用avr锻炼自己的c语言编程能力,养成良好的c语言编程风格。不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。

与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。而团队合作也是当今社会最提倡的。曾经听过,xx之所以最近不受欢迎就是因为欠缺团队合作的精神和技巧。

电压电流测量装置虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!快乐至上,享受过程,而不是结果!认真对待每一个实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重要的东西,也是以后都将受益匪浅的!

单片机课程设计心得体会

单片机课程设计心得体会【一】

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在信盈达刘老师的辛勤指导下,终于游逆而解。同时,在刘老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和信盈达各位指导老师再次表示忠心的感谢!

一、单片机课程设计总结

做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一起坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不知道自己在说怎么,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10

天的人最后的成绩都有不如他们的),但是鄙视他们的做法。

所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。后来我们组就用了他写的程序,他自己又抽空做了些拓展。

接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮助我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大家都鼓励我,即使最后出不来东西,但是一定要坚持把它做完。当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。

在要验收前,终于做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最后应该还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西现在记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,A/D转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当中的疑惑。在这个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手……算了吧,不要想那些如果,还是准备我自己的,做好我现在能做的吧。

还好,验收还算成功,得了3分,不是很高,但是我觉得对我来说已经很好,代表了我真实的水平,我觉得我对单片机的一些知识在这个动手的过程中真的是从无到有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有些人付出的是努力,有些人付出的是风险代价,其实这也没有什么不一样,这一点我早就了解。

最后,我发现自己对单片机竟然也有了一点兴趣,想暑假回家以后自己去买一些东西来做,再补一补汇编语言。有什么问题请教下以前的那些老同学好了,他们好厉害,在高中劳动课就成功的做出过调频收音机,大一暑假的时候参加了学校的电子竞赛培训接着比赛,不过后来怎么样我就不知道了。汗。看来要多保持联络,这次回家就好好找他们叙叙旧。

二、单片机课程设计感想

通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为高职生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。

整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。

这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名软件工程专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。

我认为这个收获应该说是相当大的。一开始我们从参考书上找来了课题,但是毕竟是参考书,做到后来发现很多程序都是不完整的,这让我们伤透了脑筋。看着别的小组都弄得有模有样了,可是我们连一个课题都还没有定好。好不容易又找到了课题,可是结果还是很不尽人意。程序接线什么的都弄好了,调试也没有问题,可是就是无法达到预期想要的结果。参考书毕竟只是一个参考,设计这种东西最后还是要靠自己动脑筋。然后我们大家一起齐心协力,从平时做的实验﹑老师上课的举例﹑书本上的知识以及老师的辅导和其他同学的帮助下终于完成了。应该说这是通过我们小组成员的共同努力和动脑完成的,虽然内容并不是很复杂,但是我们觉得设计的过程相当重要,学到了很多,收获了很多。我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。

单片机课程设计心得体会【二】

两周的单片机课程设计最后顺利完成了,其中包含着快乐,也有辛酸。我们选的设计题目是“数字温度计”,大家都觉得这个题目是比较简单的。其实不然,做了之后,发现设计电路虽然简单,但我们认为它真正困难的地方是程序设计,但是在我们同心努力下最终完成了。

我们刚选该题目时,真的是一头雾水,硬件电路不知如何下手,更何谈解决程序那块,因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少。但是,我们三人也没偷下懒,迅速分工去查阅和收集资料。我们去了图书馆借一些参考书,上网找一些相关资料,并且请教指导老师。透过不断努力,最后把数字温度计的思路和模型定了下来并开始分一个人去焊接硬件电路,剩下的去整理和修改程序。

透过一番整理和修改后,在电脑上进行仿真,仿真成功后准备焊接电路板。在焊接电路板中,我们首先对硬件电路进行布局,然后确认无误后,在电路板上进行焊接,这个过程我们觉得是做得比较快的,以至于后面出现了虚焊的错误。

焊接电路板完工,细心检查后,进行通电测试。结果液晶LCD没有显示,透过检查,原先是LCD坏了,在换了块新的后,能显示显示值。但还有个问题是,当报警电路不会报警,在请教老师后,发现走动蜂鸣器的电压太低了,是因为串接了一个太大的电阻。然后,我们换了一个小电阻,但这时蜂鸣器却一向在叫,停不下来,但是,在我们三人的的细心检查下,原先是在放大电路的一端虚焊了,这说明我们焊接电路的技术还不够好。在重新焊接那端后,数字温度电路最后成功实现功能,当时我们的情绪都是无比兴奋和快乐的,因为我们两周的辛苦没有白费。

在完成单片机课程设计后,我们发现我们还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能被动完成。但透过学习这一次实践,增强了我们的动手潜力,提高和巩固了单片机方面的知识,个性是软件方面。从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么重要。

单片机课程设计心得体会【三】

做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。

我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一齐坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不明白自己在说怎样,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10天的人最后的成绩都有不如他们的),但是鄙视他们的做法。

所幸的是,我得到了很多同学的帮忙。我想没有他们我可能都要放下了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。之后请教我们班的一个男生,每次跟他一齐到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。之后我们组就用了他写的程序,他自己又抽空做了些拓展。

接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是十分的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮忙我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大家都鼓励我,即使最后出不来东西,但是必须要坚持把它做完。当我想放下的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你必须要拿出来一件成品。

在要验收前,最后做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最后就应还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西此刻记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,a/d转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当中的疑惑。在这个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手……算了吧,不要想那些如果,还是准备我自己的,做好我此刻能做的吧。

还好,验收还算成功,得了3分,不是很高,但是我觉得对我来说已经很好,代表了我真实的水平,我觉得我对单片机的一些知识在这个动手的过程中真的是从无到有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有些人付出的是努力,有些人付出的是风险代价,其实这也没有什么不一样,这一点我早就了解。

最后,我发现自己对单片机竟然也有了一点兴趣,想暑假回家以后自己去买一些东西来做,再补一补汇编语言。有什么问题请教下以前的那些老同学好了,他们好厉害,在高中劳动课就成功的做出过调频收音机,大一暑假的时候参加了学校的电子竞赛培训之后比赛,但是之后怎样样我就不明白了。汗。看来要多持续联络,这次回家就好好找他们叙叙旧。

单片机课程设计心得体会【四】

作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有好处的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践潜力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们带给了良好的实践平台。

这次单片机课程设计我们历时两个星期,在我们班里算是倒数几组完成的吧,但经过这两个星期的实践和体验下来,我们又怎样会去在乎那个先后问题呢,因为对我来说学到的不仅仅是那些知识,更多的是团队和合作。此刻想来,也许学校安排的课程设计有着它更深层的好处吧,它不仅仅仅让我们综合那些理论知识来运用到设计和创新,还让我们明白了一个团队凝聚在一齐时所能发挥出的巨大潜能!

单片机作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。

两个星期前我们五个人还在为到底选那个课题而发生分歧,最后还是在龚老师的耐心分析和指导下完成了课题的选定,但是随之而来的问题却远比我们想想的要困难的多

过没想到这项看起来不需要多少技术的工作却是十分需要耐心和精力在两个星期后的这天我已明白课程设计对我来说的好处,它不仅仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手潜力和独立思考的潜力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!

在做本次课程设计的过程中,我感触最深的当属查阅超多的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们能够抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:CAD制图、汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。后,要做好一个课程设计,就务必做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,明白该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改善是程序设计的必经之路;

要养成注释程序的好习惯,一个程序的完美与否不仅仅仅是实现功能,而就应让人一看就能明白你的思路,这样也为资料的保存和交流带给了方便;在设计课程过程中遇到问题是很正常德,但我们就应将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。

发现、提出、分析、解决问题和实践潜力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

我们透过查阅超多有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

透过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生用心的影响。

透过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要好处,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名自动化专业的学生,单片机的课程设计是很有好处的。更重要的是如何把自己平时所学的东西应用到实际中。

虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法透过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮忙和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。

篇6:单片机课程设计-电子万年历

——————电子万年日历系统一、题目:电子实时时钟/万年日历系统

二、功能要求:

1. 基本要求:

⑴ 显示准确的北京时间(时、分、秒),可用24小时制式; ⑵ 随时可以调校时间。

2. 发挥要求:

⑴ 增加公历日期显示功能(年、月、日),年号只显示最后两位; ⑵ 随时可以调校年、月、日;

⑶ 允许通过转换功能键转换显示时间或日期。

三、方案考虑:

1、硬件方案:

⑴ 显示器采用6位LED数码管(共阳),可分别显示时间或日期;(通过KB键可切换)⑵ 显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。可采用74LS244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码!⑶采用“一键多用方案”,以减少按键数目。本方案只采用了两个按键 ⑷ 整体上要考虑:结构简单、布局美观、操作方便、成本低廉。

2、设计电路图如下:

3、元件清单:

⑴ 89C51

1个

⑵ IC座(40脚)

3个(其中1个用于接插89C51、2个用于接插LED段数码管)。⑶ 74LS244

1个(用于驱动6个共阳的LED段数码管)。⑷ IC座(20脚)

1个(用于接插74LS244)。(5)显示器:LED_8段数码管(共阳型)6个三极管:

(6)PNP(8550)

6个(用于驱动6个共阳型LED段数码管)。

(7)微型开关:

3个(其中1个用于复位电路、其它用于键盘)。(8)晶体振荡器(12MHz):1个(用于振荡电路)。(9)电阻器:

⑴ 3KΩ

1个(用于系统复位电路)。

⑵ 1KΩ

6个(用作PNP三极管基极电阻)。⑶ 100Ω

7个(驱动器用作74LS244输出限流电阻)。(10)电容器:

⑴ 10μF

1个(用于系统复位电路)。⑵ 30 pF

2个(用于系统振荡电路)。(11)其它:

⑴ 万能电路板(10×15):

1块 ⑵ 焊锡条:

2米 ⑶ 带插头、座的电源端子:

1条 ⑷ 各种颜色外皮的导线:

各1米(12)工具:

1.电烙铁:

1把 2.剪钳:

1把 3.镊子:

1把 4.万用表:

1个(13)设备:

编程器(MEP300或TOP851)

6个

4、软件方案:

只使用第一组工作寄存器,功能分布如下:

⑴ “时钟”基准时间由单片机内部定时中断来提供,定时时间应该乘以一个整数得到“秒”,且不宜太长或太短,最长不能超过16位定时器的最长定时时间,最短不能少于定时中断服务程序的执行时间。一般来说,基准时间越短,越有利于提高时钟运行的精确度。本实验定时5mS。乘以一个整数200得到“1秒”.⑵ 用一个计数器(R4)对定时中断的次数进行计数,从而可以实现“秒”定时,同理可以实现“分”定时和“时”定时,甚至于“日”、“月”、“年”定时。

⑶ 显示器采用动态驱动时要注意到:LED的 “启辉时间”和 “余辉时间”。驱动信号的维持时间必须大于启辉时间;而驱动信号的间歇时间必须小于余辉时间。“启辉时间”和 “余辉时间”与驱动电流的大小有关,驱动电流越大,启辉时间越短,而余辉时间越长。但是,驱动电流的大小受到驱动电路的驱动能力和LED极限功耗的限制。本实验采用了74ls244和晶体管8550驱动,并进行适当的延时3ms解决上述问题。

⑷ LED的余辉时间使动态驱动显示得到保证,但也要注意到它在更新显示内容时,可能造成显示字符的混乱模糊。为此,在把“更新显示内容”写入显示器之前,必须把所有的LED熄灭,即要把一个“熄灭驱动信号”先写入显示器。

⑸对于按键的处理,采用中断。产生中断后先判有无按键被按下,还要考虑到“去抖动影响”问题,可采用软件延迟法解决这个问题,延迟时间至少10mS。而单纯进行软件延时的话会令到显示管产生断续的情况,故调用显示程序作为延时时间。这样就合理地处理好这两者的矛盾了。

⑹ 把键盘的按键分两种情况来处理,操作简单。

调整时间时,先按下KA键,(KA键为选择调整位置的键,如选调整秒或分),而此时的KB键只是用来加一操作。在调整时间状态下,若在十秒内检测到没有任何按键按下,则返回正常显示时钟状态。

而不调整时间,即不按下KA键,KB的键只用来切换显示日期和时钟。⑺ 对于自动识别“月大、月小”和“平年、闰年”的问题,主要考虑: ① 月大、月小:

1~7月:逢单月为31天;逢双月为30天,其中2月另行处理。8~12月:逢单月为30天;逢双月为31天。②平年、闰年:

仅仅处理2月份的天数:平年的2月份天数为28天,闰年的2月份天数为29天。

5、程序流程图如下:(1)电子时钟计算程序图

(2)调整流程图

程序编写如下:

;///////////////////////////////////////////////////////// ORG 0000H

LJMP START ORG 0003H LJMP PROINT0

;int0用来切换时钟调整位置

ORG 0013H

;用来调整时间,只加不减 LJMP PROINT1

ORG 001BH

;5ms的延迟,计数200次则为1秒

LJMP PROTIME

ORG 0030H

;主程序

TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

;0 1 2 3 4 5 6 7 8 9

ORG 0050H

START: MOV TCON,#05H

;中断初始化

MOV IE ,#8DH MOV TMOD,#10H MOV TH1,#0eCH

;定时器初始化

MOV TL1,#78H

MOV 31H,#0AH

;10秒 MOV 32H,#1EH;30分 MOV 33H,#09H;9点 MOV 34H,#0AH MOV 35H,#06H MOV 36H,#05H MOV 37H,#14H

;10号;6月;2005年

;R7 存放切换标志 0 NORMAL , 1 HOUR ,2 MINUTE ,3 SECOND ,4 YEAR,5 MONTH,6 DAY

MOV R1,#00H

;确定在调时不按键的最长时间,10秒后返回normal状态

MOV R7,#00H

;切换标志

MOV 40H,#00H

;十六进制转换BCD的高位 MOV 41H,#00H

;十六进制转换BCD的低位

MOV R6,#00H

;调时的位闪烁的时间间隔

MOV R4,#00H

;用来计数5ms的中断次数,200次则一秒

mov r3,#00h

SETB TR1

;开始计时 AGAIN:

ACALL PROSHOW

;显示

AJMP AGAIN

PROSHOW:

CJNE R3,#00H,SHOWDATE

;如果r3等于1就显示日期,等于0就显示时钟 CJNE R7,#04H,DATE1

;显示程序

AJMP SHOWDATE

;showdate显示年月日 AJMP SHOWDATE DATE1: CJNE R7,#05H,DATE2 DATE2: CJNE R7,#06H,SHOWCLOCK AJMP SHOWDATE

showCLOCK: MOV R0,33H

;showclock显示时分秒,先显示时

ACALL PROHTOD

CJNE R7,#01H,CLK1 INC R6

CJNE R6,#03H,CLK2

;若处于调时状态,则该位闪烁

MOV R6 ,#00H CLK1: clr P2.4 mov a,41H MOV P0, a

;显示时的低位 ACALL DELAY3MS CLK2: SETB P2.4 CLR P2.5 mov a,40H

MOV P0,a

;显示时的高位 ACALL DELAY3MS SETB P2.5

MOV R0,32H

;显示分 ACALL PROHTOD CJNE R7,#02H,CLK3 INC R6

CJNE R6,#03H,CLK4

;若处于调时状态,则该位闪烁

MOV R6,#00H CLK3: CLR P2.2

mov a,41H MOV P0, a

;显示分的低位 ACALL DELAY3MS CLK4:

SETB P2.2 CLR P2.3 mov a,40h MOV P0,a

;显示分的高位 ACALL DELAY3MS SETB P2.3

MOV R0,31H

;显示秒

ACALL PROHTOD CJNE R7,#03H,CLK5 INC R6

CJNE R6,#03H,CLK6

MOV R6,#00H CLK5: CLR P2.0 mov a,41H MOV P0, a

ACALL DELAY3MS CLK6: SETB P2.0 CLR P2.1 mov a,40h MOV P0,a

ACALL DELAY3MS SETB P2.1

RET

SHOWDATE: MOV R0,36H

ACALL PROHTOD CJNE R7,#04H,DAY1 INC R6

CJNE R6,#03H,DAY2

MOV R6,#00H DAY1: CLR P2.4 MOV P0,41H

ACALL DELAY3MS DAY2: SETB P2.4 CLR P2.5 MOV P0,40H

ACALL DELAY3MS SETB P2.5

MOV R0,35H

ACALL PROHTOD CJNE R7,#05H,MONTH1

;若处于调时状态,则该位闪烁

;显示秒的低位

;显示秒的高位

;显示年

;若处于调时状态,则该位闪烁;显示年的低位

;显示年的高位

;显示月

INC R6

CJNE R6,#03H,MONTH2

;若处于调时状态,则该位闪烁

MOV R6,#00H MONTH1: CLR P2.2 MOV P0,41H

;显示月的低位

ACALL DELAY3MS MONTH2: SETB P2.2

CLR P2.3 MOV P0,40H

;显示月的高位

ACALL DELAY3MS SETB P2.3

MOV R0,34H

ACALL PROHTOD CJNE R7,#06H,YEAR1 INC R6

CJNE R6,#03H,YEAR2

MOV R6,#00H YEAR1: CLR P2.0

MOV P0,41H

ACALL DELAY3MS YEAR2: SETB P2.0 CLR P2.1 MOV P0,40H

ACALL DELAY3MS SETB P2.1

RET

PROHTOD:PUSH ACC

MOV A,R0 MOV B,#0AH DIV AB MOV DPTR,#0030H MOVC A,@A+DPTR MOV 40H,A MOV A,B MOVC A,@A+DPTR MOV 41H,A POP ACC RET

;显示日

;若处于调时状态,则该位闪烁

;十六进制数转换成bcd码,且可以直接输出p0口

DELAY3MS:

;DELAY3MS MOV 45H,#08H DELAY1: MOV 46H,#0FFH DELAY2: DJNZ 46H,DELAY2 DJNZ 45H,DELAY1 RET

PROINT0:

CLR EX0

;切换键中断程序 MOV R3,#00H ACALL PROSHOW MOV C,P3.2 JC IEXIT0 MOV R1,#00H INC R7 CJNE R7,#07H,IEXIT0

MOV R7,#00H INT01: MOV C,P3.2 JC INT02 ACALL PROSHOW AJMP INT01 INT02: ACALL PROSHOW IEXIT0: SETB EX0 RETI

PROINT1:CLR EX1

ACALL PROSHOW MOV C,P3.3 JC IEXIT1 LCALL ISYEAR

;判断平年闰年

LCALL ISMONTH

;判断月份,确定最大日数

MOV R1,#00H CJNE R7,#00H,NEXT1

;若不是调时状态,按此键就是切换显示日期、时钟

INC R3 CJNE R3,#02H,IEXIT1 MOV R3,#00H AJMP IEXIT1 NEXT1: mov r3,#00h

CJNE R7,#03H,NEXT2

;修改秒位 INC 31H MOV A,31H CJNE A,#3CH,INT11

;遇60变0 MOV 31H,#00H AJMP IEXIT1

NEXT2: CJNE R7,#02H,NEXT3

;修改分位

INC 32H MOV A,31H

CJNE A,#3CH,INT11

;遇60变0 MOV 31H,#00H AJMP IEXIT1 NEXT3: CJNE R7,#01H,NEXT4

;修改时位

INC 33H MOV A,33H CJNE A,#18H,INT11

;遇24变0 MOV 33H,#00H AJMP IEXIT1 NEXT4: CJNE R7,#06H,NEXT5

;修改日

INC 34H MOV A,34H CJNE A,49H,INT11

;到月底就返回月初 MOV 34H,#01H AJMP IEXIT1

NEXT5: CJNE R7,#05H,NEXT6

;修改月

INC 35H

MOV A,35H CJNE A,#0DH,INT11

;十二月过后就跳回1月 MOV 35H,#01H AJMP IEXIT1 NEXT6: CJNE R7,#04H,INT11

;修改年

INC 36H

MOV A,36H CJNE A,#64H,INT11

MOV 36H,#00H MOV C,P3.3 INT11: JC INT12 ACALL PROSHOW AJMP INT11 INT12: ACALL PROSHOW IEXIT1: setb EX1

RETI PROTIME:

MOV TMOD,#10H MOV TH1,#3CH

;定时器初始化 MOV TL1,#60H setb tr1 INC R4

CJNE R4,#0c8H,EXIT

MOV R4,#00H

;计满1秒则清零 CJNE R7,#00H,DIAOSHI

AJMP NORMAL DIAOSHI:INC R1

;调时不按键的最长时间为10秒,在此期间又键按下重新计时

CJNE R1,#0AH,EXIT MOV R7,#00H

;到10秒则返回正常显示状态 MOV R1,#00H AJMP EXIT

NORMAL:ACALL ISYEAR

;判断平闰年,返回标志48h,0为平年,1为闰年

ACALL ISMONTH

;判断哪个月,返回该月的最大日数,存放在49h

INC 31H

MOV A,31H

;秒加一 CJNE A,#3CH,EXIT MOV 31H,#00H

INC 32H

;分加一 MOV A,32H CJNE A,#3CH,EXIT MOV 32H,#00H INC 33H

;时加一 MOV A,33H CJNE A,#18H,EXIT MOV 33H,#00H INC 34H

MOV A,34H CJNE A,49H,EXIT MOV 34H,#01H INC 35H

MOV A,35H CJNE A,#0DH,EXIT MOV 35H,#01H INC 36H

MOV A,36H CJNE A,#64H,EXIT MOV 36H,#00H;年加一;月加一;日加一 EXIT:

RETI

ISYEAR: MOV A,36H;判断平闰年

MOV B,#04H

DIV AB MOV A,B CJNE A,#00H,EXITYEAR1 MOV 48H,#01H

;闰年 SJMP EXITYEAR MOV 48H,#00H

;平年 EXITYEAR1: EXITYEAR: RETI

ISMONTH:

MOV A,35H

;开始检查月份 CJNE A,#02H,NEXTMON1

;判断二月 MOV R2,48H

CJNE R2,#00H,RUNNIAN MOV 49H,#1DH

;平年为28天,赋29给49h AJMP EXITMONTH RUNNIAN:MOV 49H,#1EH

;闰年为29天,赋30天给49h

AJMP EXITMONTH

NEXTMON1: CJNE A,#04H,NEXTMON2

AJMP XIAOYUE

NEXTMON2:CJNE A,#06H,NEXTMON3 AJMP XIAOYUE

NEXTMON3:CJNE A,#09H,NEXTMON4 AJMP XIAOYUE NEXTMON4:CJNE A,#0BH,DAYUE XIAOYUE: MOV 49H,#1FH

;四,六,九,十一月是小月,30天,但应该赋31天给比较值49h,AJMP EXITMONTH DAYUE: MOV 49H,#20H

上一篇:学习党风廉政建设和反腐败斗争心得下一篇:医学检验技术的优势