基于单片机的实验教学开发系统设计.doc

上传人:精*** 文档编号:840409 上传时间:2023-09-08 格式:DOC 页数:51 大小:1.53MB
下载 相关 举报
基于单片机的实验教学开发系统设计.doc_第1页
第1页 / 共51页
基于单片机的实验教学开发系统设计.doc_第2页
第2页 / 共51页
基于单片机的实验教学开发系统设计.doc_第3页
第3页 / 共51页
基于单片机的实验教学开发系统设计.doc_第4页
第4页 / 共51页
基于单片机的实验教学开发系统设计.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、榆林学院本科毕业设计(论文) 摘 要由于单片机技术在各个领域正得到越来越广泛的应用,许多集成电路生产厂家相继推出了各种类型的单片机。在单片机家族的众多成员中,AT89S52系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了市场,成为国内单片机应用领域中的主流。单片机开发系统是大中专院校电气、电子类等专业实验教学必不可少的设备。但目前大部分的单片机开发系统多是基于应用层面而非硬件底层,这样将不利于人才培养。本设计通过对开发系统的硬件和软件测试程序的介绍,设计出一种兼容RS232 串口和USB 下载的,集温度采集、LCD 显示以及串口通信等多种功能于一身的开发系统。为单片机系

2、统设计和开发提供了一个硬件平台。本设计可以实现专业课、课程设计和毕业设计的实验。实验板是参考单片机教材中的实验内容设计的,能够实现蜂鸣器发声、按键、流水灯、LCD1602液晶显示、DS18B20温度显示、七段数码管显示、串口通信的测试实验。实验证明,该系统性能稳定,结构清晰,有着很高的性价比。关键词:AT89S52;单片机;实验系统;数码管显示Design of Experimental Development System Based on MCUABSTRACTBecause of MCU in various fields is getting more and more widely

3、used. Many members of the family of microcontroller AT89S52 is series of microcontrollers to its superior performance, mature technology and high cost performance, and quickly occupied the market, that become into the mainstream in the domestic single-chip applications. Microcontroller development s

4、ystem is essential for colleges electrical, electronic and other specialized experimental teaching equipment. However, most of the microcontroller development system is based on the application level rather than the underlying hardware, while it is not conducive to personnel training. This design a

5、compatible RS232 serial and USB download, set temperature gathering, LCD display and serial interface communication that very kinds of functions in one development system, which provide a hardware platform for single-chip system design and development.This design can be achieved course design and gr

6、aduate design experiments. The test board is the experimental content refers to MCU textbooks, designed to achieve the buzzer sounds, buttons, water lights, the LCD1602 display, DS18B20 temperature display, seven segment digital display, serial communication test experiments. Experiments show that t

7、he system performance stable, a clear structure, with the high performance-price rate.Key words: AT89S52;MCU;Experiment system;Digital displayI榆林学院本科毕业设计(论文)目 录摘 要IABSTRACTII1 绪论11.1 选题背景11.2 国内外研究现状11.3 本设计完成的工作22 硬件设计32.1 设计方案32.2 主要芯片介绍42.2.1 AT89S52单片机简介42.2.2 LCD1602显示器52.3 单片机各功能模块硬件设计62.3.1 单

8、片机最小系统设计62.3.2 键盘电路设计82.3.3 LED数码管显示电路设计82.3.4 液晶显示电路设计92.3.5 报警电路设计102.3.6 流水灯设计102.3.7 温度采集接口设计112.3.8 串行通信模块设计123 软件设计143.1 键盘模块程序设计143.2 测温模块程序设计143.2.1 DS18B20的工作时序143.2.2 测温程序流程图163.3 数码管显示程序设计193.4 LCD1602显示程序设计213.5 流水灯模块程序设计253.6 报鸣模块程序设计253.7 串行通信模块程序设计264系统调试284.1 硬件调试284.2 软件调试294.3 本章小结

9、305总 结31参考文献32致谢33附录A系统整体原理图34附录B系统PCB图35附录C系统完整实验程序36III榆林学院本科毕业设计(论文)1 绪论1.1 选题背景上世纪 70年代第一批单片机面世, 短短二三十年时间, 单片机技术已成为计算机技术的一个重要分支, 广泛地应用到工业控制、仪器仪表、 消费产品、汽车,办公自动化和通信等领域。因此, 单片机技术已经成为电子,测控、自动化、通信等许多工科专业学生的必备技能,学习该课程既要掌握单片机的硬件知识, 又要掌握软件知识。在学习单片机原理及接口技术这门课程的过程中, 往往感到课堂教学比较抽象难懂, 因而实践部分必不可少,此设计制作这一基于单片机

10、的实验教学开发系统很有必要1。1.2 国内外研究现状经考察, 国内绝大多数院校在做单片机课程实验时都使用单片机实验箱。而使用实验箱来进行实验往往存在以下几种弊端: (1)实验系统以实验箱的形式展现, 侧重于软件实验。(2)验证性实验居多, 学生难以利用实验箱进行扩展性、综合性,设计性实验。(3)课程实验结束后, 不少学生仍不懂得如何进行系统设计、 软硬件综合调试, 因此很有必要针对这门课的实践环节作进一步改革,考虑到初次设计一个完整的系统对大多数同学来说存在一定难度,故本设计了一款为学生量身定做的基于单片机的实验教学开发系统, 可进一步提高学生的动手能力, 深化实践教学改革, 更方便、全面、系

11、统地进行单片机教学。同时, 这些实验开发板也可以方便地应用在毕业设计和各种类型的竞赛培训中。由于单片机技术在各个领域正得到越来越广泛的应用,许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,AT89S52单片机以其优越的性能、成熟的技术、高可靠性和高性能价格比,迅速占领了市场,成为国内单片机应用领域中的主流。目前,可用于AT89S52单片机开发的产品越来越多,与其配套的各类开发系统、各种软件也日趋完善。因此,可以极方便地利用现有资源,开发出用于不同目的的各类应用系统2。1.3 本设计完成的工作本课题设计了一款单片机实验开发系统,该系统可以实现专业基础课、专业课(单片机原

12、理与应用,单片机接口技术等)、课程设计和毕业设计的实验。实验板是参考单片机教材中的实验内容设计的,能够实现简单的测试实验。本设计包括硬件系统的详细设计及C语言在基本控制中的应用。2 硬件设计2.1 设计方案单片机实验开发板是一个实际应用的系统,能够为相关的学生单片机实验提供支持。此实验板是参考单片机教材中的实验内容设计的,能够实现简单的测试实验。本设计包括硬件系统的详细设计及C语言在基本控制中的应用3。本设计的任务主要分为硬件和软件两大部分,其主要硬件设计框图如图2-1所示:图2-1 总体设计框图此开发系统的主要内容包括:(1)单片机最小系统电路。(2)蜂鸣器发声电路。(3)按键电路。(4)流

13、水灯实验电路。(5)LCD1602显示电路。(6)DS18B20温度显示电路。(7)七段数码管显示电路。(8)串口通信电路。(9)按键模块程序设计。(10)DS18B20温度测量程序。(11)7段数码管显示程序。(12)LCD1602模块程序。(13)流水灯实验程序。(14)蜂鸣器实验程序。(15)串口通信模块实验。2.2 主要芯片介绍2.2.1 AT89S52单片机简介计算机芯片MCS-51是一个电脑晶片,英特尔公司生产系列。它是在MCS-48系列的基础上发展的高性能的8位单片机。所推出的系列产品有AT89S52、8031、8751。其代表就是AT89S52。其他系列的单片机都以它为核心,所

14、以本设计采用的核心芯片是AT89S52单片机。CPU是它的核心设备,从功能上看,CPU包括两个部分:运算器和控制器,它执行对输入信号的分析和处理4。整个系统电控部分以ATMEL公司的AT89S52为核心芯片,控制信号采集、处理、输出三个过程。这种芯片内置4K的EPROM,因为系统要求控制线较多,如果采用8031外置EPROM程序控制结构,则造成控制线不够;而AT89S52却可以利用P0、P2口作控制总线,大大简化了硬件结构,并可以直接控制键盘参数输入、LED数据显示,方便现场调试和维护,使整个系统的通用性和智能化得到了很大的提高。图2-2 AT89S52管脚图上图是AT89S52的引脚配置,在

15、40个引脚中,有正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:引脚40:正电源脚,正常工作或对片内EPROM抄写程序时,接+5V电源。引脚19:时钟XTAL1脚,片内振荡电路的输入端。引脚18:时钟XTAL2脚,片内振荡电路的输出端。AT89S52的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10PF-30PF。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。本设计采用外部时钟电路,外接晶振和电容组成振荡器。输

16、入输出(I/O)引脚:引脚39-引脚32为P0.0-P0.7输入输出脚,引脚1-引脚8为P1.0-P1.7输入输出脚, 引脚21-引脚28为P2.0-P2.7输入输出脚,引脚10-引脚17为P3.0-P3.7输入输出脚。在对单片机设计中,P0口作为程序存储器扩展口,且是扩展并行输入/输出接口,另外也作为模数转换的数据传输口,P2口为程序存储器扩展口的高8位地址总线口,P1口为输入/输出口。引脚9:RESET/复位信号复用脚,当AT89S52通电,时钟电路开始工作,在RESET引脚上出现2个时钟周期以上的高平,系统即初始复位。初始化后,程序计数器PC指向0000H, P0-P3输出口全部为高电平

17、,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序1。AT89S52的初始态如下: 表2-1 寄存器初始状态特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00HPSW00HSP07H07H00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0x00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB2.2.2 LCD1602显示器LCD1602液晶显示由于显示效果好,体积小,损耗小等特点成为很多设计中的常选

18、器件。LCD1602液晶显示的主要参数: 显示容量为162个字符;接5V电压时的工作电流为2mA;字符尺寸为2.954.35(WXH)mm;模块最佳工作电压为5V;芯片工作电压为4.55.5V。LCD1602显示器的接口信号说明如表2-2所示。表2-2 LCD1602显示器的接口信号说明引脚1GND地引脚9D2 I/O线引脚2VCC +5V电源引脚10D3 I/O线引脚3VO 液晶显示偏压信号引脚11D4 I/O线引脚4RS 数据/命令选择端引脚12D5 I/O线引脚5R/ W 读/写 选择端引脚13D6 I/O线引脚6E 使能端引脚14D7 I/O线引脚7D0 I/O线引脚15BG VCC

19、背光源正极引脚8D1 I/O线引脚16BG GND 背光源负极基本操作程序:读状态:令RS=L,RW=L, E=H 读数据:令RS=H,RW=H, E=H 写指令:令RS=L,RW=L,D0D7=指令码,E=高脉冲写数据:令RS=H,RW=L,D0D7=数据,E=高脉冲 2.3 单片机各功能模块硬件设计2.3.1 单片机最小系统设计复位电路:复位是单片机的初始化操作,其主要功能是使单片机从0000H单元开始执行程序。除了进入系统的正常初始化以外,当由于程序运行出错或操作错误使系统处于锁死状态时,为摆脱困境也需按复位键以重新启动。AT89S52芯片内部有复位电路,RST引脚是复位信号的输入端高电

20、平有效,复位方式有自动复位和手动复位两种。本实验板采用手动复位方式复位。AT89S52的复位电路如图2-2所示:图2-3 复位电路当电源刚开始送电瞬间,电容相当于短路,RST端输入高电平,AT89S52复位。短路瞬间之后,电容充电,RST端低电平。AT89S52需要复位时,按下手动复位键,电容通过电阻放电,当电容放电结束后,RST为高电平,AT89S52进入复位状态;松手后,电容充电,RST端高电位下降,CPU脱离复位状态。时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的相互关系。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控

21、制下严格地按时序进行工作。在AT89S52单片机内部带有时钟电路,因此,只需要在片外通过XTALl和XTAL2引脚接入定时控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。在AT89S52芯片内部有一个高增益反相放大器,而在芯片的外部,XTALl和XTAL2之间跨接晶体振荡器和微调电容。AT89S52的时钟电路如图2-3所示:图2-3 晶振时钟电路原理图用晶振和电容构成谐振电路,在设计电路板时,晶振、电容等均应尽可能靠近芯片,以减小分布电容,保证振荡器振荡的稳定性。2.3.2 键盘电路设计键盘是人与AT89S52联系的重要手段,用于向CPU输入运行参数和控制系统的运行状态。键盘电路形

22、式分为直接编码输入键盘和矩阵键盘。前者接口电路简单,一般应用于需要少量按键的控制系统。后者因占用引脚数少,常被按键较多的控制系统所采用。本实验板用于学生实验,故接口较为简单,采用直接编码输入键盘6。实验板的键盘电路如图2-4所示:图2-4键盘模块原理图当开始扫描时,在判断有键被按下后,检测到输出端口为0的键就是被按下的键。此外按键在闭合和断开时,触点会存在抖动现象。按键的抖动时间一般为5-10ms,抖动可能造成一次按键的多次处理问题。应采取措施消除抖动的影响,软件编程时常采用软件的方法消除抖动,在第一次检测到有键按下时,执行一段延时10ms的延时子程序后再确认该按键电平是否仍然保持闭合状态电平

23、,如果保持闭合状态电平则确认为真正有键按下,从而消除了抖动的影响。在这里可以编写一个延时程序来消除抖动。2.3.3 LED数码管显示电路设计LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示结果或输入输出信号的状态。对于单片机实验开发来说非常重要。通常的数码管是由发光二极管构成的,发光二极管的压降是比较固定的,通常红色为1.6V左右,绿色有2V和3V两种,黄色和橙色约为2.2V,蓝色为3.2V左右。对于常用的几毫米大小的二极管,其工作电流一般在2毫安至20毫安之间,电流越大亮度越高,用电源电压减去二极管的压降,再除以设定的工作电流,就得出限流电阻的阻值。本设计采用680的限流电阻

24、,其数码管亮度较为适中7。实验板数码管显示电路如图2-5所示:图2-5单片机的动态显示电路2.3.4液晶显示电路设计显示器件是实验板中普遍使用的输出器件,较常用的是LED数码管和LCD液晶显示器。前者仅能显示数据输出,而后者能显示更多,更复杂的字符,如汉字,甚至是图形等。此实验板采用LCDl602作为输出显示器件。LCDl602液晶是一款很常用,也很易用的字符液晶显示器。可以显示2行,每行16个字符,对比度可调、黄绿色背光。利用单片机的P1.0和P1.1分别控制LCD1602的寄存器选择端RS和使能端E。单片机的P2口和显示模块的8位数据接口连接,实现单片机和LCD的数据传输。液晶显示器电源正

25、端VCC接5V,负端GND接地,背光正端BLA通过一个10的限流电阻接5V,负端BLK接地。此外,液晶的偏压管脚VL接到一个10K的精密电位器的中间抽头,电位器的两端分别接电源和地,这样就可通过调节电位器来实现对液晶显示器对比度的调节。LCDl602引脚与单片机连接如图2-6所示: 图2-6 显示模块电路图2.3.5 报警电路设计蜂鸣器功率较大故通过8550三极管驱动。报警部分由陶瓷压电发声装置及外围电路组成,单片机的P1.2引脚为低电平时,三极管T3导通蜂鸣器发声报警。当按下按键时蜂鸣器会发出“嘀”的提示音,当在报警状态其会发出“嘀、嘀”的报警声8。其电路如图2-7所示: 图2-7报警模块电

26、路图2.3.6 流水灯设计如图2-8所示流水灯模块包含8个LED灯,采用低电平有效,共阳极连接,为防止二极管击穿,在每个二极管中串接了1K的限流电阻。因此,LED灯低电平点亮。本设计利用单片机的P2 口控制8 个LED,为使LED 正常发光,导通电流IF 在110mA 范围内。LED 根据发光的颜色不同,导通压降也不同,本设计利用红色的LED,导通压降VF为2V左右,若驱动器驱动电压为VOH,则LED 的串联限流电阻R 为: (2-1)利用单片机的5V电源作为驱动器驱动电压VOH,则限流电阻的取值范围为300 3K,本设计中限流电阻的阻值为1000。具体电路如图2-8所示。图2-8 LED引脚

27、图2.3.7 温度采集接口设计DS18B20是DALLAS半导体公司生产的,是一种单总线温度传感器,属于新一代适配微处理器的智能温度传感器,有两种封装形式分别为3脚PR-35封装和16脚SSOP封装。本文采用的是3脚PR-35封装,其具有以下特点:采用了单总线技术,传感器直接以二进制输出被测温度,可通过串行口线,也可与单机通过I/O口连接;测量温度范围为:- 55+125,测量精度高达+0.5;内含寄生电源,在两线方式下可通过数据线提供寄生电源,而不需要再单独供电;转换时间在分辨率为12位(即0.0625)时最大为750ms;用户可分别对每个器件设定温度上下限;DS18B20 在使用时不需要任

28、何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;电源极性接反时,芯片不会因发热而烧毁,但不能正常工作;每个DSl8B20 器件对应一个唯一的64位长的序号,该序号值存放ROM中,可通过序号匹配实现多点测温。引脚排列如图3-10所示:图2-9 DS18B20引脚图VDD:接电源引脚,电源供电3.05.5V;DQ:数据的输入和输出引脚;GND:接地;DS18B20温度传感器模块的原理图如图2-10所示:图2-10 DS18B20温度传感器模块原理图单片机与DS18B20通过P3.6相连,作为数据/控制信号线16。2.3.8 串行通信模块设计RS232是由电子工业协会(Elect

29、ronic Industries Association,EIA) 所制定的异步传输标准接口。对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS232与TTL电路之间需要进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。MAX232芯片是RS232标准接口芯片,使用+5v单电源供电。是PC机与单片机串口进行通讯的电平转换芯片。RS232接口电路设计对于STC系列单片机利用RS232接口既可以给单片机下载程序,也可以实现单片机与PC机的串行通信。单片机提供了专门的串行接收和发送接口RXD和TXD,但其提供的信号电平是TTL电平和RS23

30、2接口总线的电平标准不一致,所以必须采用MAX232电压转换芯片进行电平转换。单片机与PC机进行全双工通信,就不需要进行握手联络,可以使用全双工最简系统连接方式9。具体电路如图2-11 所示:图2-11 单片机串行通信原理图3 软件设计3.1 键盘模块程序设计51单片机扩展简单独立式键盘程序流程图如图3-1所示。开始时刻先进行扫描,判断是否有按键按下,查询按键是否按下以及对按键的准确判别主要依赖于读取键盘接口状态,中间延时10ms,如果两次读取到的键盘接口状态一样,则按键被正确识别,否则认为是干扰,不予处理。键盘程序流程图如图4-1所示:图3-1 键盘程序流程图3.2 测温模块程序设计3.2.

31、1 DS18B20的工作时序单总线在任何时刻只能有一个控制信号或数据,数据要能在单片机和单总线芯片之间实现可靠的传送,遵循单总线处理次序通信协议,确保数据有条不紊地传送,单总线处理次序图如图3-2所示:图3-2 单总线处理次序图处理次序操作时,一般有以下4个过程:(1)初始化。基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机的应答脉冲组成。应答脉冲使主机知道总线上有从机设备,且准备就绪。(2)ROM 操作命令。在主机检测到应答信号后,主机可以发出ROM 操作命令之一。所有的ROM 命令都是8 位,而且这些命令与各个从机设备的唯一64位ROM代码相关,允许主机在

32、单总线上连接多个从机设备时,指定操作某个从机设备。可发送的ROM 命令有:读ROM,匹配ROM,搜索ROM,跳过ROM,超ROM,超速跳过ROM,条件查找ROM。(3)RAM 操作命令。当成功执行上述某个ROM 操作命令后,总线可以发出一个RAM 命令来访问和控制RAM。可发送的RAM 命令有:写暂存RAM,读暂存RAM,复制暂存RAM,数据转换,回读E2PROM,读电源模式。(4)数据交换。主机和从机之间进行数据的传输,所有的数据都是从低位开始读写的。所有的单总线器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号:复位脉冲、应答脉冲、写0、写1、读0 和读1。这些信号当中,

33、除了应答信号是由从机发给主机的以外,其他的信号都是由主机发出同步信号,并且发送所有的命令和数据都是从字节的低位开始的17。单总线上的所有通信都是以初始化时序开始,包括主机发出的复位脉冲及从机的应答脉冲,初始化时序如图4-9所示:图3-3 初始化时序当主机把数据从逻辑高电平拉到逻辑低电平时,写时序开始,写“1”和“0”, 写时序如图4-10所示:图3-4 写时序 图3-5 读时序3.2.2 测温程序流程图测温程序流程图如图3-6所示: 开始复位DS18B20发出搜索ROM的命令返回读在线DS18B20序列号所有在线DS18B20是否访问完?是否存在一个DS18B20?初始化DS18B20启动所有

34、在线的DS18B20作温度A/D转换跳过ROM命令;转换命令延时104s初始化DS18B20执行期间匹配命令发一个DS18B20序列号发读暂存RAM命令读匹配的DS18B20温度YNYN图3-6 DS18B20温度传感器程序流程图根据初始化时序对DS18B20进行初始化,根据读写时序对DS18B20进行读写编程,另外,在循环读取温度数据后,要将读取的温度数据转换为可以在数码管上显示的字符。其程序如下:sbit DQ = P37; /温度传送数据IO口uchar temp_value; /温度值uchar TempBuffer5; /*ds18b20子程序*/ void delay_18B20(

35、unsigned int i)while(i-);/*ds18b20初始化函数*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay_18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay_18B20(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay_18B20(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18B20(20);/*ds18b20读一个字节*/ unsigned char ReadOneChar(void)

36、uchar i=0;uchar dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; /数据右移一位 DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; /按位或,取最高位 delay_18B20(4); return(dat);/*ds18b20写一个字节*/ void WriteOneChar(uchar dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; /取最低位 delay_18B20(5); DQ = 1; /上升沿将数据送入 dat=1; /*读取

37、ds18b20当前温度*/void ReadTemp(void)unsigned char a=0;unsigned char b=0;unsigned char t=0;Init_DS18B20(); /初始化ds18b20WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay_18B20(100); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共

38、可读9个寄存器)前两个就是温度/delay_18B20(100);a=ReadOneChar(); /读取温度值低位b=ReadOneChar(); /读取温度值高位temp_value=b4; /取温度值的地位的高四位,右移四位后与温度的高四位相加得到温度值/ 3.3 数码管显示程序设计数码管的显示方式可以分为动态和静态的。动态的也叫扫描方式,是利用发光二极管的余辉效应和人眼的视觉暂留效应来实现的,只要在一定时间内数码管的频率过快,人眼就看不出闪烁,一般外围硬件较少,但是对单片机资源耗用巨大。静态的也叫锁存方式,单片机送出数据后控制外围锁存器件锁存数据,这样数码管里的电流不变,数码管稳定显示

39、,这样单片机可以干别的活不用管数码管了。这种方案的优点是对单片机的P口资源和时间耗用很少,但是数码管的外围辅助电路复杂10。在本测试程序中使用动态扫描法控制数码管显示,数码管从1依次显示到99完成一个循环。具体显示程序如下:#include sbit Dis0 = P14; /数码管位选控制:选择第一个数码管sbit Dis1 = P13; /数码管位选控制:选择第二个数码管sbit LED0 = P20; /发光管0sbit LED1 = P21; /发光管1sbit LED2 = P22; /发光管2sbit LED3 = P23; /发光管3sbit LED4 = P24; /发光管4s

40、bit LED5 = P25; /发光管5sbit LED6 = P26; /发光管6sbit LED7 = P27; /发光管7/数码管译码表unsigned char code NumDecode = 0XC0,/;0 0XF9,/;1 0XA4,/;2 0XB0,/;3 0X99,/;4 0X92,/;5 0X82,/;6 0XF8,/;7 0X80,/;8 0X90,/;9;/粗略延时函数void Delay(unsigned int N) while(N-);/数码管显示函数:显示数字范围:0-99,百位以上忽略void DisplayNum(unsigned char Num)un

41、signed char Num0,Num1;Num0 = (Num%100)/10; /取个位Num1 = Num%10; /取十位P0 = NumDecodeNum0; /显示个位Dis0 = 0;Dis1 = 1;Delay(500);P0 = NumDecodeNum1; /显示十位Dis1 = 0;Dis0 = 1;Delay(500);/测试程序主函数void main(void) unsigned int i,j; for(j=0;j100;j+) for(i = 0;i60;i+) DisplayNum(j); Dis0 = 1; Dis1 = 1;3.4 LCD1602显示程序设计1602液晶模块内部的控制器共有11条控制指令,如表3-1所示:表3-1 控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922