




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1课设所需软件简介1.1 Keil uVision4的简要介绍2009年2月发布Keil pVision4 , Keil Vision4引入灵活的窗口管理系统, 使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完 全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组 织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更 多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境 RealView MDK开发工具 中集成了最新版本的 Keil uVision4 ,其编译器、调试工具实现与 ARM器件 的最完美匹配。Keil C5
2、1开发系统基本知识Keil C51开发系统基本知识1 .系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就 能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代 码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面 详细介绍Keil C51开发系统各部分功能和使用。2 . Keil C51单片机软件开发系统的整体结构C51工具包的整体结构, uVision与Ishell分别是 C51 for Windows 和 for Dos的集成开发环境(IDE),可以完成编辑、
3、编译、连接、调试、仿真等 整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的 Hex文件,以供调试器 dScope51 或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行 调试,也可以直接写入程序存贮器如EPROM中。Word资料使用独立的Keil仿真器时,注意事项:* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔 中换插其他频率的晶振。*
4、 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。* 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外 ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM (其CPU的/EA引脚接至低电平)的目标系统中使用。优点:1 .Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2 .与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优 势,因而易学易用。用过汇编语言后再使用 C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和
5、功能强大的集成开发调试工具,全 Windows 界面。图1.1 KEIL操作界面Word资料1.2 STC-ISP的简要介绍STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用操作说明如下:(1)打开STC-ISP,如下图界面,在 MCU Type栏目下选中单片机,如STC89C52RC。"一 E-C-:&P exe 太星 MfeE 灯二站 v.'w STCMC J com 层 f M丐 1 弘223匚5国01跳#工的孀I F.d M'
6、 Me 15芬殳什叽5J£町ryi*A± gnwrr Rg守15 m族 PC, 皿口 - 1FFF昕交件| jw, '| *_in# _l卷文忤|;& m Fil-足四统 皿Td ; f开文件收件选F李足二竭Q: 峨曲皿1席紧和I口IP打开亶件前S5Q警冲打开程序文件RiIR匚开工卜新An话E曰 m卿R卡CCM Fort, hax EmiV造腌行口厚高技恃军噌旌苕津馈蜗物使藉减僻=燧阚至-WUL。阿步物设至本悔由拓选项中船诲项一 5m,邙5/又膛在 广匕打!脂东中;EV单笥f振巧方】大否增益-1龙£I>" F由I 口逅/繇中板1叫加
7、以不拒褊S3可选t>t pi>七.大声启动FLQbL 1 R与下就元关-等干口网才可也快通启动 内渊晴雨如;广EJltif涧片九许坊闾喟则噌若J下&T竟用户应可K与附精市括n G叵一并第f 一,帝wn$&逐步辘口小石融"下拄光点14t相猛再世壮电费5-学呼 iwala *!/不资£i-B mEL©,e番豆f意首MT裁前序新词又日FT开力焉冲区酊文件,声幅司it憧困 r为目标"!*:*生友化扇自诂甩文件,井上即发宜不载,;扁璇*»府'r-.,法、E STOim V 网M刚才科瓢罂器?时院皿髓湍阳nil n- o
8、 D n- Q o o o o .u o Q o u n:u o noo 叩 m oo叩W QD Q0 Q0 00 00 00 00 00 00 QUDO QD DO DDbo)0 iQO 0口 口口 CD CD CD CD GO QD ODoo oo oo on00oo oo- on- on od no m m no no noQQ g 叩 Wm叩 i00 OQI oo QQ CO 00 叫 OO 00 90门口 口占0口 oo口 o)do。on。口 Q口 do on on 由口 口口 noOO 00 00 oo<001 00 0D 0D 0D 0D 0D 0D 0D 0D 0Dm g
9、 g qqgg g 皿 3 OD 口口 OD OD OO QD 加00 00 00 ODQ0iao 00 ODI OD 0口 OD 口口 OD OD OD ODOO g 00 ooQ000 00 QD 0D 0D QD 0D 0D 0D 00 0D0D OQ DODDO iOOi OQi OD OOi OD OD OD OD OD 00oo no ao onm on on od oo 如加加 od od od00 00 00 0000QO 00 00 00 00 00 00 00 00 QD 000D 0Q OO00OO 1001 OQI 口口 OD OD OD OD OD OD UOon o
10、o oo oo00oo on- on- oo co no no m m no no00 00 00 OD00QD 001 OOi Q0( 00 00 00 00 QO QO QOg 皿 oo m0010» 00 OD OD OD 60 OD 00 OD OD ODQD QL 02 03 Q4 口号灯6 07 OB 09 口加。吕。匚 QD QE OF j_oo oo oo oo m oo oo on oo on od od od od od odon oo oo oo oo m oo co oo 加 on oo no no no oo ;泡手|自定上不我| 1翎VF#|长助R选购 事
11、娉量ITFUML '用尸捏悻启画内部方湖后只音演良君iw 融复辰天否ixe总f功生对部分单片忖带t1LE pinC 周年H. ST经hM育首性水:<* ffl3 r m®s;轴闻爆时I引秒)5 *图1.2 ISP操作界面(2)根据您的9针数据线连接情况选中COM端口,波特率一般保持默认,如果遇到下载问题,可以适当下调一些。Word资料(3)先确认硬件连接正确,点击打开文件”并在对话框内找到您要下载的HEX文件':.卜=?U:=F 尸:Q. -L T 十吉产:. k 'H 5KI:0T W、snpj/i 3Ui<t RCU 疗中法律单片叽型号应 1r
12、tVAT tinnniv KiE柝丽前希- LULL1 1J>T龌席交件_n._串口比壬二理力4|产在5 f 11"-H0 it巾01 一成刀由由刀田刀附rm七刘F -L *S回蝴怛口.“ File /打井交件氏件.包期内其用区现增F) 起加城址?IEH庆发扣UUJUIU口皿1。15-1P归文腌声第中ULUU-U0000:0山m山山! mmmmm Eoaw 窑 B8mBm IJ'llrILIJLIT gODmgmwmxxlw 山DflJUDQm wm国国m 由nnJJRR JJm 山RRJiJMJu国31 JJrnJJWR山卬色室 J6IJOEB qRRRW科.生与性
13、tHTfeif UmrliLa cyasd / 基倍定 振芳中士三增益一归需珏或隹 FH币 四汽启动F1 口疗L 1 Q不打不靠用L麻画程不JN01吧的;出骤;L步怔1D曷4/'3叩排 卸下我r国川下我加王新词入己r当口忏区当及生装儿区通机群榷踊稚部成项+的后广电u|“下澈C赛三最聆注/»=.1 pnrw病触频一0片j冲hujnwriHUJ1NVJE0 DJI -ir .1剂 1/1川 17 56 孙?匹门5 2? 41 2012/515 24翦 201VI0/1 21?-EX-j H二X, HEX J HFxTAjp的11/lWn 22i33< ok2011/10/2
14、7 2Js4fi且8M12/6/15 It 35.jj FC201lyl0yi 2ft is2011/127 15:32-EXJ心工 HEXM HEXS立生帅|旧H;日升6取后图1.3选择HEX文件(4)选择所要下载的文件,这样可以使您在每次编译KEIL时HEX代码能自动加载到STC-ISP,点击 Download/下载”。(5)手动按下电源开关便即可把可执行文件HEX写入到单片机内,如图是正在写入程序截图。(6)程序写入完毕,目标板开始运行程序结果。Word资料2方案分析与确定2.1 方案思路分析由题目要求,根据设置的年份日的显示全年的年月公历、星期等信息。由于需要显示去年的日期以及星期等信
15、息,普通的 LED数码管显然已经不能胜任, 为此,我们可以选择LCD1602液晶显示器完成课设要求。目前所具备的设备只 有一块以STC89C52为内核的单片机,PC机。课设要求显示日期等信息,我们可以充分利用单片机上面集成的DS1302时钟芯片。该芯片可以产生年份,月份,日期,星期,时,分,秒的数据,因此, 完全可以完成实验的各项要求。基于以上分析,我们可以利用DS1302产生的各种时钟数据,由CPU完成对 数据的读取,然后通过 CPU将数据写至LCD1602,以显示数据,达到可视化的 效果。对于课程设计的拓展部分,我们可以利用单片机开发板上面集成的 DS18B20 温度传感器来测试周围环境的
16、温度,同样通过 LCD1602来显示。此外可以通过 测试按键是否闭合来改变各种时间数据,已达到校准的目的。Word资料CPU图2.1整体设计框架图LCD16022.2 方案流程图根据以上分析,以及使用各种芯片的操作流程,我们可以大致确定课程 设计的软件设计方案方案,其大致流程如下:Word资料Word资料图2.2设计流程图3单元芯片电路的设置及总体设计3.1 DS1302芯片引脚功能DS1302是美国DALLAS公司推出的一种高性能、低功耗、带 RAM的 实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有 闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与 CPU进行同步通
17、信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31 X8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与 DS1202兼容,但增加了主电源 /后备电源双电源引脚,同 时提供了对后备电源进行涓细电流充电的能力。DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电 源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当 Vcc2大于 Vcc1+0.2V 时,Vcc2给DS1302供电。当 Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768
18、kHz 晶振。RST是复位/片选线,通过把 RST输入驱动置高电平来启动所有的数 据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。Word资料当RST为高电平时,所有的数据传送被初始化,允许对 DS1302进行操作。 如果在传送过程中 RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK 为低电平时,才能将 RST置为高电平。I/O为串行数据输入输出端 (双向), 后面有详细说明。SCLK为时钟输入端。下图为DS1
19、302的引脚功能图:VCC2 匚xinX2GNDVCC1SCLKI/OW图3.1 DS1302引脚图管脚描述:X1 X2 32.768KHZ 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚此外,拓展中用到了 DS18B20温度传感器,其使用与 DS1302比较类似, 因此这里不再赘述。Word资料3.2 DS1302的使用方法使用DS1302时,要对其引脚和寄存器进行特殊设置,以实现所需功能。引 脚设置后面会提及,这里不做说明,主要讲一下程序的编写。DS1302的的工作过程中包过读写一个字节数据等过程,下面做相应的解释。/*功 能:
20、往DS1302写入数据*/void W1302(uchar ucAddr, uchar ucDa) (T_RST = 0;T_CLK = 0;T_RST = 1;RTInputByte(ucAddr); /* 地址,命令 */RTInputByte(ucDa); /* 写 1Byte 数据*/T_CLK = 1;T_RST = 0;/*功 能:读取DS1302某地址的数据*/uchar R1302(uchar ucAddr) (uchar ucData;T_RST = 0;Word资料T_CLK = 0;T_RST = 1;RTInputByte(ucAddr);/*地址,命令*/ucData
21、 = RTOutputByte();/*读1Byte数据*/T_CLK = 1;T_RST = 0;return(ucData);/*功 能:设置初始时间*/void Set1302(uchar *pClock)uchar i;uchar ucAddr = 0x80;EA = 0;W1302(0x8e,0x00);/*控制命令,WP=0,写操作?*/for(i =7; i>0; i-)W1302(ucAddr,*pClock);/*秒分时日月星期年*/pClock+;ucAddr +=2;W1302(0x8e,0x80);/*控制命令,WP=1,写保护?*/EA = 1;/*功 能:读取
22、DS1302当前时间*/Word资料 void Get1302(uchar ucCurtime) (uchar i;uchar ucAddr = 0x81;EA = 0;for (i=0; i<7; i+)(ucCurtimei = R1302(ucAddr);/*格式为:秒分时日月星期年*/ ucAddr += 2;EA = 1;3.3 LCD1602引脚功能1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也 有间隔起到了字符间距和行间
23、距的作用,正因为如此所以他不能显示图形n1602LCD是指显示的内容为 16X2,即可以显示两行,每行16个字符液 晶模块(显示字符和数字)。图3.2 LCD1602引脚图Word资料1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接 地电源时对比度最高(对比度过高时会产生 鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平 1时选择数据寄存器、低电平 0时 选择指令寄存器。第5脚:RW为读写信号线,高电平 (1)时进行读操作,低电平 (0)时进 行写操作。第6
24、脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.4 LCD1602 的使用LCD1602的使用与前面的DS1302的使用有类似的地方,包括引脚的设置和 对应的编程,引脚的设置后面会提及到,这里只涉及对应的编程。/*LCD1602 延时*/void Lcd_delay(uchar ms)uchar j;while(ms-)for(j=0;j<250;j+) ;/*LCD1602 忙等待*/Word资料void Lcd_busy_wait()Lcd_rs = 0;Lcd_rw = 1;Lcd_
25、en =1;Lcd_data = 0xff;while (Lcd_data&0x80);Lcd_en = 0;/*LCD1602命令字写入*/void Lcd_command_write(uchar command)Lcd_busy_wait();Lcd_rs = 0;Lcd_rw = 0;Lcd_en = 0;Lcd_data = command;Lcd_en =1;Lcd_en = 0;/*LCD1602 初始化 */void Init_lcd()Lcd_delay(20);Lcd_command_write(0x38);Lcd_delay(100);Lcd_comman/*LCD
26、1602 延时*/d_whte(0x38);Word资料Lcd_delay(50);Lcd_command_write(0x38);Lcd_delay(10);Lcd_command_write(0x08);Lcd_command_write(0x01);Lcd_command_write(0x06);Lcd_command_write(0x0c);Lcd_data = 0xff; /* 释放数据端 口 */void Lcd_char_write(uchar x_pos,y_pos,lcd_dat)/*LCD1602 字符写入*/ x_pos &= 0x0f; /* X 位置范围 01
27、5 */y_pos &= 0x01; /* Y 位置范围 0 1 */if(y_pos=1) x_pos += 0x40;x_pos += 0x80;Lcd_command_write(x_pos);Lcd_busy_wait();Lcd_rs = 1;Lcd_rw = 0;Lcd_en = 0;Lcd_data = lcd_dat;Lcd_en =1;Lcd_en = 0;Lcd_data = 0xff; /* 释放数据端 口 */Word资料4整体电路设计和程序由上面的分析可以得到实验的电路图如下:J雄-工加油晒 £t+IX 口饰2 :HErr>I加用FQF2FIL
28、MFfl.l'Att时空FQ间fcP0.4'A£HFlJUffiFfl.Ji'AffiH5IFD/WKW第£1卿P?网PS EN咛“1Al£PL侧工RR制-4FtW解pi .on?电Pl.lB除1陋P1.1出MlPi.i电"NTPl.4K4TDP1.S以即nPI3?eMPI.?加而料a取FROG由归物/£ d由LCD1 mi <W>'mu图4.1仿真电路图设计源代码如下:产*Word资料程序名称:LCD1602显示时间 显示当前温度*/*/*头文件*/#include <reg52.h>#
29、include <intrins.h>#define uint unsigned int#define uchar unsigned char#define nop() _nop_()sbit s1=P1A0;sbit s2=PWl;sbit s3=P1A2;sbit s4=P1A3;sbit DQ =P1A3;/定义 DS18B20通信端口sbit lcd_rs_port = P2A4;/* 定义 LCD 控制端口 */sbit lcd_rw_port = P2A5;sbit lcd_en_port = P2A6;#define lcd_data_port P0sbit led_
30、latch_port = P2A5; /* 发光二极管寄存器 LE 引脚*/sbit sled_latch_port = P3A6; /* 数码管寄存器 LE引脚*/sbit T_CLK = P3A6;/*实时时钟时钟线引脚 */sbit T_IO = P3A4;/*实时时钟数据线引脚 */sbit T_RST = P3A5;/*实时时钟复位线引脚 */sbit ACC0 = ACCA0;sbit ACC7 = ACCA7;uchar code mun_to_char = "0123456789ABCDEF"); /* 定义数字跟 ASCII码的关系*/uchar data
31、 time_data_buff7=0x50,0x59,0x23,0x31,0x12,0x04,0x12;/* 格式Word资料为:秒分时日月星期年*/uchar data lcd1602_line1=" 2000/00/00 000 "uchar data lcd1602_line2="00:00:00 00.0"ucharcodeWeeks3="SUN","MON","TUE","WED","THU","FRI","SAr&
32、#39;,"SUN"产*函数名:RTInputByte()功能:实时时钟写入一字节说明:往DS1302写入1Byte数据(内部函数)入口参数:d写入的数据返回值:无*/void RTInputByte(uchar d)uchar i;ACC = d;for(i=8; i>0; i-)T_IO = ACC0;/*相当于汇编中的 RRC */T_CLK = 1;T_CLK = 0;ACC = ACC >> 1;/* 函数名:RTOutputByte()功能:实时时钟读取一字节说明:从DS1302读取1Byte数据(内部函数)入口参数:无Word资料返回化ACC
33、*/uchar RTOutputByte(void)(uchar i;for(i=8; i>0; i-)(ACC = ACC >>1;/*相当于汇编中的 RRC */ACC7 = T_IO;T_CLK = 1;T_CLK = 0;)return(ACC);)产*W1302()功能:往DS1302写入数据说明:先写地址,后写命令/数据(内部函数)调用:RTInputByte() , RTOutputByte()入口参数:ucAddr: DS1302地址,ucData:要写的数据返回值:无*/void*W1302(uchar ucAddr, uchar ucDa) (T_RST
34、= 0;T_CLK = 0;/*地址,命令*/*写IByte数据*/T_RST = 1;RTInputByte(ucAddr);RTInputByte(ucDa);Word资料T_CLK = 1;T_RST = 0;)产*函数名:R1302()功能:读取DS1302某地址的数据说明:先写地址,后读命令/数据(内部函数)调用:RTInputByte() , RTOutputByte()入口参数:ucAddr: DS1302地址返回化 ucData :读取的数据*/uchar*R1302(uchar ucAddr)uchar ucData;T_RST = 0;T_CLK = 0;T_RST = 1
35、;RTInputByte(ucAddr);/* 地址,命令 */ucData = RTOutputByte();/* 读 1Byte 数据 */T_CLK = 1;T_RST = 0;return(ucData);)产*函数名:Set1302()功能:设置初始时间说明:先写地址,后读命令/数据(寄存器多字节方式)调用:W1302()入口参数:pClock:设置时钟数据地址 格式为:秒分 时日月 星期年Word资料7Byte (BCD 码)1B 1B 1B 1B 1B 1B 1B返回值:无*/void*Set1302(uchar *pClock)(uchar i;uchar ucAddr = 0
36、x80;EA = 0;W1302(0x8e,0x00);/* 控制命令,WP=0,写操作?*/for(i =7; i>0; i-)(W1302(ucAddr,*pClock); /* 秒分时日月星期年 */ pClock+;ucAddr +=2;W1302(0x8e,0x80);/* 控制命令,WP=1,写保护?*/EA = 1;产*函数名:Get1302()功 能:读取DS1302当前时间说 明:调 用:R1302()入口参数:ucCurtime:保存当前时间地址。当前时间格式为:秒分时日 月星期年7Byte (BCD 码)1B 1B 1B 1B 1B 1B 1B返回值:无*/void
37、*Get1302(uchar ucCurtime口)Word资料uchar i;uchar ucAddr = 0x81;EA = 0;for (i=0; i<7; i+)(ucCurtimei = R1302(ucAddr);/*格式为:秒分 时日月 星期 年*/ ucAddr += 2;EA = 1;/DS18B20延时函数void delay(unsigned int i)(while(i-);/DS18B20初始化函数void Init_DS18B20(void)(unsigned char x=0;DQ = 1; /DQ 复位delay(8); /稍做延时DQ = 0; 单片机将
38、DQ拉低delay(80); /精确延时大于480usDQ = 1; /拉高总线delay(14);x=DQ; /稍做延时后 如果x=0则初始化成功x=1则初始化失败delay(20);Word资料)/DS18B20读一个字节uchar ReadOneChar(void)(unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; /给脉冲信号dat>>=1;DQ = 1; /给脉冲信号if(DQ) dat|=0x80;delay(4);)return(dat);)/DS18B20写一个字节void Writ
39、eOneChar(unsigned char dat)unsigned char i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;)/DS18B20读取温度Word资料uint ReadTemperature(void)(unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0x44); / 启
40、动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE);/读取温度寄存器等(共可读9个寄存器)前两个就 是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625; /将温度的高位与低位合并t= tt*10+0.5; /对结果进行4舍5入return(t);/void lcd_delay(uchar ms) /*LCD1602 延时 */(uchar j;while(ms-)for(j=0;j<250;j+);Word资料)vo
41、id lcd_busy_wait() /*LCD1602 忙等待 */(lcd_rs_port = 0;lcd_rw_port = 1;lcd_en_port = 1;lcd_data_port = 0xff;while (lcd_data_port&0x80);lcd_en_port = 0;)void lcd_command_write(uchar command) /*LCD1602 命令字写入 */ (lcd_busy_wait();lcd_rs_port = 0;lcd_rw_port = 0;lcd_en_port = 0;lcd_data_port = command;l
42、cd_en_port = 1;lcd_en_port = 0;)void lcd_system_reset() /*LCD1602 初始化 */(lcd_delay(20);lcd_command_write(0x38);lcd_delay(100);lcd_command_write(0x38);lcd_delay(50);Word资料lcd_command_write(0x38);lcd_delay(10);lcd_command_write(0x08);lcd_command_write(0x01);lcd_command_write(0x06);lcd_command_write(0x
43、0c);lcd_data_port = 0xff; /* 释放数据端口 */void lcd_char_write(uchar x_pos,y_pos,lcd_dat) /*LCD1602 字符写入 */ x_pos &= 0x0f; /* X 位置范围 015 */y_pos &= 0x01; /* Y 位置范围 01 */if(y_pos=1) x_pos += 0x40;x_pos += 0x80;lcd_command_write(x_pos);lcd_busy_wait();lcd_rs_port = 1;lcd_rw_port = 0;lcd_en_port = 0
44、;lcd_data_port = lcd_dat;lcd_en_port = 1;lcd_en_port = 0;lcd_data_port = 0xff; /* 释放数据端口 */void keyscan()if(s1=0)lcd_delay(10);Word资料if(s1=0)(time_data_buff1+;if(time_data_buff 1=0x5a)(time_data_buff1=0x00;)while(!s1);if(time_data_buff1=0x0a)(time_data_buff 1=0x10;)if(time_data_buff1=0x1a)(time_data
45、_buff1=0x20;)if(time_data_buff1=0x2a)(time_data_buff1=0x30;)if(time_data_buff1=0x3a)(time_data_buff1=0x40;)if(time_data_buff1=0x4a)(time_data_buff1=0x50;)Set1302(time_data_buff);Word资料)if(s2=0)(lcd_delay(10);if(s2=0)(time_data_buff2+;if(time_data_buff2=0x24)(time_data_buff2=0x00;)if(time_data_buff2=
46、0x0a)(time_data_buff2=0x10;)if(time_data_buff2=0x1a)(time_data_buff2=0x20;)while(!s2);Set1302(time_data_buff);)if(s3=0)(lcd_delay(10);if(s3=0)Word资料time_data_buff5+;if(time_data_buff5=0x07)(time_data_buff5=0x00;)while(!s3);Set1302(time_data_buff);)if(s4=0)(lcd_delay(10);if(s4=0)(time_data_buff3+;if(
47、time_data_buff3=0x32)(time_data_buff3=0x01;)if(time_data_buff3=0x0a)(time_data_buff3=0x10;)if(time_data_buff3=0x1a)(time_data_buff3=0x20;)if(time_data_buff3=0x2a)Word资料time_data_buff3=0x30;)while(!s4);Set1302(time_data_buff);)void main()(uchar i;uint temp; / 温度值lcd_system_reset(); /*LCD1602 初始化 */ l
48、cd_data_port = 0xff; /* 释放 P0 端 口*/ led_latch_port = 0;sled_latch_port = 0;Set1302(time_data_buff); /*设置时间 */ while(1)Get1302(time_data_buff); /* 读取当前时间 */ temp = ReadTemperature();/* 读取当前温度值 */lcd1602_line13/*刷新显示*/=mun_to_chartime_data_buff6/0x10;lcd1602_line14=mun_to_chartime_data_buff6%0x10;/* 年
49、*/lcd1602_line16=mun_to_chartime_data_buff4/0x10;lcd1602_line17=mun_to_chartime_data_buff4%0x10;/* 月*/lcd1602_line19=mun_to_chartime_data_buff3/0x10;lcd1602_line110 = mun_to_chartime_data_buff3%0x10;/* 日 */for(i=0;i<3;i+) lcd1602_line1i+12=Weekstime_data_buff5&0x07i;/*星期*/Word资料lcd1602_line22 = mun_to_chartime_data_buff2/0x10;lcd1602_line23 = mun_to_chartime_data_buff2%0x10; /* 时*/lcd1602_line25 = mun_to_chartime_data_buff1/0x10;lcd1602_line26 = mun_to_chartime_data_buff1%0x10; /* 分*/lcd1602_line28 = mun_to_chartime_data_buff0/0x10;lcd1602_line29
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度门面房出租与租赁期限调整合同
- 二零二五年度诊所负责人安全责任免除合同
- 服务器采购合同共
- 无人机研发制造投资合同
- 水利设施施工合同
- 高考语文复习-文言文专题训练-《辽史》
- 高考语文复习:文言文霍去病专练
- 农业产业孵化项目合作协议书
- 业务流程外包服务协议内容详订
- 数字媒体设计技能考核点
- 2025年哈尔滨职业技术学院单招职业技能测试题库完美版
- 私募股权投资基金基础知识-《私募股权投资基金基础知识》高分通关卷5
- 老年重症患者静脉血栓栓塞症预防中国专家共识(2023)解读
- 北师大版四年级数学下册期末测试卷(一)(含答案)
- 2025年云南省曲靖市富源县能源局公开招聘引进煤矿安全监管急需紧缺人才笔试高频重点模拟试卷提升(共500题附带答案详解)
- 初中语文新人教部编版七年级下册第一单元核心素养教案(2025春详细版)
- 校园春季传染病预防
- 妇产科学(甲)知到智慧树章节测试课后答案2024年秋浙江大学
- 《小学数学“对分课堂”教学模式的实践探索》3900字(论文)
- 初中数学几何《旋转模型费马点》压轴题含答案解析
- 2025年中国中信集团招聘笔试参考题库含答案解析
评论
0/150
提交评论