⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 c语言源玛,扫描的游戏代码,攻大家看.多体意见
💻 TXT
字号:
    这纯粹是一个练手的东东。叫什么名字呢?就叫“jimo版电子30年历”吧。不过,也可以实用的哦。
    如果你觉得你从中获益,就向你不认识的人提供一次帮助。
    如果你做了板,还觉得挺漂亮的,就送我一块。我的电路是在试验板上完成的(惭愧,我不会画电路图,也不会制板)。这样我也可以做一个漂亮的电子日历。

    我设计时,目标之一是多MPU易于迁移的。事实上,几乎所有的代码是在Windows操作系统里运行调试的,仅仅和硬件相关的少量代码是在Atmega8上调试的。
    不仅如此,硬件线路设计也是非常的自由,在写代码时已经考虑了硬件线路设计的某些不便,因此,需要改动硬件线路的连接时,不需要带原代码进行改动,只需要调整一些定义就可以。
    因为硬件资源有限,因此,只提供了30年的日历数据。如果换成Atmega16,则可以轻而易举的做成“百年历”。

日历功能说明:
    日历的界面标准配置是:11位LED数码显示管,10个LED指示灯,一个蜂鸣器,上下左右四个按钮。3个指示灯用于指示当前正在调整时间、日期和闹钟,另外7个指示灯指示闹钟星期天到星期六的有效日期。
    加电时,日历从2000年1月1日0点时刻开始计时。
    一共提供5个闹钟,9个铃声,可控制的整点半点报时。
    调整日期时,阴历、星期自动调整。
    按左键显示日期。7个指示灯还表示整点报时是有有效。显示日期的时候,长按左键可以开关整点报时。如果当天是某节气,则显示该节气的序号(没有点阵式LED嘛)。
    按上下键显示闹钟。
    按右键显示阴历。并显示下一个节气的序号及距当天还有多少天。
    长按右键,进入设置状态。在设置状态,按上下键选择设置闹钟时间日期。

    除了参考了Atmega8的Datasheet的少量代码,其它代码都是原创。但是不排除和他人的代码相似。


硬件设计指南:
    应用在Atmega8上时,PORTD口驱动LED的8个段,PC0-PC4做位选。
    PB1驱动蜂鸣器,PB2-PB5作按键输入,下拉表示按键。PB6-PB7接32768Hz晶振。

    前面说了,设计目标之一是易于迁移,因此我把与硬件相关的内容没有设计到核心部分。如果要迁移到不同的硬件平台上,下列几个类及文件可能需要重写:
        CAvrCalendar,
        CEEprom,
        CRing,
        Interrupt.cpp

    1、CAvrCalendar
    CAvrCalendar是日历框架的派生类,实现在不同硬件平台上的主程序运行。包括端口初始化、时钟初始化、LED驱动、按键驱动。
    日历核心只需要一个64Hz的精确定时即可,时钟初始化就是为了得到这64Hz的精确时钟。
    日历核心假设所需的四个按键使用一个字节的其中4个比特位来表示,按键驱动则是获得当前四个按键状态的,某个键接触用1表示,断开了用0表示。


    2、CEEprom
    闹钟数据及日历数据是保存在EEPROM里的,不同的硬件读写EEPROM的方法可能会不一样。或者,干脆选择其它的保存方式。CEEprom就是提供掉电数据保存的。

    3、CRing
    驱动铃声的方式亦随硬件的不同而变化,因此,根据不同的硬件来编写合适的铃声驱动代码。
    铃声是用16Hz定时信号控制,16位Timer驱动的,每一个脉冲相当于乐谱里的1/16拍,针对不同的硬件,需要修改里面定义的访问硬件的宏,及表示12个乐符频率的代码。当然在AVR上是不需要再修改了。
    乐谱的表示,在Ring.cpp里有说明。作为一份上再调试中的代码,只给了两个非常简单的乐谱。一个是大家常用的电子钟的“嘀嘀嘀嘀……嘀嘀嘀嘀……”声,一个是“1234567”。

    4、Interrupt.cpp
    毫无疑问这是和硬件紧密相关中断处理。现在的电子日历只需要一个精确的64Hz定时中断。至于里面还有一个EEPROM准备好中断,那是为EEPROM写而准备的,不属于日历的核心需要。


    遗憾之:
    1、
    应用在Atmege8上,因为Flash空间的限制,不能把节气计算的代码编译进去,所以没有节气显示的功能。但是已经写好的代码都是经过调试无误的。
    2、
    EEPROM读写是我自以为很得意的一段代码,居然运行的结果不对,读写EEPROM的位置不对,数据也不对,调试了多天依旧没有找到问题。本来想调试好再发布的,但是我马上要回老家过年,没有时间上网了,就只好将有问题的代码上传,恳请大家帮我指出其中的错误,年后我再来维护这份代码。

    上传之前,我对代码的版面作了一下美化,希望没有因此无意中弄坏代码。

AVR快乐。

jimo
2007.2.8

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -