1、第八组课程设计报告天津职业技术师范大学Tianjin University of Technology and Education课 程 设 计 专业班级:应电0814班 学生姓名:冯晓微(8)彭旭(36)葛琼(37) 指导教师:刘新月 讲师 潘静 讲师 系 别:电子工程学院1 多功能数字钟1.1主要技术指标本万年历由51单片机、ds1302时钟芯片、ds18b20温度传感器和12864液晶显示屏组成,可以显示阳历、农历、星期、时间、温度、节日提醒等信息。完全满足你日常日期信息的要求。1.2方案论证及选择1.2.1显示模块选择方案和论证:方案一:采用 LED 数码管动态扫描,LED 数码管价格
2、适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但这里显示位数多,所要求的数码管多,成本更高。 方案二:采用 LCD 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,虽价格昂贵,但接口线多,所以在此设计中采用LCD液晶显示屏。1.2.2时钟芯片的选择方案和论证:时钟芯片的选择方案和论证: 方案一:采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、 时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,结构简单。所以采用 DS1302 时钟芯片。方案二:直接采用单片机定时计数器提供秒信
3、号,使用程序实现年、月、日、星期、 时、分、秒计数。 采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。且算法复杂,所以不采用 此方案。经论证本次设计采用采用 AT89S52 作为主控制系统; DS1302 提供时钟; 采用 LCD 液晶作为显示。1.3系统组成 按照系统设计功能的要求,初步确定设计系统由主控模块,时钟模块,显示模块,键盘接口模块共 4 个模块组成, 电路系统构成框图如图 1-1和1-2 所示框图蜂鸣器指示灯 系统总体结构框图1-1 N Y 软件系统框图 1-21.4单元电路设计1.4.1单片机主控芯片使用5系列AT89c52 单片机, 51 系列单片机的发展
4、已经有比较长的时间,应用比较广泛,各种技术都比较成熟,此系列单片机是 8 位机,处理速度不是很快,但对于我们做这个万年历已经绰绰有余了。51支持C语言,应用也比较简单。1.AT89C52 是 8 字节 FLASH 闪速存储器,256 字竹内部 RAM , 32 个 I/O 口线,3 个 16 位定时计 数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52 可降至 Ohz的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止 CPU 的工作,但 允许 RAM,定时计数器串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器 停
5、止工作并禁止其它所有部件工作直到下一个硬件复位.2.功能引脚说明: 功能引脚说明 Vcc:电源电压 GND:地 P0:P0 口是一组 8 位漏极开路型双向 1/O 口,也即地址/数据总线复用口。作为输出口用时每位能吸收电流的方式驱动 8个TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问 期间激活内部 上拉电阻。 在 FLASH 由编程时,P0口接收指令字节,而在程序校验时,输出指令字 节,校验时,要求外接 上拉电阻。 P1 口:PI 是一个带内部上拉电阻的 8 位双向 I/O 口,
6、Pl 的输出缓冲级可驱动(吸收或输出电流 4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作 输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流 IIL 与 AT89C51 不同之处是,Pl.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(Pl.0/T2 )和 输入(P1.1/T2EX) , FLASH 编程和程序校验期间,Pl 接收低 8 位地址。 PI.O 和 PI.l的 第二功能: P2 是一个带有内部上拉电阻的 8 位双向 I/O 口, 的输出缓冲级可驱动 P2 (吸收或输出电流) 4 个 TTL
7、逻辑电路。对端口 P2 写“l,通过内部的上拉电阻把端口拉到高电平,此时可作输入口, 5 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(llt ) 。 在访问外部程序存储器或 16 位地址的外部数据存储器,P2 送出高 8 位地址数据。 在访问 8 位地址的外 部数据存储器、如执行 MOVXRI 指令)时,P2 口输出 P2 锁存器的内容。 FLASH 编程或校验时,P2 亦接收高位地址和一些控制信号。 P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电 流)4 个 TTL 逻辑门电路。对 P3 口写入“1
8、”时,它们被内部上拉电阻拉高并可作为输入端口。此时, 被外部拉低的 P3 口将用上拉电阻输出电流(IIL) . P3 口除了作为一般的 I/0 口线外,更重要的用途是它的第二功能,如下表所示: P3.0 RXD(串行输入口 P3.1 TXD(串行输出口 P3.2 INTO(外中断 0 P3.3 INTO(外中断 l) P3.4 TO (定时计数器 0 ) P3.5 Tl (定时计数器 l ) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST 引
9、脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟 或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程 期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单 元的 D0 位置位可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活,此外,该 引脚会被微弱拉高,单
10、片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN:程序储存允许 PSEN 输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取 指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储 器,将跳过两次 PSEN 信号。 EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH ) , EA 端必须保 持低电平(接地) 需注怠的是:如果加密位 LBI 被编程,复位时内部会锁存 EA 端状态。1.4.2时钟芯片时钟芯片使用美国 DALLAs 公司推出的一种高性能,低功耗,带 RAM 的实时时
11、钟 DSl302. 它的 工作电压一般为 2.5-5.5V,它的主要特点是采用串行数据 传输,同时增加了主电路/后背电源双电源引脚,可以为掉 电保护电源提供可编程的充电功能。采用 12MHz 的晶振, 电容 6pF 就可以起到稳定振荡频率和快速起振的作用了。 DS1302 是一种高性能、低功耗、带 RAM 的实时时钟电 路,它可以对年、月、日、周日、时、分、秒进行计时, 具体闰年补偿功能。采用三线接口与 CPU 进行同步通信, 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 有 12 个寄存器, 其中有 7 个寄存器与日历、 时钟相关,存放的数据位为 BCD 码形式
12、,其日历、时间寄 存器及其控制字。此外,DS1302 还有年份寄存器、控制寄 存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄 存器等。时钟突发寄存器可一次性顺序读写除充电寄存器 外的所有寄存器内容。DS1302 与单片机之间能简单地采用同步串行的方式进行通信 仅需用到三个口线 1 RES 复位 2 I/O 数据线 3 SCLK串行时钟 时钟/RAM 的读/写数据以一个字节或多达 31 个字节的字符组方式通信 DS1302 工作时功耗很低 保持数据和时钟信息时功率小于 1mW。 图1-31.4.3最小系统最小系统 单片机最小系统包括时钟电路、电源和复位电路等,是单片机工作的基本要求。单片
13、机控制整个系 统的工作,一方面读取日历时钟芯片中的日期等数据,检测是否需要设置,并处理相应的按键。另一方 面,控制显示器的工作,将各种数据送到液晶显示器去显示。 图1-41.4.4 温度传感器Ds18B20数字温度计提供9-12位摄氏温度测量而且有一个有高低电平触发的可编程的不因电源消失而改变的报警功能,DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条线连接,它的测温范围为-55+125,并且在-10+85精度为5。除此之外,DS18B20能直接从单线通信线上汲取能量,除去了对外部电源的需求。 图1-5DS1820通过门开通期间内低温度系数振荡器经历的
14、时钟周期个数计数来测量温度。而门开通期由高温度系数振荡器决定。计数器予置对应于-55的基数,如果在门开通期结束前计数器达到零,那么温度寄存器它也被予置到-55的数值-将增量。指示温度高于-55。同时 计数器用斜率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的,时钟再次使计数器计值至它达到零,如果门开通时间仍未结束那么此过程再次重复。斜率累加器用于补偿振荡器温度特性的非线性,以产生高分辩率的温度测量,通过改变温度每升高一度,计数器必须经历的计数个数来实行补偿,因此,为了获得所需的分辩率,计数器的数值以及在给定温度处每一摄氏度的计数个数(斜率累加器的值
15、)二者都必须知道。 此计算在DS1820内部完成以提供0.5 的分辩率。温度读数以16位、符号扩展的二进制补码读数形式提供。 表1说明输出数据对测量温度的关系 数据在单线接口上串行发送 DS1820可以以0.5 的增量值, 在0.5 至+125 的范围内测量温度,对于应用华氏温度的场合必须使用查找表或变换系数注意 在DS1820中,温度是以1/2 LSB (最低有效位)形式表示时,产生以下9位格式 最高有效(符号)位被复制到存储器内两字节的温度寄存器中较高MSB的所有位,这种符号扩展产生了如表1所示的16位温度读数。以下的过程可以获得较高的分辩率,首先,读温度,并从读得的值截去0.5位(最低有
16、效位)这个值便是TEMP_READ 然后可以读留在计数器内的值 此值是门开通期停止之后计数剩余所需的最后一个数值是在该温度处每一摄氏度的计数个数(COUNT_PER_C)。 于是,用户可以使用下式计算实际温度表1 表2 注 1.温度变换需要 2 秒钟。在接收到温度变换命令之后,如果器件未从 VDD 引脚取得电源那DS1820 的 I/O 引线必须至少保持2秒的高电平以提供变换过程所需的电源 这样 在温度变换命令发出之后 至少在此期间内单线总线上不允许发生任何其他的动作。2.在接收到复制暂存存储器的命令以后 如果器件没有从 VDD 引脚取得电源,那么 DS1820 的 I/O引脚必须至少维持 1
17、0ms 的高电平,以便提供复制过程中所需的电源,这样在复制暂存存储器命令发出之后 至少在这一期间之内单线总线上不允许发生任何其他的动作,此命令写至 DS1820 的暂存存储器 以地址 2 开始 接着写的两个字节将被保存在暂存存储器地址 2 和3 之间中 发出一个复位便可在任何处终止写操作。表1 温度/数据关系表2 DS1820命令集1.4.5 液晶显示12864液晶显示模块是12864点阵的汉字图形型液晶显示模块, 可显示汉字及图形, 内置国标GB2312码简体中文字库(16X16点阵) 、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM) 。可与CPU直接接口,提供两种界
18、面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。a) 逻辑工作电压(VDD):4.55.5V b) 电源地(GND):0V c) LCD驱动电压(V0):0-10V d) 工作温度(Ta):055(常温) / -2070(宽温)12864硬件特性如下: 提供8位,4位并行接口及串行接口可选 并行接口适配M6800时序 自动电源启动复位功能 内部自建振荡源 6416位字符显示RAM(DDRAM最多16字符4行,LCD显示范围162行) 2M位中文字型ROM(CGROM) ,总共提供8192个中文字型(1616点阵) 16K位半宽字型ROM(HCGRO
19、M),总共提供126个西文字型(168点阵) 6416位字符产生RAM(CGRAM) 12864-软件特性如下: 文字与图形混合显示功能 画面清除功能 光标归位功能 显示开/关功能 光标显示/隐藏功能 显示字体闪烁功能 显示移位功能 反白显示功能 休眠模式 图1-61.4.6农历算法单片机从Ds1302读出年份月份后,通过查表方法得知所对应的农历日期,如要将公元纪年换算成干支纪年,以公元年的尾数在天干中找出相对应。然后,将公元纪年除以12,用余数在地支中找出所对应的地支。这样,公元纪年就换算成了干支纪年。地支编号如下:如:公元1995年用该年尾数5找出对应的天干为“乙”。然后,用1995除以1
20、2得余数为3。用余数3找出相对应的地支为“亥”。那么,公元1995年则为农历乙亥年1.5总体电路1.6调试过程及测试结果(1)、硬件电路的调试 电子万年历硬件的制作和调试都比较简单,焊接时要仔细的 对照原理图, 以免把元器件弄错, 焊接时要注意, 不要出现虚焊。 等完全焊接好后要再检查一遍,确定无误后就开始调试。接上电 源,看下电源的指示灯有没有亮,如果亮了就说明有电源输入, 再检测一下单片机电源管脚(40 号脚)是否有电源,如果有适 当的电压说明电源部分没有问题。 在硬件调试时也可以先在芯片中捎个简单的程序,看下驱动部分和显示部分能不能正常工作。 如果数码管显示不正常, 有断码时要检查一下数
21、码管的管教有没 有虚焊。 (2)、软件电路的调试 确定硬件没有错误后,根据原理,连接图编写程序,编译无 误后可以先在仿真器上仿真下, 看下程序是否按自己编写的效果 显示出来。一开始程序经自己编写好后,用仿真器试用下,万年 历不能按照常现象从数码管上显示出来, 则需要查看软件是否有 错。若软件没有问题,则需要观察万年历时钟芯片是否正常。这样依次检查,直到显示正常。 (1)DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字 节最高位 MSB(D7)必须为逻辑 1,如果 D7=0,则禁止写 DS1302,即写保护;D6=0,指 定时钟数据, D6=1, 指定 RAM 数
22、据; D5D1 指定输入或输出的特定寄存器; 最低位 LSB(D0) 为逻辑 0, 指定写操作(输入),D0=1, 指定读操作(输出). 在 DS1302 的时钟日历或 RAM 进行数据传送时,DS1302 必须首先发送命令字节.若进行单字节传送,8 位命令字节传送 结束之后,在下 2 个 SCLK 周期的上升沿输入数据字节,或在下 8 个 SCLK 周期的下降沿 输出数据字节. DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作, 偶数为写操作;再一类为突发方式下的 RAM
23、寄存器,在此方式下可一次性读,写所有的 RAM 的 31 个字节. (2)在仿真头调试时候,我发现在 LED 显示板上能够正常显示数字,但是秒位不能记数, 检查 DS1302 的连接(没有错,接触也良好),说明了这片 DS1302 不能记数,然后换掉 DS1302 后此时不但可以正常显示数字,而且可以正常记数,说明刚才那片是坏的. (3)(2M)晶振的调试,在调试晶振的时候发现,在没有给电路同电的时候,晶振两端输 出波形是个不稳定的正弦波,而通电后也是个正弦波,但是中间一个引脚接地时候,波形比 较稳定,接示波器时间长了,发现 DS1302 很发烫(时间很短内温度达到很高),但是不 接示波器,
24、时间长点也不会出现发烫现象. 我认为是示波器引脚上的电和电路板上的电相通 的原因.1.7 元件清单大板子 1块排座 1排排针 1排lcd12864 1块 18b20 1个DS1302 1块AT89s52 1块12m晶振 1个30pf电容 2个按键 7个10uf电容 1个10k排阻 1个3k电阻 1个510欧电阻 1个10k电位器 1个32.768k晶振 1个蜂鸣器 1个9012三极管 1个1k电阻 5个多功能数字时钟总结最开始在设计多功能数字钟的时候,只想到了一些不叫常见的以及一些最基本的,然后开始编程序,之后又开始不断的调试,通过查阅资料,以及参考网络和同学的帮助,也都一点点的成型,之后又在
25、这么简单的基础上开始增加另外一些设置,在答辩前我们的多功能数字钟已经有了很多的功能,如显示阴历、阳历、节假日、生日提醒,闹钟设置,年月日、生肖,星期这些都是按键可调的,还有24小时和12小时的转换,更加方便在生活中使用。2单片机出租车计费器2.1课程设计的目的与要求2.1.1 设计的目的出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。国内出租车计价器已经经历了4 个阶段的发展。从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器;再从集成电路式到目前的单片机系统设计的出租车计价器。随着出租车行业的发展
26、,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以槽型光电开关和码盘,通过计脉冲数达到测距的目的,实现对出租车的多功能的计价设计,采用液晶显示。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜和中途等待来调节单价。
27、它比市场上的一些计价器使用更方便,功能更全,还具有有效防止司机作弊和系统稳定性好的优点。以AT89S52单片机为核心,设计一款多功能出租车计价器,该计价器除了能够实现里程计价与显示外,还具备人机对话、时钟显示、节日提醒、等待计费、黑夜/白天服务转换、温度显示等功能。这是一款多功能出租车计价器,该计价器能实现按时间和里程综合计算车价,能显示时间、里程、单价、总车价等相关信息显示。它比市场上的一些计价器使用更方便,功能更全,还具有有效防止司机作弊和系统稳定性好的优点。2.1.2 设计指标出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。从起步价开始,当汽车程行
28、驶未满0.6公里时,均按起步价计算。过0.6公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费便构成了一位乘客的车费。同时,白天和夜晚价格不同,可以进行切换。白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。(默认起步价为8元/0.6公里,里程单价白天为1.7元/公里,夜晚为2.0元/公里,等待计时单价为0.3元/秒)(注:以上数据均可调整。)2.1.3 设计要求1)基本功能要求:实现人机对话,每公里单价,总里程价格,等候时间计费等功能;实现工作/非工作模式、白天/夜晚模式的切换;2)发挥部分(1) 不同情况具有不同的收费标准白天、晚上、
29、途中等待;(2) 能进行手动修改单价、具有数据的复位功能、I/O 口分配的简易要求;白天/晚上收费标准的转换开关、数据的清零开关、单价的调整;(3)数据输出单价输出、路程输出、总金额输出、等待时间输出;(4)按键启动计时开关、数据复位(清零)、白天/晚上转换;(5) 能够显示当前的系统时间2.2方案论证与选择方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图1-1所示:图2-1方案二:采用MCU技术,通过单片机
30、作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。方案图如图1-3所示:图2-2方案三;采用单片机控制,利用单片机丰富的IO端口,及其控制的灵活性。实现基本的里程计价、价格调整和时钟显示等功能。AT89S52按键电路液晶显示温度传感器时钟电路 外部脉冲电路 图2-3方案总结:通过各个方案的比较,本次采用方案三,不但控制简单,而且成本低廉,设计电路简单,而且还可以方便对系统进行升级。2.3原理设计液晶显示AT89S52按键电路2.3.1 系统组成框图时钟电路温度传感器外部脉冲电
31、路 图2-42.3.2总体电路图图252.3.3 PCB电路板设计图 图2-62.3.4单元电路设计1)单片机部分本文以单片机AT89S52为核心设计一款多功能出租车计价器。AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 1)AT89S52的主要功能特性如表3-1所示:.兼容MCS-51指令系统8k可反复
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1