0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STC12C2052AD单片机控制的数码管时钟程序及电路图

倩倩 来源:电子开发网 2020-09-18 17:12 次阅读

STC12C2052AD单片机控制的数码管时钟数码管是共阳4位时钟数码管,由于使用单片机真驱,电路比较简单,且使用的材料和工具也很简单,用数码管显示,单片机控制,两个按键调时,蜂鸣器整点报时。所需要的元件如下:

材料有以下这些:

STC12C2052AD单片机一片

黄色共阳4位时钟数码管一块

6mm×6mm按键两个

杜邦线插针2p两个

无源蜂鸣器一个

20脚+14脚芯片座各一个

洞洞板一块(截取一小部分)

100欧电阻4个

程序如下:

/************************************************************************************/

#include 《STC12C2052AD.h》 //声明头文件

sbit key1=P3^4; //按键接口定义

sbit key2=P3^5; //按键接口定义

sbit speaker=P3^7; //蜂鸣器接口定义

/************************************************************************************/

unsigned char code LED[10]={0x20,0xA7,0x90,0x82,0x07,0x42,0x40,0xA6,0x00,0x02};//数码管段位码定义

unsigned int time; //全局秒基准定义

/*-------------------------------------延时函数-------------------------------------*/

void delayms (unsigned int a){

unsigned int i;

while( --a != 0){

for(i = 0; i 《 600; i++);

}

}

/*----------------------------------蜂鸣器驱动函数----------------------------------*/

void beep (void)

{

unsigned char i=30;

while(i--)

{

speaker=~speaker;

delayms(3);

}

}

/*----------------------------------数码管驱动函数----------------------------------*/

void display (unsigned char hour,min)

{

unsigned char H1,H2,M1,M2;

P3=0xf8; //数码管位选

P1 = LED[H1]; //数码管段选

delayms (2); //扫描延时

P3=0xf4; //数码管位选

P1 = LED[H2]; //数码管段选

delayms (2); //扫描延时

P3=0xf2; //数码管位选

P1 = LED[M1]; //数码管段选

delayms (2); //扫描延时

P3=0xf1; //数码管位选

P1 = LED[M2]; //数码管段选

delayms (2); //扫描延时

/*--------------------------------------分定义--------------------------------------*/

M1=min/10;//取分十位

min=min%10;//取余

M2=min;//取分个位

/*--------------------------------------时定义--------------------------------------*/

H1=hour/10;//取时十位

hour=hour%10;//取余

H2=hour;//取时个位

}

/*-----------------------------------按键去抖函数-----------------------------------*/

void qudou (unsigned char hour,min)

{

unsigned char i;

for(i=0;i《25;i++){//循环显示,等于键盘去抖的功能

display (hour,min);

}

}

/*--------------------------------------主函数--------------------------------------*/

void main(void)

{

////定时器初始设置

TMOD=0x01;//定时器工作方式1

TH0=0x3C;//定时器初始产生50ms时基信号

TL0=0xB0;//定时器初始产生50ms时基信号

ET0=1;//开定时器中断

EA=1;//开总中断

TR0=1;//启动定时器

/*************************************************************************************/

while(1)

{

unsigned char hour,min;//定义时分

display (hour,min);//调用显示函数

if (time》59)//60秒向分进1

{

time=0;

min++;

}

if (min》59)//60分向时进1

{

min=0;

hour++;

beep ();

}

if (hour》23)//24时时分秒清零

{

hour=0;

min=0;

time=0;

}

/*-----------------------------------按键判断程序-----------------------------------*/

if(key1==0)

qudou (hour,min);

if (key1==0) {hour++;}

if(key2==0)

qudou (hour,min);

if (key2==0) {min++;}

}

}

/*-----------------------------------中断服务程序-----------------------------------*/

void Timer0_Routine(void) interrupt 1

{

unsigned char a;

TH0=0x3C;//定时器初始产生50ms时基信号

TL0=0xB0;//定时器初始产生50ms时基信号

a++;//定时器循环计数20次为一秒

if (a==20){//定时器循环计数20次为一秒

a=0;//次数清零,从新循环计数

time++;//秒加一

}

}

/************************************************************************************/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43970

    浏览量

    620786
  • 数码管
    +关注

    关注

    31

    文章

    1827

    浏览量

    89946
  • 时钟程序
    +关注

    关注

    0

    文章

    15

    浏览量

    7622
收藏 人收藏

    评论

    相关推荐

    STC12C2052AD求助

    小弟用STC12C2052AD芯片做个小东西,但是下载时出现问题,(我点击确定下载后,量一下引脚始终是高电平(程序已拉低),甚是郁闷)。是不是下载有问题,如下图所示,
    发表于 08-27 17:57

    STC12C2052AD酒精检测仪的设计

    STC12C2052AD电路图
    发表于 05-12 16:43

    [求助]STC12C2052AD 无法烧写

    连接STC12C2052AD 的VCC和GND后在STC12C2052AD的20,19,18,17,16,15,14脚上串联二极 可以正常发光且是出厂烧写的流水灯.本人电脑win7 64bit
    发表于 03-02 22:11

    DS12C887日历时钟 数码管不显示

    亲们,今天在设计中看见了一个关于DS12C887日历时钟芯片的电路设计,有完整的程序电路图,我根据电路
    发表于 04-06 22:56

    (求助)关于stc12c2052ad最基本的烧录问题

    20脚(VCC)转换模块TXD接单片机2脚(RXD)转换模块RXD接单片机3脚(TXD)烧录程序打开后选定STC12C2052AD后为默认设置点击下载后转换模块GND接
    发表于 04-03 20:46

    STC12C2052AD 做的电压表

    STC12C2052AD 内部AD做的电压表 源程序贴身
    发表于 03-11 11:21

    STC12C2052AD串口通讯返回数据错误

    大家好,请教大家一个问题,特别着急,我用STC12C2052AD写了段串口通讯程序如下,然后用STC-ISP与其通讯,发送一个数据给单片机,并把数据加1,然后
    发表于 08-31 12:14

    STC12C2052AD单片机相关资料下载

    STC12C2052AD是宏晶科技生产的一款单片机STC12C2052系列单片机是单时钟/机器周期(1T)的兼容8051内核
    发表于 05-20 06:17

    STC12C2052单片机相关资料分享

    STC12C2052是宏晶科技生产的一款单片机STC12C2052系列单片机是单时钟/机器周期(1T)的兼容8051内核
    发表于 05-20 06:34

    STC12C2052AD 系列单片机器件手册

    STC12C5410AD 系列及STC12C2052AD 系列单片机是宏晶科技生产的单时钟/ 机器周期(1T)的单片机,是高速/ 低功耗/
    发表于 10-24 16:23 4次下载

    STC12C2052AD单片机控制的改进型调压电路

    STC12C2052AD单片机控制的改进型调压电路 0 引言 在ZXC10通信电源系统中,上位机输出的PWM调制信号的频率为1 kHz,而且系统要求电源能根据PWM信
    发表于 10-24 16:25 3801次阅读
    <b class='flag-5'>STC12C2052AD</b><b class='flag-5'>单片机</b><b class='flag-5'>控制</b>的改进型调压<b class='flag-5'>电路</b>

    STC12C2052AD系列单片机器件手册介绍

    STC12C2052AD单片机详细资料单片机详细资料单片机详细资料单片机详细资料
    发表于 12-09 16:29 50次下载

    STC12C2052AD芯片的AD转换程序

    本文档内容介绍了基于STC12C2052AD芯片的AD转换源程序,供参考。
    发表于 02-05 16:27 56次下载

    单片机STC12C2052AD数据手册

    STC12C2052AD系列单片机STC生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新--代8051
    发表于 06-13 16:56 9次下载

    STC12C2052AD系列单片机英文资料

    电子发烧友网站提供《STC12C2052AD系列单片机英文资料.pdf》资料免费下载
    发表于 10-25 15:23 0次下载
    <b class='flag-5'>STC12C2052AD</b>系列<b class='flag-5'>单片机</b>英文资料