当前位置:文档之家› 基于1302数码管显示可调时钟C程序设计

基于1302数码管显示可调时钟C程序设计

基于1302数码管显示可调时钟C程序设计
基于1302数码管显示可调时钟C程序设计

基于1302数字可调时钟的设计--文/振勇

这是我最近完善的1302数字可调时钟,经过20多个小时的走时实验,走时相当准确,与电脑时间完全一致,最起码肉眼看不出误差,1302的另一个突出优点是可以接备用电源,用纽扣电池供电,在外部系统电力中断的情况下,仍能保持内部时钟正常走时,经多次故意掉电实验,走时正常。

本次的完善主要在软件。一个系统能够实现功能并不一定意味着成功,关键要让这个系统如何稳定的工作,提高其可靠性,是现代电子行业努力追求的目标。本项目完全由本人在目前比较简陋的“振勇电子实验室”完成,介于条件简陋,设备简单,导致硬件系统尚不完善。在软件编程方面,用先进的ASP下载取代了我一贯使用的串口下载,其好处是不用冷启动(个人认为除此之外没别的好处,而且下载效率没有串口的高,成功率保持在50%就很不错了)。单片机用ATMEL公司的AT89S52取代了我以前用的STC系列单片机,STC是国产单片机,虽然我们提倡支持国产,但是很多时候国产真的太不争气了。

另一个比较大的改动在软件调时方面,按键抖动是一个很让人头疼的问题,就连我一直很佩服的郭天祥老师在这一块也曾犯过错误,而且错误还著书出版了,单片机的扫描是很快的,那么怎么才能有效地去除按键抖动呢?下面我介绍的这种方法是我自己纯脑力劳动的结晶,实验证明运行效果良好。

if(key==0)

{

con++;

if(con==20)

{

con==0;

qita();

}

}

一般人都能理解这个用法,也能想到,但关键这个程序不完整,比方说con没加到20,加到10就松开了,那么请问con 还能被清0吗?显然不能。那么你下一次再按的时候就有可能按一下加两下,这种不稳定性在编程中是不能存在的,最起码一个合格的产品不能有这样的毛病。所以在这个函数里面应该加上下面这句:

else if(key==1)

{

if(con!=0)

{

con=0;

}

}

这个函数很简单,关键是它的位置,一定要与上面的的那个函数在同一位置。

该数字时钟另一个有技术含量的地方就是在调节时间的时候会在对应的位置闪烁,原理也很简单,就是在显示之前加一个门卡,比方说占空比50%的闪烁,那我就定义一个son,让son++;加满是60,那加到30以后让数码管不显示,就行了。程序如下:

else if(num2==0)

{

son++;

if(son>30)

{

aa=bb=10;

if(son==60)

{

son=0;

}

}

aa和bb是对应的两位共阳数码管。等于10就是除了小数点以外都不亮,也可以直接等于0.这个函数也是我没有参考任何程序纯自主研发的。编程这一块锻炼的是思维方式,同一个问题,我能用不同的方法来实现,关键是哪一种更合理。编程没有标准答案,只有更好没有最好。有的人会评价别人的程序思路偏或者怎么怎么样,实际上是自己的思路出了问题,咱们的思路不一样,你又不愿意承认自己有问题,你当然会说别人有问题了。呵呵,那么谁才能检验真理呢?邓小平说过一句话:实践是检验真理的唯一标准。

下面是我的1302显示的完整的程序:

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar miao,fen,shi,aa,bb,cc,dd,ee,ff,gg,num1,num2,num3,con,son;

uchar code table[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};

sbit DATA=P2^1;

sbit RST=P2^2;

sbit SCLK=P2^0;

sbit wela=P3^0;

sbit dula=P3^1;

sbit d1=P1^0;

sbit key1=P1^4;

sbit key2=P1^3;

sbit key3=P1^2;

sbit key4=P1^1;

void delaynus(uchar n)

{

uchar i;

for(i=0;i

;

}

void write1302(uchar dat)

{

uchar i;

SCLK=0;

delaynus(2);

for(i=0;i<8;i++)

{

DATA=dat&0x01;

delaynus(2);

SCLK=1;

delaynus(2);

SCLK=0;

dat>>=1;

}

}

void writeset1302(uchar cmd,uchar dat) {

RST=0;

SCLK=0;

RST=1;

delaynus(2);

write1302(cmd);

write1302(dat);

SCLK=1;

RST=0;

}

uchar read1302(void)

{

uchar i,dat;

delaynus(2);

for(i=0;i<8;i++)

{

dat>>=1;

if(DATA==1)

dat|=0x80;

SCLK=1;

delaynus(2);

SCLK=0;

delaynus(2);

}

return dat;

}

uchar readset1302(uchar cmd)

{

uchar dat;

RST=0;

SCLK=0;

RST=1;

write1302(cmd);

dat=read1302();

SCLK=1;

RST=0;

return dat;

}

void init_1302(void)

{

writeset1302(0x8e,0x00);

writeset1302(0x80,((00/10)<<4|(00%10))); writeset1302(0x82,((04/10)<<4|(04%10))); writeset1302(0x84,((13/10)<<4|(13%10))); writeset1302(0x86,((16/10)<<4|(16%10))); writeset1302(0x88,((11/10)<<4|(11%10))); writeset1302(0x8c,((8/10)<<4|(8%10))); }

void delay(uint x)

{

uchar i,j;

for(i=x;i>0;i--)

for(j=121;j>0;j--);

}

void saomiao()

{

if(key1==0)

{

con++;

if(con==12)

{

con=0;

// EA=0;

num1++;

if(num1==3)

{

num1=0;

}

}

}

else if(num1==1)

{

if(key2==0)

{

con++;

if(con==12)

{

con=0;

num2++;

if(num2==3)

{

num2=0;

}

}

}

else if(num2==0)

{

son++;

if(son>30)

{

aa=bb=10;

if(son==60)

{

son=0;

}

}

if(key3==0)

{

con++;

if(con==20)

{

con=0;

miao++;

if(miao==60)

{

miao=0;

}

writeset1302(0x80,(miao/10)<<4|(miao%10)); }

}

else if(key4==0)

{

con++;

if(con==20)

{

con=0;

miao--;

if(miao==-1)

{

miao=59;

}

writeset1302(0x80,(miao/10)<<4|(miao%10)); }

}

}

else if(num2==1)

{

son++;

if(son>30)

{

dd=cc=10;

if(son==60)

{

son=0;

}

}

if(key3==0)

{

con++;

if(con==12)

{

con=0;

fen++;

if(fen==60)

{

fen=0;

}

writeset1302(0x82,(fen/10)<<4|(fen%10)); }

}

else if(key4==0)

{

con++;

if(con==12)

{

con=0;

fen--;

if(fen==-1)

{

fen=59;

}

writeset1302(0x82,(fen/10)<<4|(fen%10)); }

}

}

else if(num2==2)

{

son++;

if(son>30)

{

ff=ee=10;

if(son==60)

{

son=0;

}

}

if(key3==0)

{

con++;

if(con==12)

{

con=0;

shi++;

if(shi==24)

{

shi=0;

}

writeset1302(0x84,(shi/10)<<4|(shi%10)); }

}

if(key4==0)

{

con++;

if(con==12)

{

con=0;

shi--;

if(shi==-1)

{

shi=23;

}

writeset1302(0x84,(shi/10)<<4|(shi%10)); }

}

}

}

else if(num1==2) {

// EA=1;

num1=0;

}

}

void sfm()

{

aa=miao/10;

bb=miao%10;

cc=fen/10;

dd=fen%10;

ee=shi/10;

ff=shi%10;

}

void desplay() {

// sfm();

dula=0;

wela=1;

P0=0x01;

wela=0;

dula=1;

P0=table[bb];

dula=0;

delay(5);

P0=0x00;

dula=0;

wela=1;

P0=0x02;

wela=0;

dula=1;

P0=table[aa];

dula=0;

delay(5);

P0=0x00;

dula=0;

wela=1;

wela=0;

dula=1;

P0=table[dd]; dula=0;

delay(5);

P0=0x00;

dula=0;

wela=1;

P0=0x10;

wela=0;

dula=1;

P0=table[cc]; dula=0;

delay(5);

P0=0x00;

dula=0;

wela=1;

P0=0x40;

wela=0;

dula=1;

P0=table[ff]; dula=0;

delay(5);

P0=0x00;

dula=0;

wela=1;

P0=0x80;

wela=0;

dula=1;

P0=table[ee]; dula=0;

delay(5);

P0=0x00;

dula=0;

wela=1;

P0=0x20;

wela=0;

dula=1;

P0=0xfd;

delay(5);

P0=0x00;

dula=0;

wela=1;

P0=0x04;

wela=0;

dula=1;

P0=0xfd;

dula=0;

delay(5);

P0=0x00;

}

void main()

{

// init_1302();

d1=0;

while(1)

{

miao=readset1302(0x81);

miao=((miao&0x70)>>4)*10+(miao&0x0f);

sfm();

saomiao();

desplay();

fen=readset1302(0x83);

fen=((fen&0x70)>>4)*10+(fen&0x0f);

sfm();

saomiao();

desplay();

shi=readset1302(0x85);

shi=((shi&0x30)>>4)*10+(shi&0x0f);

sfm();

saomiao();

desplay();

}

}

重点在于串口通讯,想真正弄清楚可以上网查1302的时序图,时间关系不在逐条分析,编程没有专利,欢迎大家批评指正。另外本程序在数码管的显示这一块还存在欠缺,但是用中断显示的话很占用资源,欢迎有想法的人指教。对于这个项目来

说这个程序就很合适了。

?赞

?转载

?分享

?评论

?复制地址

?编辑

个人日记 |公开 |原创:背着梦想流浪 |标签:编程单片机函数数码管系统

已经是第一篇 |下一篇:写给所有流浪在追... |返回日志列表

签名档

振兴中华,勇闯天涯

我的热评日志

本文最近访客

设置

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

时钟计时器课程设计

单片机原理及应用课程设计报告书 题目:时钟计时器的设计 姓名: 学号: 专业:电气工程及其自动化 指导老师:周令 设计时间:2011年4月 电子与信息工程学院

目录 1. 引言 (1) 1.1. 设计意义 (1) 1.2. 系统功能要求 (1) 2. 方案设计 (1) 2.1. 数字时钟计时器设计方案论证 (1) 2.2. 硬件系统的总体设计框图 (2) 3. 硬件设计 (2) 4. 软件设计 (3) 4.1. 主程序 (3) 4.2. 显示子程序 (4) 4.3. 定时器T0中断服务程序 (4) 4.4. 定时器T1中断服务程序 (5) 4.5. 调时功能程序 (6) 4.6. 秒表功能程序 (6) 4.7. 闹钟时间设定功能程序 (6) 5. 调试及性能分析 (7) 5.1. 硬件调试 (7) 5.2. 软件调试 (7) 5.3. 性能分析 (8) 6. 设计总结 (8) 7. 附录A:汇编源程序 (9) 8. 附录B:作品实物图片 (26) 9. 参考文献 (27)

时钟计时器的设计 1.引言 1.1.设计意义 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字时钟计时器,本数字时钟计时器,可以显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可实现时、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒(蜂鸣器)等功能。 人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字时钟计时器就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字时钟计时器与传统的计时器相比,具有读数方便,操作简单,计时精准,还能实现整点提醒,定时提醒等功能。其输出时间采用数字显示,主要用于对时间要求精度高的场所,或科研实验室使用,该设计控制器使用单片机AT89C52,用6位共阳极LED数码管以串口传送数据,实现数字显示功能,能准确达到以上要求。 1.2. 系统功能要求 用单片机及6位LED数码管显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可实现时、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒(蜂鸣器)等功能。 2.方案设计 2.1. 数字时钟计时器设计方案论证 为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些,又考虑到时钟显示只有6位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现LED的

基于DS1302的数码管显示数字钟

单片机原理课程设计 课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号: 学生姓名: 指导教师: 设计时间:2010年6月21日--2010年6月25日

目录 摘要........................................................................................................................................................................ 1 设计任务和要求............................................................................................................................................ 2 方案论证........................................................................................................................................................ 3 系统硬件设计................................................................................................................................................ 3.1 系统总原理图 ................................................................................................................................ 3.2 元器件清单...................................................................................................................................... 3.3 PCB板图....................................................................................................................................... 3.4 Proteus仿真图 ............................................................................................................................... 3.5 分电路图及原理说明................................................................................................................... 3.5.1 主控部分(单片机MCS-51).............................................................................. 3.5.2 计时部分(实时时钟芯片DS1302).................................................................. 3.5.3 显示部分(共阳极数码管)................................................................................ 3.5.4 调时部分(按键)................................................................................................ 4系统软件设计................................................................................................................................................ 4.1 程序流程图..................................................................................................................................... 4.2 程序源代码........................................................................................................................................ 5心得体会........................................................................................................................................................ 6参考文献........................................................................................................................................................ 7结束语............................................................................................................................................................

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

51 数字时钟 89C52 单片机C语言程序

数字时钟89C52 单片机C语言程序 STC89C52| /************** 【数字时钟】****************/ /****【功能】1、时间显示2、秒表3、闹钟4、日期显示都可以设置****/ #include /*包含器件配置文件*/ #define uchar unsigned char /*宏定义字符型数据整型数据*/ #define uint unsigned int uchar code H[] = {0x0f, 0x07, 0x0b, 0x0d, 0x0e}; /*按键【P3】端口断码用于按键*/ char Code[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; /*显示【0 1 2 3 4 5 6 7 8 9】数字的数码管的段码*/ uchar code C[] = {0x0, 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F}; /*列扫描控制LED1位2位3位4位5位6位7位8位*/ uchar MON[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; uchar A; uchar BIN=0; /* 【BIN】作为倒计时开始的标志*/ uchar hour = 0; /* 定义[时][分][秒] */ uchar min = 0; uchar sec = 0; uint shi=12; uint fen=30; uchar Mmin=0; uchar Msec=30; uchar M0=0; uchar m=0; uchar year=9; uchar month=7; uchar month2; uchar day=19; uchar set1 = 1; /* set1=1 是调节时分秒set1=2时时调节年月日set=3时事调节闹钟*/ uchar set2 = 1; /* set2=1时是调节【时】位set2=2时事调节【分】位*/ uint x = 0; /* x 每【0.01s】自加一*/ void Delay(uint k);

单片机课程设计 秒表计时器(DOC)

课程设计名称:单片机原理及接口技术 题目:基于单片机的秒表计时器设计 学期:2014-2015学年第一学期 专业:电气技术 班级: 姓名: 学号: 指导教师:

辽宁工程技术大学 课程设计成绩评定表

课程设计任务书 一、设计题目 秒表计时器 二、设计任务 本课题以单片机为核心,设计和制作一个秒表计时器。 三、设计计划 课程设计一周 第1天:查找资料,方案论证。 第2天:各部分方案设计。 第3天:各部分方案设计。 第4天:撰写设计说明书。 第5天:校订修改,上交说明书。 四、设计要求 1、绘制软件流程图并利用汇编语言编写软件程序; 2、绘制系统硬件原理图; 3、形成设计报告。 指导教师: 教研室主任: 2014年5月26 日

本设计利用89C51单片机设计秒表计时器,通过LED显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒到来时,就让秒计数单元加一,通过控制使单片机秒表计时,暂停,归零。设计任务包括控制系统硬件设计和应用程序设计。 关键词:51单片机;74HC573;LED数码管

综述 (1) 1 程序方案 (2) 1.1方案论证 (2) 1.2总体方案 (2) 2部分设计 (3) 2.1 89C51单片机 (3) 2.2晶体振荡电路 (4) 2.3硬件复位电路 (5) 2.4显示电路 (6) 2.5整体电路图 (7) 3程序设计 (8) 3.1程序流程框图 (8) 3.2显示程序流程图 (9) 3.3汇编源程序 (10) 4调试说明 (13) 4.1概述 (13) 4.2电路原理图 (13) 心得体会 (15) 参考文献 (16)

51单片机数码管时钟电路的设计_AT89C51

广东石油化工学院 《51单片机原理与实践》课程设计报告 学院计算机与电子信息学院 专业 班级 学号 姓名 指导教师 课程成绩 完成日期 2010年12月27日

数码管时钟电路的设计 一、设计目的: 通过这次课程设计掌握单片机系统的基本设计步骤及设计思路,掌握汇编语言的用法及各种指令的含义,比较熟练的运用指令进行单片机系统的设计的,熟悉用KEIL软件进行汇编语言的汇编,以及把代码写入实验板中,观测代码结合实际的运行结果后进行调整,体会到编程的分析问题、确定算法、画程序流程图、编写程序、程序功能模块化的优点的各各步骤。 二、设计要求: LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用AT89C2051单片机,使用3V电池供电,只使用一个按键开关即可进入调时、省电(不显示LED数码管)和正常显示三种状态。 三、设计实验内容: 1. 硬件的设计 其采用AT89C51单片机应用设计,LED显示采用动态扫描方式实现,P0口输出段码数据,P2口输出位码数据,P1.1、P1.2接按钮开关。为了提供LED数码管的驱动电流,采用6MHz晶振。 2. 系统总体分析 系统主要包含四大模块:显示模块、时间计时模块、模式切换模块和模式设置模块。 显示模块:主要由主循环负责。内存中开辟了一段8字节的内存空间,

用作数据显示的字符缓冲区。主循环不断将缓冲区中的字符呈现至数码管。 ● 时间计时模块:电子钟的核心模块,记录了时间的时、分、秒信息。 ● 模式切换模块(MODE ):切换电子钟的设置模式,包括时设置、分设置、秒设置、闹铃开关设置、闹铃时设置和闹铃分设置。相关数据被设置时将闪烁显示。 ● 模式设置模块(CONFIG ):通过判断设置模式(MODE ),执行相应的设置。如时、分、秒的增1以及闹铃开关的变换。 另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE 键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms ,用以消除机械抖动。 主循环流程图大致如下: 图(一)主循环流程图 定时器1中断服务程序流程图如下: 开始 键被按下 登记相应功能 数码管显示 是 否

单片机数码管显示系统课程设计

数码管显示与键盘扫描系统 摘要: 现如今已经跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。这种计算机的最小系统只用了一片集成电路,就可进行简单运算和控制。因为它体积小,通常都是放置在一个机械装置的内部。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。数码管显示与键盘扫描系统是单片机系统中十分典型的应用,可将4×4键盘的按键对应显示在数码管上。 关键词:单片机数码管 一、绪论 1. 研究意义 用单片机驱动LED数码管有很多方法,按显示方式可分静态显示和动态(扫描)显示;按译码方式可分硬件译码和软件译码。静态显示数据稳定,占用很少的CPU 时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。LED数码管的外围电路一般需要一个限流电阻和加大驱动电流的晶体管。 LED数码管是由发光二级管显示字段组成的显示器,有“8”字段和“米”字段之分,这种显示器有共阳极和共阴极两种。实际上不用驱动电路即可达到正常亮度,为了可靠性设计可采用晶体管构成驱动电路。 2. 设计目的 在单片机的产品设计中,人机界面是非常重要的部分,而且随着系统的日益复杂,以及人们对产品的人机交互能力的要求不断提升,常握单片机系统中的人机界面基础设计能力成为了学习单片机的基础课程,而4X4键盘的操作和LED数码管的动态显示是人机界面设计的基础内容,掌握这些基础设计能力,加深对人机界面的认识,同时提高人机界面系统设计能力。

多功能计时器-课程设计

信息工程学院课程设计报告书题目: 多功能计时器 专业:电子信息科学学技术 班级: 学号: 学生姓名: 指导教师: 2012 年 12 月 24 日

信息工程学院课程设计任务书 年月日

信息工程学院课程设计成绩评定表

摘要 此多功能计时器是基于741s48、74ls192、555定时器、CD40161设计的,由六个主要部分组成,即控制电路、秒脉冲发生器、计数器、译码显示器、置数电路以及声光报警电路,包含置数(00至99)、1s倒计时、开启、暂停、连续、清零以及到点声光报警等主要功能,也能完成一个完整的系统过程,可用于各种竞赛计时,交通灯系统,及报警装置。计时范围为00至99,可智能控制。 关键词:多功能计时器、1s倒计时、连续、声光报警

目录 目录 (4) 1 任务提出与方案论证 (5) 1.1 任务提出 (5) 1.2 方案论证 (5) 2 总体设计 (6) 2.1 总体框图 (6) 2.2 总体电路 (7) 3 详细设计 (8) 3.1秒脉冲发生器 (8) 3.2译码计时电路 (10) 3.3控制电路 (13) 3.3.1总开关 (13) 3.3.2单刀双掷开关 (13) 3.4反馈电路 (14) 3.5报警电路 (14) 3.6置数电路: (15) 4 总结 (17) 5 参考文献 (18)

1 任务提出与方案论证 1.1 任务提出 设计一种多功能计时器,要求实现以下功能: 置数、1s倒计时、开启、暂停、连续、清零以及到点声光报警,计时范围为00至99,可智能控制。能任意定时,开启和暂停及清零,1秒的准确延时,及到点声光报警。 1.2 方案论证 秒脉冲发生器:可以选用晶振产生,或者用555定时器或者555与CD40161同时产生,为了实现反馈,让计时器计数到零时停止,我选用CD40161 ,即实现了1s计数有可以形成反馈。译码电路:我选用4线-七段译码器/驱动器74LS48来实现。 计时电路:我选用十进制可逆计数器74LS48 ,可以用来置数,同时也可以来产生减计数。控制电路:用按键和反馈来实现。 报警电路:用speaker和led来实现。 置数电路:用单刀双掷开关选通74ls48的置数端,通过置0或置1来控制。

数电课程设计-数码管显示控制器的设计与实现

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 数码管显示控制器的设计与实现 初始条件: 555定时器、74LS160计数器、74LS161计数器、74LS153数据选择器、74LS48译码器、74LS04非门与数码管、电阻、电容等相关元件。 要求完成的主要任务: 1、设计任务 根据已知条件,完成对数码管显示控制器的设计、装配与调试。 2、设计要求 (1)、能自动一次显示出数字 0、1、2、3、4、5、6、7、8、9(自然数列),1、 3、5、7、9(奇数列), 0、2、 4、6、8(偶数列),0、1、0、1、2、3、4、 5、6、7(音乐符号序列);然后再从头循环; (2)、打开电源自动复位,从自然数列开始显示。 时间安排: 1、2012 年 6 月 8 日分班集中,布置课程设计任务、选题;讲解课设具体实施计划与课程设计报告格式的要求;课设答疑事项。 2、2012 年 6 月 9 日至 2012 年 7 月 3 日完成资料查阅、设计、制作与调试;完成课程设计报告撰写。 3、2012 年 7 月 4 日提交课程设计报告,进行课程设计验收和答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (3) Abstact (4) 引言 (5) 1设计背景 (6) 1.1设计任务 (6) 1.2设计要求 (6) 1.3指导思想 (6) 2方案论证 (7) 2.1方案说明 (7) 2.2方案原理 (7) 3电路的设计与分析 (8) 3.1电路的总体设计 (8) 3.2电路的原理框图 (9) 3.3元电路的设计与分析 (9) 3.3.1多谐振荡电路的设计与分析 (9) 3.3.2计数电路的设计与分析 (11) 3.3.3译码显示电路的设计与分析 (13) 4电路仿真、调试与分析 (16) 4.1脉冲产生电路的仿真 (16) 4.2总电路的仿真 (17) 4.3运行结果分析 (17) 5心得与体会 (18) 附录1元器件清单 (19) 附录2参考文献 (20)

24秒计时器课程设计

电子课程设计篮球24秒计时器 班级:自动化092201H班 姓名:陈鹏飞 学号:200922060101

目录 序言 (3) 一、设计任务及要求 (3) 二、总体框图 (3) .......................................................................................................... .......................................................................................................... .......................................................................................................... 三、选择器件 (4) ........................................................................................................... .......................................................................................................... 四、功能模块 (8) 五、总体电路设计 (12) 六、参考文献 (14) 七、心得体会 (14)

序言 篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,新的规则还要 求进攻方在24秒内有一次投篮动作,否则视为违例。本人设计了一个篮球比赛计时器,可对比赛总时间和各方每次控球时间既是。该计时器采用按键操作,LED 显示,非常实用,此计时器也可作为其他球类比赛的计时器。 篮球24秒计时器 一、设计任务与要求 1. 有显示24秒的计时功能 2. 置外部操作开关,控制计时器的直接清零,起碇和暂停连续功能 3. 计时器喂24秒递减计时器,其间隔为1秒 4. 计时器递减计时到0时,数码显示器不能灭灯 应发出光电报警信 号 二、总体框图 二. 1秒脉冲发生器: 秒脉冲信号发生器需要产生一定精度和幅度的矩形波信号。实现这样矩形波的方法很多,可以由非门和石英振荡器构成,可由单稳态电路构成,可以由施密特触发器构成,也可以由555点哭构成等。 不同的电路队矩形波频率的精度要求不同,由此可以选用不同电路结构的脉冲信号发生器。本实验中由于脉冲信号作为计数器的计时脉冲,其精度直接影响计数器的精度,因此要求脉冲信号有比较高的精度。一般情况下,要做出一个精度比较高的 频率很低的振荡器有一定的难度 工程上解决这一问题的办法就是先做一个频率比较高的矩形波震荡器,然后将其输出信号通过计数器进行多级分项,就可以得到频率比较低 精度比较高的脉冲信号发生器,其精度取决于振荡 秒脉冲发生器 外部操作信号 译码/显示电路 24t 计数器 控制电路 报警电路

用数码管显示实时日历时钟的应用设计

(用数码管显示实时日历时钟的应用设计)

摘要 本课题通过MCS-51单片机来设计电子时钟,采用汇编语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示。本次设计的电子时钟系统由时钟电路,LED显示电路三部分组成。51单片机通过软件编程,在LED数码管上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时。本文详细介绍了DS1302 芯片的基本工作原理及其软件设计过程,运用PROTEUS软件进行电路连接和仿真,同时还介绍了74LS164,通过它来实现I|O口的扩展。 关键词:时钟芯片,仿真软件,74LS164 目录 前言 0.1设计思路 (8) 0.2研究意义 (8)

一、时钟芯片 1.1 了解时钟芯片……………………………………………….8-9 1.2 掌握时钟芯片的工作原理………………………………….10-11二、74LS164 2.1 了解74LS164........................................................11-12 2.2 掌握的74LS164工作原理. (12) 三、数码管 3.1 熟悉常用的LED数码管...........................................12-13 3.2 了解动态显示与静态显示. (13) 四、程序设计 4.0 程序流程图 (14) 4.1 DS1392的驱动.......................................................15-16 4.2 PROTUES实现电路连接. (17) 4.3 数码管的显示:小时;分;秒 (18) 4.4 数码管显示:年;月;日 (19) 五、总结…………………………………………………………………..20-21 六、附页程序………………………………………………………………22-31前言

嵌入式系统课程设计---基于ARM微处理器的数码管驱动设计-任务书(1)

河南工业大学嵌入式课程设计 课程设计题目:基于ARM微处理器的数码管驱动设计学院:信息科学与工程学院 班级:电科1304 姓名: 学号:2013160304 指导老师姓名:李智慧

13级电科专业课程设计任务书

基于ARM微处理器的数码管驱动设计 一、设计要求 1.1实验内容: 1. 利用ARM微处理器实现数码管显示驱动; 2.能够显示0 1 2 3 4 5 6 7 8 9等数字,且循环显示; 3. 通过按键改变循环显示速度; 1.2实验设备: 硬件:PXA270 实验平台,PXA270 ARM 标准/增强型仿真器套件,PC 机。 软件:VMware Workstation、Ubuntu、win7。 二、设计方案 本次试验选用的芯片为 PXA270 ,使用的是 PXA270集成试验箱。基于 IntelXScale 架构的 PXA270处理器,集成了存储单元控制器、时钟和电源控制器、 DMA控制器、 LCD控制器、 AC97控制器、 I2S 控制器、快速红外线通信 (FIR) 控制器等外围控制器,可以实现丰富的外围接口功能。其低电源运行模式以及动态电源管理技术可以有效的降低电源的功耗。使用试验箱上的 4X4 的矩阵键盘作为输入,用来控制数码管显示的快慢速度,将需要输出的各个数码管状态从两个数码管中输出。 三、设计原理 1、数码管结构 七段数码管由 8 个发光二极管排列组成(包括小数点位)如下图所示: 这 8 个独立的二极管通常被命名: a.b.c.d.e.f.g.h 。 h 表示小数点。利用 7 段数码管能显示所有数字以及部分英文字母。 数码管有 2 种不同的形式:一种是 8 个发光二极管的阳极都连一起,成为共 阳极 8 段数码管如图所示: 共阳极 8 段数码管的 8 个发光二极管的正极一起接 VCC ,要控制数码管中的某一段亮,比如 A段,只须要控制数码管的 A 脚为低电平就可以了,反之熄灭 A 段就控制 A 脚为高电平。

60秒计时器课程设计 周海祥

目录 摘要 (2) 引言 (2) 一.设计目的 (2) 二.设计任务 (2) 三.电路原理设计 (2) 3-1计时器的设计原理 (2) 3-2计时器的基本逻辑功能 (3) 3-3主干电路设计 (3) 3-3-1震荡电路设计 (3) 3-3-2计数器的设计 (3) 3-3-3译码器的设计 (3) 四.电路仿真 (4) 五.系统分析 (5) 5-1基础元件介绍 (5) 5-1-1计数器 (5) 5-1-2译码器与显示管 (6) 5-1-3振荡器 (8) 5-1-4与非门 (8) 六.电路的焊接 (9) 七.调试 (9) 八.总结 (10) 参考文献 (10) 致谢 (10) 附录 (11)

74LS160构成的60秒计时器 摘要 60秒计时器是采用数字电路实现的数字显示计时装置。本系统由振荡器,计数器,译码器,LED显示器组成。采用74LS系列中小规模集成芯片。 引言 计时器是用数字集成电路做成的现代计时器,与传统的机械钟相比,它具有走时准确、显示直观(有荧光七段数码显示器)、无机械传动装置等优点。而且钟表的数字化给人们生产生活带来了极大的方便。 一.设计目的 在学完了《数字电子技术》课程的基本理论后,能够综合运用所学知识设计和制作实际需要的简单电子电路,系统地进行电子电路的工程实践训练,锻炼动手能力,培养工程师的基本技能,提高分析问题解决问题的能力。 二.设计任务 完成由74LS160构成的60秒计时器 计时器的组成:60秒计时器一般由振荡器,计时器,译码器,LED显示器组成,这些都是数字电路中应用最广泛的基本电路。 三.电路原理设计 3-1 计时器的设计原理: 先构成一个555定时器和分频器产生震荡周期为一秒的标准“秒”脉冲信号,由74LS160采用清零法分别组成六十进制的“秒”计数器。清零法适用于有异步置零输入端的集成计数器。原理是不管输出处于哪种状态,只要在清零输入端加一个有效电平电压,输出会立即从那个状态回到“0000”状态。。使用74LS48为驱动器,共阴极七段数码管作为显示器。设计图见附录一

数字电子钟电路的设计

江西航空职业技术学院毕业设计说明书(论文) 课题名称数字电子钟电路的设计 航空电子设备维修专业101332班 学生姓名学号15号 指导老师技术职称副教授 2013年3月10日

江西航空职业技术学院 毕业设计(论文)任务书 学生姓名:刘红亮班级:101332 1.毕业设计(论文)题目:数字电子钟电路的设计 2.毕业设计(论文)使用的原始资料数据及设计技术要求 1:基本概念清楚,基本原理正确; 2:电路图设计符合国家有关规范和标准; 3:按时参加指导教师辅导,按进度要求完成课程设计任务; 4:设计说明书不少于5000字; 2.毕业设计(论文)工作内容及完成时间:

1:数字电子时钟电路的背景和意义 2:数字电子钟电路的系统设计 3:数字钟原理图所需原件的作用 日期:自2012年12月30日至2013年4月6日 指导老师评语: ___________________________________________________ ___________________________________________________ ___________________________________________________ ___________________________________________________ ___________________________________________________ _____________________ 指导老师:姚卫华系主任:周延

摘要 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体震荡器,可能会导致误差。数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用32768MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。 关键字:数字钟晶振计数

微机原理及应用课程设计_数码管交通灯教材

南京工程学院 课程设计任务书 课程名称微机原理及应用A 院(系、部、中心) 专业 班级 姓名 学号 起止日期 2013.12.23~2013.12.26 指导教师

目录 1.设计要求 (3) 1.1设计目的 (3) 1.2设计内容 (3) 1.3功能要求 (3) 1.4难度要求 (3) 2.方案说明 (4) 2.1硬件系统工作原理说明 (4) 2.1.1电路接线方案 (4) 2.1.2定时问题 (4) 2.1.3工作状态 (4) 2.2参考流程图说明 (5) 2.2.1流程图设计思想 (5) 2.2.2实验流程图 (6) 3源程序清单 (7) 4.调试过程和结果 (11) 4.1总接线图 (11) 4.2 LED模拟的交通灯显示情况 (12) 4.3数码管模拟的交通灯倒计时 (13) 5.心得体会 (13) 6.参考文献 (14)

1.设计要求 1.1设计目的 通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际 1.2设计内容 利用STAR ES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯迷你控制系统”。所有输入该装置的信号均采用STAR ES598PCI实验仪上的状态输入开关输入,东西,南北方向的红绿黄灯均采用实验仪上的LED发光二极管模拟,东西,南北方向的信号灯变化,通行倒计时时间用数码管显示。 1.3功能要求 (1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。当A道和B道均有车辆要求通过时,A道和B道轮流放行。A道放行7秒,B道再放行5秒,依次轮流。绿灯转换红灯时黄灯亮1秒。 (2)一道有车,另一道无车时(实验时用开关K5和K6控制),交通控制系统能立即让有车道放行。 (3)有紧急车辆要求通过时,系统要能禁止普通车辆通过,A、B道均为红灯,紧急车辆用K7开关来模拟控制,有紧急车辆时另有一红灯闪烁。 (4) 当A道和B道均有车辆要求通过时,A道和B道轮流放行。A道放行30秒,B道再放行20秒,依次轮流。每个绿灯的最后5秒黄灯闪烁。 1.4难度要求 (1)基本要求:采用8255A输出控制信号灯,8255A输入K5、K6、K7控制开关信号,用循环程序软件定时实现功能要求。(60分) (2)中级要求:采用8255A输出控制信号灯,8255A输入K5、K6、K7控制开关信号,用8253硬件定时、软件查询方式实现功能要求。(80分) (3)高级要求:在中级要求的基础上,增加用8255A输出驱动LED数码显示器显示绿灯倒计时的秒数,黄灯时不显示时间。(100分)

8位数码管动态显示电路设计.

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

课程设计——秒表计时器

天津机电职业技术学院 《电子技术》课程设计论文 电子秒表 .完成时间:2009.12.30—2010.1.6 班级:08电气自动化三班 姓名:马赛男李丽美 学号:200812065 200812060

前言 21世纪是一个电子技术和电子元件有更大发展的世纪。回顾百年来电子技术和电子工业发展的成就,举世瞩目。可以看到,从国民经济到日常生活的各个方面,电子产品无所不在,体事例无庸枚举,其发展前景未可限量。作为一个学习电子专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。课程设计就是一个理论联系实际的机会。 本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。在写本报告的过程中,摘编了生产厂家和各种电子类报刊、参考书的资料,特向提供资料的同学及作者表示感谢。由于水平有限,报告中定有不妥之处,请提出宝贵意见。

目录 一、题目-------------------------------------------------------1 二、题目说明-------------------------------------------------1 三、原理介绍-------------------------------------------------1 四、单元电路设计-------------------------------------------2 1、时基信号发生器-------------------------------------2 2、计数器-------------------------------------------------7 3、译码器-------------------------------------------------11 4、显示器-------------------------------------------------13 5、防抖开关----------------------------------------------15 五、总装图----------------------------------------------------17 六、名细表----------------------------------------------------18 七、分工情况-------------------------------------------------19 八、后记-------------------------------------------------------20 九、参考资料-------------------------------------------------21

相关主题
文本预览
相关文档 最新文档