共阳数码管+PIC16F873+DS1302电路图

作者&投稿:蛮珍 (若有异议请与网页底部的电邮联系)
共阳数码管是在什么电路中用到?~

要显示段码就要用到,一般来说,共阳的数码管不受单片机I/O电流限制,共阴的数码管受单片机I/O电流限制!

答案是这样的:
一方面:
以七段LED为例,不用说也知道,里面有七个LED,不用想也知道,一个LED有两个脚,要是直接引出来的话,那就要7*2=14根线,我想问谁会自找苦吃焊接14个点,更别说当数码管远离主板时所需要的导线了。
二方面:
在数字电路风行的时代,谁会很麻烦的去用模拟电路来驱动数码管,因为用模拟电路去驱动的话,就不会硬性的要求数码管是否共用某一级。
所以,为了省掉麻烦(14根线变成8根),又为了和数字电路“接轨”,因此采用了数码管共用了某一级(不止有共阳,还有共阴)
为什么既有共阳,又有共阴:
刚才已经说了,和数字电路“接轨”,如果数字电路是低电平有效,那就要用共阳,反之即反。当然也不全为数字电路为主体,因为没有共阴或共阳的数码管,也没有相应的驱动模块啊。。就像电子技术造就了电脑的更新换代,电脑却推动了电子技术的发展一样。。

DS1302应用设计
在单片机系统设计过程中,时钟是整个系统的主要功能,可以通过软件实现;若时钟只是系统的辅助功能,用大量的软件来完成系统的时钟,则会影响系统主要功能的实现或使软件复杂化。本文介绍串行实时时钟芯片DS1302,定时读出芯片的时钟即可,其余时间单片机可做别的工作。
芯片DS1302与单片机串行通信,芯片实时时钟包括秒、分、小时、日、月、星期、年等信息。时钟有24小时制式和12小时制式工作选择,可自动调整闰年及月份日期。读写命令字节的格式及读写操作方式如图一,最高位

图一
为“1”,允许写操作,如果它是“0”,禁止写操作。RAM/CK为“0”表示读写时钟/日历数据,为“1” 表示读写RAM数据。A4~A0为数据读写的地址。R/W为“0”表示可进行写操作,R/W为“1”则为读操作。单字节操作需16个时钟,前8个时钟写命令字,后8个时钟读写数据。多字节突发模式读写,其命令字的地址A4A3A2A1A0=11111即可。其命令字的格式及操作方式如图二。

图二
DS1302的时钟/日历数据格式为BCD码,其地址分别为:00H 秒、01H 分、02H 小时、03H 日、04H 月、05H 星期、06H 年。写保护寄存器的地址A4A3A2A1A0=00111,格式如图三。WP为“0”,可对时钟或RAM进行写操作。WP为“1”禁止对任何寄存器进行写操作。

图三
LED数码显示部分选用MC14499四位七段译码驱动芯片,输入为BCD码,译码直接驱动LED的各段。当使能信号EN为“0”,在时钟CLK的作用下,串行数据输入端接收20位串行数据,然后使EN为“1”将移位寄存器的内容装入锁存器中。其数据格式如图四。前4位数据为小数点,后16位是4位数码

图四
显示器显示的数据。MC14499为级联使用时,小数点显示无效,小数点代码锁存器需装入全“1”。
单片机选用Microchip公司的PIC16C63A,电路图如图五,本例中只显示

图五
年、月、日、小时、分、秒等信息,不显示星期,但对DS1302的读、写采用突发模式,为了保证读、写时地址的连续性,在操作中均设有星期的读、写。程序中小数点位用“1111”填充,先输入的第一字节是秒的BCD码,第二字节是分的BCD码,第三字节的低四位是小数点填充位“1111”,第三字节的高四位及第四字节的低四位是小时的BCD码,依此类推,显示年、月、日、小时、分、秒需输入8字节数据,PIC16C63A发送了8*8=64位数据,三片MC14499实际接收60位,第八字节的高四位“1111”被挤出,实现了MC14499的级联。DS1302数据的读取采用中断方式,0.1秒读取1次数据。时间/日历的显示每变化0.05秒显示1次。程序已调试通过,现将DS1302的时钟数据读及PIC16C63A的SPI传输程序清单如下(若需要全部源程序的读者请联系作者,一定无偿提供):
list p=16c63a
ERRORLEVEL -302
#include <p16c63a.inc>
BTEMP EQU 0x22
NUB1 EQU 0x23
NUB2 EQU 0x24
TTEMP EQU 0x25
TEMP EQU 0x26
MTEMP EQU 0x27
W_TEMP EQU 0x28
STATUS_TEMP EQU 0x29
ORG 0x000
CLRF PCLATH
GOTO MAIN
ORG 0x004
MOVWF W_TEMP
MOVF STATUS,W
BCF STATUS,RP0
MOVWF STATUS_TEMP
MOVLW 0x3D ;重装定时器值
MOVWF TMR0
BCF INTCON,T0IF ;清定时中断标志
CALL DDIS ;读出时钟数据
CALL SPI ;数据发送到显示电路
BCF STATUS,RP0
MOVF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE
MAIN: BSF STATUS,RP0
MOVLW 0x00
MOVWF PIR1
MOVLW 0x30
MOVWF SSPCON ;SPI允许,4分频
MOVLW 0xC0
MOVWF SSPSTAT ;SCK的上升沿发送数据
MOVLW 0x00
MOVWF TRISC
MOVLW 7 ;定时器T0初始化
MOVWF OPTION_REG
BCF STATUS,RP0
MOVLW 0x3D
MOVWF TMR0
MOVLW 0xA0
MOVWF INTCON
GOTO $ ;单片机可做其他事情
DDIS MOVLW 0xBF ;时钟突发读命令
MOVWF TTEMP
BSF PORTC,2
BCF PORTC,1
BCF PORTC,0
MOVLW 8
MOVWF NUB1
WRCM BCF PORTC,1
BTFSC TTEMP,0
BSF PORTC,0
BTFSS TTEMP,0
BCF PORTC,0
RRF TTEMP,1
BSF PORTC,1
DECFSZ NUB1,1
GOTO WRCM
BCF PORTC,1
READ MOVLW MTEMP ;读出时钟数据的7字节,存入MTEMP
MOVWF FSR ;为首地址的的连续寄存器
MOVLW 7
MOVWF NUB1
READ0 MOVLW 8
MOVWF NUB2
READ1 BCF PORTC,1
BCF 3,0
BTFSC PORTC,0
BSF 3,0
RRF TEMP,1
BSF PORTC,1
DECFSZ NUB2,1
GOTO READ1 ;一字节未读完,继续
MOVF TEMP,0
MOVWF 0
INCF FSR,1
DECFSZ NUB1,1
GOTO READ0 ;7字节未读完,继续
BCF PORTC,1
BCF PORTC,2
RETURN
SPI MOVLW BTEMP ; 已转换的8字节BCD码
MOVWF FSR ; 存在以BTEMP为首的地址
MOVLW 8
MOVWF NUB1
SPIOUT2 MOVF 0,0
BCF PORTC,6
MOVWF SSPBUF
SPIOUT1 BTFSS PIR1,3
GOTO SPIOUT1 ;等待数据发送
BCF SSPBUF,3
INCF FSR,1
DECFSZ NUB1,1
GOTO SPIOUT2 ;7字节未发送完,继续
BSF PORTC,6
RETURN
END

我刚做了一个,不过是共阴数码管+at89s52+DS1302的,是闹钟电路及源程序都有


PIC单片机的WDT溢出后如何正确判断
WDT溢出时程序就会自动复位,PC指针会跳到0x0000地址执行程序,并且复位所有特殊功能寄存器器。你确定一下WDT复位PC寄存器之后,如果TO是一个中断标志应该会在系统复位之后把所有寄存器都复位。如果没有猜错TO应该是让你用来喂狗的位。如果你在看门狗定时器计数结束之前不喂狗,系统就复位。所以这个TO应该是...

单片机开发板原理图数码管原理怎么看?
把全图放上来,COM就是公共极(共阳或共阴),你这个是扫描方式显示,所以应该也接到了三极管啊什么的,你就顺着LED1,LED2这些名字找

...2脚接VCC,用于数字电压表显示驱动3位半的数码管,请问这是什么芯_百...
如果没有猜错的话,这是远博电子的数字电压表头产品。据其公司人员答复:此芯片为该公司特别定制的MCU,市场上无法购买,但可自出快递费用向该公司邮购。

电子万年历时间日期怎样调整
电子万年历时间日期调整的操作方法如下:1、先按一下“A”键(进入时间设置状态,同时年份“闪烁”,可按“B”或“C”键修改年份;\/iknow-pic.cdn.bcebos.com\/3b292df5e0fe9925e61c6d973aa85edf8cb171e0"target="_blank"title="点击查看大图"class="ikqb_img_alink">\/iknow-pic.cdn.bcebos....

有pic用的独立键盘与数码管的动态扫描的程序吗
__CONFIG(0x3b31);\/\/设置配置位 const uchar table[]={0x3f,0x06,0x5b,0x4f,\/\/注意code是用在51单片机中的程序储存器中,const是一个常量,pic和51的单片机也可以共用的常量,但要写在前头 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x20};\/\/数码管数字表从0...

PIC程序设计问题
include "pic.h"unsigned char dispbitcnt; \/\/数码管位码扫描变量 unsigned char second; \/\/秒变量 unsigned char minite; \/\/分变量 unsigned char hour; \/\/时变量 unsigned char tcnt; \/\/秒信号产生变量 unsigned char mstcnt; \/\/扫描时间变量 const unsigned char disp...

PIC单片机汇编语言求助
首先,你已经知道这段是宏指令,那么macro这个伪指令就是声明这个宏指令的宏名和开始一段宏指令,知道出现endm才是结束宏。宏就类似于C语言中的函数,和汇编中的‘子程序’调用的不同的是,宏可以调用其他的宏或者调用自己(递归操作,如果你学过C语言就知道,最经典的就是做斐波那契数列)。但调用其他...

关于51单片机C语言 数码管 4*4按键 简单的密码锁 请您帮助一下
关于51单片机C语言 数码管 4*4按键 简单的密码锁 请您帮助一下 密码是1请在这个程序上加#include<reg51.h>#include<INTRINS.H>#definePORT_P0P0#definePORT_P1P1unsignedchara[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0};sbit... 密码是1 请在这个程序上加#include <reg...

谁能提供一份PIC16F72电动车控制器源程序
谁能提供一份PIC16F72电动车控制器源程序  我来答 1个回答 #热议# 职场上受委屈要不要为自己解释?xyhwu 2011-01-09 知道答主 回答量:18 ...为方便调试和防止非法解密,设计采用专用调试工具,外接一个带有键盘和显示器(数码管)的工具来设定一些基本参数,如欠压値、限流、相位选择和工作电压选择等。

高分跪求PIC 单片机I2C总线的例程
这是pic16f873单片机的i2c总线的例子,先把数据写到at24c02上,然后再读回来,给数码管显示 include<pic.h> define uchar unsigned char define uint unsigned int define add 0xaa __CONFIG(0x3B31);const uchar ee_data[]={1,2,3,4,5,6};uchar read_data[6];const uchar table[]={0x3f...

苍溪县15627507320: 7段共阳极数码管引脚怎么连 -
林胖复方: 共阳极数码管,只能是共阳极接V+,a,b,c,d,e,f,g,dp这8个引脚分别经过8个限流电阻接8个8050的C极,8个8050的E接GND.8个8050的8个B极分别经过8个电阻接到8个驱动信号端. 如果没有8050,9013也行啊.

苍溪县15627507320: 什么是LED数码管的共阳接法?它与共阴接法有什么不同?
林胖复方: LED数码管的共阳接法是:共阳极的接法是发光二极管的阳极接高电平,当数码管的笔划发光二极管的阴极为低电平时,该笔画被点亮.总之,主要区别在于LED数码管的...

苍溪县15627507320: 一位共阳极数码管怎么与单片机相连 -
林胖复方: 数码管的公共端接VCC 数码管的a,b,c,d,e,f,dp串470Ω-1K的电阻接到单片机P0.0---P0.72、和单片机连接的话(89s51为例),你可以选用单片机的P1口,用这8个口分别控制共阳数码管的笔选端,公共正极可以通过一个限流电阻直接接电源正极.当P1口中的8个口中的其中1个输出低电平,其余7个口输出高电平的话,就可以点亮8个发光二极管中的一个,P1不同的输出方式可以构成不同的数字显示.3、单片机的P1口有必要接8个上拉电阻,防止口线输出高电平时产生漏电流误点亮数码管.

苍溪县15627507320: 一位共阳数码管怎样接线 -
林胖复方: 把万用表打到二极管档,然后一个一个试验,找到一个公用的阳极,剩下确定A,B,C,D,E,F,G,小数点是哪根就好了~!

苍溪县15627507320: 共阳极四位七段数码管(12个引脚)怎么连接到单片机上啊 -
林胖复方: 哦,这个啊…… 正面看的话,上面6脚,下面6脚,共12脚 上面从左到右是1,a,f,2,3,b 下面从左到右是e,d,dp,c,g,4 其中1,2,3,4是4个数码管的位选,因为是共阳,所以这几脚高电平时才有可能点亮数码管,记得要三极管驱动,9013就可以了.9013的C加个限流电阻接电源,B接单片机,E接1,2,3,4.单片机给高电平时选中.a,b,c,d,e,f,g,dp是段码,低电平有效,一般也送单片机控制

苍溪县15627507320: 共阳极与共阴极数码管的显示代码各是什么意思?怎么求?0到9的显示?
林胖复方: 共阳就是公共端接高电平(+5V),此时a,b,c,d,e,f,g,h(h为小数点).哪个段码给低电平哪段就会点亮.比如0是要让a,b,c,d,e,f段亮.输入的显示码为(h段为高位)11000000B十六进制为0C0H,同样一到九也是这样算.分别是0F9H,0A4H,0B0H,99H,92H,82H,0D8H,80H,90H.共阴码就是把共阳码取反,0~9的代码分别是3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH.你上面说的代码是不是电路中加了译码器了.

苍溪县15627507320: 51单片机驱动共阳数码管应该采用什么型号的三极管,怎么接? -
林胖复方: 用PNP类型的,型号不限,基本都能驱动一位数码管,一般常采用8550. 参考: http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/429b5e35208e9bb9d0a2d398.html http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d9581a5155e8f5521138c2d6.html

苍溪县15627507320: 一位共阳的数码管,要他显示5,不包括小数点,那么给他的数据是多少 a 0*00 b 0*92 c 0*62 d 0*80 -
林胖复方: 0x92,七段码数码管,要显示5,必须点亮段码a,c,d,f,g,因为是共阳极0点亮,h为小数点位,a~h从低到高,所以,显示5为 二进制 1001 0010 即 0x92.数码管最上端的段码为a,顺时针一圈段码分别为a,b,c,d,e,f,中间为g,小数点为h

苍溪县15627507320: PLC与数码管怎么相连 -
林胖复方: 数码管通常用的是七段数码管有共阴共阳两种,如果是共阴的那Y0-Y7,对应数码管的A,B,C,D,E,F,G,DP.PLC的com接正极,数码管的公共端接负极.

苍溪县15627507320: PIC单片机i2c总线的上拉电阻多大 -
林胖复方: 电压个单片机高电平电压匹配,低速100khz的I2C上拉一般是10K,高速I2C(400kz)上拉选择1k

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网