1、 单片机原理及系统课程设计 评语: 考勤 ( 10 分 ) 守纪 ( 10 分 ) 过程 ( 30 分 ) 设计报告 ( 30 分) 答辩 ( 20 分 ) 总成绩( 100 分) 专 业: 自动化 班 级: 姓 名: 学 号: 指导教师: 2014 年 1 月 15 日 单片机原理 及系统课程设计报告 1 基于单片机的智能电子称设计 1 设计任务 1.1 设计题目 D91-基于单片机的智能电子秤设计 1.2 设计目的 (1) 综合运用所学单片机的知识实现单片机系统的设计; (2) 学会将单片机运用于实际生活或生产中; (3) 培 养科学良好的设计方法和作风; (4) 掌握用 Keil C51
2、 编写和调试程序; (5) 掌握用 Proteus 实现应用系统的仿真; (6) 学会单片机应用系统设计的各种步骤和技巧; 1.3 设计要求 (1) 给出具体可行的设计方案; (2) 设计合理的电路原理及可靠的系统硬件; (3) 在合理硬件基础上用 Keil C51 编写和调试程序; (4) 给出所设计系统在 Proteus 软件中的仿真结果; (5) 给出最后的设计结果集分析; 1.4 设计方案及原理 (1)设计方案:根据本设计功能的要求,系统主要由 6 个部分组 成:控制器部分、测量部分、键盘部分、数据显示部分、声音显示部分、和电路电源部分。总体设计方案如图 1.1 所示: 压 力 传 感
3、器压 力 传 感器A / D 转 换 器A / D 转 换 器C 5 1 单 片 机C 5 1 单 片 机键 盘 输 入键 盘 输 入声 音 显 示声 音 显 示L C D 显 示L C D 显 示图 1.1 设计原理图 (2)设计原理:电子秤的工作原理是通过称重传感器采集到被测物体的重量并将其转换成电压信号,再通过 A/D 转换成数字量送入到主控电路的单片机中。通单片机原理 及系统课程设计报告 2 过单片机不断扫描键盘和各功能开关,根据键盘输入内容和各功能状态进行必要的判断、分析、由仪表的软件来控制各种运算。运算结果送到内存贮器,需要显示时, CPU 发出命令,从内存贮器中读出送到显示器显示
4、。 2 硬件设计 2.1 单片机的选型 AT89C51 是一种带 4K 字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8 位微处理器,俗称单片机。 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51 单片机特点能与 MCS-51 兼容,有 4K 字节可编程闪烁存储器,寿命能够达到 1000 写 /擦循环,数据可以保留时间长达 10年,全静态工作: 0Hz-24MHz,三级程序存储器锁定, 128 8 位内部 RAM, 32可编程 I/O 线,两个 16 位定时器 /计数器, 5 个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路
5、。 2.2 传感器的选型 电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。电阻应变片式电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。 2.3 A/D 转换器的选型 ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的 模拟电压输入在 05V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器
6、件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。 2.4 键盘编码芯片的选型 MM74C922 是一款 4*4 键盘译码芯片,它可以检测到与之相连的 4*4 键盘的按键输入,并通过数据输出口将按键相应的编码输出。 2.5 硬件连接及原理 ( 1)数据采集部分电路连接如图 2.1 所示: 单片机原理 及系统课程设计报告 3 CS1CH 02CH 13G ND4V C C8CL K7DI5DO6U2A DC 0 8 3 252%R V 11k图 2.1 数据采集部分电路 原理 :利用 电阻应变式传感器将 被测物体的重量转换成电压信号,再通过 A/D转换器将电压
7、信号转换成数字量输给单片机。 ( 2)单片机控制部分电路连接如图 2.2 所示: ABCDDADB 0EDB 1DB 2DB 3DB 4DB 5DB 6DB 7RWRSX T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67
8、P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1X1CR Y S T A LC32 2 p FC42 2 p FC52 2 uR11 0 kR22
9、 2 0 RL S 1S O UN D E R图 2.2 单片机控制部分电路 原理:作为整个系统的控制部分, AT89C51 单片机与其他各模块连接在一起。其中晶振电路为单片机提供工作信号脉冲。复位电路作为单片机的复位输入,高电平有效。 P0.0P0.2端接 ADC0832的 DIO、 CLK、 CS 端; P2.0P2.7端接 LCD 液晶显示器; P1.0P1.4端接键盘译码电路的 DOA DOD 及 DA 端 ; 单片机原理 及系统课程设计报告 4 P3.0P3.2端接 LCD 的 RS、 RW、 E 端; P1.5声音提示装置; XTAL1、 XTAL2端接晶振; (3)键盘输入部分电
10、路连接如图 2.3 所示: Y1Y2Y3Y4Y4Y3Y2Y1X3X2X1DCBADAX1X2X30 1 23 4 56 7 89 . COSC5KBM6DA12A17B16C15D14X111X210X38X47Y11Y22Y33Y44OE13U3M M 7 4 C9 2 2C10 .1 uC20 .6 8 u图 2.3 键盘部分电路 原理: 4*3 矩阵键盘通过键盘译码电路译码向单片机输入数据。 (4)LCD 液晶显示电路连接如图 2.4 所示: E RWRSDB7DB6DB5DB4DB3DB2DB1DB0D714D613D512D411D310D29D18D07E6RW5RS4VSS1VD
11、D2VEE3L C D 1L M 0 1 6 L图 2.4 LM016L 液晶显示电路 单片机原理 及系统课程设计报告 5 (5)声音提示装置连接电路如图 2.5 所示: X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0. 0/ A D 0 39P 0. 1/ A D 1 38P 0. 2/ A D 2 37P 0. 3/ A D 3 36P 0. 4/ A D 4 35P 0. 5/ A D 5 34P 0. 6/ A D 6 33P 0. 7/ A D 7 32P 1. 01P 1. 12P 1. 23P 1. 34P 1. 45P 1.
12、 56P 1. 67P 1. 78P 3. 0/ R X D 10P 3. 1/ T X D 11P 3. 2/ INT 0 12P 3. 3/ INT 1 13P 3. 4/ T 0 14P 3. 7/ R D 17P 3. 6 /W R 16P 3. 5/ T 1 15P 2. 7/ A 1 5 28P 2. 0/ A 8 21P 2. 1/ A 9 22P 2. 2/ A 1 0 23P 2. 3/ A 1 1 24P 2. 4/ A 1 2 25P 2. 5/ A 1 3 26P 2. 6/ A 1 4 27U1A T 89 C5 1L S 1S O UN D E RR651 0 R图
13、 2.5 声音提示连接电路 原理:用以显示重量与价格与单片机连接。 3 软件设计 软件程序是连接各硬件工作和实现单片机智能化的灵魂 。主要作用是实现以单片机为控制中心,让各个模块分工实现其功能,单片机进行数据的采集、处理存储和输出显示的功能。模块化是 C 语言的一大特点,对单片机的编程而言,用C 语言模块化编程也是必须,故可以用一个主函数和 ADC0832 转换函数、按键处理函数、计算总额函数和 1602 相关函数 4 个子程序即可实现相关功能,另外加按键音函数、延时函数 2 个子程序。以下是各函数功能实现的流程图。主程序功能的流程图如图 3.1 所示。 开始初始化LCD取ADC中数据判断是否
14、取到数据ADC工作实现模数转换单片机存储数据向M7492发读信号读入单价数据M74C92有无数据计算总价并存储输出结果显示到LCD判断LCD是否忙结束是否否否是选通LCD是图 3.1 主 函数流程图 单片机原理 及系统课程设计报告 6 按键子程序流程图如图 3.2 所示 ,A/D 转换子程序流程图如图 3.3 所示。 开 始结 束检 测 是 否 有 键按 下MM74C922工 作对 按 键 进 行译 码送 入 单 片机是否开始选通ADC0832A/D转换A/D转换是否完成读数据到单片机返回主程序结束是图 3.2 按键程序流程图 图 3.3 A/D 转换程序流程图 4 系统仿真 用 Proteu
15、s 实现应用系统的仿真,用模拟的 C51 芯片和外围电路搭建电子秤仿真系统电路图,运用 Keil C51 软件下编写 和调试程序,调试完成后生成的 .HEX 文件,装入仿真系统单片机中,让仿真系统工作。经过调试,能显示正确的结果,即实现了基于单片机的智能电子秤设计。仿真图见附图 1. 5 总结 通过本次课程设计,我对所学的知识有了一个系统的认识和理解,尤其是对本课题所用的单片机及其相关知识有了进一步的掌握,对利用单片机进行控制系统的设计与开发以及对系统的分析和问题的解决有了切身的认识和体会,正所谓学以致用,在此实践过程中增长了知识、丰富了经验,提高了解决问题的能力。系统的分析与设计过程是对学习
16、的总结过程,更是进一步学习和探索的过 程。控制系统的开发设计是一项复杂的系统工程,必须严格按照系统分析、系统设计、系统实施、系统运行与调试的过程来进行。系统的分析和设计是项很辛苦的工作,同时也是一个充满乐趣的过程,在设计过程中,要边学习,边实践,遇到新问题就不断探索和努力即可使问题得到解决。 理论和实际必须紧密结合,在设计中要针对不同的系统根据理论给与不同的单片机原理 及系统课程设计报告 7 方案,综合考虑各方面的因素和需要,选择出最佳的方案与结论。要大量广泛的收集资料,然后认真地研究其思路,和指导老师保持联系,和同学共同研究遇到的问题,坚持笑到最后。 单片机原理 及系统课程设计报告 8 参考
17、文献 1 宋戈 . 51 单片机应用开发范例大全 M .北京 :人民邮电出版社 ,2010. 2 郑峰 . 51 单片机应用典型模块开发大全 M .北京 :中国铁道出版社 ,2010. 3 王思明 ,张金敏 ,苟军年等 . 单片机原理及应用系统设计 M .北京 :科学出版社 ,2012. 单片机原理 及系统课程设计报告 9 附录 附录 1: 仿真及调试效果 Y1Y2Y3Y4Y4Y3Y2Y1X3X2X1DCBADAABCDDADB 0EDB 1DB 2DB 3DB 4DB 5DB 6DB 7RWRSE RWRSDB7DB6DB5DB4DB3DB2DB1DB0X1X2X3X T A L 218X
18、T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 /R D17P
19、3 .6 /W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 10 1 23 4 56 7 89 . COSC5KBM6DA12A17B16C15D14X111X210X38X47Y11Y22Y33Y44OE13U3M M 7 4 C9 2 2C10 .1 uC20 .6 8 uCS1CH 02CH 13G ND4V C C8CL K7DI5DO6U2A
20、 DC 0 8 3 2X1CR Y S T A LC32 2 p FC42 2 p FC52 2 uR11 0 kR22 2 0 RR31 0 kR41 0 kR51 0 k23%R V 11kL S 1S O UN D E RR65 1 0 RD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3L C D 1L M 0 1 6 L附图 1 仿真及调试效果 附录 2: 源程序 #include #include #include #include #include #include #include #include #define uchar unsigned char #define uint unsigned int /按键引脚定义 sbit DA=P14; #define Key_Pressed (DA=1) /有键按下