文档库 最新最全的文档下载
当前位置:文档库 › 基于ARM和LCD的电子时钟设计

基于ARM和LCD的电子时钟设计

基于ARM和LCD的电子时钟设计
基于ARM和LCD的电子时钟设计

基于ARM和LCD的电子时钟设计

————————————————————————————————作者:————————————————————————————————日期:

指导教师评定成绩:

审定成绩:

重庆邮电大学移通学院

课程设计报告

设计题目:基于LCD的电子时钟实验

学校:重庆邮电大学移通学院

学生姓名:曹相凯

专业:电气工程与自动化

班级:05131004

学号:0513100432

指导教师:陈龙灿

设计时间:2013 年12 月

重庆邮电大学移通学院

前言

时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED 显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。

本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。

系统设计

课题目标及总体方案

通过S3C44B0X处理器的学习,可以利用其内部的RTC单元和LCD控制器,外接LCD模块、晶振和(后备)电源实现电子实时时钟的功能。主要实现方法为:通过电源和晶振保证处理器的正常工作和时钟来源,通过编程设定RTC单元的工作模式,实现实时时钟的功能;然后根据所要求显示的图形效果,编写程序设定LCD控制器的相应寄存器,将RTC单元和LCD控制器合理有效地结合起来;最终由LCD模块作出相应动作,完成实时时钟的显示功能。本课程设计设计一种基于ARM7的嵌入式微处理器S3C44B0X和LCD显示器的电子时钟,实现电子时钟的功能,并在LCD上显示类似的时钟界面;动态显示当前的时间,包括:

年、月、日、时、分、秒,时针。

本课程设计主要为软件设计,硬件部分使用EL-ARM-830教学实验箱上的S3C44B0X和LCD模块,LCD初始化模块、时钟应用系统模块等,其中,时钟系统应用模块包括时钟计时模块、时钟显示模块等。各模块之间功能独立,协同完成本课程设计的全部功能。系统设计框图如图

硬件平台简介

S3C44B0X简介

S3C44B0X 微处理器是三星公司研发的基于ARM7TDMI 核的高性能嵌入式处理器,为手持设备和一般类型应用提供了高性价比和高性能的微控制器解决方案。由于其高性价比以及内嵌了多种接口,在手持设备和消费类电子中得到了广泛的应用。为了降低成本,S3C44B0X提供了丰富的内置部件,包括:8KB cache、内部SRAM、LCD 控制器、带自动握手协议的2通道UART、4通道DMA、系统管理器(片选逻辑,FP/EDO/SDRAM控制器)、带有PWM功能的5通道定时器,I/O端口,RTC,8通道10位ADC,IIC-BUS接口,IIS-BUS接口,同步SIO接口和PLL倍频器。

S3C44B0X 采用了ARM7TDMI内核,0.25um工艺的CMOS标准宏单元和存储编译器。它的低功耗和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样S3C44B0X还采用了一种新的总线结构,即SAMBAII(三星ARM CPU

嵌入式微处理器总线结构)。

S3C44B0X 的特性是它的CPU 核,是由ARM 公司设计的16/32位ARM7TDMI RISC 处理器(主频66MHZ )。ARM7TDMI 体系结构的特点是它集成了Thumb 代码压缩器,片上的ICE 断点调试支持,和一个32 位的硬件乘法器。

S3C44B0X 内置LCD 控制器可以支持规格为每像素2位 (4 级灰度) 或每像素4 位(16 级灰度)的黑白LCD 。也可以支持每像素8位(256级颜色)的彩色LCD 屏。LCD 控制器可以通过编程支持不同LCD 屏的要求,例如行和列像素数,数据总线宽度,接口时序等。

S3C44B0X 与LCD 连接

本课程设计使用的EL-ARM-830教学实验箱包含有一块5.7寸,256色,320X240像素的LCD 显示屏,S3C44B0X 内置了LCD 控制器,控制LCD 。 S3C44B0X 与LCD 连接示意图如图3。

图3 S3C44B0X 与LCD 连接示意图

键盘 SDRAM 系统内存

LCD 显示屏

基于ARM 的

嵌入式微处理器

S3C44B0X USB 接口 RS-232接口

JTAG 接口

ADC DAC

Flash BIOS 电源 复位 晶振 S3C44B0X

LCD LCD

5.7寸,256

RTC模块

利用RTC的各种寄存器功能,设计出一个时钟表。

实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。

S3C44B0X实时时钟单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC发送8位BCD码数据到CPU。传送的数据包括秒、分、小时、星期、月份和年份。RTC单元时钟源由外部32。768kHz晶振提供,可以实现闹钟(报警)功能。

S3C44B0X实时时钟单元特性如下:

BCD数据:秒、分、小时、星期、日期、月份和年份;

闹钟(报警)功能:产生定时中断或激活系统;

自动计算闰年;

无2000年问题;

独立的电源输入;

支持ms级时间片中断,位RTOS提供时间基准。

2)读/写寄存器

访问RTC模块的寄存器,首先要社RTCCON的位0位1。CPU通过读取RTC 模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON 和BCDYEAR的值,得到当前的相应时间值。但是,由于多个寄存器一次读出,所以由可能产生错误。例如:用户一次读取年(1989)、月(12)、日(31)、时(23)、分(59)、秒(59)。当秒数位1~59时,无任何问题;但是,当秒数位0时,当前时间和日期就变成了1990年1月1日0时0分。在这种情况下(秒数位0),用户应该重新读取年份到分钟的值。

3)后备电池

RTC单元可以使用后后备电池通过引脚RTCVDD供电。当系统关闭电源以后,CPU和RTC的接口电路被阻断。后备电池只需要驱动晶振和BCD计数器,从而达到最小功耗。

4)闹钟报警功能

RTC在指定的时间产生报警信号,包括CPU工作在正常模式和休眠(Power Down)模式下。在正常工作模式,报警中断信号(ALMINT)别激活;在修们模式,报警中断信号和唤醒信号(PMWKUP)同时被激活。RTC报警寄存器(RTCALM)决定报警功能的使能/屏蔽和完成报警时间检测。

5)时间片中断

RTC时间片中断用于中断请求。寄存器TICNT由一个中断使能位和中断计数。该中断计数自动递减,当达到0时,则产生中断。中断周期)Period计算公式如下:

Period=(n+1)/128s

其中,n为RTC时钟中断计数,可取值为1~127。

6)置0计数功能

R TC的置0计数功能可以实现30s、40s和50s步长重新计数,供某些专用系统使用。当使用50s置0设置时,如果当前时间是11:59:49,则1s后时间将变为12:00:00。

注意:所有的RTC寄存器都是字节型的,必须使用字节访问指令(STRB、LDRB)或字符型指针访问。RTC初始化。

LCD初始化模块设计

本模块的主要功能完成LCD的初始化,加载LCD驱动程序,使LCD与S3C44B0X实现对接,完成显示功能。本模块我们使用了实验箱现有的相关程序。LCD模块是嵌入式应用系统中重要的人机交互部件。目前,许多常用的LCD模块一般自身都不带有字库,而实际应用中人机界面又经常需要显示中英文字符。对于不带字库的LCD模块显示字符的解决方法通常是利用字模提取软件来进行预处

理,即将系统中可能用到的字符一一将其字模提取出来,并将字模数据存放在程序空间中。该方法只适用于显示字符固定且数量较入式系统中,灵活性差。考虑到嵌入式系统一般带有一定容量的ROM存储系统,本文以无字的图形LCD模块LM2028为例,搭建了以ARM微处理器s3C44BOX为基础的嵌式液晶系统工作平台,在此平台的基础上,讨论了一种基于自制硬件字库的中英文字符显示方案。LCD控制器的作用是将系统存储器中的LCD图像数据传送到外部LCD驱动器中,并产生必须的

LCD控制信号。S3C44BOX LCD控制器支持在灰白LCD上的单色、4级灰度、16级灰度显示,也能与彩色LCD接口支持最大256色的显示。可以编程支持不同水平和垂直点数(64O×480、320×240、160×160等)、不同数据线宽度、不同接口时序和刷新速率的LCD,支持4位双扫描、4位单扫描、8位单扫描的LCD显示器,并支持水平/垂直卷动,以用来支持更大的屏幕显示(如1280×1280) 。S3C44BOX支持查找表,用于各种色彩选择或灰度级别的选择。在灰度模式中,通过查找表可以在16级灰度中选择四种灰度,在彩色模式中,一个字节的图像数据是用3位表示红色,3位表示绿色,2位表示蓝色,通过查找表可以选择16级红色中的8种红色、16级绿色中的8种绿色和16级蓝色中的4种蓝色。

S3C44B0X 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及256彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现233或332的RGB调色的格式。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。

S3C44B0X 中内置的LCD 控制器提供了下列外部接口信号:

VFRAME: LCD 控制器和LCD 驱动器之间的帧同步信号。它通知LCD屏开始

显示新的一帧,LCD 控制器在一个完整帧的显示后发出VFRAME 信号。

VLINE: LCD 控制器和LCD 驱动器间的同步脉冲信号,LCD 驱动器通过它

来将水平移位寄存器中的内容显示到LCD 屏上。LCD 控制器在一整行数

据全部传输到LCD 驱动器后发出VLINE 信号。

VCLK: LCD 控制器和LCD 驱动器之间的象素时钟信号,LCD 控制器在

VCLK的上升沿发送数据,LCD 驱动器在VCLK 的下降沿采样数据。

VM: LCD 驱动器所使用的交流信号。LCD 驱动器使用VM 信号改变用于打

开或关闭象素的行和列电压的极性。VM 信号在每一帧触发,也可通过编

程在一定数量的VLINE 信号后触发。

VD[3:0]: LCD 象素数据输出端口。

VD[7:4]: LCD 象素数据输出端口。

LCD 控制器包含REGBANK, LCDCDMA, VIDPRCS, 和TIMEGEN。REGBANK 具有18 个可编程寄存器,用于配置LCD 控制器。LCDCDMA为专用的DMA,它可以自动地将显示数据从帧内存中传送到LCD 驱动器中。通过专用DMA,可以实现在不需要CPU 介入的情况下显示数据。VIDPRCS 从LCDCDMA 接收数据,将相应格式(比如4/8 位单扫描和4 位双扫描显示模式)的数据通过VD[7:0]发送到LCD的驱动器上。TIMEGEN 包含可编程的逻辑,以支持常见的LCD 驱动器所需要的不同接口时间和速率的要求。TIMEGEN 部分产生

VFRAME,VLINE, VCLK, VM 等信号。

Lcd显示的时钟界面包括:静止不动的圆形钟面和一直在走动的时钟指针。所以需要构建两个重要的函数实现画圆和画直线。

以下为画圆函数:

该算法是通过X变量的自增,补偿1 修正正方形控制Y变量自减,找到距中心恒定距离的点,其中rs=45,X自0加1增至45。和原点坐标运算,可以在第一象限找到一点,再通过折叠对称找到其他象限的三个点,通过画点函数描

绘出。再画他的45度镜像就好了。

以中心的坐标为起点,使用while函数与指针最外圈的点比较,不断延长直至相等,所以事先计算出时针,分针和秒针三个同心圆最外圈点的坐标,以便带入函数。也同圆类似,要考虑不同象限点的情况,根据不同的位置带参数到画点函数中描绘。

时钟应用系统模块设计

本模块是电子时钟功能实现的主要模块,也是本次课程设计的核心模块,本模块实现的功能主要有:时间计时,钟面时间显示,数字时间显示。

其中,时间计时功能和在LCD上显示数字钟显示功能较易实现,之前的单片机课程设计和HDL课程设计均有所涉及。计时使用S3C44B0X内部时钟脉冲和分频实现,在LCD上显示数字钟显示使用LCD数字显示功能实现。

在LCD上实现钟面显示功能较为复杂,主要包括以下过程:

1、给秒针、分针各设定60个坐标(包括X左边和Y坐标),表示60秒和60分,给时针设定12个坐标(包括X左边和Y坐标);

2、设定钟面显示初值并完成初值与时针、分针、秒针的坐标的映射,更更改初值可以完成时间的设定;

3、使用画线函数完成秒针、分针、时针显示,主要功能是擦除上一秒(分、时)的轨迹和显示这一秒(分、时)。

4、使用画点函数完成钟面基本构造,即钟面与12个整点时间点。

除此之外,需要在整个移植后的系统中初始化堆栈并设定任务,通过任务完成时钟的各项功能。

实验结果及讨论

调试结果与分析

通过编译调试下载到实验箱的S3C44B0X芯片中进行调试,LCD显示结果如图7所示。

图7 LCD调试结果显示

屏幕右上角显示出学号姓名和作品信息;

屏幕中间显示的是钟面,有时针、分针和秒针,显示实时时间;

屏幕下方显示的是数字时钟,显示时分秒(与钟面时间相对应)和年月日。

完成系统设计要求的各项功能。

结论

本课程设计属于嵌入式系统项目设计,利用EL-ARM-830教学实验箱上的嵌入式微处理器S3C44B0X和LCD模块,实现如下功能:

1、LCD显示“钟面”样式,时针、分针、秒针显示实时时间;

2、LCD显示“数字钟”样式,动态显示年、月、日、时、分、秒;

3、显示时间可以修改并保持“钟面”与“数字钟”时间保持一致;

4、LCD左上角动态显示小组成员姓名、学号及选题信息。

本课程设计完成选题要求,但是有如下方面有待改进:

1、“钟面”现实不够精确,分针和时针只设定了60个坐标位置,分针和时

针走动不均匀;

2、数字钟部分尚未考虑到“大月”和“小月”以及“平年”和“闰年”的日期问题,所有月份均设定为30天;

3、时间修改麻烦,需要对源程序中设定的初值进行修改,无法通过键盘对时间进行修改;

4、未调用S4C44B0X内部实时时钟(RTC)模块,不能显示出精确的内部实时时间。

本次课程设计是嵌入式系统项目设计,是在本学期我们学完了嵌入式系统课程以后相应的课程设计。我们自己查找了许多关于S3C44B0X和LCD的资料和文献作为课程设计的知识储备,同时也参考了去年学长学姐完成的课题,取人之长、补己之短。经过我们的努力,在老师同学的帮助下,我们顺利完成了课程设计,对嵌入式系统的硬件、软件有了更为深入的了解,也深入掌握了嵌入式系统设计的基本方法,达到了预期的目的。

本次课程设计首先要感谢陈龙灿老师,对我们的课程设计给予了充分的关怀和帮助;然后要感谢我的搭档范娟,我们一起完成了本次课程设计。

附录

源程序:

#include "..\inc\config.h"

#define STACKSIZE 256

#define x_line 160

#define y_line 80

OS_STK_DATA stk;

extern GUI_FONT CHINESE_FONT12;

extern GUI_FONT CHINESE_FONT16;

extern GUI_FONT GUI_Font8x16;

OS_EVENT * Send_LCD_Sem;

OS_EVENT *Key_Mbox;

I8 Hour[3],Min[3],Sec[3];

I8 hour = 0, min = 0, sec = 0,ms;

I8 YEA1[3],YEA2[3],MON[3],DAY[3];

int yea1 = 20,yea2=11, mon = 6, day = 23;

I8 XH0[3],XH1[3],XH2[3],XH3[3];

I8 XH4[3],XH5[3],XH6[3],XH7[3];

char xh0=01,xh1=62,xh2=31,xh3=03;

char xh4=32,xh5=36,xh6=02,xh7=12;

//int TimeCount = 0;

int SpaceXS[61]={160,165,170,175,180,185,

189,193,197,201,205,

206,207,208,209,210,

209,208,207,206,205,

201,197,193,189,185,

180,175,170,165,160,

155,150,145,140,135,

131,127,123,119,115,

114,113,112,111,110,

111,112,113,114,115,

119,123,127,131,135,

140,145,150,155,160,

},

SpaceYS[61]={30,31,32,33,34,

35,39,43,47,51,

55,60,65,70,75,

80,85,90,95,100,

105,109,113,117,121,

125,126,127,128,129,

130,129,128,127,126,

125,121,117,113,109,

105,100,95,90,85,

80,75,70,65,60,

55,51,47,43,39,

35,34,33,32,31,30},

SpaceXM[61]={160,164,168,172,176,180,183,186,189,192,

195,196,197,198,199,200,199,198,197,196,

195,192,189,186,183,180,176,172,168,164,

160,156,152,148,144,140,137,134,131,128,

125,124,123,122,121,120,121,122,123,124,

125,128,131,134,137,140,144,148,152,156,

160

},

SpaceYM[61]={40,41,42,43,44,45,48,51,54,57,

60,64,68,72,76,80,84,88,92,96,

100,103,106,109,112,115,116,117,118,119,

120,119,118,117,116,115,112,109,106,103,

100,96,92,88,84,80,76,72,68,64,

60,57,54,51,48,45,44,43,42,41,

40

},

SpaceXH[13]={160,175,185,190,185,175,160,145,135,130,135,145,160},

SpaceYH[13]={50,55,65,80,95,105,110,105,95,80,65,55,50},

*Placex=&SpaceXS[0],*Placey=&SpaceYS[0],*Placexm=&SpaceXM[0],*Placeym=&SpaceYM[0], *Placexh=&SpaceXH[0],*Placeyh=&SpaceYH[0];

void Display_xh1(char xx1,char yy1);

void Display_xh2(char xx2,char yy2);

void Display_xh3(char xx3,char yy3);

void show(I8 s)

void Shows()

show(sec);

Set_Color(GUI_GRAY); //擦除上一秒的

Draw_Line(x_line,y_line,*Placex,*Placey);

Placex=Placex+1;

Placey=Placey+1;

Set_Color(GUI_YELLOW); //显示下一秒的

Draw_Line(x_line,y_line,*Placex,*Placey);

Set_Color(GUI_RED); //显示下一分的

Draw_Line(x_line,y_line,*Placexm,*Placeym);

Set_Color(GUI_GREEN); //显示下一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

if(Placex==&SpaceXS[60]&&Placey==&SpaceYS[60])

{

Placex=&SpaceXS[0];

Placey=&SpaceYS[0];

}

}

void Showm()

{

Set_Color(GUI_GREEN);

Fill_Circle (288, 50, 25);

Set_Color(GUI_RED);

Fill_Circle (280, 50, 10);

Fill_Circle (296, 50, 10);

Fill_Circle (288, 40, 10);

Fill_Circle (288, 60, 10);

Set_Color(GUI_YELLOW);

Fill_Circle (288, 50, 5);

Set_Color(GUI_GRAY); //擦除上一分的

Draw_Line(x_line,y_line,*Placexm,*Placeym);

Placexm=Placexm+1;

Placeym=Placeym+1;

Set_Color(GUI_RED); //显示下一分的

Draw_Line(x_line,y_line,*Placexm,*Placeym);

Set_Color(GUI_GREEN); //显示下一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

if(Placexm==&SpaceXM[60]&&Placeym==&SpaceYM[60]) {

Placexm=&SpaceXM[0];

Placeym=&SpaceYM[0];

}

}

void Showh()

{

Set_Color(GUI_YELLOW);

Fill_Circle (288, 50, 25);

Set_Color(GUI_GREEN);

Fill_Circle (280, 50, 10);

Fill_Circle (288, 60, 10);

Set_Color(GUI_RED);

Fill_Circle (288, 50, 5);

Set_Color(GUI_GRAY); //擦除上一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

Placexh=Placexh+1;

Placeyh=Placeyh+1;

Set_Color(GUI_GREEN); //显示下一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

if(Placexh==&SpaceXH[12]&&Placeyh==&SpaceYH[12]) {

Placexh=&SpaceXH[0];

Placeyh=&SpaceYH[0];

}

}

void Shouw_Cricle() // 整点

{

Set_Color(GUI_YELLOW);

Fill_Circle (160, 30,2); // 12点(x,y,r)

Fill_Circle (135, 35,2); // 11 点(x,y,r)

Fill_Circle (115, 55,2); // 10 点(x,y,r)

Fill_Circle (110, 80,2); // 9 点(x,y,r)

Fill_Circle (115, 105,2); // 8 点(x,y,r)

Fill_Circle (135, 125,2); // 7 点(x,y,r)

Fill_Circle (160, 130,2); // 6 点(x,y,r)

Fill_Circle (185, 125,2); // 5 点(x,y,r)

Fill_Circle (205, 105,2); // 4 点(x,y,r)

Fill_Circle (210, 80,2); // 3 点(x,y,r)

Fill_Circle (205, 55,2); // 2点(x,y,r)

Fill_Circle (185, 35,2); // 1点(x,y,r)

Set_Color(GUI_WHITE);

Fill_Circle (165, 31,1);

Fill_Circle (170, 32,1);

Fill_Circle (175, 33,1);

Fill_Circle (180, 34,1);

Fill_Circle (189, 39,1);

Fill_Circle (193, 43,1);

Fill_Circle (197, 47,1);

Fill_Circle (201, 51,1);

Fill_Circle (206, 60,1);

Fill_Circle (207, 65,1);

Fill_Circle (208, 70,1);

Fill_Circle (209, 75,1);

Fill_Circle (209, 85,1);

Fill_Circle (208, 90,1);

Fill_Circle (207, 95,1);

Fill_Circle (206, 100,1);

Fill_Circle (201, 109,1);

Fill_Circle (197, 113,1);

Fill_Circle (193, 117,1);

Fill_Circle (189, 121,1);

Fill_Circle (170, 128,1);

Fill_Circle (165, 129,1);

Fill_Circle (155, 129,1);

Fill_Circle (150, 128,1);

Fill_Circle (145, 127,1);

Fill_Circle (140, 126,1);

Fill_Circle (131, 121,1);

Fill_Circle (127, 117,1);

Fill_Circle (123, 113,1);

Fill_Circle (119, 109,1);

Fill_Circle (114, 100,1);

Fill_Circle (113, 95,1);

Fill_Circle (112, 90,1);

Fill_Circle (111, 85,1);

Fill_Circle (111, 75,1);

Fill_Circle (112, 70,1);

Fill_Circle (113, 65,1);

Fill_Circle (114, 60,1);

Fill_Circle (119, 51,1);

Fill_Circle (123, 47,1);

Fill_Circle (127, 43,1);

Fill_Circle (131, 39,1);

Fill_Circle (140, 34,1);

Fill_Circle (145, 33,1);

Fill_Circle (150, 32,1);

Fill_Circle (155, 31,1);

}

void Delay(int time);

void ChangeForm(char Time[],char time) {

Time[0] = time / 10 + 48;

Time[1] = time % 10 + 48;

Time[2] = '\0';

}

void Display_Time(char x,char y) {

ChangeForm(Hour, hour);

ChangeForm(Min, min);

ChangeForm(Sec, sec);

ChangeForm(MON, mon);

ChangeForm(DAY, day);

ChangeForm(YEA1, yea1);

ChangeForm(YEA2, yea2);

Disp_String (Hour,x,160);

Disp_String (":",x + 16,160);

Disp_String (Min,x + 24,160);

Disp_String (":",x + 40,160);

Disp_String (Sec,x + 48,160);

Disp_String (YEA1,x , 180);

Disp_String (YEA2,x +16,180);

Disp_String (",",x + 32,180);

Disp_String (MON,x + 40,180);

Disp_String (",",x + 56,180);

Disp_String (DAY,x + 64,180);

void Show_Color()

{

Set_Color( GUI_BLUE );

Fill_Rect(0,0,319,239);

Set_Color(GUI_RED);

Set_BkColor (GUI_BLUE);

Fill_Rect(0,0,319,2);

Fill_Rect(0,0,2,239);

Fill_Rect(0,237,319,239);

Fill_Rect(317,0,319,239);

Set_Color(GUI_RED);

Set_Font (&CHINESE_FONT16);

Disp_String (CN_start"姓名:"CN_end,5,210);

Disp_String (CN_start"学号:"CN_end,210,210);

Set_Color(GUI_WHITE );

Fill_Rect (79,17,242,20); //上线(x0,y0,x1,y1)Fill_Rect (79,20,82,202); //左线(x0,y0,x1,y1)Fill_Rect (238,20,242,202); //右线(x0,y0,x1,y1)Fill_Rect (79,199,242,202); //下线(x0,y0,x1,y1)Set_Color(GUI_LIGHTRED);

Fill_Rect (83,21,237,198);

}

/*分配各任务的堆栈容量

*/

OS_STK Stack_Task_1[STACKSIZE];

OS_STK Stack_Task_2[STACKSIZE*3];

/*

void Task_3(I8 s)

{

I8 display;

for(;;)

{

Delay(100);

display++;

Set_Color(GUI_RED);

Display_xh1(5,180);

if(display==1000)

{

display=0;

}

}

}

/*

- 函数名称 : Task_2(void *pdata)

- 函数说明 : GUI任务,优先级为9

- 输入参数 : pdata

- 输出参数 : 无

*/

void Task_2(void *pdata)

{

for(;;)

{

Show_Color();

Shouw_Cricle();

sec = 0;

Set_Color(GUI_YELLOW); //显示

Draw_Line(x_line,y_line,*Placex,*Placey);

Display_Time(130, 160);//时间

do

{

Delay(1200);

sec++;

Shows();

if (sec >= 60)

{

sec = 0;

min++;

Showm();

if (min >= 60)

{

min = 0;

hour++;

Showh();

if (hour >= 23)

{

hour = 0;

day++;

if(day >=32)

{

day = 1;

mon++;

if(mon >= 13)

{

mon = 1;

yea1++;

}

}

}

}

}

Display_Time(130, 160);//时间日期

}while(1);

}

}

void Task_1(void *pdata)

{

Rtc_Tick_Init(); //打开时钟节拍,让操作系统跑起来

OSTaskCreate(Task_2, (void *)0, (OS_STK *)&Stack_Task_2[(STACKSIZE*3) - 1], 9);

for(;;)

{

OSTimeDly(50); //时钟屏幕显示

}

}

void Main(void)

{

Target_Init(); // ARMII实验系统的初始化,包括CPU板

GUI_Init();

OSInit();

OSTaskCreate(Task_1, (void *)0, (OS_STK *)&Stack_Task_1[STACKSIZE - 1], 5); //创建任务一

OSStart();

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

目录 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化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED 显示【课程设计报告】

重庆大学 课程设计报告 课程名称:微机原理与接口技术 设计题目:键盘LED显示 院系:电气信息学院 班级:2007级 设计时间:2009年12月

第一章概述 (2) 1.1学习目的 (2) 1.2 计算机的应用 (3) 1.3学习计算机的意义 (3) 1.4课程设计目的 (4) 第二章总体方案设计 (4) 2.1 设计注意问题 (4) 2.2 总体思路 (5) 第三章硬件设计 (5) 3.1 8255工作原理 (5) 3.2 键盘工作原理 (7) 3.3 键特征值的形成 (8) 3.4段值的形成 (9) 3.5 8255接线图 (11) 第四章软件设计 (12) 4.1 8255初始化 (12) 4.2 键盘扫描的处理方法 (12) 4.2.1. 判断是否有键被按下的方法 (12) 4.2.2. 判断是否有键被按下的源程序 (13) 4.2.3 防抖动 (13) 4.2.4.防抖动的延时子程序 (14)

4.3 程序核心部分 (14) 4.3.1 逐行扫描 (14) 4.3.2逐行扫描的源程序 (15) 第五章源程序代码 (15) 5.1 根据整体思路以及软件设计得到的代码. 15 5.2 以上代码存在问题分析 (19) 第六章难点分析 (20) 第七章体会感慨建议 (25) 第八章参考文献 (26) 第一章概述 1.1学习目的 “微机原理与接口技术”是电气工程及其自动化专业的一门重要

的专业基础课程。我们通过该门课的学习,知道了微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计,为后续的课程的学习和今后的工作打下坚实的基础。通过实验可以培养学生利用计算机技术和编程手段分析,解决专业领域的各种问题的能力和意识,并进一步感受微机发展的微机发展的新技术和新方法。 1.2 计算机的应用 目前计算机的应用已经遍布各个行业,如科学计算、数据处理、过程控制、人工智能、网络应用等。 科学和工程计算:科学和工程计算的特点是计算量大,而逻辑关系相对简单,它是计算机重要应用领域之一。 数据和信息处理:数据处理是指对数据的收集、存储、加工、分析和传送的全过程。这些数据处理应用的特点是数据量很大,但计算相对简单。多媒体技术的发展,为数据处理增加了新鲜内容,都涉及更广泛的数据类型,这些数据处理过程不仅数据量大,而且还会带来大量的运算和复杂的运算过程。 过程控制:过程控制是生产自动化的重要技术内容和手段,它是由计算机对所采集到的数据按一定方法经过计算,然后输出到指定执行机构去控制生产的过程。 人工智能:人们把计算机模拟人脑力劳动的过程成为人工智能。人工智能是利用计算机来模拟人的思维过程,并利用计算机程序来实现这些过程。 1.3学习计算机的意义 电子计算机是一种能自动高速地进行大量运算的电子机器。电子计算机的出现和发展,是科学技术和生产力的卓越成就之一,反过来,它也极大地促进了科学技术和生产力的发展。

电子时钟课程设计.

单片机实训课题电子时钟 班级11电气本1班学号4110211140 姓名陈后亥 指导教师叶文通 日期2013.12.30~2014.1.3

摘要 随着时代的进步,越来越多的电子厂品趋向于低成本,高性能,耐用性好的方向发展。特别是趋向于自动化控制的方向走。89c51作为控制芯片是最好不过的选择啦。它具有强大的功能,并且简单易于操作,安全性与稳定性较高,价格便宜,适合中小型电子厂品开发中的控制器。就像我们的课程设计,基于89c51单片机的电子时钟的课程设计。 这款课程设计用到的主要材料有89c51单片机,1602液晶显示屏,矩阵键盘,以及一些电容电阻元件等等。 使用89c51作为电子时钟的控制器很简单,就是由于其经济型与稳定性和易操作性。显示电路上,选择使用1602液晶显示屏上。1602不仅操作上臂数码管简单许多,而且使用1602能在很大程度上是电路图尽量简化,便于操作与错误的检修。并且1602价格也比较便宜。 基于89c51电子时钟的设计,利用了单片机内部的一个自带定时/计数器来实现定时功能,并通过内部程序,实现对时分秒,年月日这几个输出数值的自增,并且通过编写程序,实现通过键盘控制时分秒,年月日大小的调整,这是必要的功能。最后通过1602液晶显示电路将时间显示在其上。 这样的电子时钟比较精准,其主要误差来源与晶振的误差,即使是这样,他的误差也只是微妙级别,对于日常生活中的时间计数是足够的。 关键词:89c51单片机;1602液晶显示屏;矩阵键盘;keil软件

目录摘要 1单片机简介 1.1 单片机概述 1.2 单片机基本结构 21602液晶显示屏简介 1.11602显示原理 1.21602指令集合 3 电子时钟硬件设计 3.1 功能框图 3.2 单片机复位与晶振电路 3.3 1602显示电路 3.4 总体电路设计 4 电子时钟软件设计 4.1 程序流程框图 4.2 程序源代码 参考文献 致谢

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

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

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

基于LCD1602液晶显示系统课程设计

课程设计(论文) 题目名称基于89C51的液晶显示系统设计 课程名称单片机原理及应在电气测控学科中的应用学生姓名刘晨 学号1141201014 系、专业电气工程系电气工程及其自动化专业 指导教师朱群峰 2013年6月14日

邵阳学院课程设计(论文)任务书 年级专业11级电气工程及 其自动化专业 学生姓名刘晨学号1141201014 题目名称基于89C51的液晶显示系统设计设计时间2013年6月3日—2013年6月14日 课程名称单片机原理及应 在电气测控学科 中的应用 课程编号121200105设计地点 数字控制与PLC实 验室(305) 一、课程设计(论文)目的 课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象. 《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。 二、已知技术参数和条件 1、液晶显示功能见第三项“任务和要求”具体参数 1、89C51系列单片机; 2、KEIL 软件;Wave软件、protuse软件 3、THKSCM-1型单片机实验系统。 三、任务和要求 利用89C51驱动液晶显示器工作,液晶显示器的型号自己确定(可以用1602或者12864)要求显示出自己的基本信息(英文或者中文,内容自定)。 1、要求设计出硬件系统的电气原理图; 2、要求设计出程序流程图和程序; 3、要求设计出实物或者仿真调试。 注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效; 2.此表1式3份,学生、指导教师、教研室各1份。

数字电子钟课程设计

数字电子钟课程设计 The Standardization Office was revised on the afternoon of December 13, 2020

单片机技术课程设计说明书 数字电子钟 系、部:电气与信息工程学院 学生姓名:段仁亮 指导教师:王韧职称副教授 专业:电气自动化技术 班级:电气1001班 完成时间: 2012年10月10日

《单片机技术》课程设计任务书 一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密 码锁、波形发生器、数字温度计、计算器、数字式秒表。 二、适用班级:电气1001~3 三、指导教师:王韧 四、设计目的与任务: 学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。 五、设计内容与要求 设计内容 1、数字电子钟 设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。 2、数字频率计 设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。 3、数字电压表 设计一个能够测量直流电压的数字电压表。测量电压范围0~5V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。 4、交通灯

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

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书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进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

LED16乘16电子显示器课程设计

目录 1. 前言................................................... 错误!未定义书签。 2. 方案设计............................................... 错误!未定义书签。 2.1. 系统功能要求...................................... 错误!未定义书签。 2.2. 硬件设计.......................................... 错误!未定义书签。 2.2.1. 8255A芯片................................... 错误!未定义书签。 2.3. 设计框图.......................................... 错误!未定义书签。 2.4. LED点阵介绍 ...................................... 错误!未定义书签。 2.5. LED显示方式 ...................................... 错误!未定义书签。 3. 测试与调试............................................. 错误!未定义书签。 4. 总结与体会............................................. 错误!未定义书签。 5. 程序清单............................................... 错误!未定义书签。 6. 参考文献............................................... 错误!未定义书签。

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

华东交通大学理工学院课程设计报告书所属课程名称数字电子技术课程设计题目数字电子钟课程设计分院电信分院 专业班级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,在结束时刻为整点。

8×8LED点阵显示汉字课程设计

目录 第1章本设计的研究背景及目的要 求 0 1.1凌阳单片 机 0 1.2 LED(8×8)点阵模块简 介 (1) 第2章设计方案和基本原 理 (3) 2.1设计方 案 (3) 2.2 基本原 理 (3) 1. 8×8LED点阵的工作原 理 (3) 第3章程序设 计 (6) 3.1程序流程 图 (6) 3.2 程序代 码 (6) 第4章调试结果及分 析 (8) 4.1调试结 果 (8) 4.2结果分 析 (9) 第5章结论与体 会 (10) 参考文 献 .................................................................. 11 附 录 .................................................................. . (12) 第1章本设计的研究背景及目的要求

1.1凌阳单片机 (1)来源 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理数据处理以及数字信号处理,DSP(Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。 (2)构造 它的CPU内核采用凌阳最新推出的Microcontroller and Signal Processor 16 位微机处理器芯片,以下简称μ'nSP?。围绕μ'nSP?所形成的16位μ'nSP?系 列单片机,以下简称μ'nSP? 家族。采用的是模块式集成结构,它以μ'nSP?内核为中心集成不同规模的ROM PAM和功能丰富的各种外设部件。μ'nSP?内核 是一个通用的和结构。除此之外的其它功能模块均为可选结构。以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。μ'nSP?家族有有以下特点:体积小,集成度高,可靠性 好易于扩展。μ'nSP? 家族把各功能把各功能部件模块化地集成在一个芯片里。内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。具有较强的中断处理能力。μ'nSP?家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。高性能价格比:μ'nSP?家族片内带有高寻址能力的ROM,静态RAM和多功能的I/O口,另外μ'nSP?的指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,使得μ'nSP?家族运用在复杂的数字信号处理方面既很便利又比专用的DSP芯片廉价。 优点: 功能强、效率高的指令系统:μ'nSP?的指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。低功耗、低电压:μ'nSP?家族采用CMOS制造工艺,同时增加了软件激发的弱振方式,空闲方式和掉电方式,极大地降低了其功耗,另外,μ'nSP?家族的工 作电压范围大,能在低电压供电时正常工作,且能用电池供电,这对于其在野外作业等领域中的应用具有特殊的意义。 (3)应用领域 凌阳单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控例且功能比起采用电子或数字电路更加强大。智能化、微型化,制使得仪器仪表数字化、. 。如精密的测量设备(功率计,示波器,各种分析仪)在工业控制中的应用2. 例如工厂流水线的智能化管数据采集系统。用单片机可以构成形式多样的控制系统、

电子课课程设计电子钟

南航数字电子技术课程设计报告 题目:数字钟的设计与制作 学年:06学年学期:第二学期 专业:机械工程及自动化 班级:0504107 学号姓名:李晓云 吉晶晶 时间:2006年6月30日— 2006年7月3日 数字电子技术课程设计报告 一、设计目的 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 因此,我们此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.

二、设计内容及要求 (1)设计指标 ①由晶振电路产生1HZ标准秒信号; ②分、秒为00~59六十进制计数器; ③时为00~23二十四进制计数器; ④周显示从1~日为七进制计数器; ⑤具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时 间; ⑥整点具有报时功能,当时间到达整点前鸣叫五次低音(500HZ),整点 时再鸣叫一次高音(1000HZ)。 (2)设计要求 ①画出电路原理图(或仿真电路图); ②元器件及参数选择; ③电路仿真与调试。 (3)制作要求自行装配和调试,并能发现问题和解决问题。 (4)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。 三、原理框图 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。数字电子钟的总体图如图(1)所示。由图

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

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

日期: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有低电平的信号输入,此时得到

LCD几何图形显示课程设计

目录 第1章设计的研究背景及目的要求.................... 错误!未定义书签。 研究背景 ........................................ 错误!未定义书签。 设计目的 ........................................ 错误!未定义书签。 硬件选择 ........................................ 错误!未定义书签。 设计内容 ........................................ 错误!未定义书签。第2章设计的方案及基本原理........................ 错误!未定义书签。 方案............................................ 错误!未定义书签。 , 基本原理 (3) 第3章程序设计 (4) 主程序流程图 (4) 设计程序 (4) 第4章调试结果与分析 (5) 调试结果 (5) 结果分析 (5) 结论与体会 (6) @ 参考文献 (7) 附录 (8) ~

\

第1章 LCD几何图形显示设计的研究背景及目的要求 研究背景 在程序设计方面,凌阳十六位单片机还具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用。 显示器的核心液晶显示器控制器品种繁多,各种控制芯片在控制电路逻辑、控制指令、指标参数等方面各有差异。但对于已带有控制电路的平板点阵式图形液晶显示器,使用者无需关心其控制核心的集成芯片、控制电路等,就可方便地利用它进行开发。 设计目的 熟悉利用SPLC501液晶显示模组显示几何图形的API函数。 掌握利用液晶显示器显示几何图形的方法。 — 硬件选择 装有window系统和仿真环境和PC机一台,十六位单片机实验箱一个。SPCE061A 核心及周边电路模块(包含 32 个 I/O 口),LCD显示模组模块。 设计内容 LCD显示器上一个实心圆,在实心圆的横向直径画一条横线,并在实心圆上叠加显示汉字:“凌阳科技”,最后向上滚屏。在LCD显示器实现实心圆和汉字的叠加显示。 利用 SPLC501 液晶显示模组显示英文(ASCII)字符时,需要对 LCD 进行初始化操作,以初始化 LCD 内部的供电方式、驱动设置等;在凌阳大学计划提供的 SPLC501 液晶显示模组的驱动程序中,提供了对 SPLC501 液晶显示模组的初始化程序,除了完成前面所述的操作外,该函数还可以初始化液晶的显示。初始化 SPLC501 液晶显示模组后,驱动程序默认设置图形显示模式为覆盖模式,ASCII 字符的字型默认为8×16的大小,如果需要修改这些参数可以调用对应的函数进行设置。主程序利用C语言编写,调用驱动程序(调动程序已提供在IDE的安装路\SPCE061A\example\model_Exa\driver\SPLC501driver)。

数电课程设计数字电子钟说明书

数字电子技术电路课程设计题目:数字钟课程设计 学院:XXXXX 专业:XXXXX 班级:XXXX 姓名:XXXX 学号:XXXXX 指导老师:XXXXX

一、设计目的 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 二、设计要求 1.显示时,分,秒,用24小时制 2.能够进行校时,可以对数字钟进行调时间 3.能够正点报时(用555产生断续音频信号); 三、设计方案比较 方案一、采用中小规模集成电路实现 采用集成逻辑电路设计具有能实现,时、分、秒计时功能和定点报时功能,计时模块采用时钟信号触发,不需要程序控制。 方案二:EDA技术实现 采用EDA作为主控制器外围电路进行电压,时钟控制、键盘和LED控制。但此方案逻辑电路复杂,外围设备多,灵活性较低,不利于扩展 方案三、单片机编程实现 此方案采用单片机编程来设计和控制。 综上,根据自身的知识和方案比较,采用方案一,因为方案一简便灵活,扩展性好,同时符合此次数子电子知识设计的要求。 四、设计过程和说明 1.数字电子钟计时和显示功能的实现 (1)采用两片十进制计数器74LS160N扩展连接,设计60进制的计数器,显示0到59,在59时采用置数的方法,将两片74LS160N同时置数至0,以循环显示0到59。(图)

(2)24进制亦采用两片十进制计数器74LS160N扩展连接,设计24进制的计数器,显示0到23,在23时采用置数的方法,将两片74LS160N同时置数至0,以循环显示0到23(图)

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

单片机电子时钟设计 一、作品功能介绍 该作品是个性化电子钟设计,技术上主要用单片机(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内容被保存,振荡器被

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

目录 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生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

电子时钟课程设计模板

电子时钟课程设计 电子时钟设计 一、课程设计目的和意义 掌握8255、 8259、 8253芯片使用方法和编程方法, 经过本次课程设计, 学以致用, 进一步理解所学的相关芯片的原理、内部结

构、使用方法等, 学会相关芯片实际应用及编程, 系统中采用8088微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法, 掌握一般的设计步骤和流程, 使我们以后搞设计时逻辑更加清晰。 二、开发环境及设备 1、设计环境 PC机一台、 windows 98系统、实验箱、导线若干。 2、设计所用设备 8253定时器: 用于产生秒脉冲, 其输出信号可作为中断请示信号送IRQ2。 8255并口: 用做接口芯片, 和控制键相连。 8259中断控制器: 用于产生中断。 LED: 四个LED用于显示分: 秒值。 KK1或KK2键与K7键, 用于控制设置。 三、设计思想与原理 1、设计思想 在本系统设计的电子时钟以8088微处理器作为CPU, 用8253做定时计数器产生时钟频率, 8255做可编程并行接口显示时钟和控制键电路, 8259做中断控制器产生中断。在此系统中, 8253的功能是定时, 接入8253的CLK信号为周期性时钟信号。8253采用计数器0, 工作于方式2, 使8253的OUT0端输出周期性的负脉冲信

号。即每隔20ms, 8253的OUT0端就会输出一个负脉冲的信号, 此信号接8259的IR2, 当中断到50次数后, CPU即处理, 使液晶显示器上的时间发生变化。 其中8259只需初始化ICW1, 其功能是向8259表明IRx输入 是电瓶触发方式还是上升沿触发方式, 是单片8259还是多片8259。8259接收到信号后, 产生中断信号送CPU处理。 2、设计原理 利用实验台上提供的定时器8253和扩展板上提供的8259以 及控制键和数码显示电路, 设计一个电子时钟, 由8253中断定时, 控制键控制电子时钟的启停及初始值的预置。电子时钟的显示格 式MM: SS由左到右分别为分、秒, 最大记时59: 59超过这个时间分秒位都清零从00: 00重新开始。 基本工作原理: 每百分之一秒对百分之一秒寄存器的内容加一, 并依次对秒、分寄存器的内容加一, 四个数码管动态显示分、秒 的当前值。 三、设计所用芯片结构 1、 8259A芯片的内部结构及引脚 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路, 只需对8259A编程, 就能够管理8级中断, 并选择优先模式和中断请求方式, 即中断

电子钟课程设计报告

《数字电子技术》课程设计报告 题目:数字钟 学号: 授课班级: 学生: 指导教师: 完成时间: 职业技术学院信息工程系 应用电子技术教研室

摘要: 报告围绕此次数字钟的设计进行介绍、总结,包含了设计的步骤,前期的准备,装配的过程。考虑数字钟电路的基本构造后,在进行实装之前先用EWB软件进行了仿真,在实装时,采用了74HC90芯片进行计数,用晶体振荡器及D触发器产生秒脉冲,还要考虑电路的清零,每块芯片各设计为几进制,最后实现了数字钟设计所要求的各项功能:时钟显示功能;小时高位零熄灭功能;整点报时功能;快速校准时间的功能。 关键字:数字钟、报时、74HC161、校准 Abstract The designing of the digital clock on the report were introduced and summarized, including design steps, the preparation, assembly process. Considering the basic structure of the digital clock circuit, we use EWB simulation software before assembling. In the assembly, adopted 74HC90 count chips and using crystal oscillator and D flip-flop produced seconds pulse. Otherwise, the reset of the circuit and each chip designed for which system should be considered. Finally realized the digital clock design requirements of various functions: The clock display function; Hour zero extinguished function; Give the correct time on time function; Rapid calibration time functions. KEYWORDS: Digital Clock、Give the Correct Time、74HC90、Calibration

单片机课程设计报告—LED显示电子钟

《单片机原理及其接口技术》 课程设计报告 课题LED显示的电子钟 姓名 学号 院系自动控制与机械工程学院 班级 指导教师

2012 年6月 目录 一、课程设计目的 (3) 二、课程设计要求 (3) 三、设计内容 (4) 四、硬件设计需求 (5) 1、硬件系统各模块功能 (5) (1)、单片机最小系统——AT89C51 …………………………………5(2)、LED数码管显示模块……………………………………………8 (3)、晶振模块 (9) (4)、按键模块 (10) 五、电路软件系统设计 (10) 1、protues软件简介…………………………………………………10 2、仿真结果 (11) 3、流程图……………………………………………………… 13 六、误差分析………………………………………………………15 七、总结与心得体会………………………………………………………15 八、参考文献……………………………………………………… 16 九、附录(程序)………………………………………………………16

一、课程设计目的 单片机课程设计作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机原理及应用》课程后,并在进行相关课程设计基础上进行的一次综合练习。 单片机课程设计过程中,学生通过查阅资料,接口设计,程序设计,安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并且有综合功能的小应用系统设计。使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路,电子元器件等方面的知识进一步加深认识,同时在软件编程,调试,相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。使学生增进对单片机的感性认识,加深对单片机理论方面的理解,加深单片机的内部功能模块的应用,如定时器/计数器,中断,片内外存储器,I/O接口,串行口等。使学生了解和掌握单片机应用系统的软硬件设计过程,方法及实现,强化单片机应用电路的设计与分析能力。提高学生在单片机应用方面的实践技能和科学作风,培育学生综合运用理论知识解决问题的能力。 二、课程设计要求 课程设计应以学生认知为主体,充分调动学生的积极性和能动性,重视学生自学能力培养。根据课程设计具体课题安排时间,确定课题的涉及,变成和调试内容,分团队开展课程设计活动,安排完成每部分工作。课程设计集中在实验室进行。在课程设计过程中,坚持独立完成,实现课题规定的各项指标,并写出设计报告。 要求学生自己调研,设计系统功能,划分软硬件功能,选择器件,用Proteus软件在PC机上完成硬件原理图设计。然后使用使用Proteus软件在PC机运行系统仿真,调试电路和修改调试程序。对整个系统做试运行,有问

相关文档