当前位置:文档之家› 单片机课程设计实验报告_LCD电子时钟

单片机课程设计实验报告_LCD电子时钟

单片机课程设计实验报告_LCD电子时钟
单片机课程设计实验报告_LCD电子时钟

单片机原理与应用

课程名称:单片机原理与应用

设计题目:LCD电子钟

院系:电子信息工程学院

班级:自动化0706

设计者:全宏宇

指导教师:

一,设计目标

LCD显示电子钟的基本功能

1,实现时钟功能;

2,实现闹铃功能;

3,实现秒表功能;

4,具有一定的计时精度。

LCD显示电子钟的基本要求

1,掌握单片机开发编程设计的基本流程;

2,了解Keil及Proteus软件的基本使用;

3,了解LCD的基本使用;

4,学习单片机硬件制作。

二,具体实现

1,软件平台

1)Keil编程

Keil 的开发工具的使用的基本过程:

○1创建C 或汇编语言的源程序;

○2编译或汇编源文件;

○3纠正源文件中的错误;

○4从编译器和汇编器连接目标文件;

○5测试连接的应用程序。

2)Proteus仿真

Proteus软件不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。在编译方面,它也支持IAR,Keil,PLAB等多种编译器。

2,硬件开发平台

JD51开发板的基本资料

○1LED 电路,8 只独立LED 发光管,可做指示或各种闪烁效果用。

○2数码管电路,4只共阳一体8 段数码显示管,可实现各种数据显示,如计数、时钟等。○3蜂鸣器电路,可用于设计各种提示音、演奏音乐等。

○4键盘电路,学习按键控制相关编程。

○5LCD 显示电路,编程控制LCD 显示。

○6串口电路,学习编程实现JD51 和PC 或其他符合该通信协议的电路之间的通信。

○7红外电路,通过选配的红外遥控器,学习红外解码并可实现红外遥控JD51。

○8温度模块电路,采用一线式温度传感器实现温度的采集并可显示在数码管或者LCD 上,通过温度数据处理便可实现温度控制器功能。

○9除了以上提到的可编程电路本学习板还有一些常用的不可编程电路,包括电源电路、复位电路、晶振电路等。

本次LCD电子钟实验用到其中的蜂鸣器,按键,LCD显示接口。

3,总体设计

1)基本资源的使用

本次实验采用了89C52型单片机,1602LCD液晶显示屏,蜂鸣器。为了实现时钟,定时,闹钟,秒表的功能,用到了单片机的外部中断,计时器中断,及

2)软件仿真

(1)程序设计的一些关键问题(具体参照后面的程序清单)

○1建立Keil工程时,注意对程序编译环境进行设置;

设置内容包括器件,频率,产生hex文件等。

○2LCD管脚及控制字;

LCD管脚的定义

控制字

1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。

指令1:清显示,指令码01H,光标复位到地址00H位置

指令2:光标复位,光标返回到地址00H

指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。

指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪

烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位S/C :高电平时显示移动的文字,低电平时移动光标

指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。

指令7:字符发生器RAM地址设置。

指令8:DDRAM地址设置。

指令9:读忙信号和光标地址BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。

○3LCD实现滚动显示;

方法一:采用LCD1602控制命令,显示后画面移动一个字符;

方法二:循环使用显示不同位置,形成滚动效果。

○5秒表

主要是产生计时基准0.01秒,有了基准之后需要解决的问题是如何实现有效的暂停,清零(达到精准动作),采用中断是很不错的结果。

○6闹铃

主要是如何实现闹铃关闭的逻辑,if(f&&g)语句可以实现这一动作。

○7提高计时精度

本程序除了调时模式外,其他模式的时候时钟都在跑动,提高了因模式转换而导致的时间精度降低。

(2)Proteus仿真

在Proteus中画出如下电路图,添加hex文件,进行虚拟仿真。

2)开发板运行调试

在JD51板上烧制程序,根据实际的效果,对中断的反应时间,显示效果做出了调整,整体效果不错,只是音乐的效果不佳,主要是由于如果将蜂鸣器换成扬声器效果会好些,还可以在程序中增加节拍来增加音乐效果。

4,硬件制作

根据仿真电路图购买元件进行焊接,下载程序效果后,液晶显示器显示乱码,检查电路后已无连接错误,但功能依然没有实现,相关检查在进行中。

三,设计体会

本次课程设计系统地学习了单片编程开发及实际电路的制作。学习了Keil的C语言编程的基本知识,Proteus仿真软件的模拟仿真,JD51开发实验板的使用,本次课设,时间了较多的其他案例,比较全面的掌握了单片机的运营,包括编程,电路,LCD器件等,在知识上有了很多的长进。

本次课程设计还有很多其他收获,锻炼了自学的能力,特别是动手实践方面的东西,让我深深感受到理论与实际的差距,实际当中会有一些小的问题,这些问题是意想不到的,需要去思考,去解决,这是很锻炼人的。

四,程序

#include

#include

#define uchar unsigned char

#define ulong unsigned long

#define uint unsigned int

uchar idata welcome[16]={" clock "}; //定义第一行显示数组

uchar idata lwelcome[16]={" clock "}; //定义第一行显示数组

uchar idata llwelcome[16]={" clock "}; //定义第一行显示数组

uchar idata lllwelcome[16]={" clock "}; //定义第一行显示数组

uchar idata sslcdtimer[16]={" 00:00:00 "};

uchar idata tsslcdtimer[16]={" 00:00:00 "};

uchar idata lcdtimer[16]={" 00:00:00 "}; //定义第二行显示数组

uchar idata mlcdtimer[16]={" 00: : "}; //定义第二行显示数组

uchar idata hlcdtimer[16]={" :00: "}; //定义第二行显示数组

uchar idata setlcdtimer[16]={" 00:01:00 "};

uchar timecount;

uchar temps;

bit timeflag;

bit sstimeflag;

sbit ring=P2^0;//蜂鸣闹铃

sbit e=P2^7;//LCD显示器E

sbit rw=P2^6;//LCD显示器RW

sbit rs=P2^5;//LCD显示器RS

sbit P10=P1^0; //测试用闪灯

sbit Key=P3^2;//秒表暂停,清零

sbit Key0=P3^3;//调时,设定闹钟时间,秒表选择

sbit Key1=P3^4;//调时,设定闹钟时间改变

uchar th1_f; //在中断中装载的T0的值高8位

uchar tl1_f; //在中断中装载的T0的值低8位

uint m=0;

uint n=0;

ulong i;

uint f=0,g=1;

uint j,k;

uchar code freq[3][14]=

{

{0xF2,0x42,

0xF3,0xC1,

0xF5,0x17,

0xF5,0xB6,

0xF6,0xD0,

0xF7,0xD1,

0xF8,0xB6},

{0xF9,0x21,

0xF9,0xE0,

0xFA,0x8B,

0xFA,0xD7,

0xFB,0x68,

0xFB,0xE8,

0xFC,0x5B },

{0xFC,0x8D,

0xFC,0xEE,

0xFD,0x44,

0xFD,0x6D,

0xFD,0xB4,

0xFD,0xF4,

0xFE,0x2D},

}; //音乐频率表,低音,中音,高音,系统振荡频率11.0592MHz

uint code song1[]={26,25,23,25,31,26,25,26,23,25,26,25,23,22,21,16,25,23,22,22,23,23,23,26,23,22,21,25, 23,22,21,16,21,15,26,25,23,25,31,26,25,26,23,25,26,25,23,22,21,16,25,23,22,22,23,23,23,26,23,

22,21,25,23,22,21,16,21,15};

//编制音乐

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

//软件延时函数(系统晶振为11.0592MHz),延时时间约为40μs

//入口条件:无符号整型变量del1,最终的延时时间为(del1*40)μs //**************************************************

void delay(uint del1)

{

uchar del2;

for(;del1>0;del1--)

for(del2=10;del2>0;del2--);

}

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

//液晶显示器判忙函数

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

void busy()

{

uchar temp;

temp=0x00;

rs=0;

rw=1;

while((temp&0x80)==0x80)

{

P0=0xff;

e=1;

temp=P0;

e=0;

}

}

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

//向液晶显示器写命令函数

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

void WR_Com(uchar temp)

{

busy();

rs=0;

rw=0;

P0=temp;

e=1;

e=0;

}

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

//向液晶显示器写数据函数

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

void WR_Data(uchar num)

{

busy();

rs=1;

rw=0;

P0=num;

e=1;

e=0;

}

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

//向液晶显示器写入显示数据函数

//入口条件:液晶显示器行首地址(指示第一行还是第二行)和待显示数组的首地址//**************************************************

//void disp_lcdchar(uchar addr,uchar temp1)

//{

// WR_Com(addr);

// delay(100);

// WR_Data(temp1);

//}

void disp_lcd(uchar addr,uchar *temp1)

{

uchar i;

WR_Com(addr);

delay(100);

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

{

WR_Data(temp1[i]);

delay(100);

}

}

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

//液晶显示器初始化函数

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

void lcd_ini()

{

char i;

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

{

P0=0x30;

rs=0;

rw=0;

e=1;

e=0;

delay(100);

}

P0=0x38;

rs=0;

rw=0;

e=1;

e=0;

delay(100);

}

//************************************************** //液晶显示器复位函数

//************************************************** void lcd_Reset()

{

WR_Com(0x01);

delay(100);

WR_Com(0x06);

delay(100);

WR_Com(0x0c);

delay(100);

}

//************************************************** //外部中断函数,秒表暂停,清零

//************************************************** void modess() interrupt 0 using 0

{

delay(10000);

n++;

if(n==3)

n=0;

}

//************************************************** //外部中断函数,模式选择

//************************************************** void modepp() interrupt 2 using 1

{

delay(30000);

m++;

if(m==6)

if(m==7)

m=0;

}

//************************************************** //定时/计数器中断函数,1S及0.01S

//************************************************** void timer0() interrupt 1 using 2

{

TH0=0xdc;

TL0=0x23;

sstimeflag=1;

if(--timecount==0)

{

timecount=100;

timeflag=1;

}

}

//************************************************** //定时/计数器中断函数,装入音乐频率计数初值

//************************************************** void timer1() interrupt 3 using 3

{

TL1=tl1_f;TH0=th1_f; //调入预定时值

ring=!ring; //取反音乐输出IO

}

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

//************************************************** void main()

{

P10=1;

lcd_ini();

lcd_Reset();

/* for(i=0;i<10;i++)

{

temps=welcome[i];

disp_lcdchar(0x80+1,temps); //LCD 单字符从左到右显示

delay(10000);

disp_lcd(0x80,welcome);

delay(10000);

disp_lcd(0x80,lwelcome);

delay(10000);

disp_lcd(0x80,llwelcome);

delay(10000);

disp_lcd(0x80,lllwelcome);

delay(10000);

disp_lcd(0x80,llwelcome);

delay(10000);

disp_lcd(0x80,lwelcome);

delay(10000);

disp_lcd(0x80,welcome); //LCD滚动显示delay(10000);

disp_lcd(0xc0,lcdtimer);

P10=0;

TMOD=0x11;

TH0=0xdc;

TL0=0x23;

TR0=1;

IE=0x86;

timeflag=0; //1秒计时标志sstimeflag=0; //0.01秒计时标志timecount=100;

while(1)

{

while(m==6)//秒表

{

IE=0x87;

if(n==0) //秒表跑动

{

if(sstimeflag==1)

{

sstimeflag=0;

sslcdtimer[11]+=1;

if(sslcdtimer[11]>=0x3a)

{

sslcdtimer[11]=0x30;

sslcdtimer[10]+=1;

if(sslcdtimer[10]>=0x3a)

{

sslcdtimer[10]=0x30;

sslcdtimer[8]+=1;

{

sslcdtimer[8]=0x30;

sslcdtimer[7]+=1;

if(sslcdtimer[7]>=0x36)

{

sslcdtimer[7]=0x30;

}

}

}

}

disp_lcd(0xc0,sslcdtimer);

}

if(n==1)//秒表暂停

{

disp_lcd(0xc0,sslcdtimer);

}

if(n>=2)//秒表清零

{

disp_lcd(0xc0,tsslcdtimer);

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

sslcdtimer[i]=tsslcdtimer[i];

}

}

}

while(m==0||m>=3) //时钟程序,只要不是调时,就一直运行{

IE=0x86;

if(timeflag==1)

{

timeflag=0;

lcdtimer[11]+=1;

if(lcdtimer[11]>=0x3a)

{

lcdtimer[11]=0x30;

lcdtimer[10]+=1;

if(lcdtimer[10]>=0x36)

{

lcdtimer[10]=0x30;

lcdtimer[8]+=1;

if(lcdtimer[8]>=0x3a)

{

lcdtimer[8]=0x30;

if(lcdtimer[7]>=0x36)

{

lcdtimer[7]=0x30;

lcdtimer[5]+=1;

if(lcdtimer[5]>=0x3a)

{

lcdtimer[5]=0x30;

lcdtimer[4]+=1;

if(lcdtimer[4]>=0x33&&lcdtimer[5]>=0x35)

{

lcdtimer[5]=0x30;

lcdtimer[4]=0x30;

}

}

}

}

}

}

}

if(m==0)

{

disp_lcd(0xc0,lcdtimer);

if(!Key1)//关掉闹钟

{

g=0;

}

if(lcdtimer[8]==setlcdtimer[8]&&lcdtimer[7]==setlcdtimer[7]&&lcdtimer[5]==setlcdtimer[5]&&lc dtimer[4]==setlcdtimer[4])

f=1; //开启闹钟,播放音乐

if(f&&g)

{

/*ring=1;

delay(10000);

ring=0;

f=0; */

IE=0x8e;

j=song1[i]/10-1;

k=2*(song1[i]%10-1);

th1_f=freq[j][k]; //取出对应的定时值送给T0

tl1_f=freq[j][++k];

TR1=1;

for(n=0;n<50000;n++); //音符间延时

i++;

TR1=0;

f=0;

}

}

}

while(m==1) //调时分

{

if(!Key1)

{

delay(10000);

timeflag=0;

lcdtimer[8]+=1;

if(lcdtimer[8]>=0x3a)

{

lcdtimer[8]=0x30;

lcdtimer[7]+=1;

if(lcdtimer[7]>=0x36)

{

lcdtimer[7]=0x30;

}

}

}

disp_lcd(0xc0,lcdtimer);

delay(8000);

mlcdtimer[11]=lcdtimer[11];

mlcdtimer[10]=lcdtimer[10];

mlcdtimer[5]=lcdtimer[5];

mlcdtimer[4]=lcdtimer[4];

disp_lcd(0xc0,mlcdtimer);

}

while(m==2) //调时时

{

if(!Key1)

{

delay(10000);

lcdtimer[5]+=1;

if(lcdtimer[5]>=0x3a)

{

lcdtimer[5]=0x30;

lcdtimer[4]+=1;

}

if(lcdtimer[4]==0x32&&lcdtimer[5]>=0x34)

{

lcdtimer[5]=0x30;

lcdtimer[4]=0x30;

}

}

disp_lcd(0xc0,lcdtimer);

delay(8000);

hlcdtimer[11]=lcdtimer[11];

hlcdtimer[10]=lcdtimer[10];

hlcdtimer[8]=lcdtimer[8];

hlcdtimer[7]=lcdtimer[7];

disp_lcd(0xc0,hlcdtimer);

}

while(m==3)//显示闹铃时间

{

if(!Key1)

{

delay(10000);

}

disp_lcd(0xc0,setlcdtimer);

}

while(m==4) //调闹铃分

{

if(!Key1)

{

delay(10000);

setlcdtimer[8]+=1;

if(setlcdtimer[8]>=0x3a)

{

setlcdtimer[8]=0x30;

setlcdtimer[7]+=1;

if(setlcdtimer[7]>=0x36)

{

setlcdtimer[7]=0x30;

}

}

}

disp_lcd(0xc0,setlcdtimer);

delay(8000);

mlcdtimer[11]=setlcdtimer[11];

mlcdtimer[10]=setlcdtimer[10];

mlcdtimer[5]=setlcdtimer[5];

mlcdtimer[4]=setlcdtimer[4];

disp_lcd(0xc0,mlcdtimer);

}

while(m==5)//调闹铃时

{

if(!Key1)

{

delay(10000);

setlcdtimer[5]+=1;

if(setlcdtimer[5]>=0x3a)

{

setlcdtimer[5]=0x30;

setlcdtimer[4]+=1;

}

if(setlcdtimer[4]==0x32&&setlcdtimer[5]>=0x34)

{

setlcdtimer[5]=0x30;

setlcdtimer[4]=0x30;

}

}

disp_lcd(0xc0,setlcdtimer);

delay(8000);

hlcdtimer[11]=setlcdtimer[11];

hlcdtimer[10]=setlcdtimer[10];

hlcdtimer[8]=setlcdtimer[8];

hlcdtimer[7]=setlcdtimer[7];

disp_lcd(0xc0,hlcdtimer);

}

}

}

单片机电子时钟课程设计报告报告

目录 1、引言 (3) 2、总体设计 (4) 3、详细设计 (5) 3.1硬件设计 (5) 3.2软件设计 (10) 4、实验结果分析 (26) 5、心得体会 (27) 6、参考文献 (27)

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机AT89C51

1.引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机课程设计报告模板资料

哈尔滨远东理工学院 课题名称 专业班级 学号 学生姓名 指导教师 2015年10月14日

1、例举设计过程中遇到的问题及其解决方法(至少两例)。答:(1)问题说明: 解决方法: (2)问题说明: 解决方法: 2、教师现场提的问题记录在此(不少于2个问题)。

目录 1 设计任务 (1) 2设计方案 (2) 2.1任务分析 (2) 2.2方案设计 (2) 3 系统硬件设计 (3) 3.1时钟电路设计 (3) 3.2复位电路设计 (3) 3.3 灯控制电路设计 (3) 3.4 倒计时显示电路设计 (4) 3.5 按键控制电路设计 (5) 4 系统软件设计 (6) 4.1 1S定时 (6) 4.2 定时程序流程 (6) 4.3交通灯的设计流程图 (6) 4.4定时器0 及中断响应 (7) 5仿真与性能分析 (8) 6心得体会 (9) 参考文献 (10) 附录1 系统原理图 .......................................................................错误!未定义书签。附录2 系统PCB图 .....................................................................错误!未定义书签。附录3 程序清单 .. (11) II

1 设计任务 支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图1.1所示。设东西向为主干道,南北为支干道。 1. 基本要求 (1) 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (2) 主、支干道均有车时,两者交替允许通行,主干道每次放行30秒,支干道每次放行20秒,设立30秒、20秒计时、显示电路。 (3) 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。黄灯亮时,原红灯按1Hz 的频率闪烁。 (4) 要求主支干道通行时间及黄灯亮的时间均可在0~99秒内任意设置。 2. 选做 (1) 可设置紧急按钮,在出现紧急情况时可由交警手动实现全路口车辆禁行而行人通行状态,即主干道和支干道均为红灯亮。 (2) 实现绿波带。所谓‘绿波带’,是指在一定路段,只要按照规定时速,就能一路绿灯畅行无阻。“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

智能小车单片机课程设计报告

题目: 智能小车设计 打开命令行终端的快捷方式: ctr+al+t:默认的路径在家目录 ctr+shift+n:默认的路径为上一次终端所处在的路径. linux@ubuntu:~$ linux:当前登录用户名. ubuntu:主机名 :和$之间:当前用户所处在的工作路径. windows下的工作路径如C:\Intel\Logs linux下的工作路径是:/.../..../ ~:代表的是/home/linux这个路径.(家目录). ls(list):列出当前路径下的文件名和目录名. ls -a(all):列出当前路径下的所有文件和目录名,包括了隐藏文件. .:当前路径 ..:上一级路径 ls -l:以横排的方式列出文件的详细信息 total 269464(当前这个路径总计所占空间的大小,单位是K) drwxr-xr-x 3 linux linux 4096 Dec 4 19:16 Desktop 第一个位置:代表的是文件的类型. linux系统下的文件类型有以下几种. b:块设备文件 c:字符设备文件 d:directory,目录 -:普通文件. l:连接文件. s:套接字文件. p:管道文件. rwxr-xr-x:权限 r:读权限-:没有相对应的权限 w:写权限

x:可执行权限 修改权限: chmod u-或者+r/w/x 文件名 chmod g-或者+r/w/x 文件名 chmod o-或者+r/w/x 文件名 第一组:用户权限 第二组:用户组的权限 第三组:其他用户的权限. chmod 三个数(权限) 文件名 首先根据你想要的权限生成二进制数,再根据二进制数转换成十进制的三位数 rwxr-x-wx 111101011 7 5 3 chmod 753 文件名 rwx--xr-x 第二个位置上的数字:对应目录下的子文件个数,如果是非目录,则数字是1 第三个位置:用户名(文件创造者). 第四个位置:用户组的名字(前边的用户所处在的用户组的名字). 第五个位置:对应文件所占的空间大小(单位为b) 第六~八个位置:Dec 4 19:16时间戳(最后一次修改文件的时间) 最后一个位置:文件名 操作文件: 1.创建一个普通文件:touch 文件名 2.删除一个文件:rm(remove) 文件名 3.新建一个目录:mkdir(make directory) 目录名 递归创建目录:mkdir -p 目录1/目录2/目录3 4.删除一个目录:rmdir 目录名.//仅删除一个空目录 rm -rf 目录名//删除一个非空目录 5.切换目录(change directory):cd 路径 linux下的路径分两种 相对路径:以.(当前路径)为起点. 绝对路径:以/(根目录)为起点, 用相对路径的方式进入Music:cd ./Music 用绝对路径的方式进入Desktop:cd /home/linux/Desktop 返回上一级:cd ..

数字电子时钟实验报告材料

华大计科学院 数字逻辑课程设计说明书 题目:多功能数字钟 专业:计算机科学与技术 班级:网络工程1班 姓名:刘群 学号: 1125111023 完成日期:2013-9

一、设计题目与要求 设计题目:多功能数字钟 设计要求: 1.准确计时,以数字形式显示时、分、秒的时间。 2.小时的计时可以为“12翻1”或“23翻0”的形式。 3.可以进行时、分、秒时间的校正。 二、设计原理及其框图 1.数字钟的构成 数字钟实际上是一个对标准频率 1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。图 1 所示为数字钟的一般构成框图。 图1 数字电子时钟方案框图

⑴多谐振荡器电路 多谐振荡器电路给数字钟提供一个频率1Hz 的信号,可保证数字钟的走时准确及稳定。 ⑵时间计数器电路 时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成。其中秒个位和秒十位计数器、分个位和分十位计数器为60 进制计数器。而根据设计要求,时个位和时十位计数器为24 进制计数器。 ⑶译码驱动电路 译码驱动电路将计数器输出的8421BCD 码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。 ⑷数码管 数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管。本设计提供的为LED数码管。 2.数字钟的工作原理 ⑴多谐振荡器电路 555 定时器与电阻R1、R2,电容C1、C2 构成一个多谐振荡器,利用电容的充放电来调节输出V0,产生矩形脉冲波作为时钟信号,因为是数字钟,所以应选择的电阻电容值使频率为1HZ。 ⑵时间计数单元 六片74LS90 芯片构成计数电路,按时间进制从右到左构成从低位向高位的进位电路,并通过译码显示。在六位LED 七段显示起上显示

单片机课程设计--简易电子钟.doc

单片机课程设计报告设计课题:简易电子时钟的设计 专业班级:07通信1班 学生姓名:黎捐 学号:0710618134 指导教师:曾繁政 设计时间:2010.11.5—2010.12.20

一、设计任务与要求 (1)设计任务: 利用单片机设计并制作简易的电子时钟,电路组成框图如图所示。 (2)(2) 设计要求:1)制作完成简易的电子时钟,时间可调整。 2)有闹钟功能。 二、方案设计与论证 简易电子时钟电路系统由主体电路和扩展功能电路两主题组成,总体功能原理是以STC89C52单片机为主要的控制核心,通过外接4个独立式键盘作为控制信号源,八个七段数码管作为显示器件,蜂鸣器作为定时器件,单片机实时的去执行相应的功能。在数码管上显示出来,此时通过不同的按键来观看和调节各种数据。CPU 控制原理图如图1所示。 图1. CPU 控制原理图 三、硬件系统的设计 3.1 STC89C52控制模块 STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O )端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。 MCS-52单片机内部结构 8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM): 8052内部有128个8位用户数据存储单元和128 个专用寄存器单元,它们是统一编 时间显示显示 主控器(51单片机) 时间 调整 声音报 时 (选做)

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

单片机课程设计报告

课程设计报告 课程名称单片机原理及应用 设计题目电子琴的设计 专业班级自动化1142 姓名周太永 学号1104421242 指导教师蔡长青张卓 起止时间2014.6.23-2014.7.11 成绩评定 考核内容设计 表现 设计 报告 答辩 综合 评定 成绩 电气与信息学院

2013/2014学年第二学期 《单片机控制系统设计与调试》课程设计任务书 指导教师:蔡长青班级:自动化1141、2班 地点:机房、单片机实验室(实训中心415) 课程设计题目:基于单片机原理的电子琴设计 一、课程设计目的 1.灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计, 到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。 2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。 3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问 题的能力,为日后的毕业设计及科研工作奠定良好的基础。 二、课程设计内容(包括技术指标) 1.焊接。认真、仔细,避免缺焊、漏焊。 2.频率计算。会计算脉冲值与频率的关系。 3.工作过程。开机时,第一步是对定时器T0进行初始化,设定它的工作状态(对 于本系统将T0设定为工作方式0);然后判断是否有键按下,如果没有按键按下,继续判断,如果有按键按下,则判断是哪个键按下;再根据按键的功能将计数初值装入定时器T0中中并启动T0,当T0定时完毕后,重新装入计数初值继续定时并将P3.3取反,再次定时完毕后再一次的装入计数初值 继续定时并将P3.3取反,一直循环此操作直到按键释放为止,按键释放后 停止T0工作并再次判断是否又有按键按下,并继续执行以前的过程。 三、时间安排 1.布置任务、查资料1天 2.硬件电路图设计及PCB制版3天 3.硬件电路图及PCB制版验收、电路板焊接1天 4.软件编程设计3天 5.系统调试3天 6.调试验收1天 7.完成设计报告3天 四、基本要求 1.画出硬件电路图,完成PCB制版; 2.画出软件流程图,编写程序(C51语言/汇编语言); 3.完成系统调试; 4.提交设计报告。

数字电子钟实验报告

咸阳师范学院物理与电子工程学院 课程设计报告 题目: 班级: 姓名: 学号: 指导教师: 成绩: 完成日期:年月

目录 第一章概述 3 第二章数字电子钟的电路原理 4 第三章电路调试与制作11 第四章总结与体会12 第五章附录13

第一章概述 数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运运超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 虽然市场上已有现成的数字集成电路芯片出售,价格便宜,使用方便,这里所制作的数字电子可以随意设置时,分的输出,是数字电子中具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。 课程设计目的 (1)加强对电子制作的认识,充分掌握和理解设计个部分的工作原理、设计过程、选择芯片器件、电路的焊接与调试等多项知识。 (2)把理论知识与实践相结合,充分发挥个人与团队协作能力,并在实践中锻炼。 (3)提高利用已学知识分析和解决问题的能力。 (4)提高实践动手能力。

第二章数字电子钟的电路原理 数字电子钟的设计与制作主要包括:数码显示电路、计数器与校时电路、时基电路和闹铃报时电路四个部分。 1.数码显示电路 译码和数码显示电路是将数字钟的计时状态直观清晰地反映出来。显示器件选用FTTL-655SB双阴极显示屏组。在计数电路输出信号的驱动下,显示出清晰的数字符号。 2.计数器电路 LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。 3.校时电路 数字钟电路由于秒信号的精确性和稳定性不可能做到完全准确无误,时基电路的误差会累积;又因外部环境对电路的影响,设计产品会产生走时误差的现象。所以,电路中就应该有校准时间功能的电路。通过手动调节按键,达到校准的目的。 4.定时报警电路 当调好定时间后并按下开关K1(白色键),显示屏右下方有红点指示,到定时时间有驱动信号经R3使VT1工作,即可定时报警输出。 芯片资料 LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。作为时钟,它准确醒目;作为控制开关,它动作无误;在1小时59分钟或59分钟内,能任意暂停,使用十分方便。 仔细观察从0-9的每个数字并比较图1所示的笔段。内部电路参看图2, LM8560各脚功能,参看图3。

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

数字电子钟课程设计报告-数电

华东交通大学理工学院课程设计报告书所属课程名称数字电子技术课程设计题目数字电子钟课程设计分院电信分院 专业班级10电信2班 学号20100210410201 学生姓名陈晓娟 指导教师徐涢基 20 12 年12 月18 日

目录 第1章课程设计内容及要求 (3) 第2章元器件清单及主要器件介绍 (5) 第3章原理设计和功能描述 (10) 第4章数字电子钟的实现 (15) 第5章实验心得 (17) 第6章参考文献 (18)

第1章课程设计内容及要求 1.1 数字钟简介 20世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高、产品更新换代的节奏也越来越快。数字钟已成为人们日常生活中必不可少的生活日用品。广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点。 因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。具有时间显示、走时准确、显示直观、精度、稳定等优点,电路装置十分小巧,安装使用也方便而受广大消费的喜爱。 1.2 设计目的 1. 掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;

2. 进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力; 3. 提高电路布局,布线及检查和排除故障的能力。 1.3 设计要求 1. 设计一个有“时”、“分”、“秒”(23小时59分59秒)显示,且有校时功能的电子钟。 2. 用中小规模集成电路组成电子钟,并在实验箱上进行组 装、调试。 3. 画出框图和逻辑电路图、写出设计、实验总结报告。 4. 整点报时。在59分59秒时输出信号,音频持续1s,在结束时刻为整点。

单片机课程设计报告模板

单片机系统课程设计报告 专业:自动化 学生姓名: 学号: 指导教师: 完成日期:2011 年 3 月17 日

目录 1 设计任务和性能指标 (3) 1.1设计任务............................................................................ 错误!未定义书签。 2 设计方案 (4) 2.1任务分析 (4) 2.2方案设计 (4) 3 系统硬件设计 (5) 3.1时钟的电路设计 (5) 3.2复位电路设计 (5) 3.3灯控电路设计 (5) 3.4倒计时电路设计 (6) 3.5按键控制电路设计 (7) 4 系统软件设计 (8) 4.11秒定时 (8) 4.2定时程序流程 (8) 4.3交通灯的设计流程图 (9) 4.4定时器0与中断响应 (10) 5 仿真及性能分析 (10) 5.1仿真结果图 (11) 5.2仿真结果与分析 (12) 6 心得体会 (13) 参考文献 (14) 附录1 系统原理图 (15) 附录2 系统PCB图 .................................................................. 错误!未定义书签。附录3 程序清单 (17)

1.1设计任务 利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图5.1所示。设东西向为主干道,南北为支干道。 图5.1 交通灯示意图 1. 基本要求 (1) 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干 道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 (2) 主、支干道均有车时,两者交替允许通行,主干道每次放行30秒, 支干道每次放行20秒,设立30秒、20秒计时、显示电路。 (3) 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。 黄灯亮时,原红灯按1Hz 的频率闪烁。 (4) 要求主支干道通行时间及黄灯亮的时间均可在0~99秒内任意设置。 2. 选做 (1) 可设置紧急按钮,在出现紧急情况时可由交警手动实现全路口车辆 禁行而行人通行状态,即主干道和支干道均为红灯亮。 (2) 实现绿波带。所谓‘绿波带’,是指在一定路段,只要按照规定时速, 就能一路绿灯畅行无阻。“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。 南 北 东 西

单片机课程设计 电子日历时钟显示器设计

目录 1.题目设计要求 (1) 2.开发平台简介 (1) 3.系统硬件设计 (2) 3.1设计原理 (2) 3.2器件的功能与作用 (2) 3.2.1 MCS51单片机AT89C51 (2) 3.2.2复位电路 (3) 3.2.3晶振电路 (4) 3.2.4 DS1302时钟模块 (4) 3.2.5 引脚功能及结构 (4) 3.2.6 DS1302的控制字节 (5) 3.2.7 数据输入输出(I/O) (5) 3.2.8 DS1302的寄存器 (6) 3.2.9 液晶显示LCD1602 (6) 3.2.10 串行时钟日历片DS1302 (8) 4.系统软件设计 (10) 4.1程序流程 (10) 4.2程序代码 (10) 5.系统仿真调试 (20) 5.1仿真原理图设计 (20) 5.2仿真运行过程 (21) 5.3仿真运行结果 (21) 6.总结 (21) 7.参考文献 (22)

1.题目设计要求 通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。 2.开发平台简介 2.1系统仿真平台Proteus Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。 2.2软件开发平台Keil C Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

数字电子时钟课程设计总结报告

《数字逻辑电路设计》课程设计 总结报告 题目:数字电子钟设计 指导教师: 设计人员: (学号): 班级:

日期:2018年12月

一.设计任务书 任务:数字电子钟设计 基本设计要求:仿真实现数字电子钟 1.要求能显示“时”“分”“秒” 2.时24小时,分60分钟,秒60。 3.能够校时,校分 电路在实验箱上实现 二.设计框图及整机概述 设计框图: 概述:数字电子时钟电路系统由秒信号发生器、校分校时电路、“时、分、秒”计数器和“时、分、秒”显示器组成。秒信号发生器将秒信号送入秒计时器,秒计时器为六十进制计数器,每计六十个数便发送分脉冲信号给分计数器,分计数器也为六十进制计数器,每计六十个数便发送时脉冲信号给时计数器,时计数器是二十四进制计数器。“时、分、秒”显示器将计数器输

出的状态显示出来。 三.各单元电路的设计方案及原理说明 1.六十进制计数器 计数器是对cp脉冲进行计数的时序逻辑电路。“分”和“秒” 的计数由六十进制计数器实现,74LS161为16进制计数器, 两片74LS161EP和ET恒为1,均工作在计数状态,当分个位 和秒个位计数器计到9(1001)时,CLOR端为高电平,经反 相器后使时位CLK端为低电平。当下一个计数输入脉冲到达后,个位记成0(0000),此时CLOR端跳回低电平,时位计数1。 计数器从0开始计数,当计入60个脉冲时,经与非门产生低 电平,立即将两片74LS161同时置零,得到60进制计数器。 2.二十四进制计数器 时的计数由二十四进制计数器实现,当计入24个脉冲的

时候,经与非门产生的低电平信号即将两片74LS161同时置零,得到二十四进制计数器。 3.显示电路 计数器输出的是8421BCD码,需译码器将其转为阿拉伯数字。 4.校时电路 利用校时电路截断分十位和时十位的直接计数通路,当校时电路中的开关截断时,其中的与非门一端接高电平,另一端接秒/分十位的进位输出端,若秒/分十位的进位输出端输出的是低电平,则分/时个位的CLK有低电平的信号输入,此时得到

数字电子时钟实验报告

一、设计题目与要求 设计题目:多功能数字钟 设计要求: 1.准确计时,以数字形式显示机器人行走的时、分、秒的时间。 二、设计原理 1数字钟的组成部分 ⑴555定时器组成的方波发生电路 多谐振荡器电路给数字钟提供一个频率1Hz 的信号,可保证数字钟的走时准确及稳定。 ⑵时间计数器电路 时间计数电路分成三个模块,时,分,秒:时用24进制计数器实现;分,秒用60进制计数器实现。 ⑶译码显示电路 译码驱动电路将计数器输出的8421BCD 码转换为数码管需要的逻辑状态,并在显示电路显示相应系数。 2.数字钟的工作原理 ⑴多谐振荡器电路 555 定时器与电阻R1、R2,电容C1、C2 构成一个多谐振荡器,利用电容的充放电来调节输出V0,产生矩形脉冲波作为时钟信号,因为是数字钟,所以应选择的电阻电容值使频率为1HZ。 ⑵时间计数单元

六片74LS90 芯片构成计数电路,按时间进制从右到左构成从低位向高位的进位电路,并通过译码显示。在六位LED 七段显示起上显示对应的数值。 三、元器件 1.实验中所需的器材. Vcc 5V 电源?. 共阴七段数码管6 个?. 74LS90D 集成块6 块?. 74HC00D 6个以及其他元件 LM555CM 1个 电阻 6个 10uF 电容 2个 2.芯片内部结构及引脚图

图2 LM555CM集成块 图374LS90D集成块 五、各功能块电路图 1秒脉冲发生器主要由555 定时器和一些电阻电容构成,原理是利用555 定时器的特性,通过电容的充放电使VC 在高、低电平之间转换。其中555 定时器的高、低电平的门阀电压分别是2/3VCC 和1/3VCC 当电容器充电使VC 的电压大于2/3VCC 则VC 就为高电平,然 而由于反馈作用又会使电容放电。当VC 小于1/3VCC 时,VC 就为低电平。同样由于反馈作用又会使电容充电。通过555 定时器的这一性质我们就可以通过计算使他充放电的周期刚好为1S这样我们就会得到1HZ 的信号。其中555 定时器的一些功能对照后面目录。其中555 定时器组成的脉冲发生器电路见:方波发生器的部分。

单片机课程设计电子钟汇编语言

ORG 0000H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV R0,#00H MOV R1,#00H CLR P3.0 CLR P3.1 UU: MOV TMOD ,#00H MOV TH0,#00H MOV TL0,#00H CLR TR0 MM: MOV A,40H MOV 50H,#11111110B MOV P2,50H MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P0,A LCALL YY MOV A,50H RL A MOV 50H,A MM1: MOV P2,50H MOV DPTR,#TAB MOV A,41H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM2: MOV P2,50H MOV DPTR,#TAB MOV A,42H

MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM3: MOV P2,50H MOV DPTR,#TAB MOV A,43H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM4: MOV P2,50H MOV DPTR,#TAB MOV A,44H MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM5:MOV P2,50H MOV DPTR,#TAB MOV A,45H ADD A ,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM6: MOV P2,50H MOV DPTR,#TAB MOV A,46H

单片机电子时钟课程设计设计报告

单片机电子时钟设计 一、作品功能介绍 该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。 功能介绍: (1)上电以后自动进入计时状态,起始于00:00:00。 (2)设计键盘调整时间,完成时间设计,并设置闹钟。 (3)定时时间为1/100秒,可采用定时器实现。 (4)采用LED数码管显示,时、分,秒采用数字显示。 (5)采用24小时制,具有方便的时间调校功能。 (6)具有时钟和秒表的切换功能。 使用方法: 开机后时钟在00:00:00起开始计时。 (1)长按P3.2进入调分状态:分单元闪烁,按P3.2加1,按P3.3减1.再长按P3.2进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。 (2)(2)按P3.3进入设定闹时状态: 12:00: ,可进行分设定,按P3.4分加1,再按P3.2为时调整,按P3.4时加1,按P3.3调闹钟结束.在闹铃时可按P3.2停闹,不按闹铃1分钟。 (3)按下P3.4进入秒表状态:再按P3.4秒表又启动,按P3.4暂停,再按P3.4秒表清零,按P3.4退出秒表回到时钟状态。 二、电路原理图 如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。

电子时钟原理图 各个模块设计 1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机, 它完全兼容传统的8051,8031的指令系统,他的运行速度 要比8051快最高支持达33MHz的晶体震荡器,在此系统中 使用12MHz的晶振。 AT89S52具有以下标准功能: 8k字节Flash,256字节 RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三 个16 位定时器/计数器,一个6向量2级中断结构,全双 工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模 式下,CPU停止工作,允许RAM、定时器/计数器、串口、中 断继续工作。掉电保护方式下,RAM内容被保存,振荡器被

单片机课程设计报告书模板

. .. . .. .. 西南科技大学 2011级微机原理与接口技术 课程设计报告 课题名称微机原理与接口技术 姓名 学号 院、系、部制造科学与工程学院 专业 指导教师 2014年月日

目录 一、绪言 (1) 二、系统设计 (1) 2.1系统整体流程图 (1) 2.2日历时钟的控制方案论证 (1) 2.3单片机的选择方案论证 (2) 2.4键盘选择方案论证 (2) 2.5显示模块的选择方案论证 (2) 2.6模块的选择方案论证 (2) 三、硬件电路设计 (2) 3.1日历时钟的控制电路图 (2) 3.2行列式键盘的设计 (3) 3.3数码管显示电路的设计 (3) 3.4蜂鸣器驱动电路的设计 (4)

3.5主要元器件选择 (4) 四、程序流程图 (5) 五、c语言程序设计 (5) 六、日历时钟的控制器仿真 (19) 6.1K e i l调试 (19) 6.2P r o t e u s调试 (19) 七、结束语 (20) 八、参考文献 (21) 1、绪言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。本设计采用AT89C51单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

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