1/33
文档分类:通信/电子

DS 1302-LCD时钟例程分析.docx


下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
DS 1302-LCD时钟例程分析.docx
文档介绍:
DS 1302-LCD时钟例程分析.docxDS1302-LCD时钟例程分析HC6800-EM3开发板用实践笔记编写人:邱双喜二O—三年十月十三FI日录索引Main.c 1voiddelay(uint16n) 1/*初始化系统定时器*/ 1voidsystimer_init(void) 1/**判断键值,矩阵键盘*/ 2uint8scan_key(void) 2/*启动clock数字闪烁*/ 3voidstart_flash(void) 3/*停止clock数字闪烁*/ 4voidstop_flash(void) 4/*更新LCD吋间*/ 4voidrefresh_clock(void) 4/*时钟设置*/ 5voidset_clock(void) 5main() 6voidtimel_isr()interrupt3 7Main.h 8Dsl302.c 9/*写一个字**/ 9voidwrite_ds13O2_byte(uint8dat) 9/*读一个字节*/ iouint8read_ds1302_byte(void) 10/*清除写保护引 10voidclear_ds!302_WP(void) 10/*设置写保护*/ 11voidset_ds1302_WP(void) 11/*设定时钟数据*/ 11voidset_tinie(uint8*tiniedata) 11/*读时钟数据*/ 12voidread_time(uint8*timedata) 12clsl302.h 12LCD1602.C 13/*等待繁忙标志*/ 13voidwait(void) 13/*写数据*/ 13voidw_dat(uint8dat) 13/*写命令*/ 13voidw_cmd(uint8cmd) 13/*发送字符串到LCD*/ 14void\v_string(uint8addr_start,uint8*p) 14/*发送数字到LCD(OO〜99)*/ 14voidw_data(uint8addr_start,uint8dat) 14/*显示两位空白*/ 14voidclear_data(uint8addr_start) 14/*初始化1602*/ 15voidLCD1602_init(void) 15//LCD1602.h 15程序设计流程分析: 15初始化系统定时器: 15初始化1602。 15设定时钟数据: 15发送字符串到LCD: 16发送数字到LCD(00~99): 16读时钟数据: 16更新LCD时间 16赋值kval=scankey (): 17判断kval=KSET: 17吋钟设置 17◊总结 18程序流程图 19Main.c/*LCD1602吋钟author:“金沙滩-刚哥”date:2013.9.25*/#includeumain.h"#include“dsl302.h“#include"LCD1602.h"#include'Temp.h"#include<intrins.h>#include<reg52.h>externGetTempO;externunsignedintidataTemperature;〃声明引用外部函数//声明引用外部变量uint8Time[7]={55,59,11,22,2,2,11};〃秒分时日月周年10-08-1511:59:55uint8T_tnip[7];uint8Num,T_n=0;〃此表为LCD的字模,BCD码的0-9,最后一位是小数点unsignedcharcodeDisp_Tab[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x3&0x39,0x2e|;unsignedlongLedOut[5],LedNumVal;voiddelay(uint16n)while(n—);/*初始化系统定时器巧voidsystimer_init(void)TMOD&二OxOF;TMODl=0x10;TH1=0xDC;//与INTO有关的计数器模式3的TO控制器//与INTO无关的定吋器模式1的T1控制器//定时10ms,Tl=0xDC00=56320,(65535-56320)/1000=9.2msTL1=0x00;TRI=0; 〃关闭定时器T1ET1=0;〃定时器T1允许中断位为禁止EA=1; 〃开启总中断/**判断键值,矩阵键盘*/uint8scan_key(void)uint8val=O;〃定义SI按键:K_ADD,力II;只判断pl.7,将S2~S16屏蔽掉,只有S1可以拉成0KeyOutl=0;KeyOut2=1;KeyOut3=1;KeyOut4=1;if(Keyln4==0){delay(KEY_DELAY);if(Keyln4==0)val=K_A 内容来自淘豆网www.taodocs.com转载请标明出处.