版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录目录1 1 前言前言.1 12 2 总体方案设计总体方案设计 .2 22.1 方案比较.22.2 方案论证和方案选择.33 3 硬件接口设计硬件接口设计 .4 43.1 各硬件功能介绍及电路设计.43.1.1 ds18b20 温度传感器 .43.1.2 串口通信电路 .43.1.3 按键电路 .53.1.4 led 显示电路 .63.1.5 单片机 stc89c52 .63.1.6 iic 的存储电路 .73.2 电路参数的计算及元器件的选择.83.3 特殊器件的介绍.83.3.1 ds18b20 芯片介绍 .83.3.2 stc89c52 单片机介绍 .93.3.3 24c02 存储器介
2、绍 .104 4 软件设计软件设计 .12124.1 软件设计原理及设计所用工具.124.2 软件设计流程图 .124.3 keilc与protel简介 .135 5 系统调试系统调试 .14145.1 系统硬件调试 .145.2 系统软件调试 .146 6 系统功能、指标参数系统功能、指标参数 .15157 7 结论结论 .18188 8 总结与体会总结与体会 .19199 9 参考文献参考文献.2020附录一 .21附录二 .241 前言前言本次课程设计是为了锻炼我们的动手能力,加强对硬件电路的设计、制作能力,巩固以往所学的模电、数电等电路理论知识,从实践操作中,掌握电子产品的常规设计开发
3、流程,提升对电子产品系统规划的整体认知,由实验室课题制作的理解转化为公司化产品开发流程的实际操作。本设计为带温度的数字钟,在日常生产生活中应用广泛,作为基础性功能产品,带温度的数字钟在农业大棚、工业流水线、环境监测设备、仓储等方面发挥着重要作用,国外带温度检测报警的智能化系统具备相当先进的发展水平,我国的同类系统也在飞速发展中,并逐渐深入各行各业,渗透到各种产品体系中,为电子工业发展提供重要助力。现在是一个知识爆炸的新时代,在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这
4、些忙碌的人。数字化的钟表给人们带来了极大的方便。 单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术和数码管显示技术。高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英晶振技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。数字式电子钟用集成电路计时和译码,代替了传统时钟的“机械式传动”装置,用 le
5、d 数码管或液晶显示器代替传统的指针式显示器,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,具有简单、方便的校时功能。近年来,随着科技的发展和社会的进步,人们对计时器的要求也越来越高,多功能计时器不论在性能还是在样式上都发生了质的变化,为人们的生活带来便利。2 总体方案设计总体方案设计2.1 方案比较方案比较方案一: 图 2.1 基于 lcd 的设计框图该方案是用 lcd 进行显示的,内部包括了时钟电路,电源电路,温度检测等,核心是单片机,运用 keilc 进行编程。报警电路用的是二极管代替的,按键设置能够自由的设计门限值。方案二:图 2.2 基于 led 的设计
6、框图方案二运用的 led 灯作为显示部分,其他的和方案一相同。按键电路lcd显示iic电路电源电路温度检测时钟电路报警电路mc52单片机按键电路led显示iic电路电源电路温度检测时钟电路报警电路mc52单片机2.2 方案论证和方案选择方案论证和方案选择led 是发光二极管属于二极管的一种,lcd 是液晶显示屏,两者相差太多.但是用 led的点阵也能组成显示器,适用于户外大屏幕显示,分辨率较低。led 显示器与 lcd 显示器相比,led 在亮度、功耗、可视角度和刷新速率等方面,都更具优势。led 与 lcd的功耗比大约为 1:10,而且更高的刷新速率使得 led 在视频方面有更好的性能表现,
7、能提供宽达 160的视角,可以显示各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、vcd、dvd 等彩色视频信号,多幅显示屏还可以进行联网播出。有机led 显示屏的单个元素反应速度是 lcd 液晶屏的 1000 倍,在强光下也可以照看不误,并且适应零下 40 度的低温。利用 led 技术,可以制造出比 lcd 更薄、更亮、更清晰的显示器,拥有广泛的应用前景。所以综合考虑,我们选择用基于 led 的方案一更为合适。设计直接用单片机编程,用硬件电路搭建方便,通过 stc89c52 单片机编写程序,将预定功能一一实现。这样可以大大简化系统结构,降低材料的成本。提高系统的先进性和可靠性,能实
8、现控制器的系统编程。3 硬件接口设计硬件接口设计3.1 各硬件功能介绍及电路设计各硬件功能介绍及电路设计3.1.1 ds18b20 温度传感器温度传感器 ds18b20 的核心功能是它的直接读数字的温度传感器,温度传感器的精度为用户的可编程的 9,10,12 位,分别为 0.5,0.25,0.125 和 0.0625 度增量递增, ,在上电状态下默认的精度为 12 位。ds18b20 上电后保持低电耗的默认状态。123j15ds18b20r235.1kwrvcc图 3.1 温度传感器电路图3.1.2 串口通信电路串口通信电路rs232 串口通信通过 cpu 发送控制信号控制 rs232 的发送
9、和接受。串口的工作方式有:方式 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 相连接。162738495j1db9vcctxdrxdr1in13r2in8t1in11t2in10v+2v-6vcc16r1
10、out12r2out9t1out14t2out7c1+1c1 -3c2+4c2 -5gnd15rs232rs232ttlttlic1max232c710ufc1104c5104c3104c2104vcc图 3.2 串口通信电路3.1.3 按键电路按键电路键盘分为编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的键盘称为非编码键盘,在单片机组成的各种系统中,用得较多的是非编码键盘。非编码键盘又分为独立键盘和行列式键盘。在本设计中定义了 8 个按键,其功能如下:s2: 确定 s6:设置当前时间s3:设置闹钟 s7:
11、设置报警温度s4:加 s8:减s5:左移 s9:右移12345678j5con8s2key4s3key4s4key4s5key4s6key4s7key4s8key4s9key4s10key4s11key4s12key4s13key4s14key4s15key4s16key4s17key4 图 3.3 按键电路图3.1.4 led 显示电路显示电路对于数码显示管单元,我们选用的是七段数码显示管,七段数码显示管有共阴极和共阳极两种,显示器接口按驱动方式可分为静态显示和动态显示两种方式。静态显示的优点是显示稳定,亮度高;缺点是占用硬件电路(如 i/o 口、驱动器等)多。动态显示的优点是节省硬件电路;
12、缺点是采用软件扫描时占用 cpu 时间多,当显示位数较多时,显示器亮度将受到影响。此系统我们采用的是 7 段共阳数码显示管、动态显示的工作情况。在该电路中,p0 口作为 8 个数码管的使能端,p2 口作为 8 个数码管的数据端,通过动态扫描,让数码管显示我们需要的内容。a11b7c4d2e1f10g5dp3382911246led14leda11b7c4d2e1f10g5dp3382911246led24ledr144k7r164k7r174k7r184k7rarbrcrdrerfrgrhlalblcldlelflglhrarbrcrdrerfrgrht59012t69012let79012l
13、ft89012lglhr8100r7100r6100r5100r4100r3100r2100r1100r94k7r114k7r124k7r134k7vcclalblcldt19012t29012t39012t49012p00p01p02p03p04p05p06p07p20p21p22p23p24p25p26p27123456789j3con9123456789j4con9p00p01p02p03p04p05p06p07p0:位位位_位位图 3.4 led 显示电路图3.1.5 单片机单片机 stc89c52stc89c52 是一种带 8k 字节闪烁可编程可檫除只读存储器(fperom-flas
14、h programable and erasable read only memory )的低电压,高性能 comos8 的微处理器,俗称单片机。该器件采用 atmel 搞密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚相兼容。p00p01p02p03p04p05p06p07p20p21p22p23p24p25p26p27p10p11p12p13p14p15p16p17int0int1t0t1txdrxdrstrdwrpsenalec20 22pfc1922pfx1x2c164.7ufr221kr2110krstvccvccp00p01p02p03p04p05p06p
15、07vccea/vp31x119x218reset9rd/p3.717wr/p3.616int0/p3.212int1/p3.313t0/p3.414t1/p3.515p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p0.039p0.138p0.237p0.336p0.435p0.534p0.633p0.732p2.021p2.122p2.223p2.324p2.425p2.526p2.627p2.728psen29ale/p30txd/p3.111rxd/p3.010ic3stc89c52rcrp210k x 8r1910kr2010kvccs22key4cy
16、211.0592mhz图 3.5 单片机最小系统图在本设计中,单片机是核心,通过软件编程,让单片机控制下面的子模块,从而实现预定功能。p0 口用作数码管的使能端,p2 口用作数码管的数据端,p1 口与 p3 口的一部分用作按键扫描与 24c02 的端口。在本设计中还使用了中断。3.1.6 iic 的存储电路的存储电路i2c 串行总线一般有两根信号线,一根是双向的数据线 sda,另一根是时钟线scl。所有接到 i2c 总线设备上的串行数据 sda 都接到总线的 sda 上,各设备的时钟线 scl 接到总线的 scl 上。iic 总线的特点有:二线制,支持多主控,位速率 100 kbit/s 到
17、3.4m kbit/s。连接到相同数量的 iic 上面。 在本设计中,24c02 用于存储闹钟时间与报警温度。12j14con2r2410kr2510kvccvcct0t1c18104a01a12a23gnd4vcc8sda5wp7scl6ic624lc02图 3.6 iic 的电路图3.2 电路参数的计算及元器件的选择电路参数的计算及元器件的选择 本次设计用到了的元件有 stc89c52 单片机,ds18b20 温度传感器,led 数码管,24c02 存储器, rs232 串口以及各种按钮,电阻,电容。电路的参数在买元件之前预先计算好。3.3 特殊器件的介绍特殊器件的介绍3.3.1 ds18
18、b20 芯片介绍芯片介绍 ds18b20 数字温度计是 dallas 公司生产的 1wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。ds18b20 的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对 低温度系数晶振产生的脉冲信号进行
19、减法计数,当计数器 1 的预置值减到0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。图 3.7 ds18b20 的实物图图 3.8 ds18b20 内部结构图3.3.2 stc89c52 单片机介绍单片机介绍 c52 是由宏晶公司推出的新一代高速,低功耗,超强抗干扰的单片机,指令代码完全兼容传统的 8051 单片机,12 个时钟/机器周期
20、和 6 时钟/机器周期可任意选择。其主要特性如下:与 mcs-51 兼容 8k 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0hz-24hz 三级程序存储器锁定 512 内部 ram 32 可编程 i/o 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路图 3.9 c52 单片机实物图图 3.10 c52 单片机引脚图3.3.3 24c02 存储器介绍存储器介绍24c02 是串行 e2prom 存储器,是基于 i2c-bus 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢
21、失等特点,在仪器仪表及工业自动化控制中得到大量的应用。(1).宽范围的工作电压 1.8v5.5v (2).低电压技术: (3).储存器组织结构 (4).2 线串行接口,完全兼容 i2c 总线 (5).施密特触发输入噪声抑制 (6).硬件数据写保护 (7).内部与周期(最大 5ms) (8).自动递增地址 (9).可按照字节写 (10).esd 保护大于 2.5kv (11).高可靠性: 擦写寿命: 100 万次 数据保持时间: 100 年 (12).无铅工艺,符合 rohs 标准图 3.11 24c02 引脚图4 软件设计软件设计4.1 软件设计原理及设计所用工具软件设计原理及设计所用工具 本
22、次设计利用 protel 的特点画出原理图和 pcb 图,并用电气规则检查无误以后,就可以直接买元器件,焊板子。本设计所用的程序设计软件为 keil c,在此软件上逐句的写出本设计所要实现的功能的程序代码。4.2 软件设计流程图软件设计流程图初始化正常显示时间 温度判断闹钟数码管闪烁判断温度led灯亮yynn按键扫描 nclocktimemax_csubaddleftsurerightysure=1time=0clock=0max_c=0sure=0clock=0max_c=0sure=0time=0max_c=0sure=0time=0clock=0time=1clock=1max_c=1加
23、time=1clock=1max_c=1time=1clock=1max_c=1time=1clock=1max_c=1减左移右移iic存储器break图 4.1 系统软件设计的流程图本设计主要流程:初始化后正常显示时间与温度,同时将存在 24c02 中的闹钟值、报警温度与当前时间,温度比较,满足条件就报警。同时判断是否有按键按下,如果有按键按下,便实现相应的按键功能,按键结束后返回主程序。如果没有按键按下,直接返回主程序。4.3 keilc 与与 protel 简介简介keil c51 是美国 keil software 公司出品的 51 系列兼容单片机 c 语言软件开发系统,与汇编相比,c
24、 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易 用。用过汇编语言后再使用 c 来开发,体会更加深刻。keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。c51 工具包的整体结构中 uvision 与 ishell 分别是 c51 for windows 和 for dos 的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
25、开发人员可用 ide 本身或其它编辑器编辑 c 或汇编源文件。然后分 别由 c51 及 a51 编译器编译生成目标文件(.obj)。目标文件可由 lib51 创建生成库文件,也可以与库文件一起经 l51 连接定位生成绝对目标文件 (.abs)。abs 文件由 oh51 转换成标准的 hex 文件,以供调试器 dscope51 或 tscope51 使用进行源代码级调试,也可由仿真器使用直接 对目标板进行调试,也可以直接写入程序存贮器如 eprom 中。 protel 是 portel 公司在 80 年代末推出的 eda 软件,在电子行业的 cad 软件中,它当之无愧地排在众多 eda 软件的前
26、面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用 protel。现今的 protel 已发展到 protel99(网络上可下载到它的测试板) ,是个庞大的 eda 软件,完全安装有 200 多 m,它工作在windows95 环境下,是个完整的板级全方位电子设计系统,它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线) 、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有
27、client/server (客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如 orcad,pspice,excel 等,其多层印制线路板的自动布线可实现高密度 pcb的 100布通率。在国内 protel 软件较易买到,有关 protel 软件和使用说明的书也有很多,这为它的普及提供了基础。5 系统调试系统调试5.1 系统硬件调试系统硬件调试 系统的硬件调试分为在 protel 上的模拟调试查看各连接线是否有问题,以及在实际板子上面的调试,当板子焊完以后我们要逐个的调试板子上面的器件,看是否焊接正确,是否有少焊,错焊等情况。然后在 keilc 里面编写一段程序通过电脑下载到板
28、子上面,运行,看是否能够实现预期的功能,若能,则板子焊接无误。5.2 系统软件调试系统软件调试 当系统的硬件调试完成以后,我们要进行的是系统的软件调试,系统的软件调试是结合到板子来进行的,首先我们要对流程图中的每个单元功能所实现的功能进行编程,然后在 keilc 中逐句的查看是否有错误,若无错误,则通过电脑下载到板子上面看能否实现相应的功能,若能则,本单元所要实现的功能调试完成。当几个单元模块合在一起的时候,我们要对每个单元模块进行检查,看各个单元模块是否有相冲突的地方,当解决了冲突以后板子的软件调试就成功了。本设计的软件设计分为 4 个子模块,下面进行简单介绍:按键部分主要功能是对按键功能进
29、行定义,并对相应功能进行设计。本设计一共定义了 8 个按键,分别实现确定、设置当前时间、设置闹钟、设置报警温度、加、减、左移、右移 8 个功能。时间部分主要实现时钟功能,本设计并未采用 1302,而是利用单片机的中断编写了一个时钟程序。温度部分主要实现温度采集功能,温度传感器采用 18b20。温度部分主要作用是存储报警温度与闹钟。6 系统功能、指标参数系统功能、指标参数本设计是基于 led 的带温度显示的数字钟,所以本设计能实现的功能有自动显示温度,自动显示时间,并且能设置温度的门限值,当温度达到门限值的时候,二极管明亮报警,当时间达到闹钟时间时,数码管闪烁提示,而闹钟时间与温度的门限值能通过
30、按键实现动态写入,并且存入 iic 中。图 6.1 系统正常运行图图 6.2 当前时间设置图图 6.3 闹钟设置图图 6.4 报警温度设置图图 6.5 温度报警图图 6.6 闹钟报警图7 结论结论 本设计是基于 led 的带温度显示的数字钟的设计,本设计的价值是在数字钟的基础上实现附带温度显示的功能,比如当早上起床以后,我们就不必为今天穿什么衣服感到烦恼,只要看看今天的当前温度就能选择合适的衣物。本设计的优点是能设置报警温度与闹钟,当达到条件时报警。能修改当前时间,并且在设置时,所在位数码管会闪烁,使使用更加方便,设置时实现了循环移位。 。本设计所用的电路比较简单,元器件较少。缺点是设计时把主
31、要精力放在了功能实现上,没有过多考虑其它因素对本设计的影响,所以数码管在显示时有时会受到一定影响。进一步的研究可以添加更多的更实用的功能,使系统的功能向多样化,实用话迈进。本设计与以往的数字钟相比较由于应用了 iic 能存储所设定的门限值,使其的编程更加简单,而且与以往的数字钟相比,本设计的功能更加多样化,可添加的功能也多样化。8 总结与体会总结与体会本次智能化电子系统设计是基于单片机 stc89c52 的数字钟,通过本次设计,我们在对单片机应用及模、数电技术有了更深刻的认识,也从实践的例子中去感受到了智能化设计给我们设计带来的改变与进步。在设计中,我们不仅掌握 protel 和protues
32、 及 keilc 软件的使用,与此同时,我们还对电子设计的思路有了更多的认识。通过四个星期的智能化课程设计,我们受益匪浅。首先,在这次智能化课程设计当中,我们重新将单片机原理与应用的教材认真温习了一遍,并大量阅读了各种有关单片机的参考书,这使我对单片机的硬件结构更加清晰,对单片机的软件的设计有了初步的系统的了解,对其中的各种常用的指令更加熟悉,相对于课程设计以前的水平有了很大的改观,尤其表现在对指令的认识与使用方面。在此次的课程设计当中,通过对程序的大量阅读,我对使用 c 语言设计程序不再感到陌生,通过对程序的不断修改,我对 c 语言中的各种指令和语句的使用更加熟练,这对我步入使用 c 语言编
33、写程序的大门做了一个很好的铺垫。另外,在这次智能化课程设计当中,我们的毅力得到了加强。在单片机实验室的调试过程中,我们失败了很多次,当一次失败了,我们就修改程序再调试,第二次失败了,我们继续修改程序继续调试;当一种方案失败了,我们就换一种方案;一次又一次的调试失败几乎使我们丧失信心,但我们没有放弃,而是一遍有一遍的不断修改程序、修改方案,最后,终于在我们的不懈努力下完成了拉幕式数码显示的课程设计,这使我们得到成功喜悦的同时更得到了坚持不懈的可贵精神,它将对我今后的生活与工作产生重大的影响。最后,感谢胡老师及其各位师兄在这次智能化课程设计当中对我们的悉心教导,使我们对单片机的软件设计与硬件接线方
34、面的知识有了很大的收获,相对于以前的知识来说,我在这方面的知识有了一次质的飞跃。另外,在设计与调试的过程中,我不断的与周围的同学交流,这也使我的知识得到了很大的提高。9 参考文献参考文献1 康华光 电子技术基础.模拟部分(第五版) 高等教育出版社. 2006 年 1 月2 康华光 电子技术基础.数字部分(第五版) 高等教育出版社. 2006 年 1 月3 谢自美. 电子线路设计.实验.测试(第三版). 华中科技大学出版社. 2006 年 8 月4 张毅刚. 单片机原理及应用. 高等教育出版社. 2003 年 12 月5 杨宝清. 实用电路手册. 机械工业出版社. 2002 年6 张洪润. 电子
35、线路及应用. 科学出版社. 2002 年 附录一附录一 162738495j1db9vcctxdrxda11b7c4d2e1f10g5dp3382911246led14leda11b7c4d2e1f10g5dp3382911246led24ledd3led11122d2 led1d4led1r101kd5led1d6led1d7led1d8led1d9led1d10led1vccp00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07p20p21p22p23p24p25p26p27p10p11p12p13p14p15p16p17int0int1t0t1t
36、xdrxdrstrdwrpsenalec20 22pfc1922pfx1x2c164.7ufr221kr2110krstvccvccr144k7r164k7r174k7r184k71234567891011121314151617181920j920pin1234567891011121314151617181920j1220pinp10p11p12p13p14p15p16p17rstrxdtxdint0int1t0t1wrrdx1x2p00p01p02p03p04p05p06p07vccalepsenp20p21p22p23p24p25p26p27p00p01p02p03p04p05p06p
37、07vcc123j15ds18b20r235.1kwr12j14con2r2410kr2510kvccvcct0t1cs1ch02ch13gnd4di5do6clk7vcc8ic5adc0832w310k12j13con2p13vccvccp10p1423s123rarbrcrdrerfrgrhrarbrcrdrerfrgrhlalblcldlelflglhlelflglht59012t69012t79012t89012ea/vp31x119x218reset9rd/p3.717wr/p3.616int0/p3.212int1/p3.313t0/p3.414t1/p3.515p1.01p1.1
38、2p1.23p1.34p1.45p1.56p1.67p1.78p0.039p0.138p0.237p0.336p0.435p0.534p0.633p0.732p2.021p2.122p2.223p2.324p2.425p2.526p2.627p2.728psen29ale/p30txd/p3.111rxd/p3.010ic3stc89c52rcvccr8100r7100r6100r5100r4100r3100r2100r1100r94k7r114k7r124k7r134k7vcclalblcldt19012t29012t39012t49012rp1510 x 8rp210k x 8r1in13
39、r2in8t1in11t2in10v+2v-6vcc16r1out12r2out9t1out14t2out7c1+1c1 -3c2+4c2 -5gnd15rs232rs232ttlttlic1max232c710ufc1104c5104c3104c2104vcc12345678j5con8r1910kr2010kvcc12j2con2d11n4007vccc4100uf/16vc17104c6104c13104c14104c18104c1522uf/16vs22key4s2key4s3key4s4key4s5key4s6key4s7key4s8key4s9key4s10key4s11key4s
40、12key4s13key4s14key4s15key4s16key4s17key4c1122uf/16vc1047uf/16vp00p01p02p03p04p05p06p07p20p21p22p23p24p25p26p27123456789j3con9gnd1d+2d-3+5v4gnd5gnd6j16usb+5vvcccy211.0592mhzvcc123456789j4con9p00p01p02p03p04p05p06p07a01a12a23gnd4vcc8sda5wp7scl6ic624lc02图 附录 1 原理图图 附录 2 pcb 图图 附录 3 实物图附录二附录二 /*存储部分*/v
41、oid cstart()sda = 1; scl = 1; _nop_();_nop_();sda = 0; _nop_();_nop_();_nop_();_nop_();scl = 0; void stop()sda = 0;_nop_();_nop_();scl = 1;_nop_();_nop_();_nop_();_nop_();sda = 1; unsigned char shin()unsigned char i,read_data;for(i = 0; i 8; i+)scl = 1;read_data = 1;read_data |= (unsigned char)sda;
42、scl = 0; return(read_data);bit shout(unsigned char write_data)unsigned char i;bit ack_bit;for(i = 0; i 8; i+)sda = (bit)(write_data & 0 x80); _nop_();scl = 1;_nop_();_nop_();scl = 0;write_data = 1; sda = 1;_nop_();_nop_();scl = 1;_nop_();_nop_();_nop_();_nop_();ack_bit = sda; scl = 0;return ack_
43、bit;void cwrite_byte(unsigned char addr, unsigned char write_data)cstart();shout(op_write);shout(addr);shout(write_data);stop();delay(10);void fill_byte(unsigned char fill_data)unsigned char i;for(i = 0; i 0;i-) for(j=248;j0;j-);void getkey() unsigned char x,y; p1=p1|0 xe8; p3=0 x7b; y=p1&0 xe8;
44、 if(y!=0xe8) delay_10ms(); if(y!=0xe8) p3 = 0xfb; x=p1&0 xe8; if(x!=0 xe8 ) switch(x) case 0 xe0:sure=1; break; /确定 (s2) case 0 xc8: clock=1;max_c=0;time=0; sure=0;break;/“设置闹钟”(s3) case 0 xa8:if(nums=9)nums=0;break; nums=nums+1; break; /+(s4) case 0 x68: if(s=3)s=0;break; s=s+1;flash=s; break;
45、/左移 s5) else p3 = 0x7f; x=p1&0 xe8; if(x!=0 xe8) switch(x) case 0 xe0:time=1;max_c=0; clock=0;sure=0;break; /设定时间 (s6) case 0 xc8:max_c=1;time=0; clock=0;sure=0;break; /设置报警温度(s7) case 0 xa8: if(nums=0)nums=9;break;nums=nums-1;break; /“-” (s8) case 0 x68: if(s=0)s=3;break; s=s-1;flash=s; break;/
46、右移s9) while(p1&0 xe8)!=0 xe8) ;/判断按键是否松开 void displys()if(sure=1) if(time=1) shi1=num3;delay(1); shi=num2;delay(1); fen1=num1; delay(1);fen=num0; delay(1); max_c=0; clock=0;time=0; if(clock=1) unsigned char i;sda = 1;scl = 1;fill_byte(0 xff); for(i = 0; i 4; i+) cwrite_byte(i, numi); max_c=0;clo
47、ck=0;time=0; if(max_c=1) unsigned char i; sda = 1; scl = 1; fill_byte(0 xff); for(i = 4 ; i 8; i+) cwrite_byte(i, numi); max_c=0;clock=0;time=0; if(time=1)switch(flash) case 0: for(i=0;i110;i+) getkey(); for(k=0;k4;k+) if(k=0) +k; p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; for(i=0;
48、i110;i+) getkey(); for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; break;case 1: for(i=0;i110;i+) getkey(); for(k=0;k4;k+) if(k=1) p0 = dispbitcodetk; p2= dispcodenumk; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey(); for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk;
49、delay1ms();p0=0 xff; break; case 2: for(i=0;i110;i+) getkey(); for(k=0;k4;k+) if(k=2)k+; p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey(); for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; break; case 3: for(i=0;i110;i+) getkey(); for(k
50、=0;k3;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey(); for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; break; if(max_c=1) char k; char i;switch(flash) case 0: for(i=0;i110;i+) getkey(); for(k=4;k8;k+) if(k=4) +k; p0 = dispbitcode
51、tk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; for(i=0;i110;i+)getkey(); for(k=4;k8;k+) p0 = dispbitcodetk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; break;case 1: for(i=0;i110;i+)getkey(); for(k=4;k8;k+) if(k=5)k+; p0 = dispbitcodetk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; for(i=0;i110;i+) get
52、key(); for(k=4;k8;k+) p0 = dispbitcodetk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; break; case 2: for(i=0;i110;i+) getkey(); for(k=4;k8;k+) if(k=6)k+; p0 = dispbitcodetk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; for(i=0;i110;i+)getkey();for(k=4;k8;k+) p0 = dispbitcodetk; p2 = dispcodenumk-4; del
53、ay1ms(); p0=0 xff; break;case 3: for(i=0;i110;i+)getkey(); for(k=4;k7;k+) p0 = dispbitcodetk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey();for(k=4;k8;k+) p0 = dispbitcodetk; p2 = dispcodenumk-4; delay1ms(); p0=0 xff; break; if(clock=1) char k; char i; switch(flash) case 0: fo
54、r(i=0;i110;i+) getkey(); for(k=0;k4;k+) if(k=0) +k; p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey(); for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; break; case 1: for(i=0;i110;i+) getkey();for(k=0;k4;k+) if(k=1)k+; p0 = dispbitcodet
55、k; p2 = dispcodenumk; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey(); for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; break;case 2: for(i=0;i110;i+) getkey();for(k=0;k4;k+) if(k=2)k+; p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; for(i=0;i110;i+) getkey();for(k=0;k4;k+) p0 = dispbitcodetk; p2 = dispcodenumk; delay1ms(); p0=0 xff; break; case 3: for(i=0;i110;i+) getkey(); for(k=0;k3;k+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防洪防汛应急演练工作总结(2篇)
- 2026全国标准化知识竞赛试题库(含参考答案)
- 精神科住院抑郁症患者自杀预防及护理干预措施专家共识
- 种植业基础试题及答案解析
- 肥胖合并OSA减重目标共识
- 电气线路敷设安全规范2026年培训试卷及答案
- 物业绿化修剪作业安全操作规程
- 工厂保安员安全操作规程
- 小学生环保知识问答题附答案
- 事业单位河北省事业单位水利岗笔试历年真题试卷
- DBJT15-248-2022 建筑工程消防施工质量验收规范
- 心动过速查房
- 儿童的特点课件
- 《神经内科急症案例解析》课件
- 咸阳社区面试题及答案
- 2025新修订《代表法》五大亮点解读
- 《体育教学质量监测》课件
- pkp手术的护理与配合
- 互联网金融基础(金融类专业)全套教学课件
- 北师大版八年级数学上册-竞赛试题(含答案)
- 棉花的形态观察及四个栽培棉种识别
评论
0/150
提交评论