lcd显示的秒表单片机课程设计.doc

上传人:知****量 文档编号:86250107 上传时间:2023-04-14 格式:DOC 页数:43 大小:918.50KB
返回 下载 相关 举报
lcd显示的秒表单片机课程设计.doc_第1页
第1页 / 共43页
lcd显示的秒表单片机课程设计.doc_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《lcd显示的秒表单片机课程设计.doc》由会员分享,可在线阅读,更多相关《lcd显示的秒表单片机课程设计.doc(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、芜湖职业技术学院 信息工程系单片机课程设计题目: 1602LCD显示的秒表系别/班级:信息工程系11级嵌入式技术与应用专业 小组成员:王玉瑶 吴秋云 吴颖盈 项念念小组成员学号:110407115 110407215 110407116 110407216指导老师:万振宇老师 目录1 单片机原理32 课程设计的任务与要求33 课程设计目的44 芯片资料5 4.1 AT89C515 4.2 1602LCD8 5 电路分析16 6 代码分析217 设计分析 298 调试成功与否 319 参考文献 3610 附录 1602LCD秒表的显示源代码37 1602LCD秒表的显示原理图 43一、单片机原理

2、单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。它是一种在线式实时控制计算机,需要有较强的抗干扰能力,较低的成本。本次设计内容为以8051单片机为核心的秒表,采用数码管显示,单片机技术控制。利用单片机的定时器/计数器定时和技术的原理,用集成电路芯片、LCD数码管以及按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生活中应用广泛。二、 课程设计的任务与要求设计任务:利用AT89C51单片机结合1602LCD显示器设计一个秒表设计要求:1 本设计实现一个1602LCD

3、显示秒表 2. 利用AT89C51控制整个电路来实现秒表的显示。大体上可以讲1602LCD秒表的显示主要包括硬件和软件两部分。重点就是各部分硬件的连接设计以及程序的编写。本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。三、 课程设计目的 MCS-51单片机原理及应用课的课程设计是四个学生一组完成一个老师给的一个题目,叫1602LCD显示的秒表。为了让我们能够综合运用自己学的课程的基本知识,能够进行单片机的应用,掌握单片机程序设计调试和应用电路设计、分析及调试检测。 通过这个实验:1.、使我们增进对单片机知识的进一步认识,也同时加深对单片机理论知识的理解。2、使我们掌握单片机的

4、内部功能模块的应用,3、使我们了解和掌握单片机应用系统的软硬件设计过程,方法即实现,为了以后设计和实现单片机应用系统打下基础。四、 芯片资料4、1 AT89C51AT89C51是128字节内部RAM,4KB可编程Flash存储器(可擦写1000次),三级程序存储器保密,静态工作频率:0Hz-24MHz ,2个16位定时/计数器 ,一个串行通讯口 ,6个中断源 ,32条I/O引线 ,有片内时种振荡器。输入输出引脚资料:(1) P0端口P0.0-P0.7 P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。 在访问外部程序和外部数据存储器时

5、,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7 P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。(3) P2端口P2.0P2.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3端口P3.0P3.7 P2是一个带有内部上拉电阻的8位双向I/0端口

6、。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。其它控制或复用引脚:(1) ALE/PROG 30 访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6)。在访问外部数据存储器时,出现一个ALE脉冲。(2) PSEN 29 该引是外部程序存储器的选通信号输出端。当AT89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。(3) EA/Vpp 31 外部访问允许端。当该引脚访问外部程序存储器时,应输入

7、低电平。要使AT89C51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。AT89C51特殊功能寄存器列表(适用于同一架构的芯片) 符号 地址 注释 *ACC E0H 累加器 *B F0H 乘法寄存器 *PSW D0H 程序状态字 SP 81H 堆栈指针 DPL 82H 数据存储器指针低8位 DPH 83H 数据存储器指针高8位 *IE A8H 中断允许控制器 *IP D8H 中断优先控制器 *P0 80H 端口0 *P1 90H 端口1 *P2 A0H 端口2 *P3 B0H 端口3 PCON 87H 电源控制及波特率选择 *SCON 98H 串行口控制器 S

8、BUF 99H 串行数据缓冲器 *TCON 88H 定时器控制 TMOD 89H 定时器方式选择 TL0 8AH 定时器0低8位 TL1 8BH 定时器1低8位 TH0 8CH 定时器0低8位 TH1 8DH 定时器1高8位 带*号的特殊功能寄存器都是可以位寻址的寄存器4.1 1602LCD1602字符型LCD简介:字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780.1602LCD主要技术参数: 显示容量:162个字符 芯片工作电压:4.55.5V

9、 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表1所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 表1:引脚接口说明 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度

10、最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。1602LCD的指令说明及时序:1602液晶模块内部的控

11、制器共有11条控制指令,如下表2所示:序号指令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读出的数据内容 表2:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的

12、。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时

13、为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。 指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙 指令10:写数据。 指令11:读数据。与HD44780相兼容的芯片时序下表3如下:读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D

14、7=数据,E=高脉冲输出无 表3:基本操作时序表读写操作时序如图2和3所示: 图2 读操作时序 图3写操作时序1602LCD的RAM地址映射及标准字库表: 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,图4是1602的内部显示地址。图4 1602LCD内部显示地址 例如第二行第一个字符的地址是40H,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在对液晶模块的初始化中要先设置其显示模

15、式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图5所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码 图5字符代码与图形对应图1602LCD的一般初始化(复位)过程: 延时15mS 写指令38H(不检测忙信号) 延时5mS 写指令38H(不检测忙信号) 延时5mS 写指令38H(不检测忙信号) 以后每次写指令、读/写数据操作均需要检测忙信号 写指令38H:显示模式设置 写指令08H:显示关闭 写

16、指令01H:显示清屏 写指令06H:显示光标移动设置 写指令0CH:显示开及光标设置五、电路分析总体设计分析 本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路以及一些按键电路等,本系统采用AT89C51单片机为中心器件,利用定时器计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,蜂鸣器电路以及一些按键电路等来设计计数器,将软、硬件有机地结合起来。硬件系统采用PROTEUS功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。5.1电源电路 电源电路是系统最基本的部分,任何电路都离不开电源部分,随着半导体工艺的发展,稳压电路也采用集成电路器件来

17、制成。可采用独立的稳压电源。这种供电方式的优点是稳压可靠,且有各种成熟电路可供选择。由集成稳压器具有体积小,外界线路简单,使用方便,工作可靠等优点。因此,在各种电子设备中应用十分普遍,为了跟上时代的发展,可采用W7800系列三端稳压器,主要利用它的输出电压是固定的在使用中不能进行调整等优点。5.2晶振电路 AT89C51内部的振荡电路是一个高增益反相放大器,引脚RXD和TXD分别是此反向振荡放大器的输入端和输出端。该反向放大器可以配置为内部方式的片内振荡器。如图所示,这里选用12MHE的内部振荡方式,电路如下:电容器C1,C2起稳定振荡频率,快速起振的作用,C1,C2可在20100PF之间取,

18、这里取30PF,接线时要使晶振振荡器尽可能接近单片机。5.3复位电路 采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段时间高电平时间。当单片机已在运行之中时,按下复位按键也能使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能时单片机复位,而且还能使单片机的外围芯片也同时复位,当程序出现错误时,可以随时使电路复位。复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器

19、有影响,它们的复位状态如表1所示。寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H表1 一些寄存器的复位状态 因STC89C52单片机需高电平(3.75.5V)复位,且复位时流入单片机的电流不能超过10mA。具体参数:根据所需要的复位参数可得当按下SW键时出现两个机器周期的高电平在单片机REST端产生的压降等于:=图 复位电路5.4 显示电路 显示电路既可以选用液

20、晶显示器,也可以选用数码管显示,我们采用液晶显示电路1602LCD引脚接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据命令选择端口(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D1Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极显示电路部分引脚分析: 3脚:VL,液晶显示偏压信号,用于调整LCD1602的显示对比度,一般会外接电位器用以调整偏压信号,此脚电压为0时

21、可以得到最强的对比度。4脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而为低电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602的一些工作方式作设置的字节;数据字节,即使用以在1602上显示字节。5脚:R/W,读写选择端。当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。6脚:E,使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的数据传输。714脚:8位并行数据口,使得对LCD1602的数据读写大为方便。基本操作时序:(1)读状态:输入:RS=L,RW=H,E=H;输出:D0D7=

22、状态字(2)写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲;输出:无(3)读数据:输入:RS=H,RW=H,E=H;输出:D0D7=数据(4)写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲;输出:无需要两个写时序: 当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。 当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。 六、 代码分析#include,#include 皆属于

23、头文件,前者是定义51单片机特殊功能寄存器和位寄存器的,后者包含特殊指令例如:crol( ),cror( )。#define uchar unsigned char,#define uint unsigned int,define delayNOP()nop();nop();nop()皆属于宏定义,后者是将三个延时周期定义在一起,用一个delayNOP()表示。Void LCD_intialize, void LCD_Set_POS(uchar), void Display_String(char*,char);皆为调用函数,第一个是调用LCD初始化函数;第二个是调用LCD的显示位置函数;第三

24、个是调用LCD写数据函数;第四个是调用LCD指定行上显示字符串函数。Sbit K1=P10, sbit K2=P21,sbit BEEP=30, sbit LCD_RS=P20, sbit LCD_RW=P21, sbit LCD_EN=P22;皆为个函数接口声明,定义K1、K2为两个控制开关;定义BEEP为扬声器接口;RS为寄存器选择高电平(1)时选择数据寄存器、低电平(0)时选择指令寄存器;RS为读写信号,高电平(1)时惊醒读操作,低电平(0)时进行写操作;E(或EN)端为使能端(enable),将单片机与LCD1602显示器连接。Uchar KeyCount=0 ;KeyCount为按键

25、计数变量,用于累计按键的次数。定义其为无符号整型,并且付初值为0.uchar code msg1=Second Watch 0 ,uchar code msg2= ;定义两个一维数组,在protues仿真软件中,当按下play键后,1602LCD显示屏是会出现这两个数组中的字符。uchar code Prompts16= : 1- , : 2- :2 , : 1-2 :3- , : 1-2 :3-4 定义一个二维数组,将其中的一维显示于1602LCD上。K1为启停控制按钮,第一次按下时开始计数,显示“:1- ”;当第二次按下时停止计数,显示: 2- :2 ; uchar Time_Buffer

26、 =0,0,0,0,uchar LCD_Display_Buffer =00:00:00:00;定义两个数组,一个用于计时缓冲,一个用于显示时间缓冲。void BeeP() uchar i,j=70; for (i=0;i180;i+) while (-j); BEEP=BEEP; BEEP=0;定义一个调用蜂鸣器的子函数。For(i=0;i180;i+)用于控制蜂鸣器响的时间,BEEP=BEEP用于使蜂鸣器进行短暂的响一下又不响的效果。因为蜂鸣器接地,只有当P3.0接入高电平(即1)时,蜂鸣器才工作。所以在响了一声过后,级(执行完成之后)将BEEP赋值为0,让它处于不导通状态,蜂鸣器不响。v

27、oid DelayX(uint ms) uchar i; while(ms-) for (i=0;i120;i+);定义一个延时子函数void Show_Second() uchar i; LCD_Set_POS(0X45); 设置LCD显示起点 for (i=3;i!=0xff;i-) 将两位整数的1、100s,秒,分,时转换为8位数字字符 LCD_Display_Buffer2*i+1=Time_Bufferi/10+0; LCD_Display_Buffer2*i=Time_Bufferi%10+0; 在i=3,2,1,0时分别显示时,分,秒,1/100s LCD_Write_Data(

28、LCD_Display_Buffer2*i+1); LCD_Write_Data(LCD_Display_Buffer2*i); LCD_Write_Data(:); 定义显示计时函数 LCD_Set_POS(0X45),调用函数,用于调用设置显示位置函数,在此子函数中又嵌套了一个函数调用,LCD_Write_Command(Position|0X80)(即LCD_Write_Command(0X45|0X80))函数。进行或操作:45010001018010000000C511000101 或操作后得到结果C5,即LCD_Write_Command(0XC5),调用该函数(即向LCD写指令函

29、数)。LCD_Busy_Check()用于检测LCD是否处于忙状态,假如处于忙状态,RS为0(选择指令寄存器),RW为1(进行读操作),EN为1(寄存器使能)。Delay NOP()表示延时四个机器周期。Result=(bit)(P0&0X80),P0的初始状态是FF.进行与操作:FF1111111180100000008010000000与操作后得到的结果80,即return为80(10000000)将EN赋值为0,即寄存器使能端禁止用。返回至LCD写指令子程序,RS=0(选择指令寄存器),RW=0(进行写操作),EN=0(使能端禁止使用)。延时两个机器周期,将cmd(0XC5)的值赋给P0

30、口,延时四个空白机器周期。使能端置1,延时四个空白机器周期。EN=0寄存器禁止使用。void Time0() interrupt 1 using 0 TH0=-10000/256; TL0=-10000%256; Time_Buffer0+; if(Time_Buffer0=100) Time_Buffer0=0; Time_Buffer1+; if(Time_Buffer1=60) /秒 Time_Buffer1=0; Time_Buffer2+; if(Time_Buffer2=60) /分 Time_Buffer2=0; Time_Buffer3+; if(Time_Buffer3=24

31、) /时 Time_Buffer3=0;此函数为中断函数,interrupt 1 using 0为定时器T0工作于0号寄存器,TH0=-10000/256,TL0=-10000%256,用于计算定时器的初值,除得的放在高八位,余的的放在第八位。接下来的代码用于控制在1602LCD显示屏中秒表自动进位换算的的效果,(1小时=60分钟,1分钟=60秒,1秒=100毫秒)当小时到达24时,清零。void main() uchar i; IE=0x82; TMOD=0X01; TH0=-10000/256; TL0=-10000%256; LCD_Initialize(); Display_Strin

32、g(msg1,0x00); Display_String(msg2,0x40); While (1) if (K1=0) DelayX(100); i=+KeyCount; switch(i) Case 1: Case 3: TR0=1; Display_String(Promtsi-1,0); break; Case 2: Case 4: TR0=0; Display_String(Promtsi-1,0); break; default:TR0=0; break; while (K1=0); Beep(); else if (K2=0) TR0=0; KeyCount=0; for(i=0

33、;i4;i+) Time_Bufferi=0; Display_String(msg1,0); Beep(); DelayX(100); While (K2=0); Show_Second(); 主函数,中断允许寄存器IE,IE=0x82=10000010表示EA为1,CPU开放中断;ET0=1,允许外部中断1中断。定时/计数器方式控制寄存器TMOD,TMOD=0x01=00000001,表示在T0方式字段中工作方式为方式1,是定时器方式,定时器的技术不受外部引脚输入电平的控制,而只受定时器运行控制位(TR0、TR1)的控制。进行高低8为赋初值。接着调用初始化LCD子函数,在其子函数中进行顺序

34、执行,每个都先延时5毫秒,接着调用写指令函数。返回至主程序。接着调用显示函数,在LCD指定行上显示字符串,Display_String(msg1,0x00),msg1为一个一维数组(Second Watch 0),即Display_String(Second Watch 0,0x00),在该子函数中调用设置显示位置子函数,在该子函数中调用写指令子函数进行或操作:000000000080100000008010000000与操作后得到结果为80,即LCD_Write_Command(0X80) ,调用该函数(即向LCD写指令函数)。LCD_Busy_Check()用于检测LCD是否处于忙状态,假

35、如处于忙状态,RS为0(选择指令寄存器),RW为1(进行读操作),EN为1(寄存器使能)。Delay NOP()表示延时四个机器周期。Result=(bit)(P0&0X80),P0的初始状态是FF.进行与操作:FF1111111180100000008010000000与操作后得到的结果80,即return为80(10000000)将EN赋值为0,即寄存器使能端禁止用。返回至LCD写指令子程序,RS=0(选择指令寄存器),RW=0(进行写操作),EN=0(使能端禁止使用)。延时两个机器周期,将cmd(0X80)的值赋给P0口,延时四个空白机器周期。使能端置1,延时四个空白机器周期。EN=0寄

36、存器禁止使用。Display_String(msg2,0x40);该调用函数类似于上面所述。While(1)进入死循环。在里面进行着秒表的计数功能,以及蜂鸣器的工作。七、设计分析7、1 系统设计分析设计的电路主要是能多次记时和查询时间,记时的多少通过显示电路显示出来,每一次计时可以通过控制电路查询出来。设计框图如图2-1所示; 单片机显示电路键盘电路外围电路电源电路 用1602LCD设计的秒表系统框图7、2显示部分设计分析显示部分是本次设计的重要部分,一般有以下两种方案:方案一:采用LED显示,在单片机应用系统中最常用的LED数码管为7段数码管,可利用LED显示器灵活地构成所要求位数的显示,分

37、静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。方案二:采用LCD显示。是一种低功耗显示器件,具有显示内容丰富、体积小、重量轻、寿命长、使用方便、安全省电等优点,在计算器、万用表、袖珍式仪表和低功耗微机应用系统中得到广泛使用。其显示的质量高,每个显示器每一点在收到信号后就一直保持那种彩色和亮度,恒定发光,而不像阳极射线管显示器那样刷新亮点,画面质量高且不闪烁。鉴于上述原因,我们采用方案二。7、3软件设计分析在软件设计中,一般采用模块化的程序设计方法,它具有

38、明显的优点。把一个多功能的复杂程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。 总流程图:八、调试成功与否图一 刚启动时截图 图二 运行时截图 图三 按下清零后截图调试成功,调试结果如上图所示。Keil C51 软件是目前最流行的开发8051系列的单片机的软件工具。Keil C51提供了包括C语言编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision3 IDE将这些部分结合起来。打开Keil软件,将代码输入调试并在错误全被解决的情况下生成对

39、应的hex文件;打开Proteus软件,将对应的原理图和生成的hex文件连接。在调试过程中我们出现了如下错误:1:“单机错误信息,让指针跳到错误行,一步步调试之后得知是代码输入时输入法错误,把大写”V”改写为小写”v”。2:当我们把上面的错误改了之后,又出现了以上错误,我们通过书籍、小组成员的共同努力,知道了是由于我们修改代码中一些不能修改和覆盖的变量,导致出现了以上错误。在我们细心寻找下发现时少了一个分号。3:当我们把分号加上了之后,又出现了如上图所示的错误。我们全组成员齐心协力,根据错误提示,将一个一个的错误改正。4:当我们再次运行时,又出现以上的两个错误。通过我们全组同学的努力以及其他同学的帮忙,我们得知是由于输入时的马虎,我们在前面定义的是propts,而这里出现了promts,所以导致了错误。 根据错误,一步一步的检查、调试之后,我们把错误全部解决,如图:九、参考文献1张大明.单片机控制实训指导及综合应用实训M. 北京:机械工业出版社2陈益飞.单片机原理及应用技术.北京M:国防工业出版社,20113张伟.张杰编著.单片机

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com