




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录 TOC o 1-3 u 1前言 HYPERLINK l _RefHeading_Toc298498365 12总体方案设计 HYPERLINK l _RefHeading_Toc298498366 22.1方案比较 HYPERLINK l _RefHeading_Toc298498367 22.2方案论证和方案选择 HYPERLINK l _RefHeading_Toc298498368 33硬件接口设计 HYPERLINK l _RefHeading_Toc298498369 43.1各硬件功能及电路设计介绍 HYPERLINK l _RefHeading_Toc298498370 4
2、DS18B20温度传感器 HYPERLINK l _RefHeading_Toc298498371 4串行通信电路 HYPERLINK l _RefHeading_Toc298498372 43.1.3关键电路 HYPERLINK l _RefHeading_Toc298498373 5LED显示电路 HYPERLINK l _RefHeading_Toc298498374 63.1.5单片机STC89C52 HYPERLINK l _RefHeading_Toc298498375 6IIC的记忆电路 HYPERLINK l _RefHeading_Toc298498376 73.2电路参数计
3、算和元件选择 HYPERLINK l _RefHeading_Toc298498377 83.3特殊设备介绍 HYPERLINK l _RefHeading_Toc298498378 83 . 3 . 1 ds18b 20芯片介绍 HYPERLINK l _RefHeading_Toc298498379 83 . 3 . 2 STC 89 c 52单片机介绍 HYPERLINK l _RefHeading_Toc298498380 93 . 3 . 3 24c 02存储器介绍 HYPERLINK l _RefHeading_Toc298498381 104软件设计 HYPERLINK l _R
4、efHeading_Toc298498382 124.1软件设计原则和设计中使用的工具 HYPERLINK l _RefHeading_Toc298498383 124.2软件设计流程图 HYPERLINK l _RefHeading_Toc298498384 124.3 Keil C和protel的介绍 HYPERLINK l _RefHeading_Toc298498385 135系统调试 HYPERLINK l _RefHeading_Toc298498386 145.1系统硬件调试 HYPERLINK l _RefHeading_Toc298498387 145.2系统软件调试 HYP
5、ERLINK l _RefHeading_Toc298498388 146系统功能、指标参数 HYPERLINK l _RefHeading_Toc298498389 157结论 HYPERLINK l _RefHeading_Toc298498390 188总结和经验 HYPERLINK l _RefHeading_Toc298498391 199篇参考文献 HYPERLINK l _RefHeading_Toc298498392 20附录一 HYPERLINK l _RefHeading_Toc298498393 21附录二 HYPERLINK l _RefHeading_Toc29849
6、8394 241前言本课程旨在训练我们的动手能力,强化硬件电路的设计和制作能力,巩固我们以往所学的模拟和数字电路的理论知识,从实际操作中掌握电子产品的常规设计和开发流程,增强对电子产品系统规划的整体认知,将实验室项目制作的认识转化为公司产品开发流程的实际操作。本设计是一款带温度的数字钟,广泛应用于日常生产生活中。带温度的数字钟作为一种基础功能产品,在农业温室、工业流水线、环境监测设备、仓储等领域发挥着重要作用。国外具有温度检测和报警的智能系统具有相当先进的发展水平,国内的同类系统也在快速发展,并逐渐渗透到各行各业和各种产品系统中,为电子行业的发展提供了重要的助力。现在是一个知识爆炸的新时代。在
7、这个高速发展的时代,时间对人们来说越来越宝贵。在快节奏的生活中,人们经常忘记时间。一旦他们遇到重要的事情,忘记了时间,就会带来很大的损失。所以我们需要一个计时系统来提醒这些忙碌的人。数码钟表给人们带来了极大的便利。单片机在多功能数字钟中的应用非常普遍,人们对数字钟的功能和工作顺序非常熟悉。但对其结构和工作原理知之甚少。单片机作为数字钟的核心控制器,可以通过其时钟信号实现计时功能,其时间数据可以由单片机输出并由显示器显示。键盘可以用来计时和定时。设备显示可采用液晶显示技术和数码管显示技术。大多数高精度计时工具使用石英晶体振荡器。由于电子钟、石英表、石英钟都采用应时晶体振荡器技术,走时精度高,稳定
8、性好,使用方便,不需要经常调整。数字电子钟用集成电路计时和解码,代替了传统钟表的“机械传动”装置,用LED数码管或液晶显示器代替了传统的指针显示,减少了计时误差。这种手表具有以小时、分钟、秒显示时间的功能,还可以校对时间和分钟,因此具有简单方便的时间校准功能。近年来,随着科技的发展和社会的进步,人们对定时器的要求越来越高。多功能定时器在性能和款式上都发生了质的变化,给人们的生活带来了方便。2总体方案设计2.1方案比较方案一:图2.1 基于LCD的设计框图该方案是用LCD进行显示的,部包括了时钟电路,电源电路,温度检测等,核心是单片机,运用keilc进行编程。报警电路用的是二极管代替的,按键设置
9、能够自由的设计门限值。方案二:图2.2 基于LED的设计框图第二种方案采用LED灯作为显示部分,其他与第一种方案相同。2.2方案论证和方案选择LED是二极管的一种,lcd是液晶显示器,两者差别太大。但LED点阵也可以组成显示器,适用于分辨率较低的户外大屏幕显示。与LCD显示屏相比,LED显示屏在亮度、功耗、可视角度、刷新率等方面更具优势。与LCD相比,LED的功耗比为1:10左右,更高的刷新率使得LED在视频中有更好的表现。它能提供160的宽视角,显示各种字符、数字、彩色图像和动画信息,还能播放电视、录像、VCD、DVD等彩色视频信号。多个显示器也可以联网。有机LED显示屏的单元素反应速度是液
10、晶屏的1000倍,在强光下也能照顾到,适合零下40度的低温。利用LED技术,可以做出比LCD更薄、更亮、更清晰的显示器,应用前景广阔。所以综合考虑,我们选择基于LED的第一种方案比较合适。该设计直接用单片机编程,便于硬件电路搭建。程序由STC89C52单片机编写,逐一实现预定功能。这样可以大大简化系统结构,降低材料成本。提高系统的先进性和可靠性,实现控制器的系统编程。3硬件接口设计3.1各硬件功能及电路设计介绍DS18B20温度传感器DS18B20的核心功能是其直读式数字温度传感器。温度传感器的精度是用户可编程的9、10和12位,分别为0.5、0.25、0.125和0.0625度增量。在上电状
11、态下,默认精度为12位。DS18B20在上电后保持低功耗的默认状态。串行通信电路RS232串行通信通过CPU发送控制信号来控制RS232的发送和接收。串行端口的工作方式如下:模式0 (00):同步移位寄存器模式(用于扩展I/O)模式1(01):具有可变波特率的8位异步收发器(由定时器控制)模式2(10):9位异步收发,波特率Fosc/64或Fosc/32。模式3(11):具有可变波特率的9位异步收发器(由定时器控制)RS-232下载电路主要由串口和MAX232组成。J1_1是一个串行接口,一端连接到MAX232,另一端通过串行线连接到计算机。J1为下载接口,可通过杜邦线与单片机的TXD、RXD
12、连接。3.1.3关键电路键盘分为编码键盘和非编码键盘。键盘上闭合键的识别是通过专门的硬件编码器实现的,编码键盘如计算机键盘产生键编码数或键值。软件编程识别的键盘称为非编码键盘,广泛应用于各种单片机组成的系统中。非编码键盘分为独立键盘和行列式键盘。本设计定义了八个按键,其功能如下:S2:确定S6:设置当前时间S3:设置闹钟S7:设置闹钟温度S4:正S8:负。S5:向左移动S9:向右移动。LED显示电路对于数码管单元,我们选用七段数码管,共阴极共阳极。显示界面根据驱动方式可分为静态显示和动态显示。静态显示的优点是显示稳定,亮度高;缺点是占用硬件电路较多(如I/O口、驱动等。).动态显示的优点是节省
13、硬件电路;缺点是软件扫描占用大量CPU时间,显示位数多了,会影响显示器的亮度。本系统采用七段杨公数码管和动态显示。在该电路中,端口P0用作8个数码管的使能端,端口P2用作8个数码管的数据端。通过动态扫描,数码管可以显示我们需要的容量。图3.4 LED显示电路图3.1.5单片机STC89C52STC89C52是一款低压高性能COMOS8微处理器,带有8K字节flash可编程可擦除只读存储器,俗称单片机。该器件采用ATMEL density非易失性存储器制造技术制造,兼容工业标准MCS-51指令集和输出引脚。图3.5单片机最小系统图本设计以单片机为核心。通过软件编程,单片机可以控制下面的子模块,从
14、而实现预定的功能。P0端口作为数码管的使能端,P2端口作为数码管的数据端,P1和P3的部分端口作为键扫描和24C02端口。本设计中还使用了中断。IIC的记忆电路一般来说,I2C总线有两条信号线,一条是双向数据线SDA,另一条是时钟线SCL。连接到I2C总线的所有设备的串行数据SDA连接到总线的SDA,每个设备的时钟线SCL连接到总线的SCL。IIC总线具有以下特点:双线制,多主控制,比特率为100 Kbit/s至3.4 kbit/s.连接到相同数量的IIC。在本设计中,24C02用于存储闹钟时间和闹钟温度。图3.6电路图3.2电路参数计算和元件选择本设计中使用的元器件包括STC89C52单片机
15、、DS18B20温度传感器、LED数码管、24C02存储器、RS232串口与各种按钮、电阻、电容进行通信。电路参数是在购买元件之前预先计算好的。3.3特殊设备介绍3 . 3 . 1 ds18b 20芯片介绍DS18B20数字温度计是DALLAS公司生产的单总线器件。它具有电路简单、体积小的特点。所以用它来组成测温系统是非常方便的,因为电路简单,一根通讯线上可以挂很多这样的数字体温计。DS18B20温度值的位数随分辨率变化,温度转换的延迟时间从2s降低到750ms。温度系数低的晶体振荡器的振荡频率受温度的影响很小,所以用来产生一个固定频率的脉冲信号,送到计数器1。高温度系数晶体振荡器的振荡速率随
16、温度变化明显,产生的信号作为计数器2的脉冲输入。1和温度寄存器预设为对应于-55的基值。计数器1减去低温度系数晶体振荡器产生的脉冲信号。当计数器1的预设值减少到0时,温度寄存器的值将增加1,计数器1的预设值将被重新载入。计数器1将再次开始计数低温度系数晶体振荡器产生的脉冲信号,以此类推,直到计数器2计数到0,温度寄存器的值的累加将停止。此时,温度寄存器中的值就是测量的温度。斜率累加器用于补偿和校正温度测量过程中的非线性,其输出用于校正计数器1的预设值。图3.7 ds18b 20的实体图图3.8 20台DS18B机组结构图3 . 3 . 2 STC 89 c 52单片机介绍C52是宏景公司推出的
17、新一代高速、低功耗、超强抗干扰单片机。指令代码完全兼容传统8051单片机,12个时钟/机周期和6个时钟/机周期可任意选择。其主要特点如下:与MCS-51兼容8k字节可编程闪存寿命:1000次写入/擦除循环数据保留时间:10年全静态运行:0Hz-24Hz三级程序记忆锁定512条RAM可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗空闲和省电模式芯片振荡器和时钟电路32图3.9 C52单片机物理框图图3.10 C52单片机引脚图3 . 3 . 3 24c 02存储器介绍24C02是串行E2PROM存储器,是一种基于I2C总线的存储设备。它遵循双线协议。由于其接口方便、体积小、断
18、电不丢失数据,广泛应用于仪器仪表和工业自动化控制中。(1).宽工作电压为1.8v5.5v(2).低压技术:(3)仓储的组织结构(4).双线串行接口,完全兼容I2C总线(5)施密特触发输入噪声抑制。(6)硬件数据的写保护(7)零件和周期(最大。5毫秒)(8).自动增加地址(9).可以用字节来写。(10).esd保护大于2.5kV(11).高可靠性:擦除寿命:100万次数据保留时间:100年。(12)无铅工艺,符合RoHS标准。图3.11 24c 02的引脚图4软件设计4.1软件设计原则和设计中使用的工具本设计利用protel的特点,画出原理图和PCB图,用电气规则核对后,可以直接购买元器件和焊盘
19、。本设计使用的编程软件是keil c,在上面逐句写下了本设计要实现的功能的程序代码。4.2软件设计流程图图4.1系统软件设计流程图本设计的主要流程:初始化后正常显示时间和温度,并将24C02中的报警值和报警温度与当前时间和温度进行比较,满足条件时报警。同时判断是否有按键被按下,如果有,则实现相应的按键功能,按键后返回主程序。如果没有按键,直接返回主程序。4.3 Keil C和protel的介绍LC51是美国Keil软件公司生产的51系列兼容单片机C语言的软件开发系统。与汇编语言相比,C语言在功能、结构、可读性、可维护性等方面具有明显的优势,因此易学易用。用汇编语言后再用C开发,体验更深刻。Lk
20、eic51软件提供丰富的库函数和强大的集成开发调试工具,全Windows界面。另一方面,只要看看编译好的汇编代码,就能体会到Keil C51生成的目标代码非常高效,大部分语句生成的汇编代码简洁易懂。在开发大型软件时,更能体现高级语言的优势。在C51工具包的整体架构中,uVision和Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发过程。开发人员可以用IDE本身或其他编辑器编辑C或汇编源文件。然后分别用C51和A51编译器编译生成目标文件(。obj)。目标文件可以由LIB51创建生成库文件,也可以由L51与库
21、文件连接生成绝对目标文件(。abs)。ABS文件由OH51转换为标准的Hex文件,可以被调试器dScope51或tScope51用于源代码级调试,也可以被仿真器用于直接调试目标板,或者直接写入EPROM等程序存储器。PROTEL是PORTEL公司在20世纪80年代末推出的一款EDA。 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/37.htm t _blank 软件在电子行业的CAD软件中,不愧是排在众多EDA软件前面的,是电子设计师的首选。在国内使用较早,在国内的普及率也是最高的。一些高校还开设了电子专业学生学习it的课程,几乎
22、所有的电子公司都在使用。很多大公司在招聘电子设计人才时,往往会在条件栏写一个使用PROTEL的要求。今天的PROTEL已经发展到PROTEL99(其测试板可以从网络下载),是一个庞大的EDA。 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/37.htm t _blank 软件,全装200 m以上,工作在WINDOWS95环境,是一个完整的板级全能电子设计系统,包括电路原理图、 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/1805103.htm t _blank 模拟
23、电路和数字电路混合信号模拟,多层 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/1185194.htm t _blank 印刷电路板设计(包括印刷电路板的自动布线), HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/333155.htm t _blank 可编程逻辑设备设计,图表生成, HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/2057578.htm t _blank 试算表生成,支持宏操作等功能,并具
24、有 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/83263.htm t _blank 客户端/服务器(客户端/服务器)架构,而且还兼容一些其他设计软件。 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/1066926.htm t _blank 存储形式,如ORCAD、PSPICE、EXCEL等。,其多层印刷电路板自动布线可实现高密度PCB 100%走线率。PROTEL软件在国内很容易买到,有很多关于PROTEL软件和说明书的书籍,为其普及提供了基础。5系统调试5.1系
25、统硬件调试系统的硬件调试分为protel上的仿真调试,看各连接线有没有问题,从而调试实际板卡。板焊好后,我们要逐个调试板上的器件,看焊接是否正确,有没有少焊、错焊等等。然后用keilc写一个程序,通过电脑下载到板上,运行一下,看能不能达到预期的功能。如果是,则电路板焊接正确。5.2系统软件调试在系统的硬件调试完成后,我们将对系统的软件进行调试,软件与板卡相结合。首先我们会对流程图中各个单元的功能进行编程,然后逐句检查keilc是否有错误。如果没有错误,就通过电脑下载到板上,看能不能实现相应的功能。如果是,则本单元要实现的功能调试完成。当几个单元模块组合在一起时,我们必须检查每个单元模块,看是否
26、有冲突。冲突解决后,板卡的软件调试就成功了。本设计的软件设计分为四个子模块,简要介绍如下:关键功能的一部分是定义关键功能,设计相应的功能。本设计共定义了8个按钮,分别可以实现确定、设置当前时间、设置闹钟、设置闹钟温度、加减、左右移动8个功能。部分时间主要实现时钟功能。本设计不使用1302,而是利用单片机的中断编写时钟程序。温度部分主要实现温度采集功能,温度传感器采用18B20。温度的主要作用是存储报警温度和闹钟。6系统功能、指标参数本设计是基于LED的带温度显示的数字钟。因此,本设计可以实现自动显示温度和时间的功能,并可以设定温度的阈值。当温度达到阈值时,二极管会发出明亮的报警,当时间达到闹钟
27、时间时,数码管会闪烁提示,而闹钟时间和温度的阈值可以通过按键动态写入并存储在IIc中。图6.1系统正常运行示意图图6.2当前时间设置图图6.3闹钟设置图图6.4报警温度设置图图6.5温度报警图图6.6闹钟的报警图7结论本设计基于带温度显示的LED数字钟。本设计的价值在于在数字钟的基础上实现了温度显示的功能。比如我们早上起床,不用担心今天穿什么衣服,只要看看今天的气温就可以选择合适的衣服。这种设计的好处是可以设置闹钟温度和闹钟,在条件满足时发出警报。可以修改当前时间,设置时数码管会闪烁,使用更方便,设置时实现循环移位。本设计中使用的电路相对简单,元件较少。缺点是设计时主要精力放在功能实现上,没有
28、过多考虑其他因素对这个设计的影响,所以数码管在显示时有时会受到影响。进一步的研究可以增加更多的实用功能,使系统的功能多样化、实用化。与以前的数字钟相比,本设计可以通过IIC存储设定的阈值,使其编程更加简单。除此之外,与之前的数字钟相比,这种设计的功能更加多样化,增加的功能也更加多样化。8总结和经验本智能电子系统设计基于单片机STC89C52的数字钟。通过这次设计,我们对单片机和模拟数字技术的应用有了更深入的了解,也从实际例子中感受到了智能化设计给我们的设计带来的改变和进步。在设计中,我们不仅掌握了protel、PROTUES和keilc软件的使用,而且更加了解了电子设计的思想。通过四周的智能课
29、程设计,我们受益匪浅。首先,在本次智能课程设计中,我们认真复习了单片机原理及应用教材,阅读了大量关于单片机的参考书,使我对单片机的硬件结构有了更清晰的认识,对单片机的软件设计有了初步系统的了解,对各种常用指令也更加熟悉。与之前的课程设计水平相比,有了很大的提高,尤其是在指令的理解和使用上。在这次课程设计中,通过阅读大量的程序,我对使用C语言设计程序不再陌生。通过不断的修改程序,我更加熟练的使用C语言的各种指令和语句,为我进入使用C语言编写程序的大门做了很好的准备。另外,在这次智能化的课程设计中,我们的毅力得到了加强。在单片机实验室的调试过程中,我们失败了很多次。当一个失败时,我们修改程序并再次
30、调试它。当第二次失败时,我们继续修改程序,再次调试。当一个方案失败时,我们会改变另一个方案;一次次的调试失败几乎让我们失去信心,但我们没有结论。而是一次又一次地不断修改程序和方案。最终,在我们的不懈努力下,完成了拉幕数码展示的课程设计,使我们获得了成功的喜悦和持之以恒的可贵精神。对我以后的生活和工作都会有很大的影响。最后,我感觉胡老师和他的兄弟们在这次智能化的课程设计中对我们进行了精心的教导,让我们在单片机的软件设计和硬件布线知识上收获颇丰。与之前的知识相比,我在这方面的知识有了质的飞跃。另外,在设计和调试的过程中,不断和身边的同学交流,对自己的知识面有了很大的提升。9篇参考文献1康。电子技术
31、基础。模拟部分(第5版)。高等教育。2006年1月2康。电子技术基础。数字部分(第5版)。高等教育。2006年1月3子美。电子电路设计。实验。测试(第三版)。华中科技大学。2006年8月4易纲。单片机原理及应用。高等教育。2003年12月5宝卿。实用电路手册。机械行业。20026洪润。电子电路及应用。科学。2002附录一图1示意图附录2 PCB图附录3实体图纸附录二/* * * * * * *存储部分* * * * * * * * * * * * * * *void Cstart()SDA = 1;SCL = 1;_ nop _();_ nop _();SDA = 0;_ nop _();_
32、nop _();_ nop _();_ nop _();SCL = 0;无效停止()SDA = 0;_ nop _();_ nop _();SCL = 1;_ nop _();_ nop _();_ nop _();_ nop _();SDA = 1;无符号字符shin()无符号char i,read _ datafor(I = 0;I 8;i+)SCL = 1;read _ data = 1;read_data |=(无符号字符)SDASCL = 0;return(read _ data);位呼喊(无符号字符write_data)无符号字符I;位ack _ bitfor(I = 0;I 8;
33、i+)SDA =(位)(write _ data & 0 x 80);_ nop _();SCL = 1;_ nop _();_ nop _();SCL = 0;write _ data = 1;SDA = 1;_ nop _();_ nop _();SCL = 1;_ nop _();_ nop _();_ nop _();_ nop _();ack _ bit = SDASCL = 0;返回ack _ bitvoid Cwrite_byte(无符号字符addr,无符号字符write_data)cstart();喊(OP _ WRITE);喊(addr);喊(write _ data);st
34、op();延迟(10);void fill_byte(无符号字符fill_data)无符号字符I;for(I = 0;我 0;我-)for(j = 248;j 0;j-);void getkey()无符号字符x,y;P1 = P1 | 0 x E8;P3 = 0 x7b;y = P1 & 0 x E8;如果(y!=0Xe8)delay _ 10ms();如果(y!=0Xe8) P3 = 0 x FB;x = P1 & 0 x E8;如果(x!=0 xe8)开关(x)案例0 x E0:sure = 1;打破;/确定(s2)情况0 xc8:时钟= 1;max _ c = 0;时间= 0;确定= 0
35、;打破;/“设置闹钟”(S3)案例0 xa 8:if(nums= = 9) nums= 0;打破; nums= nums+1;打破;/+”(S4)案例0 x 68:if(s = = 3) s = 0;打破; s = s+1;flash = s;打破;/向左移动S5)其他P3 = 0X7f;x = P1 & 0 x E8;如果(x!=0 xe8)开关(x)案例0 x E0:time = 1;max _ c = 0;时钟= 0;确定= 0;打破;/设置时间(S6)情况0 x c8:max _ c = 1;时间= 0;时钟= 0;确定= 0;打破;/设置报警温度(S7)案例0 xa 8:if(num
36、s= = 0) nums= 9;打破; nums= nums-1;打破;/- (S8)案例0 x 68:if(s = = 0) s = 3;打破; s = s-1;flash = s;打破;/向右移动S9)while(P1&0 xe8)!= 0 x E8);/确定该键是否被释放。无效显示()if(sure=1)if(time=1)shi1 = num3;延迟(1);Shi = num2;延迟(1);fen 1 = num1;延迟(1);fen = num0;延迟(1);max _ c = 0;时钟= 0;时间= 0;如果(时钟=1)无符号字符I;SDA = 1;SCL = 1;fill _ b
37、yte(0 x ff);for(I = 0;I 4;i+)Cwrite_byte(i,numI);max _ c = 0;时钟= 0;时间= 0;if(max_c=1)无符号字符I;SDA = 1;SCL = 1;fill _ byte(0 x ff);for(I = 4;I 8;i+)Cwrite_byte(i,numI);max _ c = 0;时钟= 0;时间= 0;如果(时间=1)开关(闪光灯)案例0:for(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)如果(k=0)+ k;P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1
38、 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;情况1:for(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)如果(k=1)P0 = dispbitcodeTk;P2=显示代码数字k;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;
39、delay 1 ms();P0 = 0 xff打破;情况二:for(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)如果(k=2)k+;P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;情况3:for(I = 0;i 110i+)getkey();for(k = 0;k 3;k+)P0 = dispbitc
40、odeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;if(max_c=1) char k;char I;开关(闪光灯)案例0:for(I = 0;i 110i+)getkey();for(k = 4;k 8;k+)如果(k=4)+ k;P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0 = 0 xfffor(I = 0;
41、i 110i+)getkey();for(k = 4;k 8;k+)P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0 = 0 xff打破;情况1:for(I = 0;i 110i+)getkey();for(k = 4;k 8;k+)如果(k=5)k+;P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 4;k 8;k+)P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0
42、= 0 xff打破;情况二:for(I = 0;i 110i+)getkey();for(k = 4;k 8;k+)如果(k=6)k+;P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 4;k 8;k+)P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0 = 0 xff打破;情况3:for(I = 0;i 110i+)getkey();for(k = 4;k 7;k+)P0 = dispbitcodeTk;P2 =显示
43、代码数字k-4;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 4;k 8;k+)P0 = dispbitcodeTk;P2 =显示代码数字k-4;delay 1 ms();P0 = 0 xff打破;如果(时钟=1) char k;char I;开关(闪光灯)案例0:for(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)如果(k=0)+ k;P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getke
44、y();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;情况1:for(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)如果(k=1)k+;P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;情况二:for(I
45、 = 0;i 110i+)getkey();for(k = 0;k 4;k+)如果(k=2)k+;P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;情况3:for(I = 0;i 110i+)getkey();for(k = 0;k 3;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 =
46、 0 xfffor(I = 0;i 110i+)getkey();for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 =显示代码数字k;delay 1 ms();P0 = 0 xff打破;/* * * * * * * * * * * *主程序* * * * * * * *无效总管(无效)start();while(1) char I;getkey();displys();if(time=0&max_c=0& & clock = = 0)get _ tem();show(0,fen);延迟(1);show(1,fen 1);延迟(1);show1(2,石);延迟(1);
47、show(3,Shi 1);延迟(1);for(I = 0;I 8;i+) CunI= read _ random(I);if(shi1=cun3&shi=cun2&fen1=cun1&fen=cun0) char I;char k;for(I = 0;i 110i+)for(k = 0;k 4;k+)P0 = dispbitcodeTk;P2 = disp code11;delay 1 ms();P0 = 0 xfffor(I = 0;i 110i+)for(k = 0;k 0;我-);无效复位()uchar ST = 1;DQ = 1;nop();nop();白色(st)DQ = 0;te
48、mp delay(112);DQ = 1;temp delay(8);如果(DQ=1)ST = 1;其他ST = 0;temp delay(74);void write_byte(uchar日期)uchar i,tempDQ = 1;nop();nop();for(I = 8;I 0;我-)temp = date & 0 x01DQ = 0;temp delay(1);如果(温度=1)DQ = 1;temp delay(5);DQ = 1;日期=日期 1;uchar read_byte()乌查尔一世,日期;静态位j;for(I = 8;I 0;我-)日期=日期 1;DQ = 1;nop();n
49、op();DQ = 0;nop();nop();nop();nop();nop();nop();DQ = 1;nop();nop();nop();nop();j = DQ;如果(j=1)date = date | 0 x80temp delay(2);返回(日期);void get_tem()uchar tem1,tem2,numreset();write _ byte(0 x cc);写入字节(0 x 44);for(num = 100;num 0;num-);disp(a1,a2,a3,a4);reset();write _ byte(0 x cc);write _ byte(0 x be
50、);te m1 = read _ byte();te m2 = read _ byte();AAA =(te m2 * 256+te m1)* 6.25;脾气=(int)AAA;a1 =回火/1000;a2 =回火% 1000/100;a3 =回火% 100/10;a4 =回火% 10;无效温度延迟(uchar美国)while(us-);无效延迟(单位x)uint a,b;for(a = x;a 0;答-)for(b = 110;b 0;b-);无效显示(uchar num1,uchar num2,uchar num3,uchar num4)P2 = disp codenum 1;P0 = 0
51、 xef延迟(2);P0 = 0 xffP2 =表1num 2;P0 = 0 xdf延迟(2);P0 = 0 xffP2 = disp codenum 3;P0 = 0 xbf延迟(2);P0 = 0 xffP2 = disp codenum 4;P0 = 0 x7f延迟(2);P0 = 0 xff课程设计名称:数字钟20世纪末,电子技术取得了飞速发展。在其推动下,现代电子产品几乎渗透到社会的各个领域,有力地促进了社会生产力的发展和社会信息化水平的提高。与此同时,现代电子产品的性能进一步提高,产品更新换代的步伐越来越快。时间对人来说永远是宝贵的,工作的忙碌和复杂让人很容易忘记当前的时间。忘记你
52、想做什么。当事情不是很重要的时候,这种遗忘是无伤大雅的。但是,一旦有重要的事情发生,一时的耽搁可能会酿成大祸。目前单片机的发展趋势是向高性能、多品种方向发展,将进一步向CMOS、低功耗、小体积、大容量、高性能、低价格、外围电路封装方向发展。以下是单片机的主要发展趋势。单片机应用的意义在于它从根本上改变了控制系统的传统设计思想和方法。过去由模拟电路或数字电路实现的大部分功能,现在都可以通过软件的方法由单片机实现。这种用软件代替硬件的控制技术也叫微控技术,是传统控制技术的一次革命。数字钟是单片机中最常见的一种。数字钟是一种利用数字电路技术来测量时、分、秒的装置。与机械钟相比,它具有更高的准确性和直
53、观性,并且没有机械装置,使用寿命更长,因此得到了广泛的应用。数字钟是利用数字电路实现时间、分、秒的数字显示的计时装置。广泛应用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活中不可或缺的必需品。随着数字集成电路的发展和石英晶体振荡器的广泛应用,数字钟的精度远远超过了老式时钟。钟表的数字化给人们的生产生活带来了极大的便利,大大扩展了钟表原有的报时功能。如定时自动报警、定时自动响铃、自动控制时间程序、定时广播、自动启闭路灯、定时开关烤箱、开关电源设备,甚至自动激活各种定时电器等。,这一切都是基于钟表的数字化。因此,研究数字钟并拓展其应用具有重要的现实意义。设计目标课程设计是该课程极其重要的
54、实践教学环节。它不仅对提高本课程的教学质量和水平起到了一定的作用,也检验了学生对课程内容的掌握程度,同时也将起到从理论到实践的桥梁作用。因此,必须精心组织,周密安排,积极实施。本课程旨在达到以下教学目的。1.学习掌握KeilC51汇编语言程序的设计与调试。2.学习将单片机原理的相关知识运用到实践中,提高单片机应用技术的实际操作技能,提高动手能力,分析和解决实际问题的能力。3.综合运用所学的单片机知识,在实验室设计并实现了一个单片机应用系统,加深了对单片机软硬知识的理解,获得了初步的应用经验。4.掌握Keil C51的调试技巧:如何检查和修改寄存器容量,如何观察和修改变量,如何观察内存区,并口、
55、定时器/计数器、串口和外部中断的使用。三。设计要求和主要技术指标设计要求:1.方案论证和总体电路原理框图的确定。2.单元电路设计和元件选择。3.模拟调试和测量结果。主要技术指标:在微机屏幕上模拟数字钟和盘钟面,显示时针、分针、秒针的运动。四。设计方案(设计变更采用方案3)方案一:通过单片机的计数器/定时器用软件编程实现时钟计数,一般称为软时钟。该方法硬件电路简单,系统功能一般与软件设计有关,通常用于对时间精度要求不高的场合。方案二:采用时钟芯片,功能强大,其功能部件集成在芯片部分,具有自动时钟生成等相关功能,硬件成本相对较高;软件编程简单,通常用于对时钟精度要求较高的场合。方案三:系统采用通用
56、80C51芯片,显示器为6个共阳极的LED数码管,一个BCD 7段译码器74LS47驱动数码管(74LS47的输入为BCD码,其输出级为集电极开路输出,可直接驱动7段译码器,具有从头到尾消零的特点),3-8译码器74LS138的输出作为动态扫描时数码管的选通信号,因为P0.0 - P0.3被选为显示数据值的输出,连接到BCD 7解码器74LS47的BCD码输入,P0.4 - P0.6作为扫描值的输出连接到3-8解码器74ls 138(74ls 138的A、B、C)的输入。所以写程序的时候要用P0口的高4位作为扫描值,低4位。由于LED数码管点亮时耗电较大,所以排除作为电源驱动输出,保证数码管的
57、正常亮度。单片机的P1.0 - P1.5端口分别接S1-S6按钮,控制“时”、“分”、“秒”的调整。时间以24小时为周期,数字钟的格式为XX XX XX,从左到右依次为时、分、秒。秒加1,连续加1到59,再回到00,完成显示;加1,一直加1到59,然后还原00;时加1,一直加1到23,再还原00。* * * * *关键功能* * * *1.启动时,数字钟自动从23: 59: 00开始计时;2.按下S1键控制“时间”的调整,每按一次计数值加1;3.按S2键控制“点数”的调整,每次计数值加1;4.按S3键控制“秒”的调整,每按一次秒计数值加1;5.按下S4键控制“时间”的调整,每按一次计数值减1;
58、6.按S5键控制“点数”的调整,每次点数值减1;7.按S6键控制“秒”的调整,每按一次秒计数值减1。硬件编程2.2.交通灯控制器框图Tl:表示主路或次路绿灯亮的时间间隔,即车辆正常通行的时间间隔。时间到Tl=1,否则Tl=0。Ty:表示黄灯亮的时间间隔,时间到了,Ty=1,否则Ty=0。St:表示定时器到达指定时间后,控制器发出状态转换信号。它控制定时器开始下一个工作状态的时间。选项2:根据分析功能和设计要求,可以使用12个递减计数芯片(如74LS192)来实现上述功能。整体电路图如下所示。初始状态设置为主路绿灯,支路红灯。电路工作后,每一个灯的显示设置为灯亮的时间。本设计的主要思想是利用当前
59、状态的借位信号和秒脉冲与与门一起作为该状态倒计时终端的触发信号。计数器74LS192的借位输出在电路正常工作后会输出高电平,借位高电平则输出低电平,触发状态转换,从而阻断当前状态,进入下一个状态。至于红绿灯的模拟显示,可以用三色信号灯。计数器各灯的借用输出信号连接到相应的三色灯上进行输出显示,三色灯的连接方式可以根据实际情况进行改变,达到准确少接线的目的。2.3.方案二示意图选项3:EDA技术是现代电子设计技术的核心。依托功能强大的电子计算机,在EDA工具和软件平台上,以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,可以自动进
60、行逻辑编译、简化、划分、综合、优化和仿真。直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路(ASIC)芯片中,实现既定的电子电路设计功能。EDA技术使得电子电路设计人员只需使用硬件描述语言和EDA软件平台来实现系统的硬件功能,大大提高了设计效率,缩短了设计周期,节约了设计成本。利用EDA技术,用Verilog HDL语言编程,用Quartus软件仿真程序,最终达到设计要求。其基本流程图如下所示。示意图程序表功能模拟全面的适应时间序列模拟设计FPGA/CPLD2.4.方案三流程图选项4:该方案的设计思想是用三态门(74LS46)组成的电路作为信号选择输入控制器,其使能端G1接低电平,74
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳酸饮料市场季节性变化分析考核试卷
- 网络教具开发考核试卷
- 电池小型化技术考核试卷
- 2025年租金分期付款的合同条款
- 2025天津租房合同简化版模板
- 2025汽车买卖合同书范本
- 2025新合同法关于每年工作时间的规定
- 湖北省“黄鄂鄂”2025年高三下学期4月联考数学
- 二零二五版夫妻婚姻协议书范例
- 商场店面承包协议合同书二零二五年
- GB/T 17390-2010潜油电泵拆卸报告的编写
- GB/T 10822-2003一般用途织物芯阻燃输送带
- 班主任工作坊活动方案
- FZ/T 52019-2011莱赛尔短纤维
- 国开电大 管理概论 形考任务一(画组织结构图)
- 三自由度并联机器人结构设计
- 仓储装卸服务合同
- 式双钩五点安全带培训课件
- 名片设计 课件
- 钳工实操评分表(凹凸配合)
- 陕西省城市规划管理技术规定(定稿)
评论
0/150
提交评论