当前位置:首页 > 单片机 > 单片机
[导读] Atmel公司的ATMEGA48是一款高性能、低功耗的8 位AVR微处理器,使用先进的RISC 结构,大多数指令的执行时间为单个时钟周期,所以运算速度更快。两个具有独立预分频器和比较器功能的8 位定时器/ 计数器;

Atmel公司的ATMEGA48是一款高性能、低功耗的8 位AVR微处理器,使用先进的RISC 结构,大多数指令的执行时间为单个时钟周期,所以运算速度更快。两个具有独立预分频器和比较器功能的8 位定时器/ 计数器;一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器;具有独立振荡器的实时计数器RTC;六通道PWM;8路10 位ADC(TQFP与MLF 封装)[ 6路10 位ADC( PDIP封装)];可编程的串行USART 接口;可工作于主机/ 从机模式的SPI 串行接口;面向字节的两线串行接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器;引脚电平变化可引发中断及唤醒MCU等。

其具有的下面特点无论从编程、自编程和加密等方面都给用户提供了很大的方便。4K字节的系统内可擦写10,000 次的可编程Flash;具有独立锁定位的可选Boot 代码区,通过片上Boot程序实现系统内编程;256字节的擦写100,000 次的EEPROM;512字节的片内SRAM,可以对锁定位进行编程以实现用户程序的加密。

Maxim公司的8脚串行实时时钟日历芯片DS1302,体积小、与单片机接口简单、工作电压范围宽(2.5~5.5V)、功耗低、接口容易、占用CPU I/O口线少、可对时钟芯片备份电池进行涓流充电等特点。所以应用方便,被很多设计者所青睐。

图1 ATMEGA48与DS1302的电路连接

笔者利用这两种芯片,设计了实时时钟,实时数据采集和定时控制系统。现就DS1302与ATMEGA48的应用介绍给大家。

由于ATMEGA48有可选的内部振荡器,所以只需接通电源即可;DS1302需要一个32768Hz的晶振,和一个备用电池。可以看出结构很简单(由于本文只介绍ATMEGA48和DS1302的应用,所以其余的显示电路和数据采集电路均省略。)。

ATMEGA48与DS1302的通讯程序(ASM)

图2 DS1302的时序

图3 DS1302充电原理图

DS1302的时序如图2。

根据时序图,给出下面的读/写程序:

读出数据子程序如下:

;sbi portd,7 ;假设调用子程序以前已经保持rst为高

RDS: clr r17 ;将取到的数据保存到R17中

ldi r24,8

sbi portd,6 ;sclk

RDS1: cbi portd,6 ;sclk 下降沿读取数据

nop

IN R16,PINd ;从CPU I/O读取数据

nop

sbi portd,6 ;sclk

BST R16,5 ;复制PIND.5到T

LSR R17

BLD R17,7 ;复制T到R17.7

dec r24

CPI R24,0

BRNE RDS1

RET

  注: ATMEGA48 I/O口有三个寄存器分别是:数据寄存器- PORTx、数据方向寄存器- DDRx 和端口输入引脚- PINx。I/O作为数据输入使用时,读取数据命令应为 IN Rd,PINx,如果使用IN Rd,PORTx则读取到的是I/O口的状态,尽管将DDRx设置成数据输入。特别注意的是,读取软件赋予引脚电平和执行读取指令in 之间至少有一个时钟周期的间隔,文中用nop间隔。

写入数据(命令/地址)子程序如下:

;ldi R17,data ;假设要写入的数据已经存放到R17中

;sbi portd,7 ;假设调用子程序以前已经保持rst为高

WDS: ldi r24,8

WDS1: cbi portd,6 ;sclk

in r16,portd ;读入D口状态

BST R17,0 ;将R17.0复制到T

BLD R16,5 ;将T复制到R16.5

nop

out portd,r16 ;写数据到portd(R16.5->portd.5)

sbi portd,6 ;sclk

lsr r17

dec r24

CPI R24,0

BRNE WDS1

RET

  关于命令字节的说明。DS1302命令字节由8位组成,BIT 0 为1时,读取数据,为0时写入数据。BIT 1-5 为地址。BIT 6 为1时指向31个RAM,为0 时指向时钟寄存器。BIT 7 必须为1,为0时将使DS1302停止。

DS1302的控制寄存器的第七位是写保护位,所以在写入数据前应该将其关闭,并在写数据完毕后将其使能。下面是一段完整的设置分的程序。

......

ldi r19,0x43 ;假设当前时间为43分,DS1302时间寄存器保存的数据为10进制数十六进制存储。

ldi r18,0x82 ;写分 命令

ldi r27,0x00 ;x H

ldi r26,19 ;x L 在这里使用间接寻址,所以只需改变R19的数据即可。

......

WRITE_DS1302:

cbi portd,7

cbi portd,6

sbi portd,7

ldi r17,0x8e ;控制寄存器en_WRITE

rCALL WDS

ldi r17,0 ;写操作前WP=0

rCALL WDS

MOV r17,r18 ;写秒 分 时 日 月 星期 年 地址

rCALL WDS

ld r17,x ;写秒 分 时 日 月 星期 年(R19中的数据)

rCALL WDS

cbi portd,7

cbi portd,6

sbi portd,7

ldi r17,0x8e ;控制寄存器un_en_WRITE

rCALL WDS

ldi r17,0x80 ;写操作前WP=1

rCALL WDS

cbi portd,7

RET

同样,下面给出了一个完整的读取分的程序

ldi r18,0x83 ;读分 命令

ldi r27,0x00 ;x H

ldi r26,19 ;x L 将取到的数据存储到R19中。

READ_DS1302:

cbi portd,7

cbi portd,6

sbi portd,7

MOV r17,r18 ;写秒 分 时 日 月 星期 年 地址

rCALL WDS

rCALL RDS

st x,r17 ; 保存数据到R19

cbi portd,7

RET

整合写和读分的程序,改变R18的内容就可以实现“秒、分、时、日、月、星期、年”的读写,写操作时只需改变R19的内容就可以将新的数据写入,读操作时直接读取R19的内容即可。也可以通过此程序直接来对31个RAM进行数据读取。

DS1302的充电功能

DS1302的涓流充电功能也是非常方便的,同时又是其非常重要的一个功能,所以简单介绍一下其使用。其原理框图如图3。

DS1302 有一个单独的寄存器控制涓流充电。BIT7:BIT4是涓流充电功能的选择器,只有当它们被设置成1010才能够将其使能。使用DS(BIT3和 BIT2)可以在一个和两个二极管之间选择;使用RS(BIT1和BIT0)可以选择两个电源(VCC1和Vcc2)之间的电阻,这两个选择器共同使用来帮助您得到所需要的电流。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。

关键字: 单片机 仿真器 程序

步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。

关键字: 步进电机 正反转 程序

KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写...

关键字: 程序 编译 链接

双方各执一词,谁也不退让,吴雄昂的身份成为薛定谔的猫:在Arm公司眼中,他已经被罢免一切职位;在安谋中国声明里,吴仍然一切照常。这种叠加态或许还会持续一段时间,但叠加态应该很快就会塌缩成一个确定结果。同样,安谋中国董事会...

关键字: ARM 中国董事会 程序

除了指令空间,自定义指令对应的程序出入口也有严格限制。自定义指令在使用过程中出现任何错误时,Arm的工具链都能及时对其进行识别、提取,并且进行相应的控制。目前也已经有第三方编译器,可以识别自定义指令集可能会出现的错误。专...

关键字: 指令空间 程序 ARM

如果说一众美国科技公司遵循特朗普命令断供华为,还算某种程度上维护所谓程序正义不得已而为之;那么各路本应对政治保持中立的国际技术标准组织,先后宣布剔除华为成员资格,绝对算助纣为虐;而联邦快递将华为委托寄送目的地为中国的快递...

关键字: 快递 华为 程序

在软件开发过程中,我们希望软件可以运行无误。但是常常事与愿违,程序经常跑飞,或者卡死。原因有很多,有可能是因为软件系统设计的原因,或者外部传感器的失效,再或者是程序的Bug等。为了防止程序在出现问题之后,可以顺利复位和重...

关键字: 软件 程序 传感器

进程是程序的执行过程。程序是静态的,是存在于外存之中的,电脑关机后依然存在。进程是动态的,是存在于内存之中的,是程序的执行过程,电脑关机后就不存在进程了。进程的内容来源于程序,进程的启动过程就是把程序从外存加载到内存的过...

关键字: 程序 静态 操作系统

香港2022年7月7日 /美通社/ -- 寿康集团有限公司(“寿康集团”或“本公司”及其附属公司,统称“本集团”;股份代号:0575.HK)旗下全资附属公司、并以香港为基地的人工智能创新公司及衰老与长寿深层生物...

关键字: 时钟 VI GE EV

文章转自知乎[MIPI自学笔记],作者IEEE1364https://zhuanlan.zhihu.com/p/926820471 MIPI概述MIPI是MobileIndustryProcessorInterface的...

关键字: MIPI LAN 数据流 时钟
关闭
关闭