单片机实例分享,自定义提醒闹钟
图14.1 电子钟
想起那时刚学习单片机,仅仅会写几段汇编代码。后来的几个月,自己也学写了一个电子钟程序,不过做得非常简陋,也没使用什么时钟芯片,仅仅通过单片机的定时器来累计计时,功能上实现了时、分、秒的显示以及简单的闹钟功能。不过,我还真是怀念以前学习单片机的美好时光,也很高兴那时自己能专心学习单片机。后面我也做了一款像样的电子钟(见图14.1),在下面的内容里,我会和大家分享制作它的过程。
零件清单
零件清单是制作这款电子钟的基本元件,还有一些边角料,不再列出。从零件列表(见表14.1)中大家可以看出,整体的成本不超过80元。不过,最近这段时期,AVR单片机涨价厉害,在网上也要18元左右才能买到。如果液晶屏在淘宝网上购买的话,建议以关键字ST7565搜索,这样才能搜索到ST7565控制器的128×64液晶屏。至于其他零件比较常用,一般电子市场都能购买得到。
图14.2 零件全家福
表14.1 材料表
电路原理
如图14.3所示,微控制器(MCU)我选择了AVR单片机的Atmega8,因为比较熟悉。它的程序存储器大小为8KB,数据RAM大小为1KB,工作电源电压范围为2.7~5.5V,最大工作温度为+85℃,最小工作温度为-40℃。时钟芯片选择DS1302,DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5~5.5V。采用三线接口与MCU进行同步通信。最后,通过使用SD卡的SPI模式和单片机的SPI接口连接,进行数据交换。SD卡相当于容量很大的SPI接口的FLASH,在制作过程中,也可以替换成大容量的FLASH芯片。128×64液晶仅仅需要4根线和单片机连接。由于使用的控制器是ST7565,它不带中文、英文字库,因此需要自己建立字库。但这种液晶屏价格便宜,外观也很小巧。我购买的这款液晶屏,背光是橘黄色的,到了晚上会发出迷人的光泽。
图14.3 电路原理图
工作原理
在制作之前,我先介绍一下它的工作原理。控制芯片使用的是AVR的atmega8单片机,简称M8。大家也可以使用熟悉的51单片机(程序可以到本书配套光盘中下载,大家根据需要自己修改或移植)。程序通过读取SD卡内的TXT文件,显示每天需要提醒的内容。因此,可以通过电脑,方便地修改提醒的内容,如节日、生日、纪念日等。不必再为了修改液晶屏上的提醒内容而特意修改程序代码,仅仅通过编辑TXT文件即可。SD卡是通过它的SPI接口和单片机进行数据交换。液晶屏使用的是串口128×64的黑白液晶屏,控制器是ST7565,它和单片机连接也仅仅需要4个I/O口。时钟芯片使用的是DS1302,大家对它应该不陌生吧。时钟芯片通过3个I/O口和单片机连接,电源使用USB接口的5V电源,经过1117-3.3电源稳压芯片转换成3.3V电压,供给单片机、液晶和SD卡使用,大家也可以使用3.3V的电源直接供电。这款电子钟通过两个按钮实现时间和闹钟的设置。当时钟正常运行时,第2个按钮可以单独开启闹钟或关闭闹钟。
使用方法
(1)在计算机的WinXP系统下把SD卡格式化成FAT文件系统。
(2)先复制字体到SD卡内,这样才能在液晶上显示中文。
(3)在根目录下新建“提醒.txt”文本文件。
(4)在文件内写入一行内容,如下:****-02-13"明天是情人节",这样每年的2月13号,电子钟就会提醒你明天是情人节了。
大家会发现,这款电子钟没有农历的显示,如果要显示农历怎么办呢?如果朋友的生日是按农历来算的怎么办呢?其实也挺简单的,通过在文件中写入公历和农历的对应时间关系即可。如:2010-02-13"农历2009-12-30"。注意:*号是通配符,表示任意的意思。例如:2010-**-**"虎年",表示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区则未有编码。
举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。
在电脑上的TXT文本文件中,每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。为了和原有的ASCII码兼容,“高位字节”使用了0xA1~0xF7(把01~87区的区号加上0xA0),“低位字节”使用了0xA1~0xFE(把01-94加上0xA0)。由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0~0xF7,“低位字节”的范围是0xA1~0xFE,占用的码位是72×94=6768。其中,有5个空位是D7FA~D7FE。例如,“啊”字在文件中会以两个字节“0xB0(第一个字节)0xA1(第二个字节)”储存。
制作步骤
1 按图在洞洞板上安插好各个元件,并插上已经烧录好程序的芯片。
2 根据电路原理图,依次连接导线
3 将各个组件准备好了后,就可以组装起来。
4 最后插上USB电源,就可正常工作了。
DIY的过程不仅仅是制作过程,还是一个让作品更美好的过程,为此,我又开始了这个自定义提醒闹钟的美化过程。
将钢丝弯曲成如图的形状,在钢丝上拧上螺丝,在万用板上也拧上螺丝。
用内六角扳手、普通扳手拧紧螺丝。
那么如何定位字库中的点阵数据呢?文件编码的区码范围是从0xA1(十六进制)开始,对应区位码中区码的第一区,第二个字节为汉字的位码,范围也是从0xA1(十六进制)开始,对应某区中的第一个位码。就是说,将汉字编码减去0xA0A0就得到该汉字的区位码。例如,汉字“啊”的机内码是十六进制的“0xB0A1”,其中前两位“0xB0”表示编码的区码,后两位“0xA1”表示编码的位码。所以“啊”的区位码为0xB0A1-0xA0A0=0x1001,将区码和位码分别转换为十进制16和01,得到汉字“啊”位于第16区的第1个字的位置,那么点阵数据在文件中的位置为第“32×[(16-1)×94+(1-1)]=45120”以后的32个字节。这就是“啊”的显示点阵需要的字节数据了。其中,32为16×16点阵的取模字节数,表示32字节大小。单片机通过取这连续的32个字节,送到LCD的相应位置,就能正确显示汉字、图形符号了。
最后,使用字库生成工具,就能生成自己需要的字库了。这样的工具软件在网上有许多,请自行选择。我使用未注册的“汉字取模字库生成”小工具,使用次数有一定的限制,但偶尔用于生成字库还是够用的。由于这款液晶显示数据是1列(8个点)为一个地址单位的,而不是1行(8个点)或点地址为单位。因此,取模时需使用纵向(列)取模方式取模,这样方便后期程序的编写。当然也可以直接选择“@宋体”这类字体。通过工具预览后,你会发现,这种字体旋转了90°。点击生成字库,在弹出的菜单中输入的路径和文件名。按“确认”后就会生成需要的字库了,注意后缀名为.dot。程序读取经过旋转后的32字节字体数据,即点阵列数据,就能显示一个汉字了。
存储整个字库数据是个难点,GB2312汉字库有200多字节的大小,单片机的FLASH可是没有足够的空间用来保存它。那么怎么办呢?其实,方法也挺多的。有一种实用、简单、方便的方法就是外接FLASH存储芯片。如SST25VF020、AT45DB161等,它们都是串行接口,可以节省许多I/O,读取速度也够快,但增加了制作成本。还有一种方法,可以直接放在SD卡内,但程序会复杂很多。同时,显示字体的速度也没外接FLASH快。不过最后我还是选择了第2种方法,以后的小制作中再试试第1种方法。
为了让电脑和单片机互相交换数据容易些,需要把SD卡格式化成FAT文件系统,然后单片机解读SD卡格式化后FAT文件系统,在此基础上再读取txt文件,最后调用相应的字库数据在液晶屏上显示。具体如何实现,请读者朋友自行分析源代码。源代码可到本书配套光盘上下载。
编程说明
当我烧录完程序后,迫不及待地要运行这个电路了。把电子钟插上电源后,程序会先初始化硬件(液晶、SD卡和时钟芯片)。之后会读取单片机EEPROM里的闹钟信息,没有的话会新建初始化内容,并写入EEPROM。最后,液晶就会分4行显示时间、日期、星期和闹钟。当有提醒信息时,闹钟时间和提醒的内容会交替闪烁。在程序的循环体内,程序会定时读取SD卡内的TXT文件,如果TXT文件内定义的日期和时钟芯片的日期一致,那么单片机会读取文本文件内对应的显示内容,并在液晶的第4行显示。如果没有相等的日期,单片机会显示默认的字符串“MADEBYZBJ”,大家可以改成自己定义的字符串。
电子钟的右侧有4个按钮,但是本次制作只使用了上面2个按钮,另外2个按钮功能未用。这4个按钮的一端都连到了单片机的中断引脚,并把这个中断引脚设置为上拉,在程序中等待下降沿中断。按钮的另一端和单片机的4个普通I/O连接,这4个I/O设置为低电平。当按钮按下时,就会引发下降沿中断,此时程序修改中断,引为低电平,并把4个普通I/O口上拉,再分别读取4个引脚的电平状态。如果,某个引脚读到低电平,就可以判断对应的这个按钮按下了。最后,等待按钮的释放,不断循环此过程。
当时钟在运行状态时,按第1个按钮,将会进入时钟设置状态,再次按下第1个按钮,就会进入下一个设置选项,以此类推,直到退出最后一个选项(注意闹钟关闭状态,不会进入闹钟设置选项),这样电子钟就会退出设置状态,再次进入运行状态了。电子钟在设置状态下,设置的项目会反显,可以通过按第2个按钮,改变设置的数值。
当时钟在运行状态时,按下第2个按钮,闹钟将会开启或关闭,这取决于原来的状态。在液晶屏上会显示相应的闹钟状态信息。闹钟数据虽然保存在M8单片机的EEPROM中,但不会直接使用。当单片机上电运行时,会自动载入RAM中使用,这样是为了延长EEPROM的使用寿命。但当RAM中的闹钟数据改变时,修改的数据才会同步更新,写入EEPROM。程序会比较RAM中的闹钟时间和时钟芯片的时钟是否一致,当两者一致时,闹钟就会“嘀嘀”地叫了。至于鸣叫多久,大家可以根据自己的需要修改程序中的设置。
更多源程序可以到qq群657864614进行下载! 有没有因为想买一本书,因为价格偏高而犹豫?现在我来帮你解决这个问题,把书名作者直接告诉我,我来帮你找,通常价格均为1元,难一点的也就几块钱,先查询,后付款,诚信经营! 代找各种电子书电子图书教材文献查找代查代找中文pdf格式-淘宝网基于51单片机的电子时钟!内附开题报告模板、论文模板
基于单片机的数字式电子时钟设计
设计要求
1)设计AT89S51的最小系统;
2)LED显示电路及与AT89S51接口,LED数码块显示时、分、秒;
3)时钟调整电路及与AT89S51接口;
4)电子时钟程序设计;
5)基于Proteus的电子时钟原理及仿真实现;
6)电子时钟实物制作;
2 总体方案设计
2.1 实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1) 计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs =50000μs
X=15536→0011110010110000→3CB0H
(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.2 电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
37H 36H 35H 34H 33H 32H 31H 30H
时十位 时个位 分隔 分十位 分个位 分隔 秒十位 秒个位
2.3 电子钟的时间调整
电子钟设置3个按键通过程序控制来完成电子钟的时间调整。
reset键复位
hour键调整时;
min键调整分;
2.4 总体方案介绍
2.4.1 计时方案
利用AT89S51单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。
2.4.2 控制方案
AT89S51的P0口和P2口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P2口作八个LED数码管的位控输出线,P1口外接四个按键reset、hour、min构成键盘电路。
3 系统硬件电路设计
根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块
3.1单片机模块设计
3.1.1 芯片分析
AT89C51单片机引脚图如下:
MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:
VCC:+5V电源。
VSS:接地。
RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P0口:P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。
P2口:P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。
P3口:P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位应应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如表1所示。
3.1.2 晶振电路
右图所示为时钟电路原理图,在AT89S51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
3.1.3 复位电路
单片机复位的条件是:必须使RST/VPD 或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12 MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位如图所示。电路为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。该电路除具有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
3.2 数码显示模块设计
系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
3.3 按键模块
下图为按键模块电路原理图,reset为复位键,hour为时钟调控键,min为分钟调控键。
4、系统软件设计
4.1 软件设计分析
在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。在主程序中,对不同的按键进行扫描,实现秒表,时间调整,复位清零等功能,系统总流程图如下图7:
图 7 系统总体流程图
4.2 源程序清单
ORG 0000H
MOV 30H,#1 设置时钟的起始时间12.00.00,分配显示数据内存
MOV 31H,#2
MOV 32H,#0
MOV 33H,#0
MOV 34H,#0
MOV 35H,#0
MOV TMOD,#01 启动计数器
XS0: SETB TR0 使 TRO位置1
MOV TH0,#00H 计数器置零
MOV TL0,#00H
XS:
MOV 40H,#0FEH 扫描控制字初值
MOV DPTR,#TAB 取段码表地址
MOV P2,40H 从P2口输出
MOV A,30H 取显示数据到A
MOVC A,@A+DPTR 查显示数据对应段码
MOV P0,A 段码放入P0中
LCALL YS1MS 显示1MS
MOV P0,#0FFH PO端口清零
MOV A,40H 取扫描控制字放入A中
RL A A中数据循环左移
MOV 40H,A 放回40H地址段内
MOV P2,40H
MOV A,31H
ADD A,#10 进位显示
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
MOV P0,#0FFH
MOV A,40H
RL A
MOV 40H,A
MOV P2,40H
MOV A,32H
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
MOV P0,#0FFH
MOV A,40H
RL A
MOV 40H,A
MOV P2,40H
MOV A,33H
ADD A,#10
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
MOV P0,#0FFH
MOV A,40H
RL A
MOV 40H,A
MOV P2,40H
MOV A,34H
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
MOV P0,#0FFH
MOV A,40H
RL A
MOV 40H,A
MOV P2,40H
MOV A,35H
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
MOV P0,#0FFH
MOV A,40H
RL A
MOV 40H,A
JB TF0,JIA 如果TF0为1时,则执行JIA,否则顺序执行
JNB P1.0,P100 为0则 转移到P100
JNB P1.1,P1000 为0则 转移到P1000
JNB P1.2,P10000 为0则 转移到P10000
AJMP XS 跳转到 XS
P100: MOV 30H,#0 清零程序
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
MOV 34H,#0
MOV 35H,#0
JIA: CLR TF0 TF0清零
MOV A,35H 秒单位数据到A
CJNE A,#9,JIA1 与 9进行比较,大于9就转移到JIA1
MOV 35H,0 秒个位清零
MOV A,34H 秒十位数据到A
CJNE A,#5,JIA10 与5进行比较,大于5就转移到JIA10
MOV 34H,#0 秒十位清零
P10000: JNB P1.2,P10000 为0则 转移到P10000
MOV A,33H 取分的个位到A
CJNE A,#9,JIA100 与 9进行比较,大于9就转移到JIA100
MOV 33H,#0 分的个位清零
MOV A,32H 分十位数据到A
CJNE A,#5,JIA1000 与5进行比较,大于5就转移到JIA1000
MOV 32H,#0 分的十位清零
P1000: JNB P1.1,P1000 为0则 转移到P1000
MOV A,31H 时个位数据到A
CJNE A,#9,JIA10000 与 9进行比较,大于9就转移到JIA10000
MOV 31H,#0 时的个位清零
MOV A,30H 时十位数据到A
CJNE A,#2,JIA100000 与2进行比较,大于5就转移到JIA100000
MOV 30H,#0 时的十位清零
AJMP XS0 转移到 XSO
JIA100000:
INC 30H 加1
AJMP XS0 跳转到 XS0
JIA10000:
CJNE A,#3,JIAJIA 与3进行比较,大于则转移到JIAJIA
MOV A,30H 将时的十位放到 A
CJNE A,#02,JIAJIA 与2进行比较,大于则转移到JIAJIA
MOV 30H,#0 时段清零
MOV 31H,#0
AJMP XS0 跳转到XSO
JIAJIA:
INC 31H 加一
AJMP XS0
JIA1000:INC 32H
AJMP XS0
JIA100: INC 33H
AJMP XS0
JIA10: INC 34H
AJMP XS0
JIA1: INC 35H
AJMP XS0
RET 返回
YS1MS: MOV R6,#9H 延时程序
YL1: MOV R7,#19H
DJNZ R7,$
DJNZ R6,YL1
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H 共阳段码表
DB 040H,079H,024H,030H,019H,012H,002H,078H,000H,010H
END
5 系统仿真与实验测试
5.1 系统仿真
运用proteus软件进行仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。
5.2 实验测试
电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及复位。
6 心得体会
单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。但当拿到题目时,确实不知道怎么着手,有些迷茫,上网查资料,问老师,在老师的帮助下,历时两个星期,解决一个又一个的困难,终于完成任务。
在这次课程设计中,运用到了很多以前的专业知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。另外,要非常感谢我的指导老师,是她指引我克服一个由一个的困难,让我学会对困难无所畏惧,以及对问题的一些很重要的思考方法。
我学会对困难无所畏惧,以及对问题的一些很重要的思考方法。
附录
附录1 硬件电路总图
相关问答
用C语言写51 单片机闹钟 程序 - 132****9191 的回答 - 懂得****************//实现2113功能:本程序实现在P1口模拟一个流水5261灯程序//**************************...#definep_outP1//宏定义...
求一个51 单片机 定时 闹钟 程序。要C语言。能够调时间 - hL0lQS...我来发一个C语言211351单片机时钟程序,希望5261能帮到你/*程序功能:4102带定时闹铃时钟*//*-------...
单片机 时钟电路组成和原理?单片机时钟电路是由晶振、晶体振荡器、分频器和计数器等部分组成的。其原理是通过晶振提供稳定的振荡信号,晶体振荡器将振荡信号转换成数字信号,分频器将数字...
单片机 电子时钟外设工作原理介绍?在MCS-51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。...
单片机 的时钟模式是什么?这是STC单片机特有的系统时钟模式,即单片机可以一个机器周期含12系统时钟的模式工作,也可以以一个机器周期含6系统时钟的模式工作,后一种速度提高一倍,前一种...
做时钟可以直接用一片 单片机 吗?是的,可以直接使用一片单片机来制作时钟。单片机是一种集成电路,内部包含了处理器、存储器、定时器等功能模块,可以通过编程来控制各种外部设备。通过编写程序...
如何实验测 单片机 时钟频率?你直接编一个闪烁的程序。。。。把延时调到1秒。。。看看如果好使他不就是间隔1秒亮一次#include你直接编一个闪烁的程序。。。。把延时调到1秒。。。看看如...
C51 单片机 程序怎样控制LED灯亮灭时间?在C51单片机中,可以通过编程来控制LED灯的亮灭时间。以下是一个简单的示例程序,用于控制LED灯的亮灭时间:c复制#include在C51单片机中,可以通过编程来控制LED...
单片机 中时钟是指什么?时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统...
单片机 时钟频率设置指令?1.选择适当的寄存器:在大多数单片机中,时钟频率设置通常涉及到一个名为"时钟控制寄存器"或"时钟配置寄存器"的寄存器。这个寄存器通常有一个位用于选择不同的.....