版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、天津职业技术师范大学电子工程学院电 子 技 术课程设计报告同组学生姓名(学号): 班 级: 电子工程学院 应用电子技术教育0711 任务分工:软、硬件调试和部分程序编程 :软件部分编程和仿真 *:硬件焊接和调试 设计时间: 2011年02月21 日 2011 年 03月11日指导教师: 目录题目一 数字时钟一、 课程设计的目的和要求3二、 方案论证及选择3三、 原理设计5四、 方案实现与测试11五、 参考书目12题目二 温度显示器一、 课程设计的目的和要求13二、 方案论证及选择13三、 原理设计15四、 方案实现与测试20五、 参考书目20课程设计总结21个人总结22附:数字时钟程序25 温
2、度显示器程序34题目一 数字时钟一、课程设计的目的和要求1、课题来源:老师和学生共同拟定。2、类型:实做。3、目的和意义:掌握单片机的编程。4、基本要求:设计和制作一个显示时分秒的数字时钟,具有校时功能,可对小时和分钟单独校时,对分钟校时时,停止向小时的进位。校时时钟可以手动输入或借用电路中的时钟;实现秒表功能;省电状态(不显示);显示年、月、日、学号;刻意24小时和12小时转换5、设计过程根据课程设计的要求,经过查阅资料和小组讨论,我们先分析任务要求、确定解题思路,决定了大概的系统结构,其中包括主控电路、复位电路、时钟电路、显示电路和设置电路。如下图所示。然后画流程图、编写程序最后进行总体系
3、统的调试和修改。6、设计图主控电路显示电路时钟电路复位电路设置电路图一 方案设计图二、方案论证和选择本系统我们决定以at89s52单片机为控制核心,通过内部定时器获得时间,并将得到的数据通过显示模块显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一下模块:主控模块、时钟模块、显示模块、设置模块(时间设置模块、年月日设置模块、12/24切换模块、秒表计数模块)。下面对各个模块逐一进行论证分析:1、 主控模块方案一:单片机和数字芯片结合使用,这样的好处是能减少单片机的工作量,使电路不单纯的只依赖于单片机工作,但是如果使用数字芯片,就有点违背题目初忠,单片机的功能也不能直观的显现出来。而且
4、相对来说成本要高。电路也不够简略。方案二:单独使用at89s52单片机,该单片机采用的mcu51内核,因此具有很好的兼容性,内部带有8kb的rom,能够存储大量的程序,最突出特点是具有isp在系统烧写功能,使得烧写程序更加方便。它的好处是外围电路比较简单直观,所有的控制都只需用软件程序来实现,对于单片机来说,时钟程序远不够它自身的承受量,所以只要程序编的合理,就能比较方便的实现。2、 时钟模块方案一:采用dallas公司的涓细充电时钟芯片ds1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准
5、确计时。方案二:at89s52内部含有2个定时器,可以利用一个定时器与程序计数器相结合的方式,在系统晶振的驱动下,产生标准时钟频率。由于此方案具有较好的灵活性、较少的电路器件和较高的性价比,而且通过精确的软件补偿使精度完全可以满足控制需要,所以我们选择该方案完成设计。3、显示模块(1)显示器件的选择数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字方案一:静态显示。静态显示就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。这种方式每一位都需要为输出口控制,显示位多的时侯,会造成资源浪费,不符合经济原则。方案二:动态显示。动态显示就是一位一位的
6、轮流点两各个位,对于显示器的每一位来说就是每隔一段时间点亮一次。扫描速度够快的话字符就不会闪烁。这个方案降低了功耗。方案三:采用液晶显示。1602字符型液晶是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:清屏、左移右移、光标显示。而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。但成本较高。方案四:采用点
7、阵显示,可做成表盘显示,但是点阵显示成本较高,同时所需资源也较多,控制比较繁琐,编程较繁琐。在考虑后我们选择了数码管动态显示。共需要8数码管。(2)数码管与单片机的接口选择方案一:用74ls138集成芯片连接,对输出端口进行扩展,这样可以减少输出端口,但在时钟电路中所需控制的输出设备不多,用这种方案会使外围电路复杂,而且一些p口闲置浪费。方案二:直接与端口连接,使得外围电路直观简单,在编程序时也会显得简单明了。4、设置模块方案一:使用键盘控制,它的效果比较直观,能直接根据需要按键,直接得出所需的数值,而且对程序的要求也不需很大,但使用的按钮量较多,占的空间也较大,而且实际实用性不强。方案二采用
8、独立式按键电路,每个键单独占有一根i/o接口线,每个i/o口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点是当按键较多时占用单片机的i/o数目较多,优点是电路设计简单,且编程极其容易。考虑到时钟控制在实际使用时的资源量并不大,使用按钮控制可以大大减少按键的使用量。综上,在完成任务所需的要求的前提下,我们选择尽量节约系统硬件的成本,能用软件实现的都用软件完成,如按键的消抖动采用软件延时,显示采用动态显示等。所以我们做选择的方案是:at89s52芯片为核心,数码管动态显示,利用按钮开关进行功能设置。三、原理设计1、基本原理电路是由控制部分和显示部分两大部分组成。利用单片机程序进行控制,单片
9、机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。在单片机内部存储器设6个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若时值达到24,则将十字节清零。年月日同理。2、电路仿真图二3、 系统组成框图(1)硬件结构图主控模块数码管显示电路时钟电路复位电路按键设置电路图三(2)程序流程图主程序开始设定定时器常数开中断到一秒?显示时间yn图四t0中断现场保护重装定时器初值满20次否?秒值加1满60秒否?秒缓冲单元清零分值加1满60
10、分否?分缓冲单元清零时值加1满24小时否?时缓冲单元清零恢复现场结束y图五按键程序开始按下1次按下2次按下3次按下4次按下5次按下6次按下7次按下8次学号显示秒表模式省电模式12/24切换日期调整日期显示时间调整时间显示返回图六4、单元电路设计主控单元方案一:单片机和数字芯片结合使用,这样的好处是能减少单片机的工作量,使电路不单纯的只依赖于单片机工作,但是如果使用数字芯片,就有点违背题目初忠,单片机的功能也不能直观的显现出来。而且相对来说成本要高。电路也不够简略。方案二:单独使用单片机控制,它的好处是外围电路比较简单直观,所有的控制都只需用软件程序来实现,对于单片机来说,时钟程序远不够它自身的
11、承受量,所以只要程序编的合理,就能比较方便的实现。晶体振荡单元at89s52单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚xtal1和xtal2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。图七图中,电容器c01,c02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pf。晶振频率的典型值为12mh2。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。时钟单元利用芯片内部的振荡器,然后在引脚xtal1和引脚xtal2两端接晶体谐振器,就构成了稳定的自
12、激振荡器,其发出的脉冲直接送入内部的时钟电路,如图外接晶振时,c1和c2的值通常选择20pf; c1、c2对频率有微调作用,晶体谐振器的频率12mhz。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。设置了24显示状态,调整星期、年、月、日、时、分、秒的调整的按键。复位单元复位单元起到对系统进行复位的功能。图八数码管显示单元设计八位数码管作为时、分、秒显示和年月日显示的共用管,通过按键切换;一排显示星期和温度, 共阳极数码管中8个发光二极管的阳极(二极管正端)连在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电
13、路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。图九按键设置单元本电路设计按键的时候,发挥部分要求按键控制尽量少,所以本电路只设计了四个按键。各按键功能如下:“模式切换” 按键:用来切换不同的系统模式。“移位” 按键:用来进行调整模式下的移位。“加一” 按键:用来对要进行改变的位进行加一操作。“减一” 按键:用来对要进行改变的位进行减一操作。图十5、总体电路图图十一6、元件列表at89s52 1片74ls04 2片共阳数码管 8个按钮开关 5个470电阻 8个1k电阻 4个10k电阻 1个10uf电容 2个40uf电容 1个0.1uf电容 1个3
14、0pf电容 2个12mhz晶振 1个四、方案实现与测试首先确保各器件的完好性,其次检测各芯片的电源线和底线是否接触良好,然后焊接期间,接好电源用万用表检测各电源端、地端的状态是否正常。检查无误后插上at89s52并烧写一个简易的程序,观察电路是否能协同工作。最后烧写工作程序,更具现实现象调试程序直至成功。上电运行时,数码管开始显示设置的初始时间,时钟开始走时。1、上电默认下8位数码管依次显示xx-xx-xx,表示xx时xx分xx秒。2、按下“模式切换”键,依次显示正常时间、时间调整、正常年月日、年月日调整、12/24小时切换、节电模式、秒表模式、学号显示。3、在时间调整和年月日调整模式下,按下
15、“移位”键改变调整的位置。再按“加一”“减一”键可改变所在位的值。4、12/24小时切换状态下,按下“移位”键,对时间状态进行切换。5、在秒表模式下,按下“移位”键,对秒表进行开始、停止、复位操作。五、参考书目李光飞,楼然苗,单片机课程设计实例指导,北京,北京航空航天大学出版社,2004常喜茂,孔英会,c51基础与应用实例,北京,电子工业出版社,2009杨居义,单片机课程设计指导,北京,清华大学出版社,2009楼然苗,李光飞,51系列单片机设计实例,北京,北京航空航天大学出版社,2006李广弟,朱月秀,单片机基础(第三版),北京,北京航空航天大学出版社,2007题目二一、课程设计的目的和要求1
16、课题来源:老师和学生共同拟订。2类型:实做。3目的和意义:掌握单片机的编程。4基本要求: 设计和制作一个温度显示器,可用键盘设置温度的上限和下限,测量的温度高于或低于设置的温度时,温度显示器报警。5设计过程:按照课程设计的要求,经过查阅资料和小组讨论,我们先分析任务要求、确定解题思路,决定了大概的系统结构,共有5个模块组成:主控制器、温度传感器、报警电路、按键预置温度值电路及显示电路。确定系统程序主要包括主程序、温度控制子程序及显示子程序等。然后画流程图、编写程序最后进行总体系统的调试和修改。6设计图主控电路显示电路温度电路复位电路设置电路报警电路图十二二、方案论证和选择1、主控制器模块主控制
17、器的选择对电路功能的实现尤为重要。方案一:单片机和数字芯片结合使用,这样的好处是能减少单片机的工作量,使电路不单纯的只依赖于单片机工作,但是如果使用数字芯片,就有点违背题目初忠,单片机的功能也不能直观的显现出来。而且相对来说成本要高。电路也不够简略。方案二:单独使用单片机控制,它的好处是外围电路比较简单直观,所有的控制都只需用软件程序来实现,对于单片机来说,时钟程序远不够它自身的承受量,所以只要程序编的合理,就能比较方便的实现。2、设置模块方案一:使用键盘控制,它的效果比较直观,能直接根据需要按键,直接得出所需的数值,而且对程序的要求也不需很大,但使用的按钮量较多,占的空间也较大,而且实际实用
18、性不强。方案二:采用独立式按键电路,每个键单独占有一根i/o接口线,每个i/o口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点是当按键较多时占用单片机的i/o数目较多,优点是电路设计简单,且编程极其容易。考虑到时钟控制在实际使用时的资源量并不大,使用按钮控制可以大大减少按键的使用量。3、温度传感模块方案一:热敏电阻是开发早、种类多、发展较成熟的敏感元器件热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化。通过一定的电路可以将周围环境的温度变化转化成电压的变化,通过ad转化器件将信号传输给单片机进行分析,从而测出当前环境温度,但误差大,不稳定,对环境要求较高。方案二:主控芯片使用
19、51系列at89s52单片机设计时温度模块设计温度元件用ad590,利用ad590以及接口电路把温度转换成模拟电压,经由adc0804转换成数字信号,然后经at89s52处理显示温度。但由于ad590价钱比较贵,且只能转换成模拟电压,这样一来硬件就要增加更多的器件且又不经济方案三:18b20温度传感器价钱便宜且可以直接把温度转换成数字量测温范围为-55125度,最大分辨率可达0.0625度,采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,所以我们选择了18b20温度传感器。4、声光报警模块方案一:取用蜂鸣器和数只发光二极管组成,电路简单,单片机编程容易,调试简单,但电路
20、的可观性与娱乐性不高。方案二: 利用单片机编程控制音乐芯片和发光管作不同的闪烁,可观性与娱乐性都大大提高,又能突出单片机在多功能控制的特点。5、显示电路模块(1)显示器件的选择:方案一:采用数码管显示,这种显示方法比较直观,也比较切合现实生活,而且对于电路的设计来说比较方便,节省了电路板的空间,使用三极管驱动后所需电压也相对较低,稳定性也相对较高,而且编程较简单。方案二:使用液晶显示器液晶显示器可以显示多种字符及图形,拥有友好的人机界面及强大的显示功能。特别适用于智能控制的可编程人性化显示。但是技术含量过高,实现非常复杂,需要完成大量的显示工作,其功能也是最强大的。但由于我们所设计系统无须如此
21、复杂便可加以实现,而且考虑到市场价格问题(2)由于先前的数字时钟的显示器件数量够本系统使用,故不作变动。5、声光报警模块方案一:取用蜂鸣器和一个发光二极管组成,电路简单,单片机编程容易,调试简单,但电路的可观性与娱乐性不高。综上,在完成任务所需的要求的前提下,我们选择尽量节约系统硬件的成本,能用软件实现的都用软件完成,如按键的消抖动采用软件延时,显示采用动态显示等。所以我们做选择的方案是:at89s52芯片为核心,数码管动态显示,利用按钮开关进行功能设置,温度传感选用ds18b20芯片,报警选用蜂鸣器和发光二极管。三、原理设计1、基本原理利用单片机89s52作为本系统的中控模块。电路设有四个按
22、键,一个为功能选择开关,能够选择显示测量的环境温度及设置温度的上、下限;第二个为“移位”按钮,能够实现数码管的位移动;第三个为“加”按钮,能够实现数字的递增;第四个为“减”按钮。电路程序取用单片机内部其中一个定时中断系统作为基准秒频,这样能够使cpu达到最大利用。功能调节时显示电路仍然能够达到同步显示。单片基可把有ds18b20读来的数据利用软件来进行处理,从而把数据传输到led数码管显示模块中,实现温度的显示。当测量的温度高于或低于设置的温度时,发光管会亮同时蜂鸣器报警。2、电路仿真图十三4、 系统组成框图(1)硬件组成框图主控电路显示电路温度电路复位电路设置电路图十四开始初始化设置温度上限
23、、下限测量环境温度显示设置温度环境温度与社设置温度比较环境温度高于设置温度?环境温度低于设置温度?yynn(2)程序流程图图十五4、单元电路设计:单片机主控模块at89s52功能特性描述:at89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s52具有以下标准功
24、能:8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图十六 at89s52引脚结构图设置模块本电路设计按键的时候,发挥部分要求按键控制尽量少,所以本电路只设计了四个按键。各按键功能如下:a、“切换” 按键:用来转换功能。
25、b、“移位” 按键:用来控制数码管的位。c、“加” 按键:用来实现数据递增。d、“减” 按键:用来实现数据递减。图十七温度传感模块主要由ds18b20单线数字温度传感器通过单片机at89s52中的温度程序不断的检测温度来显示温度温度传感器ds18b20采集温度信号送该给单片机处理,存储器通过单片机对某些时间点的数据进行存储,电路如下图所示:图十八18b20温度传感器工作原理:ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并可根据实际要求通过简单的编程实现912位的数字值读数方式。温度传感器ds18b
26、20采集温度信号送该给单片机处理,存储器通过单片机对某些时间点的数据进行存储;,ds18b20的性能特点如下: 1、独特的单线接口仅需要一个引脚进行通信; 2、采用单总线专用技术,既可通过串行口线,也可通过其它i/o口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位); 3、测温范围为-55-+125,测量分辨率为0.0625; 4、适配各种单片机或系统机; 5、零待机功耗; 6、内含64位经过激光修正的只读存储器rom; 7、用户可定义的非易失性温度报警设置; 8、用户可分别设定各路温度的上、下限;显示模块显示部分一路采用普通共阳极数码管显示,采用动态扫描,以减
27、少硬件电路。考虑到一次扫描12位数码管显示时会出现闪烁情况,设计八位数码管作为温度显示的共用管,通过按键切换。数码管的ah分别并联在一起,由单片机的p0口控制,每只数码管的共阳极分别接一个74ls04,具有改变电平作用。图十九声光报警模块声光报警电路主要由led和蜂鸣器构成。当测试的温度超出限制温度时,led亮,蜂鸣器发出声音。图二十5、总体电路图图二十一6、元件列表at89s52 1片74ls04 2片共阳数码管 8个按钮开关 5个470电阻 8个1k电阻 5个10k电阻 1个10uf电容 2个40uf电容 1个0.1uf电容 1个30pf电容 2个12mhz晶振 1个ds18b20 1个9
28、012 1个蜂鸣器 1个发光二极管 1个四、方案实现与测试1、调试过程系统的调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、预置数、报警子程序等的编程及调试,由于ds18b20与单片机串行数据传送,因此,对ds18b20进行编程时必须严格的保证读写时序,否则将无法读取测量结果。本程序采用c语言编写,用keil uvision3编译器编程及isis仿真软件仿真。软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度改变。2、测试结果当电路加上+5v的电源时,数码管能显示
29、环境的温度,通过调节按钮,担当测量的环境温度高于或低于设置的温度上下限时,发光管亮并且蜂鸣器会响。当用手握住传感器ds18b20一段时间后,如果数码管显示的温度高于设置的温度上限时,发光管也会亮并且蜂鸣器也会响。五、参考书目李光飞,楼然苗,单片机课程设计实例指导,北京,北京航空航天大学出版社,2004常喜茂,孔英会,c51基础与应用实例,北京,电子工业出版社,2009杨居义,单片机课程设计指导,北京,清华大学出版社,2009楼然苗,李光飞,51系列单片机设计实例,北京,北京航空航天大学出版社,2006李广弟,朱月秀,单片机基础(第三版),北京,北京航空航天大学出版社,2007课程设计总结经过三
30、周的课程设计,让我们对数字时钟电路设计与制作和数字温度计设计与制作有了一定的了解,系统经过多次的调试和修改,最后把电路给完全的成功运行。同时这次的课程实际也让我们了解到,光从书上找到的资料有许多的不足之处,要我们有足够的知识基础和对程序的理解能力,把这些知识进行融会贯通才能达到精益求精来确保电路的成功率。在制作数字时钟电路的时候遇到的问题比较麻烦。在电路硬件设计上,我们原先是使用三极管来驱动数码管运行,但在仿真运行时数码管不能显示数字。我们改变了一些硬件方面的构造,把驱动数码管的部分由三极管改为非门来驱动,经过修改程序之后仿真,系统的运行结果终于能够能够达到任务的设计要求。对我们来说在设计程序
31、上是比较困难的,因为平时很少研究这些方面的知识,所以有些棘手。我们选择用c语言编程,在刚开始编程时,有一些的语句不懂它所包含的意思,通过查阅文献资料和咨询老师和同学慢慢了解并使用编程语句。在程序结构方面,我们采用最简单的结构,方便编程和程序的后期修改。这次设计是用单片机来主控系统的,在对单片机的了解方面,以前只有简单的了解51系列的功能,这次是更加深入的理解它每个管脚所提供的信号。在制作数字温度计的时候,在硬件方面让我们觉得比较简单,我们只要在原有的数字时钟电路上添加了温度传感器和声光报警部分,所以这次硬件设计不像设计数字时钟那样麻烦。但在加入的元器件中,有一个温度传感器需要我们去多多的了解它
32、,经过多方面的查阅资料,确定使用ds18b20来实现传感温度,同时了解它是如何实现温度转换的。在软件编程方面,我们主要沿用了数字时钟的编程思路,在它的基础之上,添加有关ds18b20的编程,例如它的初始化、读写字节及读出温度。在进行仿真时,不停的调试程序,直到电路能够准确的显示温度。在超出设置温度时,报警器报警。虽然这次的课程设计已经完成,但它还存在一些待改进的方面。1、数码管如果能用四位一体的话,就可以减少连线,节约资源。2、闹钟功能,在闹钟响时,可以采用一片音乐芯片,使闹钟报时的声音更加悦耳。3、整点报时功能,在时钟到达整点时,系统发出整点提示音。4、可以把数字时钟和温度显示融合在一起。5
33、、增加星期显示。6、在响铃的同时,出现彩灯循环时,能够在视觉上有焕然一新的体验。7、在报警时设置不同的响铃方式,让我们可以了解温度是超出上限还是低于下限,有利于观察和记录。这次课程设计中,我们组经过团结努力而设计出电路,让我们有很大的成就感,在协作的过程中增进了同学之间的友谊和默契,同时也加深了我们对单片机编程的了解与运用。通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。个人总结 应电0711 35号 赵莉课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术
34、发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我感慨颇多,其中最深的当属单片机的编程和调试了。为了让自己的调试结果更加完善,查阅这方面的设计资料十分必要且必不可少。我们做的单片机实训任务,一切都按造有据可依,有理可寻来进行,凭空想象是无法无法做出实物的。同时软件与硬件要相对应,以免运行不了,让所做的努力白费。其次,在这次课程设计中,我不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有
35、理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中遇到许多问题,毕竟第一次做,难免会遇到过各种各样的问题,在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机c语言掌握得不好。课程设计之后,一定把以前所学过的知识重新温故。最后,我觉得再做任何事之前都要做好准备。在设计之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些构成;在编程之前头脑中,要有一个清晰的思路和一个完整的流程图;设计程序时,不可能一次就将整个程序
36、设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样不仅让自己在修改程序时方便,也可以让读程序的人能够对你的程序有一个清晰的认识,这样也为学习和交流提供了方便。不仅仅是单片机的内部构造,还有所用到的其他芯片,我们都必须认真仔细的了解它,才能更好的在电路中运用它们,在遇到错误时能及时的修正。在团队合作时,要把团队精神发挥到最大,有事一起做,有错一起改,分工明确,团结一致才能把事情很好的完成。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在孙秀强、刘新月老师的辛勤指导下,终于游逆而解。同时,在孙秀强、刘新月老师那里我学得到很多实用的知识,在此我表示感谢!同时,
37、对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 个人总结 应电0711 36号 程春林在这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我发现:现在书本上的知识与实际的应用存在着不小的差距,书本上的很多知识都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我不得不考虑这方面的问题,这让我无法根据书上的理论就直接得到预想中的结果,有时理论结果与实际差别很大甚至不对。通过这次实践使我更深刻的体会到了理论联系实际的重要性,这使我在今后的学习工作中会更加的注重实际,避免只会纸上谈兵。在本次设计的过程中,我发现很
38、多的问题。虽然以前做过数字的课程设计,但这次设计真的让我长进了很多。单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次简单的程序,但我觉得写好一个程序并不是一件简单的事。有好多的东西,只有让我去试着做了,才能真正的掌握,只学习理论方面的知识,会有很多东西是很难理解的,更谈不上掌握。 这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,有很多需要我掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。
39、在大学课堂的学习只是在给我灌输专业知识,而我应思考把所学的知识如何用到我们现实的生活中去,此次的数字时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。本次课程设计,使得我对四年来学习过的知识比如:电路,数、模电子技术,单片机技术的使用等有了更进一步的认识。同时,也培养了我的动手能力以及抗压能力,也锻炼了我独立思考和独立完成任务的能力。在本次设计中,我不但查阅了很多书本上的资料,也通过网络查阅到了很多的编程方面知识(c语言和汇编)以及各种芯片的功能、结构、编程等方面的知识。特别是关于ds18b20的知识都是从网络查找的。以前从来没有特别关注过各种芯片的资料
40、,只有在需要用到的时候才会去了解它,但过没多久就会把它给忘了。但我以后会随时随地去了解在专业知识中运用到的芯片资料。在这次的课程设计中,我负责了程序的编写和修改,并进行仿真。虽然编程很难,但在组员的协助下,还是调试并完成了。从这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。我也深刻的了解到:只要努力用心的去做每一件事,一定会有成功的收获! 个人总结应电0711 37号 董江妍经过这三周的课程设计,让我对单片机有了进一步的了解,对单片机的编程加深了
41、印象。同时把单片机的应用软件加以熟练的运用。在课程设计的第一周,我把从图书馆借来的书仔细的看一下,然后把所需的课题找出来,再仔细研究一下。根据任务书上的要求,找到与他相对应的硬件图,同时分析它能实现的功能。等研究过后确定方案,列出硬件元件清单,为焊接电路做好准备。在拿到元件时,检查各个元件的好坏,以确保电路能正常运行。方案确定了以后就开始为软件编程做准备。在找到的编程程序中,不断分析各句语句所代表的意思,然后在它的基础上修改程序。我们经过一周的准备工作,在这一周开始进行焊接和调试。我们先做的是数字时钟电路,需显示的东西有年月日,时分秒,学号,秒表及省电。由于用到的数码管太多,所以在连接时较麻烦
42、,每个数码管上“a”“b”“c”“d”“e”“f”“g”“h”都必须相连接,为了确保不让管脚短接,所以特别的小心。另外,三极管的管脚也必须明确,以免焊错,不能使电路运行。但是,当电路在进行调试时,它还是不能运行。通过检查发现,三极管不能给数码管提供低电平。结合别人的电路,讨论过后决定用非门代替三极管,非门可以把高电平转换为低电平,给数码管提供低电平。把元件调整以后,在进行调试数码管终于可以正常的显示了。但在同时也让我们思考,为什么有些人用三极管可以让电路正常的运行,我们就不行。为什么书上大多数都是使用三极管来为数码管提供电平。在调试成功的同时,我们必须了解元器件在电路中的作用。在最后一周,我们
43、要做的是数字温度计。温度计的电路是在时钟电路的基础上添加传感器及报警器来实现的,在硬件方面上它不需要大幅度的修改,但在软件上却大大相反。它需添加的程序是在原有的基础上修改按键的顺序及内容。如果不小心把程序改错了,那就又是一个麻烦。在同时,也必须把程序完全弄懂,才能随时随地的按要求修改程序。在此次课程设计时,让我们对有关单片机方面的知识及它所使用的软件有了更进一步的了解。俗话说“好的开始是成功的一半”。说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。同时要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 与此同时更让我对学习态度以及做人上有了更好的理解,在学习态
44、度上,要检讨自己的失误和对做事时的严谨及毅力和决心。在做人上,要虚心求教,有面对和挑战困难的勇气,这样就不怕没啥事是做不成的。同时学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己,这是对自己的期望。 附数字时钟程序#include at89x51.h #define uchar unsigned char #define uint unsigned int uchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uchar n,time; uchar hh,mm,ss; uchar day,mon,year
45、; uchar hhs,hhg,mms,mmg,sss,ssg; uchar days,dayg,mons,mong,years,yearg,week;uchar bb,mb;uchar bbs,bbg,mbb,mbs,mbg;uchar set1=1,set2=1; sbit k1=p10; sbit k2=p11; sbit k3=p12; sbit k4=p13; sbit s0=p20; sbit s1=p21; sbit s2=p22; sbit s3=p23; sbit s4=p24; sbit s5=p25; sbit s6=p26; sbit s7=p27; uchar tab
46、le1=31,31,29,31,30,31,30,31,31,30,31,30,31; /闰年 uchar table2=31,31,28,31,30,31,30,31,31,30,31,30,31; /非闰年 void jishi(); void set_time(); void set_zhuanhuan();void set_mdw(); void key_change();void key_set();void miaobiao();void delay(int m) /延时程序,延时m*0.5ms uint i; uint j; for (i=0;im;i+) for(j=0;j50
47、0;j+) void timer0() interrupt 1 th0=0x3c;tl0=0xb0;n+; jishi(); /主函数main() tmod=0x11;tl1=(65536-1000)%256; th1=(65536-1000)/256; /定时器1赋初值tl0=0xb0; th0=0x3c; /定时器0赋初值et0=1; /开定时器1tr0=1; /定时器0工作pt0=1; /设置定时器0为优先级ea=1; /开总中断hh=10;mm=12;ss=00; year=11;mon=3;day=2;week=4; while(1) hhs=hh/10%10;/时分秒 hhg=hh
48、%10; mms=mm/10%10; mmg=mm%10; sss=ss/10%10; ssg=ss%10; days=day/10%10;/年月日 dayg=day%10; mons=mon/10%10; mong=mon%10;years=(year%1000)/10%10;yearg=(year%1000)%10;bbs=bb/10%10;bbg=bb%10;mbb=mb/100%100; mbs=mb/10%10; mbg=mb%10;key_change(); /k1按键扫描 key_set(); /k2按键扫描 set_time(); /设置时间 set_mdw(); /设置年月日
49、 set_zhuanhuan();/设置转换miaobiao();if(set1=1) /正常走时显示 p0=tabhhs;s0=0;delay(1);s0=1;/时十位 p0=tabhhg;s1=0;delay(1);s1=1;/时个位 p0=0xbf;s2=0;delay(1);s2=1;/- p0=tabmms;s3=0;delay(1);s3=1;/分十位 p0=tabmmg;s4=0;delay(1);s4=1;/分个位 p0=0xbf;s5=0;delay(1);s5=1;/- p0=tabsss;s6=0;delay(1);s6=1;/秒十位 p0=tabssg;s7=0;del
50、ay(1);s7=1;/秒个位 if(set1=2) /设置时间 p0=tabhhs;s0=0;delay(1);s0=1;/时十位 p0=tabhhg;s1=0;delay(1);s1=1;/时个位 p0=0xbf;s2=0;delay(1);s2=1;/- p0=tabmms;s3=0;delay(1);s3=1;/分十位 p0=tabmmg;s4=0;delay(1);s4=1;/分个位 p0=0xbf;s5=0;delay(1);s5=1;/- p0=tabsss;s6=0;delay(1);s6=1;/秒十位 p0=tabssg;s7=0;delay(1);s7=1;/秒个位 if(set1=3) /正常显示年月日 p0=tabyears;s0=0;delay(1);s0=1;/时十位 p0=tabyearg;s1=0;delay(1);s1=1;/时个位 p0=0xbf;s2=0;delay(1);s2=1;/- p0=tab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产xx亚光漆项目可行性研究报告(项目说明)
- 消防安全月知识培训
- 中班数学活动教案:它们一样多吗
- 人教版部编本六年级上册《盼》教学设计及教学反思
- 2022-2023学年广东省深圳市罗湖区六年级上学期期末英语试卷
- 二年级上册数学教案-8.1数学广角-搭配(1)-人教版
- 护理跌倒坠床的护理
- 胸痛应急护理培训
- 9 数学广角-鸡兔同笼(教案)四年级下册数学人教版
- 一年级下册数学导学案-2 20以内的退位减法第6课时 练习课|人教新课标
- 17 难忘的泼水节(第一课时)公开课一等奖创新教学设计
- 一年级数学20以内加减法口算混合练习题
- 矿山安全生产培训
- 2024年执业药师继续教育专业答案
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读
- 自然资源调查监测劳动和技能竞赛
- 建筑公司安全生产专项整治三年行动实施方案
- 承包酒店鲜榨果汁合同范本
- 2024-2030年中国无菌注射剂行业市场发展趋势与前景展望战略分析报告
- 2024-2025学年人教版七年级数学上册期末达标测试卷(含答案)
- 第七章-应聘应试技巧
评论
0/150
提交评论