Advertisement

Keil下用C语言开发的多功能计时器

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本项目介绍如何在Keil环境下使用C语言编写一个具备多种功能的计时器程序,适用于嵌入式系统开发。 #include 这段代码包含了一个定时器中断服务程序、时间读取函数以及设置时间的函数,并且涉及到了I2C通信协议来操作DS1307实时时钟模块。以下是简要概述: ```c void timer_interrupt_service(void) { bit EATemp; if (en == 3) { // 正计时模式 count++; if(count >= 20){ count = 0; dsec++; // 每隔约0.1秒,最后一位加一。 if(dsec == 10){ dsec = 0; sec++; if(sec == 60) { sec = 0; min++; if(min == 60) min = 0; // 最大计时到60分钟 } } } } else { // 倒计时模式 count++; if(count >= 20){ count = 0; dsec--; if(dsec == -1) { dsec = 9; sec--; if(sec == -1) { sec = 59; min--; if(min == -1) min = 59; } } } // 倒计时结束处理 } dis_min_h=tab[min/10]; dis_min_l=tab[min]; dis_sec_h=tab[sec/10]; dis_sec_l=tab[sec]; } void ReadTime(unsigned char TIME[7]) { bit EATemp; // I2C通信读取时间 } ``` ```c void SetTime(unsigned char TIME[7]){ bit EATemp; for(temp = 0; temp < 7; ++temp) TimeTemp[temp] = TIME[temp]; iicstart(); iicwriteda(0xd0); // I2C通信写入时间 } ``` ```c void SwitchRTC(unsigned char SWITCH){ bit EATemp; if (SWITCH) temp &= 0x7f; else temp |= 0x80; iicstart(); iicwriteda(0xd0); // I2C通信设置写入 } ``` 以上代码展示了如何通过I2C总线来操作DS1307实时时钟模块,包括读取、修改时间以及控制是否允许改变内部的时间。这些函数可以被集成到更复杂的系统中以实现对时钟的精确管理和监控功能。 这段描述总结了上述提供的代码段的主要功能和用途,并且没有包含任何联系方式或网址等信息。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • KeilC
    优质
    本项目介绍如何在Keil环境下使用C语言编写一个具备多种功能的计时器程序,适用于嵌入式系统开发。 #include 这段代码包含了一个定时器中断服务程序、时间读取函数以及设置时间的函数,并且涉及到了I2C通信协议来操作DS1307实时时钟模块。以下是简要概述: ```c void timer_interrupt_service(void) { bit EATemp; if (en == 3) { // 正计时模式 count++; if(count >= 20){ count = 0; dsec++; // 每隔约0.1秒,最后一位加一。 if(dsec == 10){ dsec = 0; sec++; if(sec == 60) { sec = 0; min++; if(min == 60) min = 0; // 最大计时到60分钟 } } } } else { // 倒计时模式 count++; if(count >= 20){ count = 0; dsec--; if(dsec == -1) { dsec = 9; sec--; if(sec == -1) { sec = 59; min--; if(min == -1) min = 59; } } } // 倒计时结束处理 } dis_min_h=tab[min/10]; dis_min_l=tab[min]; dis_sec_h=tab[sec/10]; dis_sec_l=tab[sec]; } void ReadTime(unsigned char TIME[7]) { bit EATemp; // I2C通信读取时间 } ``` ```c void SetTime(unsigned char TIME[7]){ bit EATemp; for(temp = 0; temp < 7; ++temp) TimeTemp[temp] = TIME[temp]; iicstart(); iicwriteda(0xd0); // I2C通信写入时间 } ``` ```c void SwitchRTC(unsigned char SWITCH){ bit EATemp; if (SWITCH) temp &= 0x7f; else temp |= 0x80; iicstart(); iicwriteda(0xd0); // I2C通信设置写入 } ``` 以上代码展示了如何通过I2C总线来操作DS1307实时时钟模块,包括读取、修改时间以及控制是否允许改变内部的时间。这些函数可以被集成到更复杂的系统中以实现对时钟的精确管理和监控功能。 这段描述总结了上述提供的代码段的主要功能和用途,并且没有包含任何联系方式或网址等信息。
  • -
    优质
    《易语言多功能多开器》是一款专为使用易语言开发环境的用户设计的强大工具。它提供了便捷的多任务处理功能,允许同时运行多个应用程序实例,极大地提升了工作效率和灵活性,是程序员日常开发中的得力助手。 只要软件使用了互斥体机制就可以实现多开。不过需要注意的是,并不是所有的软件都能通过这种方式实现多开,只有单纯依赖互斥体来防止多开的软件才适用这种方法。如果某个软件还采用了其他手段来限制多开或者根本就不采用互斥体的话,则无法轻易地实现多开了。 已知可以进行多开操作的应用包括微信、酷狗音乐、千千静听和TGP等,对于其它应用则需要自行尝试是否能够成功实现多开功能。
  • C实现天数倒
    优质
    本项目使用C语言编写了一个简单的程序,能够显示从当前日期到指定结束日期之间的剩余天数,并实时更新倒计时。适合需要定时提醒或计划管理的用户。 一年中从某一天倒计时N天后的具体日期如何确定?例如,从2016年3月21日起倒数198天后,会到达2016年9月29日这一天。
  • -源码分享
    优质
    本项目提供一款基于易语言开发的多功能多开器源代码,支持同时运行多个程序实例,并具备丰富的自定义设置选项。 虽然被称为万能解决方案,但实际上只适用于使用互斥体类型的软件。如果某个软件采用了其他方法来防止多开或根本不使用互斥体,则无法实现多开了。需要注意的是,微信、酷狗音乐以及千千静听等软件可以被成功地进行多开操作,而对于其他的软件,请自行尝试使用dimo来进行测试和验证。
  • C科学
    优质
    这是一款使用C语言编写的科学计算器程序,具备基本算术运算及高级数学函数功能,适用于进行复杂的科学计算和工程分析。 使用C语言编写的小型计算器能够进行基本运算、三角函数、指数函数以及对数函数的计算,并具备计算优先级检查机制,支持随意组合计算表达式。执行代码后,通过输入help命令可以获取帮助文档。
  • C科学
    优质
    这是一款使用C语言编写的科学计算器软件,具备强大的数学计算功能,包括基本算术、三角函数、指数对数等多种运算模式。适合学生和科研人员日常学习与工作需求。 实现符号+、-、*、/的计算,并处理(的优先级。例如:(9+8)*(4*5/8)+8+9*(7+9)。
  • C科学
    优质
    本项目旨在使用C语言开发一款功能全面的科学计算器应用程序,支持基础运算及高级数学函数。 用C语言实现一个科学计算器,支持加减乘除等多种复杂运算,并具备优秀的图形界面。
  • CPL0编译
    优质
    本项目为一个使用C语言实现的PL/0语言编译器,能够解析PL/0源代码并生成相应的目标代码。它提供了一个学习编译原理和实践编程技巧的良好平台。 C语言编写的PL/0语言编译器是学习编译原理的基础工具之一。由于PL/0是一个完备的语言,它最适合作为编写编译器的入门语言。
  • 在UbuntuC通过TCP通信聊天室
    优质
    本教程介绍如何在Ubuntu操作系统中使用C语言进行TCP协议编程,实现一个简单的基于文本的聊天室应用程序。 1. 系统采用Client/Server架构。 2. Client A 在登录聊天服务器前需要注册自己的ID和密码。 3. 注册成功后,Client A 可以通过自己的ID和密码登录聊天服务器。 4. 多个客户端可以同时登录聊天服务器,并与其他用户进行通讯聊天。 5. 成功登陆后的Client A 可查看当前在线的其他用户列表(即Client X)。 6. Client A 可选择向某个特定用户发送消息,实现“悄悄话”功能。 7. 同时支持向所有在线用户群发消息的功能。 8. 当Client A 退出聊天服务器时会保存其聊天记录。 9. 聊天服务端将维护并存储所有用户的聊天记录作为临时文件以便查看。