电子时钟的设计

合集下载

基于单片机电子时钟设计

基于单片机电子时钟设计

基于单片机电子时钟设计电子时钟是一种利用单片机技术来实现精确时间显示的装置。

它可以准确地显示时间,并且可以根据需要进行闹铃功能等扩展。

接下来,我将详细介绍基于单片机的电子时钟设计。

首先,我们需要选择合适的单片机来实现电子时钟。

目前,常用的单片机有STC51系列、PIC系列、AVR系列等。

在选择单片机时,我们需要考虑其性能参数、价格以及开发环境等因素。

接下来,我们需要设计电子时钟的电路结构。

电子时钟的核心是单片机,通过连接显示屏、RTC(实时时钟)、按键以及扬声器等设备,来实现时间的显示、调整以及报警功能。

首先,我们需要选择合适的显示屏。

常用的显示屏有数码管、液晶显示屏、LED点阵等。

数码管和液晶显示屏可以直接连接到单片机的IO口,而LED点阵需要借助驱动芯片来完成控制。

其次,我们需要选择合适的RTC模块,以确保时钟的准确性。

RTC模块可以借助于DS1302等实时时钟芯片来实现。

同时,我们还需要连接按键,来实现对时钟进行调整的功能。

通过按键的组合操作,我们可以调整年、月、日、小时、分钟等时间参数。

此外,如果我们希望实现报警功能,我们还需要连接一个扬声器。

通过控制扬声器的开关,我们可以在设定的时间点播放报警铃声。

在硬件设计完成后,我们就可以进行软件开发工作了。

首先,我们需要编写主程序来初始化硬件设备,并进入主循环。

在主循环中,我们需要不断读取RTC模块的时间数据,并在显示屏上进行实时显示。

同时,我们也需要编写按键检测和处理的程序。

按键检测可以通过查询IO口的状态来实现,而按键处理则需要根据按键的值进行相应的功能调整。

如果需要实现报警功能,我们还需要编写报警处理的程序。

在设定的时间点,我们可以通过控制扬声器的开关来实现报警铃声的播放。

最后,我们需要进行整体的调试和测试工作。

通过不断地调整和优化程序,来确保整个电路和软件的正常运行。

总结起来,基于单片机的电子时钟设计包括硬件设计和软件开发两部分。

通过选择合适的单片机、显示屏、RTC模块、按键和扬声器等设备,并编写相应的程序,我们可以实现一个功能完善的电子时钟。

基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。

二、硬件设计1.时钟部分:采用晶振芯片提供准确的时钟信号2.数码管显示部分:使用共阴数码管进行数字显示3.按键部分:设计几个按键用于设置和调整时间4.电源部分:采用直流电源供电三、软件设计1.功能设计a.时间设置功能:通过按键可以设置当前的时间,包括小时、分钟和秒钟。

b.时间调整功能:通过按键可以调整当前的时间,包括小时、分钟和秒钟。

c.时间显示功能:通过数码管可以实时显示当前的时间。

2.代码实现以C语言为例,以下是一个基于单片机的电子时钟的代码实现示例:```c#include <reg51.h>sbit DS18B20=P1^3; // 定义18B20数据线接口sbit beep=P2^3; // 定义蜂鸣器接口unsigned char hour,min,sec; // 定义小时、分钟、秒钟变量//函数声明void Delay_1ms(unsigned int count);bit Ds18b20Init(;unsigned char Ds18b20ReadByte(;void ReadTime(;void WriteTime(;void DisplayTime(;//主函数void mainP2=0x00;WriteTime(; // 写入时间while(1)ReadTime(; // 读取时间DisplayTime(; // 显示时间Delay_1ms(1000); // 延时1秒}//毫秒延时函数void Delay_1ms(unsigned int count) unsigned int i, j;for(i=0; i<count; i++)for(j=0; j<1275; j++);//18B20初始化函数bit Ds18b20Initbit presence;DS18B20=0;Delay_1ms(100); // 延时450us~1000us DS18B20=1;Delay_1ms(10); // 延时15us~60us presence=DS18B20;Delay_1ms(30); // 延时60us~240us return presence;//18B20读取字节函数unsigned char Ds18b20ReadByte unsigned char i, dat;for(i=0; i<8; i++)DS18B20=0;//主机发起读时序_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usDS18B20=1;//主机释放总线_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usdat,=(DS18B20<<i); // 读取数据位,存放在dat变量中Delay_1ms(3); // 读时序完成后等待48us再接收下一位}return dat;//读取时间函数void ReadTimeunsigned char temp;temp=0x00;while(temp!=0xaa)Ds18b20Init(; // 初始化温度传感器Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0xbe;Delay_1ms(1);temp=Ds18b20ReadByte(; // 读取时间数组的标志位}for(temp=0; temp<7; temp++)//写入时间函数void WriteTimeunsigned char i,j;while(1)Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x4e;Delay_1ms(1);for(i=0; i<7; i++)DS18B20=0x55;Delay_1ms(1);DS18B20=0xaa;Delay_1ms(1);Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x48;Delay_1ms(1);j=Ds18b20ReadByte(; // 判断是否写入成功if(j==0x0a)break;}//显示时间函数void DisplayTimeP1=seg[hour/10]; // 显示十位小时P2=(P2&0xf0),0x08; // 点亮第一个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[hour%10]; // 显示个位小时P2=(P2&0xf0),0x04; // 点亮第二个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min/10]; // 显示十位分钟P2=(P2&0xf0),0x02; // 点亮第三个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min%10]; // 显示个位分钟P2=(P2&0xf0),0x01; // 点亮第四个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=0x00;//空显示P2=0x00;//熄灭数码管```四、总结通过以上的硬件设计和软件实现,可以实现一个基于单片机的电子时钟。

毕业设计论文_单片机电子时钟的设计

毕业设计论文_单片机电子时钟的设计

毕业设计论文_单片机电子时钟的设计摘要:电子时钟作为一种常见的时间显示装置,在现代社会中应用广泛。

本文设计了一款基于单片机的电子时钟,使用DS1307实时时钟芯片来获取系统时间,并通过数码管进行显示。

设计过程中,通过对单片机的编程和电路的连接,实现了时间的显示与调节功能,具有较高的准确性和稳定性。

该设计方案简单、实用,可用于各种场合。

关键词:单片机;电子时钟;DS1307;数码管1.引言电子时钟是一种利用电子技术构造的显示时间的装置,具有时间准确、使用简单、显示清晰等特点,广泛应用于生活和工作中。

本文以单片机为核心,设计了一款实时准确的电子时钟,提高了时间的准确度和稳定性。

2.设计原理该设计的核心是通过单片机与DS1307实时时钟芯片的连接,使得单片机可以获取到准确的系统时间,并通过数码管进行显示。

DS1307芯片通过I2C总线与单片机连接,通过读取芯片中的时间寄存器,单片机可以获得当前的时间信息。

3.硬件设计本设计中使用了AT89S52单片机作为主控芯片,通过引脚与DS1307芯片相连。

单片机的P0口接到数码管的段选信号,P1口接到数码管的位选信号,通过控制这两个口的输出状态,可实现对数码管上显示的数字进行控制。

同时,为了使时钟可以正常运行,需外接一个晶振电路为单片机提供时钟信号。

4.软件设计通过对单片机的编程,实现了以下功能:(1)初始化DS1307芯片,设置初始时间;(2)每隔一秒读取一次DS1307芯片的时间寄存器,将时间信息保存到单片机的RAM中;(3)根据当前时间信息,在数码管上显示对应的小时和分钟。

5.调试与测试经过硬件的连接以及软件的编写,进行了调试与测试。

将初始时间设置为08:30,观察数码管上的显示是否正确,以及时间是否准确。

同时,通过手动调节DS1307芯片中的时间,检查单片机是否能正确获取时间,并进行显示。

6.总结与展望本文设计了一款基于单片机的电子时钟,通过单片机与DS1307芯片的连接和编程,实现了准确的时间显示功能。

VHDL电子时钟的设计

VHDL电子时钟的设计

VHDL电子时钟的设计VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于设计和模拟数字电路和系统。

在这篇文章中,我们将探讨VHDL电子时钟的设计。

设计一个VHDL电子时钟需要考虑以下几个方面:时钟的显示方式、时钟的时钟源以及时钟的控制逻辑。

首先,我们需要确定时钟的显示方式。

常见的电子时钟显示方式有7段LED显示和LCD显示。

在这里,我们选择使用7段LED显示。

7段LED 显示由7个LED灯组成,可以显示0到9的数字。

此外,还需要考虑到显示小时和分钟的两个时钟。

接下来,我们需要确定时钟的时钟源。

时钟源决定了时钟的精度和稳定性。

在VHDL设计中,常用的时钟源有晶体振荡器和时钟发生器。

晶体振荡器由晶体和振荡电路组成,可以提供非常精确和稳定的时钟信号。

时钟发生器则基于计数器和除频器的原理产生时钟信号。

根据实际需求选择合适的时钟源。

最后,我们需要设计时钟的控制逻辑。

控制逻辑决定了时钟的功能和操作方式。

在这里,我们将设计一个简单的时钟,包括设置时间、调节时间、显示时间和闹钟功能。

我们可以使用按钮和开关控制时钟的功能。

下面是一个VHDL电子时钟的示例设计代码:```vhdl--时钟显示模块entity ClockDisplay isportclk : in std_logic;reset : in std_logic;hours : in integer range 0 to 23;minutes : in integer range 0 to 59;alarm : in std_logic;seg7 : out std_logic_vector(6 downto 0) end entity ClockDisplay;architecture Behavioral of ClockDisplay is signal count : integer := 0;signal sec : integer := 0;signal disp_hours : integer := 0;signal disp_minutes : integer := 0;beginprocess (clk, reset)beginif reset = '1' thencount <= 0;sec <= 0;disp_hours <= 0;disp_minutes <= 0;elsif rising_edge(clk) thencount <= 0;sec <= sec + 1;elsecount <= count + 1;end if;end if;end process;process (sec, reset, hours, minutes, alarm)beginif reset = '1' thendisp_hours <= 0;disp_minutes <= 0;elsif rising_edge(sec) thenif alarm = '1' and hours = disp_hours and minutes = disp_minutes then--闹钟触发逻辑elsif sec = 59 thenif minutes = 59 thenif hours = 23 thendisp_hours <= 0;disp_minutes <= 0;elsedisp_hours <= hours + 1; disp_minutes <= 0;end if;elsedisp_hours <= hours;disp_minutes <= minutes + 1; end if;elsedisp_hours <= hours;disp_minutes <= minutes;end if;end if;end process;process (disp_hours, disp_minutes)begincase disp_hours is...end case;case disp_minutes is...end case;end process;end architecture Behavioral;```这个代码中,我们使用了两个进程来处理时钟的计时和显示逻辑。

基于单片机电子时钟的设计

基于单片机电子时钟的设计

基于单片机电子时钟的设计一、设计背景随着科技的不断进步,电子设备在我们的生活中扮演着越来越重要的角色。

时钟作为时间的测量工具,也从传统的机械时钟逐渐发展为电子时钟。

单片机作为一种集成度高、功能强大的微控制器,为电子时钟的设计提供了高效、可靠的解决方案。

基于单片机的电子时钟具有精度高、易于编程、成本低等优点,能够满足人们对时间测量和显示的各种需求。

二、系统设计方案1、硬件设计单片机选择:选择合适的单片机是整个系统设计的关键。

常见的单片机如STM32、AT89C51 等,具有不同的性能和特点。

根据系统需求,我们选择了 AT89C51 单片机,其具有成本低、性能稳定等优点。

时钟芯片:为了保证时间的准确性,需要选择高精度的时钟芯片。

DS1302 是一款常用的实时时钟芯片,具有低功耗、高精度等特点,能够为系统提供准确的时间信息。

显示模块:显示模块用于显示时间。

常见的显示模块有液晶显示屏(LCD)和数码管。

考虑到显示效果和成本,我们选择了 1602 液晶显示屏,能够清晰地显示时间、日期等信息。

按键模块:按键模块用于设置时间和调整功能。

通过按键可以实现时间的校准、闹钟的设置等功能。

电源模块:为整个系统提供稳定的电源。

可以选择电池供电或外部电源供电,根据实际使用场景进行选择。

2、软件设计编程语言:选择合适的编程语言进行软件编程。

C 语言是单片机编程中常用的语言,具有语法简单、可读性强等优点。

主程序流程:主程序首先进行系统初始化,包括单片机端口初始化、时钟芯片初始化、显示模块初始化等。

然后读取时钟芯片中的时间信息,并将其显示在液晶显示屏上。

通过按键检测模块,判断是否有按键操作,如果有,则进行相应的处理,如时间校准、闹钟设置等。

中断服务程序:为了保证时间的准确性,需要使用定时器中断来实现时钟的计时功能。

在中断服务程序中,对时钟芯片进行时间更新,确保时间的准确性。

三、硬件电路设计1、单片机最小系统单片机:AT89C51 单片机是整个系统的核心,负责控制和协调各个模块的工作。

基于单片机的电子时钟设计

基于单片机的电子时钟设计

基于单片机的电子时钟设计电子时钟是一种显示时间的设备,通常基于单片机设计。

它不仅可以准确显示时间,还可以具备闹钟、日历等功能。

本文将介绍基于单片机的电子时钟的设计。

首先,我们来看单片机的选择。

在设计电子时钟时,常用的单片机有PIC、AVR和STM32等。

这些单片机都有较强的计算能力和丰富的外设接口,非常适合用于电子时钟的设计。

具体的选择可以根据需求和个人熟悉程度做出决定。

接下来,我们需要设计时钟的显示部分。

一般来说,电子时钟的显示可以采用液晶显示屏或LED数码管。

液晶显示屏具有占用空间小、显示效果清晰等优点,适合用于大号时钟;而数码管则适合用于小型时钟。

根据具体需求选择合适的显示器件。

在电子时钟设计中,如何准确获取时间是关键。

可以利用主频计数的方法,通过单片机的定时器来获取时间。

比如用32.768kHz的振荡源作为单片机的时钟源,然后每秒进行一次中断计数,通过累加中断计数值,即可得到秒数、分钟数、小时数等。

在此基础上,可以进一步添加日历计算功能,如年、月、日的计算。

闹钟功能是电子时钟的重要组成部分之一、我们可以通过按键输入设置闹钟的时间和开关状态。

当闹钟时间到达时,可以通过蜂鸣器或液晶显示器等方式提醒用户。

闹钟的开关状态可以通过EEPROM等非易失性存储器来保存,以实现断电重启后不丢失设置的功能。

除了基本的显示和计时功能,电子时钟还可以增加其他实用的功能。

比如温湿度显示功能,可以通过外部传感器获取环境的温度和湿度,并显示在屏幕上。

还可以添加定时开关机功能,通过按键设置时间和开关状态,控制电源的开关。

这些功能的实现都需要通过合理的硬件设计和软件编程来完成。

总的来说,基于单片机的电子时钟设计需要首先选择合适的单片机,并根据具体需求设计显示部分、时间获取部分、闹钟部分以及其他扩展功能。

其中涉及到硬件设计和软件编程的内容,需要有一定的电子和计算机基础知识。

通过合理的设计和编程,我们可以实现一个功能齐全、准确可靠的电子时钟。

基于单片机的电子时钟设计

基于单片机的电子时钟设计

基于单片机的电子时钟设计电子时钟是人们日常生活中常见的设备之一,它不仅能够准确显示时间,还可以搭配其他功能,如闹钟、温度显示等。

本文将介绍基于单片机的电子时钟的设计原理和步骤,并探讨其在现代生活中的应用。

一、设计原理基于单片机的电子时钟主要由以下几个模块组成:时钟模块、显示模块、控制模块和电源模块。

时钟模块负责获取当前时间并进行计时,显示模块用于将时间信息显示出来,控制模块用于处理用户的输入操作,电源模块为电子时钟提供稳定的电源。

1. 时钟模块时钟模块的核心是一个定时器,它可以定时触发中断,通过中断服务程序来更新时间。

在单片机中,我们可以使用定时器模块来实现这个功能,通过设定合适的定时器参数,可以实现从毫秒级到秒级的计时精度。

2. 显示模块显示模块通常采用数码管或者液晶显示屏来显示时间信息。

数码管可以直接显示数字,在低功耗和成本方面具有优势;液晶显示屏可以显示更多的信息,具有更好的可视角度和美观性。

在电子时钟中,我们可以通过控制显示模块的引脚,以适当的方式显示小时、分钟和秒数。

3. 控制模块控制模块主要用于处理用户的输入操作,如设置闹钟时间、调整时间等。

可以通过按键开关、旋转编码器或者触摸屏等方式来实现用户交互。

当用户按下按键或者滑动触摸屏时,控制模块会相应地改变时钟模块中的时间数据或者触发其他操作。

4. 电源模块电子时钟需要一个稳定的电源来工作,通常使用交流电转直流电的方式进行供电。

电源模块可以通过整流、滤波和稳压等电路来提供稳定的直流电源。

二、设计步骤基于单片机的电子时钟的设计步骤如下:1. 确定需求和功能:首先需要明确设计的需求和功能,包括显示方式、时间格式、附加功能等。

2. 选择单片机:根据需求选择适合的单片机型号,考虑处理性能、存储空间、外设接口等因素。

3. 设计电路图:根据选择的单片机和其他模块,设计电子时钟的电路图。

包括时钟模块、显示模块、控制模块和电源模块的连接方式。

4. 编写源代码:根据电路图和功能需求,编写单片机的源代码。

简易电子钟设计范文

简易电子钟设计范文

简易电子钟设计范文电子钟是一种通过电子技术实现时间显示的设备。

它通常由一个数字显示屏,一个控制电路和一个电源组成。

其主要功能是显示小时、分钟和秒钟等时间信息,可以准确地显示时间,并可以根据需要设置闹铃功能。

设计一款简易电子钟可以使用Arduino等开发板或单片机来实现。

首先,我们需要选择一块合适的数字显示屏。

常见的数字显示屏有数码管和液晶显示屏两种类型,它们的显示原理和控制方式有所不同。

如果选择数码管作为显示屏,可以考虑使用常见的7段数码管,它由八个LED灯组成,可以显示0-9的数字以及一些字母和特殊符号。

数码管的控制方式是通过控制每个LED灯的亮灭来实现显示,可以使用数字输出口来控制。

Arduino的数字输出口可以输出高电平(5V)和低电平(0V),通过控制输出口的电平,就能够控制数码管的亮灭。

如果选择液晶显示屏作为显示器,可以选择字符型液晶显示屏或者图形型液晶显示屏。

字符型液晶显示屏通常可以显示一些字符或者数字,它的控制方式是通过并行或者串行接口来控制,可以使用开发板的GPIO口来实现。

图形型液晶显示屏可以显示更多的信息,它的控制方式是通过SPI接口或者I2C接口来控制,这需要相应的驱动库或者芯片来实现。

无论选择数码管还是液晶显示屏,我们都需要编写程序来控制显示。

程序的核心是一个循环,其中使用时钟模块来获取当前的时间,并使用相应的控制方式将时间信息显示在显示屏上。

如果需要设置闹铃功能,可以在循环中判断当前时间和设置的时间是否相等,如果相等则触发闹铃。

设计一个简易电子钟的完整步骤如下:1. 选择适合的开发板或者单片机,例如Arduino。

2.选择合适的显示屏,例如7段数码管或者液晶显示屏。

3.连接显示屏到开发板,根据显示屏的类型选择合适的引脚连接方式。

4.编写代码来控制显示屏显示时间信息。

5.添加时钟模块,用来获取当前的时间信息。

6.根据需要添加闹铃功能。

7.测试电子钟的功能和性能,不断优化改进。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1 课程设计目的 (1)2 系统方案设计及确定 (2)2.1方案的提出 (2)2.2方案的论证及确定 (2)2.2.1 单片机简介及选择 (2)2.2.2 键盘电路的简介及选择 (4)2.2.3 LED数码管的简介及选择 (5)3 系统的硬件设计 (7)3.1AT89S51最小系统设计 (7)3.1.1 时钟电路硬件设计 (7)3.1.2 复位电路硬件设计 (7)3.2键盘电路硬件设计 (9)3.3显示电路硬件设计 (9)3.4蜂鸣器电路硬件设计 (10)4 系统软件设计 (11)4.1系统主程序设计 (11)4.1.1 系统软件设计内存分配及芯片地址介绍 (11)4.1.2 系统主程序流程图 (11)4.2定时器的设计 (12)4.3整点报时 (14)5 系统调试 (15)5.1调试步骤 (15)5.2调试过程中的问题及解决方法 (22)6 总结 (23)7 参考文献 (24)附录 (25)附录一:程序清单 (25)附录二系统硬件原理图及PCB图 (46)1 课程设计目的单片机体积小、成本低,嵌入到工业控制单元、机器人、智能仪器仪表、汽车电子系统、武器系统、家用电器、办公自动化设备、金融电子系统、玩具、个人信息终端及通讯产品中。

单片机是计算机技术发展史上的一个重要里程碑,标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机是集成电路技术与微型计算机技术高速发展的产物。

体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。

由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微机根本做不到。

由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。

从工业自动化、自动控制、智能仪器仪表、消费类电子产品等方面,直到国防尖端技术领域,单片机都发挥着十分重要的作用。

所以单片机的课程设计是十分必要的。

灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。

能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。

独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。

2 系统方案设计及确定2.1 方案的提出用单片机及6位LED数码管显示时、分、秒,以24小>时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可实现时、分调整,秒表(或闹钟)/时钟功能转换,以及实现省电(关闭显示)功能。

系统框图如下图2.2 方案的论证及确定2.2.1 单片机简介及选择单片机是集成电路技术与微型计算机技术高速发展的产物。

体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。

由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微机根本做不到。

由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。

20世纪80年代以来,发展迅速,世界一些著名厂商投放市场的产品就有几十个系列,数百个品种,Intel公司的MCS-48、MCS-51,Motorola公司的6801、6802,Zilog公司的Z8系列,Rockwell公司的6501、6502等。

此外,荷兰的Philips公司、日本的NEC公司、日立公司等也相继推出了各自的产品。

尽管机型很多,但是在20世纪80年代以及90年代,在我国使用最多的8位单片机还是Intel公司的MCS-51系列单片机以及与其兼容的单片机(称为51系列单片机)MCS-51系列单片机主要包括基本型:8031/8051/8751(低功耗型80C31/80C51/87C51)增强型:8032/8052/8752。

已为我国广大技术人员所熟悉和掌握。

在上世纪80年代和90年代,MCS-51系列是在我国应用最为广泛的单片机机型之一。

(1)基本型典型产品:8031/8051/8751。

8031内部包括1个8位CPU、128B RAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口,2个16位定时器/计数器,5个中断源,但片内无程序存储器,需外扩程序存储器芯片。

8051是在8031的基础上,片内又集成有4KB ROM作为程序存储器。

所以8051是一个程序不超过4KB的小系统。

ROM内的程序是公司制作芯片时,代为用户烧制的。

8751与8051相比,片内集成的4KB EPROM取代了8051的4KB ROM来作为程序存储器。

(2)增强型Intel公司在基本型基础上,推出增强型-52子系列,典型产品:8032/8052/8752。

内部RAM增到256B,8052、片内程序存储器扩展到8KB,16位定时器/计数器增至3个,6个中断源,串行口通信速率提高5倍。

表2-1列出了基本型和增强型的MCS-51系列单片机片内的基本硬件资源。

表2-1MCS-51系列单片机片内的基本硬件资源。

与MCS-51系列的87C51单片机相比,AT89C51/AT89S51单片机片内的4KB Flash 存储器取代了87C51片内的4KB EPROM。

AT89S51片内的Flash存储器可在线编程或使用编程器重复编程,且价格较低。

因此AT89C51/AT89S51单片机作为代表性产品受到用户欢迎,AT89C5x/AT89S5x 单片机是目前取代MCS-51系列单片机的主流芯片之一。

本书重点介绍AT89S51单片机的原理及应用系统设计。

AT89S5x的“S”档系列机型是ATMEL公司继AT89C5x系列之后推出的新机型,代表性产品为AT89S51和AT89S52。

基本型的AT89C51与AT89S51以及增强型的AT89C52与AT89S52的硬件结构和指令系统完全相同。

使用AT89C51的系统,在保留原来软硬件的条件下,完全可以用AT89S51直接代换。

与AT89C5x系列相比,AT89S5x系列的时钟频率以及运算速度有了较大的提高,例如,AT89S51工作频率的上限为24MHz,而AT89S51则为33MHz。

AT89S51片内集成有双数据指针DPTR,看门狗定时器、具有低功耗空闲工作方式和掉电工作方式。

目前,AT89S5x系列已逐渐取代AT89C5x系列。

此次设计使用的是AT89S51。

2.2.2 键盘电路的简介及选择键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。

键盘可分为两类:非编码键盘和编码键盘。

本报告主要介绍非编码键盘。

非编码键盘是利用按键直接与单片机相连接而成,这种键盘通常使用在按键数量较少的场合。

使用这种键盘,系统功能通常比较简单,需要处理的任务较少,但是可以降低成本、简化电路设计。

按键的信息通过软件来获取。

非编码键盘分为两种结构:独立式键盘和矩阵式键盘(1)独立式键盘独立式键盘特点是:一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可容易地判断哪个按键被按下,如图10-8所示。

对于图3-1的键盘,图中的上拉电阻保证按键释放时,输入检测线上有稳定的高电平。

当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。

(2) 矩阵式键盘矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。

如图3-2所示,一个4 4的行、列结构可以构成一个16个按键键盘。

在按键数目较多的场合,要节省较多的I/O口线。

矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。

列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在。

由于本设计键盘数目较少故采用独立式键盘。

图3-1独立式键盘 3-2矩阵式键盘2.2.3 LED数码管的简介及选择LED(Light Emitting Diode)发光二极管缩写。

LED数码管是由发光二极管构成的。

常见的LED数码管为“8”字型的,共计8段。

每一段对应一个发光二极管。

有共阳极和共阴极两种,如图3-3所示。

共阴极发光二极管的阴极连在一起,通常公共阴极接地。

当阳极为高电平时,发光二极管点亮。

同样,共阳极LED数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

图3-3LED数码管有静态显示和动态显示两种显示方式。

静态显示方式的显示无闪烁,亮度都较高,静态显示方式接口编程容易,但是占用口线较多(图3-4)。

动态显示的优点是硬件电路简单,显示器越多,优势越明显。

缺点是显示亮度不如静态显示的亮度高。

如果“扫描”速率较低,会出现闪烁现象(图3-5)。

图2-4静态显示图2-5动态显示基于以上原因本设计采用动态显示。

总结以上选择,我们单片机选用了AT89S51,键盘选用了非编码式独立式键盘,数码管选择动态显示。

相关文档
最新文档