设计显示年月日小时分钟秒的电子时钟,每当用户按报时键或整点时,时钟语音提示当前时间。 10
求C语言编写的程序。设计芯片为89s51.语音模块1700。直接使用单片机设计,利用脉冲。而不用时钟芯片。怎么编写呢!...
求C语言编写的程序。设计芯片为89s51.语音模块1700。
直接使用单片机设计,利用脉冲。而不用时钟芯片。怎么编写呢! 展开
直接使用单片机设计,利用脉冲。而不用时钟芯片。怎么编写呢! 展开
展开全部
这个是基于ds1302用1602显示的能实现时间(年、月、日、时、分、秒)的显示、调整、设定等功能
太多了可能不太完整,你要自己再仔细改改。
/*============================================================
使用1602液晶显示DS1302+c51时钟
[注12M晶振]
=============================================================*/
#include <AT89x52.h>
#include <string.h>
#include < intrins.h >
#define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;
#define LCM_RW P3_1 //定义引脚
#define LCM_RS P3_0
#define LCM_E P3_2
#define LCM_Data P0
#define Busy 0x80 //用于检测LCM状态字中的Busy标识
#define uchar unsigned char
sbit T_CLK=P2^4;
sbit T_IO =P2^5;
sbit T_RST=P2^6;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
sbit system=P1^1; //模式
sbit TimerUp=P1^2; //时间加
sbit TimerDown=P1^0; //时间减
sbit Speaker=P2^1; //蜂鸣器
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(); //闹铃蜂鸣声
uchar id,msec,model,LedTime,d;
bit a,b; //闪烁标志位
uchar inittime[7]={0x00,0x10,0x19,0x29,0x03,0x04,0x06}; //初始化后设置为:06年3月29日星期3 19点10分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 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 Delay5Ms(void);
void Delay400Ms(void);
void systemsetup(void); //进入系统设置
uchar code systemp[]={"System.setup"}; //字符串输出(系统设定)
uchar code TIMER[]={"Time"}; //字符串输出(时间)
uchar code DATE[]={"Date"}; //字符串输出(日期)
uchar code alarmclock[]={"Clock"}; //字符串输出(闹铃)
uchar code lamp[]={"Lamp"}; //字符串输出(背光灯)
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)
void timesetup(void); //时间设置
void datesetup(void); //日期设置
void alarmclockset(void); //闹铃设置
void lampsetup(void); //背光灯设置
一段单片机播放音乐的汇编程序:http://hi.baidu.com/shizengh/blog/item/fd9f72085b8f4d32b1351de1.html
太多了可能不太完整,你要自己再仔细改改。
/*============================================================
使用1602液晶显示DS1302+c51时钟
[注12M晶振]
=============================================================*/
#include <AT89x52.h>
#include <string.h>
#include < intrins.h >
#define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;
#define LCM_RW P3_1 //定义引脚
#define LCM_RS P3_0
#define LCM_E P3_2
#define LCM_Data P0
#define Busy 0x80 //用于检测LCM状态字中的Busy标识
#define uchar unsigned char
sbit T_CLK=P2^4;
sbit T_IO =P2^5;
sbit T_RST=P2^6;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
sbit system=P1^1; //模式
sbit TimerUp=P1^2; //时间加
sbit TimerDown=P1^0; //时间减
sbit Speaker=P2^1; //蜂鸣器
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(); //闹铃蜂鸣声
uchar id,msec,model,LedTime,d;
bit a,b; //闪烁标志位
uchar inittime[7]={0x00,0x10,0x19,0x29,0x03,0x04,0x06}; //初始化后设置为:06年3月29日星期3 19点10分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 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 Delay5Ms(void);
void Delay400Ms(void);
void systemsetup(void); //进入系统设置
uchar code systemp[]={"System.setup"}; //字符串输出(系统设定)
uchar code TIMER[]={"Time"}; //字符串输出(时间)
uchar code DATE[]={"Date"}; //字符串输出(日期)
uchar code alarmclock[]={"Clock"}; //字符串输出(闹铃)
uchar code lamp[]={"Lamp"}; //字符串输出(背光灯)
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)
void timesetup(void); //时间设置
void datesetup(void); //日期设置
void alarmclockset(void); //闹铃设置
void lampsetup(void); //背光灯设置
一段单片机播放音乐的汇编程序:http://hi.baidu.com/shizengh/blog/item/fd9f72085b8f4d32b1351de1.html
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
展开全部
时钟是有的,你在我的百度空间应该看见了。有原理图。防真和程序,就是差1700语音模块
来自:求助得到的回答
抢首赞
已赞过
已踩过<
评论
举报
收起
你对这个回答的评价是?
展开全部
89s51最小系统板中我要实现开机LED灯亮 复位时断灭一下 怎么做到 就是电路图是什么 怎么接
展开全部
可以帮你搞个
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询