您当前的位置:钢材 > 型钢 > 市场分析

基于单片机控制的智能定时闹钟设计,单片机报时闹钟代码

来源:头条 作者: chanong
分享到
关注德勤钢铁网在线:
  • 扫描二维码

    关注√

    德勤钢铁网微信

在线咨询:
  • 扫描或点击关注德勤钢铁网在线客服

图14.1 电子钟

记得刚开始学**单片机的时候,我只能写一些汇编代码。接下来的一个月,我学会了如何创建一个电子时钟程序,但是我学会了如何创建一个非常简单的程序,不使用任何时钟芯片,只是使用微型计算机的定时器来存储时间并功能性地显示小时、分钟和时间。这是某种东西。它还具有简单的秒闹钟功能。不过,我很怀念以前学**微型计算机的美好时光,也很高兴当年能够专心学**微型计算机。后来,他还制作了一个像样的电子钟(见图14.1)。在接下来的内容中,我将分享它的创作过程。

零件清单零件清单是制作此电子表的基本零件,还有一些剩余材料未包含在清单中。从零件清单(见表14.1)可以看出,总成本不超过80元。不过,最近AVR单片机的价格明显上涨,网上可以买到18元左右。如果您想在淘宝上购买液晶屏,我们建议您搜索关键字ST7565,这样您就可以找到ST7565控制器的12864液晶屏。其他常用零件可在一般电子市场购买。

图14.2 零件系统图

表14.1 材料清单

电路原理如图14.3所示,选择熟悉的AVR单片机Atmega8作为单片机(MCU)。程序存储器大小为8KB,数据RAM大小为1KB,工作电源电压范围为2.7至5.5V,最高工作温度为+85C,最低工作温度为-40C。时钟芯片为DS1302。 DS1302是美国DALLAS公司推出的一款配备RAM的高性能、低功耗实时时钟电路。可测量年、月、日、星期日、时、分、秒,具有闰年功能、补偿功能,工作电压2.55.5V。 3线接口用于与MCU同步通信。最后利用SD卡的SPI模式连接到单片机的SPI接口并交换数据。 SD卡对应的是大容量SPI接口FLASH,也可以在生产阶段更换为大容量FLASH芯片。只需4 根电线即可将12864 LCD 连接到微控制器。由于使用的控制器是ST7565,它没有自带中文或英文字体,因此您需要创建自己的字体。不过,这种液晶屏价格便宜,而且看起来很小。我购买的液晶显示屏具有橙色背光,在夜间发出迷人的光芒。

图14.3 电路图

工作原理在开始之前,我们先介绍一下工作原理。控制芯片采用AVR公司的atmega8单片机(简称M8)。也可以使用熟悉的51单片机(程序可以从本书附带的光盘中下载,并可以根据需要进行修改或移植)。该程序读取您SD卡中的TXT文件,并显示您每天需要提醒的内容。因此,假期、生日、纪念日等提醒内容可以通过电脑轻松更改。您无需对程序代码进行任何特殊更改即可更改LCD 屏幕上的提醒内容,只需编辑TXT 文件即可。 SD卡通过SPI接口与微控制器交换数据。液晶屏采用串口128x64黑白液晶屏,控制器为ST7565,仅需4个I/O口与微控制器连接。时钟芯片采用著名的DS1302。时钟芯片通过3个I/O口与单片机连接,电源采用USB接口的5V电源,经1117-3.3电源稳压芯片转换为3.3V电压后供给至单片机。微控制器。Masu。LCD和SD卡,也可以直接使用3.3V电源。这是一个电子时钟,可让您使用两个按钮设置时间和闹钟。当手表正常工作时,第二个按钮可以独立打开或关闭闹铃。

使用方法(1) 在电脑上使用WinXP系统将SD卡格式化为FAT文件系统。

(2) 首先将字体复制到SD卡中,这样就可以在LCD上显示汉字了。

(3) 在根目录下新建一个文本文件“Reminder.txt”。

(4) 在文件中写入一行: ****-02-13\'明天是情人节' 这将告诉每年2月13日的电子钟明天是情人节,我们会通知您。天。

你可以看到这个电子钟没有农历显示,但是如果你想显示农历怎么办?如果你朋友的生日是按照农历计算的怎么办?其实很简单就是。在文件中切换公历和农历只是时间问题。例如:2010-02-13“农历2009-12-30”。注意:*是通配符,有任何含义。示例:2010-**-**\'Year of the Tiger\' 表示2010 年中的任何日期都将出现在虎年中。

创建和使用字体是本作品中的关键知识之一。 GB2312是中国国家标准简化字符集,全称《信息交换用汉字编码字符集·基本集》,也称为GB0。由中国国家标准局公布,1981年5月1日起施行。 GB2312编码在中国大陆通用,新加坡等国家也使用这种编码。中国大陆的大部分中文系统和国际软件都支持GB2312。

GB2312标准共收录了6763个字符,其中一级汉字3755个,二级汉字3008个,以及拉丁文、希腊文、日文平假名和片假名,俄语还收录了682个字符,其中西里尔字母为这个单词。 GB2312的出现基本上满足了汉字字符计算机处理的需要。在GB2312中,所收集的汉字被“划分”,每个区域包含94个汉字/符号。这种表示也称为位置代码。

01-09 区域是特殊符号。

16至55区为一级汉字,按拼音排序。

56到87的范围是二级汉字,按部首和笔画数分类。

区域10-15 和88-94 未编码。

例如,字符“A”是GB2312中的第一个汉字,其位置码为1601。

在计算机上的TXT 文本文件中,每个汉字和符号都由两个字节表示。第一个字节称为“高字节”,第二个字节称为“低字节”。为了保持与原始ASCII 码的兼容性,“高字节”为0xA1 至0xF7(0xA0 加区号01 至87),“低字节”为0xA1 至0xFE(添加01 至94)。0xA0)。一级汉字从区域16开始,因此汉字区域的“高字节”范围是0xB0到0xF7,“低字节”范围是0xA1到0xFE,占用的码位是72 x 94=。 6768。其中,D7FA 至D7FE 五个职位空缺。例如,单词“ah”在文件中存储为两个字节:0xB0(第一个字节)0xA1(第二个字节)。

制作步骤一:将各个零件按照片放置在穿孔板上,插入写有程序的芯片。

2 根据电路图顺序连接电线。

3 准备好所有组件后,即可组装它们。

4 最后,连接USB电源,应该可以正常工作了。

DIY的过程不仅仅是一个制作的过程,更是一个让你的作品变得更加美观的过程,所以我们开始了这款定制提醒闹钟的美化过程。

将钢丝弯曲成如图所示的形状,将钢丝拧紧,然后将万能板拧紧。

使用六角扳手或普通扳手拧紧螺钉。

那么如何找到字体中的点阵数据呢?文件编码的区号范围从0xA1(十六进制)开始,对应于区号中区号的第一个区域。第二个字节是一个位。汉字代码和范围。这也从0xA1(十六进制)开始,对应于特定区域的第一位代码。也就是说,汉字编码减去0xA0A0,就得到了汉字的位置编码。例如,汉字字符“A”的内码以十六进制表示为“0xB0A1”,其中前两位“0xB0”代表编码的区号,后两位“0xA1”代表编码的位码。因此,“A”的区号为0xB0A1-0xA0A0=0x1001,将区号和位码分别转为十进制16和01,得到第16区第一个字符位置的汉字Get “A”。文件中的位置是从“32[(16-1)94+(1-1)]=45120”开始的32个字节。这是“A”的显示点阵所需的字节数据。其中,32是对16x16网格取模的字节数,表示32字节的大小。微控制器通过取出这32个连续字节并将它们发送到LCD上的相应位置,可以正确显示汉字和图形符号。

最后使用字体生成工具生成需要的字体。互联网上有很多这样的工具和软件,因此请选择您自己的。我使用的是一个未注册的“汉字建模字体生成”小工具,虽然有使用次数的限制,但偶尔生成字体也足够了。这是因为该LCD显示数据是以1列(8点)地址单元,而不是1行(8点)或点地址单元。因此,在制作模具时,需要采用立式(立柱)成型方式,这样使得后期的程序创建更加容易。当然,您也可以直接选择“@songtai”等字体。当您在工具中预览时,您会看到该字体已旋转90 度。单击“生成字体库”,然后在弹出菜单中输入路径和文件名。按“确认”,就会生成需要的字体(注意后缀是.dot)。该程序可以读取32字节的旋转字体数据或点阵数据,并显示汉字字符。

GB2312汉字库的大小超过200字节,单片机的FLASH没有足够的空间来存储它。至于怎么做,其实有很多种方法。一种实用、简单、方便的方法是连接外部闪存芯片。 SST25VF020、AT45DB161等都是串行接口,可以节省大量I/O,读取速度足够快,但增加了制造成本。还有一种直接保存到SD卡的方法,但过程相当复杂。同时,字体显示速度也不及外接FLASH快。但最终我选择了第二种方法,以后的小制作也会尝试第一种方法。

为了使您的计算机和微控制器更轻松地相互交换数据,您需要将SD 卡格式化为FAT 文件系统。然后单片机解释SD卡格式化的FAT文件系统,并据此读取txt文件,最后检索出对应的字体数据并显示在液晶屏上。实现细节请自行分析源码。源代码可以从本书附带的CD中下载。

编程步骤一旦我写完程序,我就迫不及待地想要运行电路。连接电子钟后,程序首先初始化硬件(LCD、SD卡、时钟芯片)。之后读取单片机EEPROM中的闹钟信息,如果没有则创建初始化内容写入EEPROM中。最后,液晶显示屏以四行显示时间、日期、星期几和闹钟。如果有提醒信息,闹钟时间和提醒内容会交替闪烁。在程序的循环体中,程序周期性地读取SD卡中的TXT文件。如果TXT文件中定义的日期与时钟芯片上的日期匹配,则单片机读取SD卡中相应的显示内容。当我在LCD 上显示文本文件时,会显示前4 行。如果没有相等的日期,微控制器将显示默认字符串“MADEBYZBJ”,但您可以将其更改为您自己定义的字符串。

电子钟的右侧有四个按钮,但本次作品中只使用了最上面的两个按钮;其他两个按钮的功能并未使用。这四个按钮的一端连接到单片机的中断引脚,在程序中设置为上拉等待下降沿中断。按钮的另一端连接单片机的四个公共I/O,并将这四个I/O设置为低电平。当按钮按下时,会触发下降沿中断,此时程序改变中断,将其设置为低电平,拉高四个公共I/O口,并将四个公共I/O口连接起来。端口的电平状态。每个引脚。当某个引脚读到低电平时,可以判断相应的按钮已被按下。最后,我们等待按钮被释放并继续循环这个过程。

时钟工作时,按第一个按钮即可进入时钟设置状态。再次按第一个按钮进入下一个设置选项并重复直至完成最后一个选项(注意闹钟将关闭)。 (不进入闹钟设置选项),电子钟将退出设置状态,重新进入运行状态。当电子钟处于设置状态时,设置项会高亮显示,按第二个按钮即可更改设置值。

当时钟运行时,按第二个按钮将根据原始状态打开或关闭闹钟。液晶屏上会显示相应的报警状态信息。闹钟数据存储在M8微控制器的EEPROM中,但不直接使用。当单片机上电运行时,会自动加载到RAM中并用于延长EEPROM的使用寿命。然而,当RAM中的闹钟数据被修改时,修改后的数据会同步更新并写入EEPROM。程序将RAM中的闹钟时间与时钟芯片中的时钟进行比较,看是否匹配,如果匹配,闹钟就会发出蜂鸣声。您可以更改程序内的设置来确定推文的长度。

更多源程序可在QQ群657864614下载。

您是否曾经想买一本书,却因为价格太高而犹豫?让我们帮助您解决这个问题。请直接告诉作者书名。我们会帮助您找到它。价格一般为1元,难度较大的也只有几元。先询问,后付款。并请诚信经营!搜索各种电子书、电子书、教材、文档、中文PDF格式-淘宝网

责任编辑:德勤钢铁网 标签:

热门搜索

相关文章

广告
德勤钢铁网 |市场分析

基于单片机控制的智能定时闹钟设计,单片机报时闹钟代码

chanong

|

图14.1 电子钟

记得刚开始学**单片机的时候,我只能写一些汇编代码。接下来的一个月,我学会了如何创建一个电子时钟程序,但是我学会了如何创建一个非常简单的程序,不使用任何时钟芯片,只是使用微型计算机的定时器来存储时间并功能性地显示小时、分钟和时间。这是某种东西。它还具有简单的秒闹钟功能。不过,我很怀念以前学**微型计算机的美好时光,也很高兴当年能够专心学**微型计算机。后来,他还制作了一个像样的电子钟(见图14.1)。在接下来的内容中,我将分享它的创作过程。

零件清单零件清单是制作此电子表的基本零件,还有一些剩余材料未包含在清单中。从零件清单(见表14.1)可以看出,总成本不超过80元。不过,最近AVR单片机的价格明显上涨,网上可以买到18元左右。如果您想在淘宝上购买液晶屏,我们建议您搜索关键字ST7565,这样您就可以找到ST7565控制器的12864液晶屏。其他常用零件可在一般电子市场购买。

图14.2 零件系统图

表14.1 材料清单

电路原理如图14.3所示,选择熟悉的AVR单片机Atmega8作为单片机(MCU)。程序存储器大小为8KB,数据RAM大小为1KB,工作电源电压范围为2.7至5.5V,最高工作温度为+85C,最低工作温度为-40C。时钟芯片为DS1302。 DS1302是美国DALLAS公司推出的一款配备RAM的高性能、低功耗实时时钟电路。可测量年、月、日、星期日、时、分、秒,具有闰年功能、补偿功能,工作电压2.55.5V。 3线接口用于与MCU同步通信。最后利用SD卡的SPI模式连接到单片机的SPI接口并交换数据。 SD卡对应的是大容量SPI接口FLASH,也可以在生产阶段更换为大容量FLASH芯片。只需4 根电线即可将12864 LCD 连接到微控制器。由于使用的控制器是ST7565,它没有自带中文或英文字体,因此您需要创建自己的字体。不过,这种液晶屏价格便宜,而且看起来很小。我购买的液晶显示屏具有橙色背光,在夜间发出迷人的光芒。

图14.3 电路图

工作原理在开始之前,我们先介绍一下工作原理。控制芯片采用AVR公司的atmega8单片机(简称M8)。也可以使用熟悉的51单片机(程序可以从本书附带的光盘中下载,并可以根据需要进行修改或移植)。该程序读取您SD卡中的TXT文件,并显示您每天需要提醒的内容。因此,假期、生日、纪念日等提醒内容可以通过电脑轻松更改。您无需对程序代码进行任何特殊更改即可更改LCD 屏幕上的提醒内容,只需编辑TXT 文件即可。 SD卡通过SPI接口与微控制器交换数据。液晶屏采用串口128x64黑白液晶屏,控制器为ST7565,仅需4个I/O口与微控制器连接。时钟芯片采用著名的DS1302。时钟芯片通过3个I/O口与单片机连接,电源采用USB接口的5V电源,经1117-3.3电源稳压芯片转换为3.3V电压后供给至单片机。微控制器。Masu。LCD和SD卡,也可以直接使用3.3V电源。这是一个电子时钟,可让您使用两个按钮设置时间和闹钟。当手表正常工作时,第二个按钮可以独立打开或关闭闹铃。

使用方法(1) 在电脑上使用WinXP系统将SD卡格式化为FAT文件系统。

(2) 首先将字体复制到SD卡中,这样就可以在LCD上显示汉字了。

(3) 在根目录下新建一个文本文件“Reminder.txt”。

(4) 在文件中写入一行: ****-02-13\'明天是情人节' 这将告诉每年2月13日的电子钟明天是情人节,我们会通知您。天。

你可以看到这个电子钟没有农历显示,但是如果你想显示农历怎么办?如果你朋友的生日是按照农历计算的怎么办?其实很简单就是。在文件中切换公历和农历只是时间问题。例如:2010-02-13“农历2009-12-30”。注意:*是通配符,有任何含义。示例:2010-**-**\'Year of the Tiger\' 表示2010 年中的任何日期都将出现在虎年中。

创建和使用字体是本作品中的关键知识之一。 GB2312是中国国家标准简化字符集,全称《信息交换用汉字编码字符集·基本集》,也称为GB0。由中国国家标准局公布,1981年5月1日起施行。 GB2312编码在中国大陆通用,新加坡等国家也使用这种编码。中国大陆的大部分中文系统和国际软件都支持GB2312。

GB2312标准共收录了6763个字符,其中一级汉字3755个,二级汉字3008个,以及拉丁文、希腊文、日文平假名和片假名,俄语还收录了682个字符,其中西里尔字母为这个单词。 GB2312的出现基本上满足了汉字字符计算机处理的需要。在GB2312中,所收集的汉字被“划分”,每个区域包含94个汉字/符号。这种表示也称为位置代码。

01-09 区域是特殊符号。

16至55区为一级汉字,按拼音排序。

56到87的范围是二级汉字,按部首和笔画数分类。

区域10-15 和88-94 未编码。

例如,字符“A”是GB2312中的第一个汉字,其位置码为1601。

在计算机上的TXT 文本文件中,每个汉字和符号都由两个字节表示。第一个字节称为“高字节”,第二个字节称为“低字节”。为了保持与原始ASCII 码的兼容性,“高字节”为0xA1 至0xF7(0xA0 加区号01 至87),“低字节”为0xA1 至0xFE(添加01 至94)。0xA0)。一级汉字从区域16开始,因此汉字区域的“高字节”范围是0xB0到0xF7,“低字节”范围是0xA1到0xFE,占用的码位是72 x 94=。 6768。其中,D7FA 至D7FE 五个职位空缺。例如,单词“ah”在文件中存储为两个字节:0xB0(第一个字节)0xA1(第二个字节)。

制作步骤一:将各个零件按照片放置在穿孔板上,插入写有程序的芯片。

2 根据电路图顺序连接电线。

3 准备好所有组件后,即可组装它们。

4 最后,连接USB电源,应该可以正常工作了。

DIY的过程不仅仅是一个制作的过程,更是一个让你的作品变得更加美观的过程,所以我们开始了这款定制提醒闹钟的美化过程。

将钢丝弯曲成如图所示的形状,将钢丝拧紧,然后将万能板拧紧。

使用六角扳手或普通扳手拧紧螺钉。

那么如何找到字体中的点阵数据呢?文件编码的区号范围从0xA1(十六进制)开始,对应于区号中区号的第一个区域。第二个字节是一个位。汉字代码和范围。这也从0xA1(十六进制)开始,对应于特定区域的第一位代码。也就是说,汉字编码减去0xA0A0,就得到了汉字的位置编码。例如,汉字字符“A”的内码以十六进制表示为“0xB0A1”,其中前两位“0xB0”代表编码的区号,后两位“0xA1”代表编码的位码。因此,“A”的区号为0xB0A1-0xA0A0=0x1001,将区号和位码分别转为十进制16和01,得到第16区第一个字符位置的汉字Get “A”。文件中的位置是从“32[(16-1)94+(1-1)]=45120”开始的32个字节。这是“A”的显示点阵所需的字节数据。其中,32是对16x16网格取模的字节数,表示32字节的大小。微控制器通过取出这32个连续字节并将它们发送到LCD上的相应位置,可以正确显示汉字和图形符号。

最后使用字体生成工具生成需要的字体。互联网上有很多这样的工具和软件,因此请选择您自己的。我使用的是一个未注册的“汉字建模字体生成”小工具,虽然有使用次数的限制,但偶尔生成字体也足够了。这是因为该LCD显示数据是以1列(8点)地址单元,而不是1行(8点)或点地址单元。因此,在制作模具时,需要采用立式(立柱)成型方式,这样使得后期的程序创建更加容易。当然,您也可以直接选择“@songtai”等字体。当您在工具中预览时,您会看到该字体已旋转90 度。单击“生成字体库”,然后在弹出菜单中输入路径和文件名。按“确认”,就会生成需要的字体(注意后缀是.dot)。该程序可以读取32字节的旋转字体数据或点阵数据,并显示汉字字符。

GB2312汉字库的大小超过200字节,单片机的FLASH没有足够的空间来存储它。至于怎么做,其实有很多种方法。一种实用、简单、方便的方法是连接外部闪存芯片。 SST25VF020、AT45DB161等都是串行接口,可以节省大量I/O,读取速度足够快,但增加了制造成本。还有一种直接保存到SD卡的方法,但过程相当复杂。同时,字体显示速度也不及外接FLASH快。但最终我选择了第二种方法,以后的小制作也会尝试第一种方法。

为了使您的计算机和微控制器更轻松地相互交换数据,您需要将SD 卡格式化为FAT 文件系统。然后单片机解释SD卡格式化的FAT文件系统,并据此读取txt文件,最后检索出对应的字体数据并显示在液晶屏上。实现细节请自行分析源码。源代码可以从本书附带的CD中下载。

编程步骤一旦我写完程序,我就迫不及待地想要运行电路。连接电子钟后,程序首先初始化硬件(LCD、SD卡、时钟芯片)。之后读取单片机EEPROM中的闹钟信息,如果没有则创建初始化内容写入EEPROM中。最后,液晶显示屏以四行显示时间、日期、星期几和闹钟。如果有提醒信息,闹钟时间和提醒内容会交替闪烁。在程序的循环体中,程序周期性地读取SD卡中的TXT文件。如果TXT文件中定义的日期与时钟芯片上的日期匹配,则单片机读取SD卡中相应的显示内容。当我在LCD 上显示文本文件时,会显示前4 行。如果没有相等的日期,微控制器将显示默认字符串“MADEBYZBJ”,但您可以将其更改为您自己定义的字符串。

电子钟的右侧有四个按钮,但本次作品中只使用了最上面的两个按钮;其他两个按钮的功能并未使用。这四个按钮的一端连接到单片机的中断引脚,在程序中设置为上拉等待下降沿中断。按钮的另一端连接单片机的四个公共I/O,并将这四个I/O设置为低电平。当按钮按下时,会触发下降沿中断,此时程序改变中断,将其设置为低电平,拉高四个公共I/O口,并将四个公共I/O口连接起来。端口的电平状态。每个引脚。当某个引脚读到低电平时,可以判断相应的按钮已被按下。最后,我们等待按钮被释放并继续循环这个过程。

时钟工作时,按第一个按钮即可进入时钟设置状态。再次按第一个按钮进入下一个设置选项并重复直至完成最后一个选项(注意闹钟将关闭)。 (不进入闹钟设置选项),电子钟将退出设置状态,重新进入运行状态。当电子钟处于设置状态时,设置项会高亮显示,按第二个按钮即可更改设置值。

当时钟运行时,按第二个按钮将根据原始状态打开或关闭闹钟。液晶屏上会显示相应的报警状态信息。闹钟数据存储在M8微控制器的EEPROM中,但不直接使用。当单片机上电运行时,会自动加载到RAM中并用于延长EEPROM的使用寿命。然而,当RAM中的闹钟数据被修改时,修改后的数据会同步更新并写入EEPROM。程序将RAM中的闹钟时间与时钟芯片中的时钟进行比较,看是否匹配,如果匹配,闹钟就会发出蜂鸣声。您可以更改程序内的设置来确定推文的长度。

更多源程序可在QQ群657864614下载。

您是否曾经想买一本书,却因为价格太高而犹豫?让我们帮助您解决这个问题。请直接告诉作者书名。我们会帮助您找到它。价格一般为1元,难度较大的也只有几元。先询问,后付款。并请诚信经营!搜索各种电子书、电子书、教材、文档、中文PDF格式-淘宝网


市场分析