ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:27.25KB ,
资源ID:3669182      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3669182.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的1302时钟芯片C程序.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的1302时钟芯片C程序.docx

1、基于51单片机的1302时钟芯片C程序/*=使用1602液晶显示DS1302+c51时钟 注:AT89C51使用12M晶振=*/#include #include #include #define delayNOP(); _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;#define LCM_RW P2_5 /定义引脚#define LCM_RS P2_4#define LCM_E P2_6#define LCM_Data P0#define Busy 0x80 /用于检测LCM状态字中的Busy标识#define uchar unsigned char#defin

2、e uint unsigned intsbit T_CLK=P35;sbit T_IO =P36;sbit T_RST=P37;sbit ACC0=ACC0;sbit ACC7=ACC7;sbit LED=P16; /背光灯输出 (因本实验板无此功能 所以此项功能无效)sbit system=P20; /模式sbit TimerUp=P22; /时间减sbit TimerDown=P21; /时间加sbit k1=P23;sbit k2=P27;sbit k3=P30;sbit k4=P31;sbit D1=P32;sbit D2=P33;sbit D3=P34;sbit Speaker=P1

3、5; /蜂鸣器sbit ds18b20=P17;/*ds1302函数声明*/void Set(uchar,uchar); /根据选择调整相应项目void RTInputByte(uchar); /输入 1Byte */uchar RTOutputByte(void); /输出 1Byte */void W1302(uchar, uchar); /向DS1302写入一个字节uchar R1302(uchar); /从DS1302读出一个字节void Set1302(uchar * ); /设置时间 void KeySound(); /按键音void ClockSound(); /闹铃蜂鸣声/*温

4、度函数声明*/void display_tem();uint read_tmp();void tmpchange();void tmpwrite(uchar dat);uchar tmpread_byte();bit tmpread_bit();void dsreset();void delay2(uint z);/void time_LCM(uchar);void keyscan();uchar id,msec,model,LedTime,flag,d,num1,num2,num3,c1,c2,c3,flag1;bit a,b; uchar inittime7=0x00,0x00,0x12,

5、0x20,0x07,0x02,0x10; /初始化后设置为:2010年7月20日星期2 12点0分0秒void Out_LCM(void); /显示屏幕void model0(void); /显示输出void model1(void);void model2(void);void model3(void);void model4(void);void model5(void);void model6(void);void mode1();void mode2();void mode3();void mode4();void mode5();void mode6();void mode7();v

6、oid mode8(); void id_case1_key(); /项目调整void Modset(); /模式键处理void WriteDataLCM(uchar WDLCM);void WriteCommandLCM(uchar WCLCM,BuysC);uchar ReadStatusLCM(void);void LCMInit(void);void OutputInformation(uchar X, uchar Y, uchar DData);void DisplayListChar(uchar X, uchar Y, uchar code *DData);void Delay5M

7、s(void);void Delay400Ms(void);void systemsetup(void); /进入系统设置uchar code systemp=System.setup; /字符串输出(系统设定)uchar code TIMER=Time; /字符串输出(时间)uchar code TIMER1=T; /字符串输出(时间)uchar code DATE=Date; /字符串输出(日期)uchar code DATE1=D; /字符串输出(日期)uchar code alarmclock=Clock; /字符串输出(闹铃)uchar code lamp=Lamp; /字符串输出(

8、背光灯)uchar code reset=Reset; /字符串输出(时间归零)uchar code exit=Exit; /字符串输出(退出)uchar code set=Set; /字符串输出(设置)uchar code sec=sec; /字符串输出(秒)uchar code ClockSet=ClockSet; /字符串输出(闹铃设置)uchar code ClockOn=ON; /字符串输出(ON)uchar code ClockOff=OFF; /字符串输出(OFF)uchar code take=TakingTimeToSet; /字符串输出(ON)uchar code shi1

9、=06:30;uchar code shi2=07:30;uchar code shi3=11:30;uchar code shi4=12:30;uchar code shi5=18:30;uchar code shi6=19:30;uchar code shi7=00:30;uchar code shi8=03:30;void timesetup(void); /时间设置void datesetup(void); /日期设置void alarmclockset(void); /闹铃设置void lampsetup(void); /背光灯设置 void timereset(void); /时间

10、清零/*/void delay1(int ms) unsigned char y ; while(ms-) for(y = 0 ; ymax) item=min; if(itemmin) item=max; W1302(0x8e,0x00); /允许写操作 W1302(address,item/10*16+item%10); /写入DS1302 /转成BCD码 W1302(0x8e,0x80); /写保护,禁止写操作 /屏幕显示void Out_LCM(void) switch(model) case 0: model0(); break; case 1: model1(); break; c

11、ase 2: model2(); break; /在不同的条件下显示不同的字符 case 3: model3(); break; case 4: model4(); break; case 5: model5(); break; case 6: model6(); break; /*model为零时第一行显示时间,不为零时显示system setup*/void model0() /DisplayListChar(0,0,TIMER); /显示固定字符串(Time) OutputInformation(9,0,0x20); /不显示 OutputInformation(12,1,0x20);

12、/不显示 /OutputInformation(15,1,0x20); /不显示 OutputInformation(4,1,0x2f); /显示固定字符 / OutputInformation(7,1,0x2f); /显示固定字符 / OutputInformation(10,1,0x2f); /显示固定字符 / / DisplayListChar(0,1,DATE); /显示固定字符串Date(日期) display_tem(); if(a=1) /冒号闪烁 OutputInformation(3,0,0x3a); OutputInformation(6,0,0x3a); else OutputInformation(3,0,0x20); OutputInformation(6,0,0x20); /*model为零时第二行显示日期,不为零显示设置项目*/ OutputInformation(0,1,2); /显示年 Out

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1