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++;//秒加一

}

}

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

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

    关注

    6035

    文章

    44554

    浏览量

    634668
  • 数码管
    +关注

    关注

    32

    文章

    1882

    浏览量

    91064
  • 时钟程序
    +关注

    关注

    0

    文章

    15

    浏览量

    7634
收藏 人收藏

    评论

    相关推荐

    STC12C2052AD酒精检测仪的设计

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

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

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

    STC12C2052AD单片机相关资料下载

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

    STC12C2052/STC12C1052中文资料pdf

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

    STC12C2052AD 系列单片机器件手册

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

    8051单片机数码管电路图

    8051单片机数码管电路图
    发表于 09-28 11:55 233次下载
    8051<b class='flag-5'>单片机</b><b class='flag-5'>数码管</b><b class='flag-5'>电路图</b>

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

    STC12C2052AD单片机控制的改进型调压电路 0 引言 在ZXC10通信电源系统中,上位输出的PWM调制信号的频率为1 kHz
    发表于 10-24 16:25 4085次阅读
    <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次下载

    STC2052单片机控制ISD1420实现选段播放功能的实现

    STC2052单片机控制ISD1420实现选段播放功能的实现(C程序_电路图)
    发表于 06-14 17:47 13次下载

    STC12C2052AD芯片的AD转换程序

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

    使用51单片机实现数码管显示0到9的电路图C语言程序免费下载

    本文档的主要内容详细介绍的是使用51单片机实现数码管显示0到9的电路图C语言程序免费下载。
    发表于 09-06 17:26 5次下载
    使用51<b class='flag-5'>单片机</b>实现<b class='flag-5'>数码管</b>显示0到9的<b class='flag-5'>电路图</b>和<b class='flag-5'>C</b>语言<b class='flag-5'>程序</b>免费下载

    STC12C2052AD最小系统的PCB和电路原理免费下载

    STC12C2052AD最小系统的PCB和电路原理免费下载
    发表于 11-12 08:00 0次下载
    <b class='flag-5'>STC12C2052AD</b>最小系统的PCB和<b class='flag-5'>电路</b>原理<b class='flag-5'>图</b>免费下载

    单片机STC12C2052AD数据手册

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

    STC12C2052AD系列单片机英文资料

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

    FM发射-STC12C2052AD系列单片机器件手册

    电子发烧友网站提供《FM发射-STC12C2052AD系列单片机器件手册.pdf》资料免费下载
    发表于 11-17 14:26 0次下载
    FM发射<b class='flag-5'>机</b>-<b class='flag-5'>STC12C2052AD</b>系列<b class='flag-5'>单片机</b>器件手册