搜档网
当前位置:搜档网 › 51单片机电子万年历设计带有proteus仿真

51单片机电子万年历设计带有proteus仿真

51单片机电子万年历设计带有proteus仿真
51单片机电子万年历设计带有proteus仿真

湖南文理学院课程设计

课程名称:单片机课程设计

设计题目:电子万年历

教学院部:电气与信息工程学院

专业班级:自动化09101班

指导教师:张晓虎

学生姓名:邵泽

学号: 200916010120

完成时间:2012 年6月12日

报告成绩:

评阅意见:

评阅教师日期

摘要:

电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。该电路采用AT89C52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3到5V电压供电。

万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。在单片机的选择上使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用液晶LCD1602。软件方面主要包括日历程序、液晶驱动程序,显示程序等。程序采用汇编语言编写。所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。

关键词时钟电钟,DS1302,液晶LCD1602,单片机

Abstract:

Electronic calendar is a very extensive daily timing tool for modern society is more and more popular. It can be to year, month, day, Sunday, when, minutes, and seconds for the time, also has a leap year compensation and other functions, and the DS1302 long service life and small error. For digital electronic calendar using intuitive digital display, can also shows that year, month, day, Sunday, when the information such as, minutes and seconds, still have time calibration etc. Function. The AT89C52 single chip microcomputer as circuit adopts core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 to 5 V voltage power supply.

The design process of the calendar in the hardware and software design of synchronization. Mainly by AT89C52 single chip microcomputer hardware part, liquid crystal display circuit, reset circuit, clocking circuit on the circuit circuit and serial download circuit etc. The processor on the choice of the single chip microcomputer AT89C52 use, the single chip microcomputer suitable for many more complex control applications. Use of liquid crystal display LCD1602. Software is mainly including calendar program, liquid crystal driver, show program, etc. Program using assembly language. All programming, after the completion of Keil C51 software in commissioning, make sure no, after Proteus software embedded in within the single chip microcomputer simulation.

Key words DianZhong clock, DS1302, liquid crystal LCD1602, microcontroller

目录

1设计要求与方案论证 (4)

1.1 设计要求 (4)

1.2 系统基本方案选择和论证 (4)

1.2.1单片机芯片的选择方案和论证 (4)

1.2.3时钟芯片的选择方案和论证: (5)

1.3 电路设计最终方案决定 (5)

2系统的硬件设计与实现 (5)

2.1 电路设计框图 (5)

2.2 系统硬件概述 (6)

2.3 主要单元电路的设计 (6)

2.3.1单片机主控制模块的设计 (6)

2.3.2时钟电路模块的设计 (7)

2.3.3显示模块电路 (8)

2.3.4串口下载电路 (9)

2.3.5复位电路 (9)

2.3.6稳压电路 (10)

3系统的软件设计 (10)

3.1程序流程框图 (11)

3.2子程序的设计................................................................................................................... 错误!未定义书签。

3.2.1读写DS1302子程序................................................................................................. 错误!未定义书签。

3.2.1读写LCD1602子程序............................................................................................... 错误!未定义书签。4软件测试及分析 (11)

4.2分析与结论 (12)

4.2.1 调试分析 (12)

4.2.2调试和结论 (13)

5总结 (13)

1设计要求与方案论证

1.1 设计要求

①能够显示年、月、日、时、分。

②可以人为校正年、月、日、时、分。

③地一次开机显示:2000 01 01 12.00。

④掉电信息不丢失。

1.2 系统基本方案选择和论证

系统方案包括单片机的选型、时钟芯片的选择和显示模块的确定等。

1.2.1单片机芯片的选择方案和论证

方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二: 采用AT89C52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89C52作为主控制系统控制整个系统的正常工作。

1.2.2 显示模块选择方案和论证

方案一:采用数码管显示,数码管是由八个发光二极管组成,对于显示数字字符比较适合,但对于电子万年历需要的数码管位数多,编程麻烦,且不稳定,

存在抖动现象,需要通过软件延时进行消抖。

方案二:采用LCD1602液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,易于编程,稳定可靠。

通过对比,本课程设计采用LCD1602作为显示模块。

1.2.3时钟芯片的选择方案和论证:

方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、时、分计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。

方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对分、时、日、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。同时在外加电源和外加晶振电路下,掉电后走时准确。

本课程设计采用DS1302作为时钟的芯片。

1.3 电路设计最终方案决定

综上各方案所述,对此次设计的方案选定: 采用AT89C52作为主控制系统; DS1302提供时钟;LCD1602作为显示。

2系统的硬件设计与实现

2.1 电路设计框图

2.2 系统硬件概述

本电路是由AT89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分和秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口(SPI总线)与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、时、分,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部分由LCD1602显示,精度高,显示稳定。

2.3 主要单元电路的设计

单元电路的设计包括主控制系统、时钟电路模块、显示模块、串口下载模块、复位电路和稳压电路的设计。

2.3.1单片机主控制模块的设计

AT89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和30PF电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和30PF电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端. 如图2-1 所示

图2-1 主控制系统

2.3.2时钟电路模块的设计

图2-2示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.7、68KHz 晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。I/O为串行数据输入端(双向)。SCLK始终是输入端。如图2-2所示。

图2-2 DS1302的引脚图

2.3.3显示模块电路

如图2-3所示,采用液晶1602数据端由P0提供实现8位并行通信,其数据交换的速率比较快VL是调整液晶显示的亮度,E是使能端口,RW是读写控制端口,高电平读信号,低电平写信号;RS是读写命令与数据控制端口,高电平写数据,低电平写命令。

图2-3 LCD 1062的电路图

2.3.4串口下载电路

经过KEIL C51编译的汇编程序必须下载到单片机内部运行,才能实现所需要的功能。然而单片机得1、0是用5V、和0V表示的,而电脑中的1、0用的电压并不是5V、和0V,因此,必须用MAX232进行电压转化,于是设计的串口下载电路。如图2-4所示。

图2-4 串口下载电路

2.3.5复位电路

在单片机中运行程序时,如果程序跑飞,即程序运行的地址出现混乱时,可以用复位电路,在低电平时程序从零地址从新开始运行。同时也可以使用看门狗,定时的喂狗,使程序每次从零地址开始运行。防止程序跑飞。如图2-5所示。

图2-5 复位电路

2.3.6稳压电路

当输入的电压高于或者低于51v时,可以用L7805CV稳压到5V,保证单片机稳定的性能和可靠的稳定性,其中的二极管是利用了单片机的单向导电性,导致单片机被烧毁或者系统不能正常工作。如图2-6所示。

图2-6 稳压电路

3系统的软件设计

3.1程序流程框图

开始

初始化

读日期、时间

分离日期\时间显示值

显示子程序

返回

4软件proteus测试及分析

通过调节四个按键设定时间为2000年1月1日12点整。

4.1软件测试

电子万年历是多功能的数字显示仪器。由于功能很多,所以对于它的程序也较为复杂,因此本次设计采用简化模型,即只显示年月日,时分秒。但在程序调试时出现了相对较多的错误。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:

4.2分析与结论

4.2.1 调试分析

(1)显示的数据秒并没有变化,原因是没有启动定时器,我有不断的读取DS1302时钟芯片寄存器中的数据,并显示才能实现所需要的功能,实时显示年、月、日、星期、分钟、小时、秒等基本功能来满足系统的需求。

(2)调整时间后应该先去掉写保护,如果存在写保护,那么在初始化写入初始时间时,是写不进去初始化的时间的。因而会看见显示的时间并不随着设置

的初始化的值变化而变化,甚至我们看见的时间并不按着一秒一秒的增加。

(3)液晶显示的时候,由于采用的并行总线,显然传输速度快,但是数据端口必须接1K的排阻,以实现驱动,实践证明,没有排阻的时候,液晶显示就会不稳定,甚至出现乱码。因此,排阻的作用很大。写程序时要严格按照时序就行,否则,也不会显示。

4.2.2调试和结论

经过多次反复修改程序,对电路各模块的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对所学的知识得到很大的提高与巩固.

5总结

通过这次制作使我了解了整个万年历的工作过程和各个部分的工作原理。使我认识到利用单片机设计的万年历便于操作。经过认真的仿真观察,本次设计的万年历能够正确的显示年、月、日等,总体来说算是比较成功的。

本次单片机课程设计是使用Protues设计工具、协同使用Keil编程软件制作的。这也使我又掌握了一门非常实用的软件,对于我以后的毕业设计算是又多了一个非常好的选择。在看同学编写程序的过程中我自己也学到了很多的东西,对于一些Protues程序的不同用法和功能能够比较顺畅的读程序和简单的应用。

6参考文献

1刘勇编数字电路电子工业出版社 2004

2陈正振编电子电路设计与制作广西交通职业技术学院信息工程系 2007 3杨子文编单片机原理及应用西安电子科技大学出版社 2006

4 王法能编单片机原理及应用科学出版社 2004

附录一:系统电路图

附录二:系统程序清单

#include

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit IO= P1^0; //DS1302数据线

sbit SCLK = P1^1; //DS130时钟线

sbit RST = P1^2; //DS1302复位线

sbit RS = P2^0; //LCD数据/命令选择端

sbit RW = P2^1; //LCD读/写控制

sbit EN = P2^2; //LCD使能端

sbit K1=P3^4; //选择

sbit K2=P3^5; //加

sbit K3=P3^6; //减

sbit K4=P3^7; //确定

uchar tCount=0;

uchar MonthsDays[]={0,31,0,31,30,31,30,31,31,30,31,30,31};

uchar *WEEK[]={"SUN","MON","TUS","WEN","THU","FRI","SAT"};

uchar LCD_DSY_BUFFER1[]={"DATE 00-00-00 "}; //显示格式

uchar LCD_DSY_BUFFER2[]={"TIME 00:00:00 "};

uchar DateTime[7]; //所读取的日期时间

char Adjust_Index=-1; //当前调节的时间对象:,,分,是,日,月,年(1,2,3,4,6)

uchar Change_Flag[]= "-MHDM-Y"; //(分,时,日,月,年)(不调节秒与周)/*---------延时程序------------------*/

void DelayMS(uint ms)

{

uchar i;

while(ms--){for(i=0;i<120;i++);}

}

//-----------向DS1302写入一字节------------------// void Write_A_Byte_TO_DS1302(uchar x)

{ uchar i;

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

IO=x&0x01; //每一位与1与存入IO中

SCLK=1;SCLK=0; //一个高脉冲将数据送入液晶控制器

x>>=1; // 右移

}

}

//-----------从DS1302读取一字节------------------// uchar Get_A_Byte_FROM_DS1302()

{ uchar i,b=0x00;

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

b |= _crol_((uchar)IO,i);

SCLK=1;SCLK=0; //每一个高脉冲读取一位数据}

return b/16*10+b%16; //返回BCD码

}

//-----------从DS1302指定位置读数据------------------// uchar Read_Data(uchar addr)

{

uchar dat;

RST = 0;SCLK=0;RST=1; //RST高电平时读/写

Write_A_Byte_TO_DS1302(addr); //先写入地址

dat = Get_A_Byte_FROM_DS1302();

SCLK=1;RST=0;

return dat;

}

//---------向DS1302某地址写入数据--------------------//

void Write_DS1302(uchar addr,uchar dat)

{ SCLK=0;RST=1;

Write_A_Byte_TO_DS1302(addr);

Write_A_Byte_TO_DS1302(dat);

SCLK=0;RST=0; //高脉冲写入数据

}

//--------------设置时间----------------//

void SET_DS1302()

{ uchar i;

//写控制字,取消写保护

Write_DS1302(0x8E,0x00);

//分时日月年依次写入

for(i=1;i<7;i++)

{ //分的起始地址10000010(0x82),后面依次是时,日,月,周,年,写入地址每次递增2

Write_DS1302(0x80+2*i,(DateTime[i]/10<<4)|(DateTime[i]%10));

}

Write_DS1302(0x8E,0x80); //加保护

}

//----------读取当前日期时间------------//

void GetTime()

{uchar i;

for(i=0;i<7;i++){ DateTime[i]=Read_Data(0X81+2*i);}

}

//-----------读LCD状态------------------//

uchar Read_LCD_State()

{ uchar state;

RS=0;RW=1;EN=1; //输出:D0~D7=状态字

DelayMS(1);

state=P0; //从P0口读LCD状态

EN = 0;DelayMS(1);

return state;

}

//-----------忙等待------------------//

void LCD_Busy_Wait()

{

while((Read_LCD_State()&0x80)==0x80);

DelayMS(5);

}

//-----------向LCD写数据------------------//

void Write_LCD_Data(uchar dat)

{

LCD_Busy_Wait();

RS=1;EN=0;RW=0; //写数据,EN为高脉冲,

P0=dat;EN=1;DelayMS(1);EN=0;

}

//-------------写LCD指令-------------------//

void Write_LCD_Command(uchar cmd)

{

LCD_Busy_Wait();

RS=0;EN=0; RW=0; //写指令,EN高脉冲,输出:D0~D7=数据P0=cmd;EN=1;DelayMS(1);EN=0;

}

//-------------LCD初始化-------------------//

void Init_LCD()

{

Write_LCD_Command(0x38); //设置16*2显示,5*7点阵,8位数据接口DelayMS(1);

Write_LCD_Command(0x01); //显示清零,数据指针清零

DelayMS(1);

Write_LCD_Command(0x06); //写一个字符后地址指针自动加1

DelayMS(1);

Write_LCD_Command(0x0c); //设置开显示,不显示光标

DelayMS(1);

}

//------------------------------------------

//设置液晶显示位置

//------------------------------------------

void Set_LCD_POS(uchar p){

Write_LCD_Command(p|0x80);//相当于在0x80基础上加入位置量

}

//----在LCD上显示字符串---------//

void Display_LCD_String(uchar p,uchar *s)

{ uchar i;

Set_LCD_POS(p);

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

{

Write_LCD_Data(s[i]); //在固定位置显示时间日期

DelayMS(1);

}

}

//---------日期与时间值转换为数字字符----------------//

void Format_DateTime(uchar d,uchar *a)

{

a[0]=d/10+'0';

a[1]=d%10+'0';

}

//判断是否为闰年

uchar isLeapYear(uint y)

{ return (y%4==0&&y%100!=0)||(y%400==0);}

//求自2000.1.1开始的任何一天是星期几

//函数没有通过,求出总天数后再求星期几

//因为求总天数可能会超出uint的范围

void RefreshWeekDay()

{ uint i,d,w=5; //已知1999.12.31是周五

for(i=2000;i<2000+DateTime[6];i++)

{

d=isLeapYear(i)?366:365;

w=(w+d)%7;

}

d=0;

for(i=1;i

{ d+=MonthsDays[i]; }

d+=DateTime[3];

//保存星期,0~6表示星期日,星期一,二,...,六,为了与DS1302的星期格式匹配,返回值需要加1

DateTime[5]=(w+d)%7+1;

}

//*****年月日时分++/--********//

void DateTime_Adjust(char x)

基于51单片机的乒乓游戏机设计附Proteus仿真_毕业设计

基于51单片机的乒乓游戏机设计附Proteus仿真 基于51单片机的乒乓游戏机设计附Proteus仿真 目录 1 绪论 (1) 1.1 本设计的研究背景和研究目的 (1) 1.2 国内外研究现状 (1) 1.3 本设计的任务和设计方法 (2) 1.3.1 设计任务 (2) 1.3.2 设计方法 (2) 2 乒乓游戏机设计方案 (3) 2.1 基于单片机的乒乓游戏机设计 (3) 2.1.1 硬件设计 (3) 2.1.2 软件设计 (4) 2.2 基于FPGA的乒乓游戏机设计 (4) 2.3 方案比较与选择 (5) 3硬件电路的设计 (6) 3.1 硬件核心电路选择 (6) 3.1.1 单片机STC89C51简介 (6) 3.1.2 单片机端口分配 (7) 3.2 电源电路的设计 (8) 3.3 时钟电路的设计 (9) 3.4 复位电路的设计 (10) 3.5 按键电路的设计 (10) 3.6 模拟球台电路的设计 (12) 3.6.1 译码器简介 (12) 3.6.2发光二极管简介 (14) 3.6.3 模拟球拍电路的设计 (15) 3.7 显示电路的设计 (15) 3.7.1 LCD1602简介 (15) 3.7.2 显示电路的设计 (16)

3.8 乒乓游戏机总电路的设计 (17) 4 乒乓游戏机的软件设计及编程 (18) 4.1 主程序的设计及功能实现 (19) 4.2 按键组的设计及功能实现 (20) 4.2.1 球拍模拟子程序 (20) 4.2.2 暂停/开始子程序 (20) 4.3 发球程序的设计及功能实现 (21) 4.4 线路程序的设计及功能实现 (21) 4.4.1 线路选择子程序 (21) 4.4.2 LED点阵子程序 (22) 4.5 回球程序的设计及功能实现 (22) 4.6 LCD显示程序设计及功能实现 (23) 4.7 设计源程序 (24) 5 系统调试及分析 (24) 5.1 仿真调试及分析 (24) 5.1.1 Proteus软件简介 (24) 5.1.2 Keil uVision4软件简介 (25) 5.1.3 仿真调试 (25) 5.1.4 仿真调试的结果分析 (28) 5.2 实物调试及分析 (28) 5.2.1 制作实物的过程 (28) 5.2.2 进行实物调试 (28) 5.2.3 实物调试的结果分析 (31) 6 结论与展望 (32) 谢辞(Acknowledge) (33) 参考文献 (34) 附录1:程序 (36) 附录2:元件清单 (51)

基于-51单片机的交通灯设计

师大学 电气工程及自动化
实习报告
姓 名: 班 级: 学 号: 实习科目:单片机实训 指导教师: 实习时间:

智能交通信号灯
摘要
本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微 机原理等课程方面的知识,设计一个采用 STC89C52 单片机控制的交通灯控制电路。该设计 结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路 口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。交通在人们的日常生活中 占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯 的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有 明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制 检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核 心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完 善。根据给出的要求设计交通灯东西、南北两干道交于一个十字路口各干道有一组红、 黄、绿三色的指示灯指挥车辆和行人安全通行。红灯亮禁止通行绿灯亮允许通行。黄灯亮 提示人们注意红、绿灯的状态即将切换且黄灯亮的时间为东西、南北两干道的公共停车时 间。
关键词:电子线路、STC89C52、交通灯

目录
第一章 引言.................................................................. 1 1.概述 ...................................................................... 1 2.设计目的 .................................................................. 4 3.设计要求 .................................................................. 4 4.实验原理 .................................................................. 4 第二章 芯片与元件............................................................ 5 1.MCU ....................................................................... 5 2.74HC573.................................................................... 6 3.led 数码管 ................................................................. 6 第三章 外围电路.............................................................. 6 1.单片机最小系统............................................................. 6 2.数码管显示电路............................................................. 7 3.12 位流水灯 ................................................................ 8 第四章 整体设计.............................................................. 8 1.交通控制系统总体设计....................................................... 8 2.单片机交通控制系统的基本构成及原理......................................... 8 3.系统软件程序的设计......................................................... 9 第五章 总结................................................................. 10 参考文献.................................................................... 11 附录 A 智能交通灯电路原理图 ................................................. 12 附录 B 智能交通灯汇编源程序 ................................................. 13

单片机原理及应用 设计报告

单片机设计报告 编写:HUBU2015级通信工程xmx 2017年5月23日 一、设计的目的与要求 利用8*8LED点阵动态显示汉字的字样。采用STC89C52单片机作为整个控制搭电路的核心,并编制软件程序,实现汉字的显示。通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。 1、设计一个8*8点阵LED电子显示屏。 2、要求在目测条件下LED显示屏各点亮度均匀、充足,可显示一个“大”字。 二、总体方案设计 2.1 硬件电路的总体设计 1、设计总体框图 硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。 2、工作原理 由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,P1口控制列,通过软件编程,即可实现汉字的显示。

3、元器件清单 2.2系统软件的设计 软件程序主要由开始、初始化、主程序、字库和延时子程序组成。 三、系统硬件电路的具体设计 3.1 时钟电路 STC89C52单片机内部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。STC89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。

内部时钟方式:利用其内部的振荡电路在X1和X2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4所示电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF 左右 3.2 复位电路 单片机在启动运行时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。本设计中采用按键复位电路,上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1选择10KΩ左右的电阻,电容器一般选择10μF。 3.3显示电路的设计 本次设计中采用8*8点阵LED显示器,简称LED点阵板或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种。设计中用到的是“列共阳,行共阴”,即“列用高电平控制,行用低电平控制”。图中画

基于51单片机的万年历的设计

单片机课程实训SCM PRACTICAL TRAINING

目录 第一部分课程设计任务书 (1) 一、课程设计题目 (1) 二、课程设计时间 (1) 三、实训提交方式 (1) 四、设计要求 (1) 第二部分课程设计报告 (2) 一、单片机发展概况 (2) 二、MCS-51单片机系统简介 (2) 三、设计思想 (3) 四、硬件电路设计 (3) 1. 总体设计 (3) 2. 晶振电路 (4) 3. 复位电路 (4) 4. DS1302时钟电路 (5) 5. 温度采集系统电路 (5) 6. 按键调整电路 (6) 7. 闹钟提示电路 (6) 五、软件设计框图 (7) 六、程序源代码 (8) 1. 主程序 (8) 2. 温度控制程序 (11) 3. 日历设置程序 (13) 4. 时钟控制程序 (18) 5. 显示设置程序 (20) 七、结束语 (23) 八、课程设计小组分工 (23) 九、参考文献 (23)

第一部分课程设计任务书 一、课程设计题目 用中小规模集成芯片设计制作万年历。 二、课程设计时间 五天 三、实训提交方式 提交实训设计报告电子版与纸质版 四、设计要求 (1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。 (3)具有闹钟功能。 (4)能够显示环境温度,误差小于±1℃ (5)计时精度:月误差小于20秒。

第二部分课程设计报告 一、单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。 二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。8051单片机的基本性能有: ◆8位CPU; ◆布尔代数处理器,具有位寻址能力; ◆128B内部RAM,21个专用寄存器; ◆4KB内部掩膜ROM; ◆2个16位可编程二进制加1定时器/计数器; ◆32个(4×8位)双向可独立寻址的I/O口; ◆1个全双工UART(异步串行通信口); ◆5个中断源,两级中断结构; ◆片内振荡器及时钟电路,晶振频率为1.2MHz~12MHz; ◆外部程序/数据存储器寻址空间均为64KB; ◆111条指令,大部分为单字节指令; ◆单一+5V电源供电,双列直插40引脚DIP封装。

(整理)较为全面的基于PROTEUS仿真51单片机动态数码管课程设计(WORD版)

单片机课程设计 题目动态数码管显示 学院机电工程学院 专业班级电子信息工程12-1班 姓名 组员 指导教师张、王老师 2015 年 5 月30 日

课程设计量化评分标准

目录 一、概述 (1) 1. 单片机简介 (1) 2. Proteus简介 (2) 3. 设计任务与要求 (3) 二、硬件设计 (3) 1. 单片机最小系统设计 (1) 2. 数码管显示部分 (4) 3. 数码管驱动部分 (5) 三、软件设计 (6) 1. 仿真原理图 (6) 2. 仿真参数设置 (6) 3. 仿真结果 (7) 4. 程序流程图 (8) 5. 程序代码.................................................... .9 四、心得体会............................................... (11) 五、参考文献 (12)

精品文档 一、概述 1. 单片机简介 如图1.1和图1.2分别为PDI P封装的AT89C52引脚图和实物图 图1.1 引脚图图1.2 实物图 AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。本课程设计中使用的是PDIP封装的AT89C52单片机。 2.Proteus简介 如图1.3为Proteus7.0的工作界面图

51单片机交通灯设计报告

课程设计说明书 课程名称:《单片机技术》 设计题目:交通灯设计 学院:电子信息与电气工程学院 学生姓名: 学号: 专业班级: 指导教师: 2017年4 月20日

课程设计任务书

交通灯设计 摘要: 近年来随着科技的发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应该根据具体硬件结构软硬结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用51系列单片机ATMEL89C51为核心控制器件来设计交通信号灯控制器,实现亮绿灯通行,亮黄灯闪烁并发声警示,亮红灯禁止通行的功能,并显示通行或禁止通行倒计时,紧急按键信号灯加时和紧急按键南北、东西红绿灯跳变。本系统使用性强,操作简单,容易实现,扩展功能强,可自行修改程序扩展自己想要实现的功能。 关键词:交通灯,单片机,复位电路

目录 1. 设计背景 (1) 1.1设计原因 (1) 1.2个人意义 (1) 2.设计方案 (1) 2.1总体方案提出 (1) 2.2稳压电源方案设计与分析 (1) 2.3复位电路方案设计与分析 (2) 3. 方案实施 (2) 3.1总体设计框图 (2) 3.2硬件设计 (3) 3.3软件设计 (6) 3.4电路仿真 (10) 3.5制板子与安装过程 (11) 3.6软硬件调试 (11) 4. 结果与结论 (12) 5 收获与致谢 (12) 6. 参考文献 (12) 7. 附件 (13) 7.1硬件电路图 (13)

单片机原理及系统设计课程设计大纲

《单片机原理及系统设计》课程设计大纲 一、目的 本课程设计是在学习先修课程《单片机原理与系统设计》之后,为加强对学生系统设计和应用能力的培养而开设的综合设计训练环节。本课程设计应结合《单片机原理与系统设计》课程的基础理论,重点强调实际应用技能训练,包括单片机系统设计的软件和硬件两部分。其课程设计任务是使学生通过应用单片机系统设计的基本理论,基本知识与基本技能,掌握单片机应用系统各主要环节的设计、调试方法,初步掌握并具备应用单片机进行设备技术改造和产品开发的能力,培养学生的创新意识,提高学生的动手能力和分析问题、解决问题的能力。 二、课程设计的要求和过程管理 设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。因此必须严格执行良好的实验步骤规范(包括上机操作规范)。本课程设计的基本步骤是: 1.问题分析及解决方案框架确定 充分地分析和理解问题本身,弄清要求做什么(What to do?)。在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个模块的选择及设计方案。 2.详细设计 确定各个模块与单片机的接口方法,分配好单片机的资源,在此基础上进行程序设计。 3.上机调试

选择自己熟悉的单片机开发环境,或者利用实验室现有资源,检查、调试、验证自己所做系统设计的正确性。 4.完成课程设计报告 本课程设计共一周(5天),时间安排为: (1)下达设计任务书,熟悉设计系统任务和要求;查阅设计资料; (2)系统软、硬件总体设计; (3)设计电原理图, 系统硬件调试; (4)编写软件,系统软件调试; (5)完成课程设计报告并参加课程设计检查; (6)封面格式如下页所示。 (7)论文内容要求如下。 1)引言 2)设计方案及原理 3)硬件设计 4)软件设计 5)总结 6)参考文献 7)附录 三、考核评估 课程设计一结束即评定成绩。重点考核以下几个方面的内容:设计内容完成情况(系统软、硬件设计)占总成绩的60%;课程设计报告完成情况占总成绩的20%;平时设计认真,独立思考完成情况占总成绩10%;课程设计宣讲、答辩占总成绩的10%。 优秀:设计认真、准确,设计思想新颖,有一定的独到之处,打印书写工整,电路设计合理,程序设计思路清晰,有较强的独立思考和创新能力,独立思考

本科毕业设计--基于51单片机的电子日历设计

成都电子机械高等专科学校成教院毕业设计(论文) 论文题目:基于51单片机的电子日历设计 教学点:重庆科创职业学院 指导老师:张忠雨职称:讲师 学生姓名:聂燕学号: 2011700558 专业:应用电子技术 成都电子机械高等专科学校成教院制 2012 年 3 月 9 日

成都电子机械高等专科学校成教院毕业设计(论文)任务书 题目:基于51单片机的电子日历设计 任务与要求: 通过单片机设计电子日历数码管正常显示阳历、阴历日期,显示的格式为年-月-日,利用外部按键的操作实现阳历和阴历之间的 转换,实现阴历和阳历显示的暂停、运行等功能。 时间:2011年12月15日至2012 年3月15日共12 周教学点:重庆科创职业学院 学生姓名:聂燕学号:2011700558 专业:应用电子技术 指导单位或教研室: 指导教师:张忠雨职称:讲师 成都电子机械高等专科学校成教院制

毕业设计(论文)进度计划表

摘要 设计以单片机AT89C51为核心部件的电子日历,利用74LS245作为驱动器,74LS138作为译码器使用,六个七段数码管均采用共阴极的方式,P0口作为段选码输出口,P2口作为位选码输出口。 本次设计的题目是基于单片机的电子日历设计,可以正常的显示年、月、日,还可以利用外部按键实现阴历和阳历之间的转换以及暂停等功能。电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。 本次设计可分为两部分:硬件系统、软件系统。 硬件系统包括:AT89S51单片机、74LS245驱动器、74LS138译码器、RC复位电路、+5V直流电源电路、去抖电路、动态显示扫描电路。 软件系统主要有单片机的编程构成。 关键词:单片机,日历,位码,段码,显示

51单片机+proteus仿真PWM

#include unsigned char flag; unsigned int x; unsigned int y; #define time 800 void main() { EA=1; //开总中断 ET0=1; //定时器T0中断允许 TMOD=0x02; //使用定时器T0的模式2 TH0=0; //定时器T0的高8位赋初值 TL0=0; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 x=time; y=0; while(1)//无限循环等待中断 ; } /************************************************************** 函数功能:定时器T0的中断服务程序 **************************************************************/ void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数 //其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器{ if(flag==0) { TH0=256-y; //定时器T0的高8位重新赋初值 TL0=256-y; //定时器T0的高8位重新赋初

P1=1; if((--x)==0) { flag=1; x=time; if((--y)==0) { y=100; } } } if(flag==1) { TH0=y; //定时器T0的高8位重新赋初值 TL0=y; //定时器T0的高8位重新赋初 P1=0; if((--x)==0) { flag=0; x=time; if((--y)==0) { y=100; } } } }

51单片机交通灯课程设计

第一章单片机概述 单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。它在一块芯片内芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。 单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。由于MCS-51系列的单片机的模块化结构比较典型、应用灵活,为许多大公司所采纳,使8051系列的单片产品日新月异。在Intel公司20世纪80年代初推出MCS-51系列单片机以后,世界上许多著名的半导体厂商相继生产和这个系列兼容的单片机,使产品型号不断地增加、品种不断丰富、功能不断加强,在国内外单片机应用中占有重要地位。由于单片机具有功能强、体积小、价格低等一系列优点,在各个领域都有广泛的应用,有力地推动了各行各业的技术改造和产品更新换代。 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,

产品更新换代的节奏也越来越快。 第二章MSC-51芯片简介 8051是MCS-51系列单片机的典型产品。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 ·数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

基于51单片机电子万年历设计

基于51单片机电子万年历设计 专业:机电设备维修与管理姓名:杜洪浦指导老师: 摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3到5V电压供电。 万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。在单片机的选择上使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用液晶LCD1602。软件方面主要包括日历程序、液晶驱动程序,显示程序等。程序采用汇编语言编写。所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。 关键词时钟电钟,DS1302,液晶LCD1602,单片机 目录 1设计要求与方案论证 (2) 1.1 设计要求 (2) 1.2 系统基本方案选择和论证 (2) 1.2.1单片机芯片的选择方案和论证 (2) 1.2.2 显示模块选择方案和论证 (3) 1.2.3时钟芯片的选择方案和论证: (3) 1.3 电路设计最终方案决定 (3) 2系统的硬件设计与实现 (3) 2.1 电路设计框图 (4) 2.2 系统硬件概述 (4) 2.3 主要单元电路的设计 (4) 2.3.1单片机主控制模块的设计 (4)

51单片机行列式键盘的应用proteus仿真+源程序

51单片机行列式键盘的应用proteus仿真本人喜好单片机设计,精通单片机编程和硬件电路设计,在空余之际编一些小程序与大家分享,有哪位路过,请多多指教,希望大家在一起能互相学习,互相进步。这里的程序已经测试通过。发表出来,一来可以帮助同样爱好单片机的朋友们,二来,希望能结交一些同道中人,共同学习。 源程序: #include #include void delayms(unsigned char ms); unsigned char data dis_digit; unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xff}; unsigned char data dis_index; void main() { P2=0xff; P1=0x00; dis_index=0; dis_digit=0x01; while(1) { P2=dis_code[dis_index]; P1=dis_digit; delayms(1); P1=0x00; dis_digit=_crol_(dis_digit,1); dis_index++; dis_index &=0x07; } } void delayms(unsigned char ms) { unsigned char i; while (ms--) {

for(i=0;i<120;i++); } } 仿真图:

如果您想做项目开发,或者是做课题,或者您只是有一个想法,亲联系我们,我们会尽最大努力帮您完成,您的需要就是我们奋斗的方向! 本人有给学生做课程设计的经验,欢迎亲们来本店咨询哦 淘宝店铺地址:https://www.sodocs.net/doc/b64714824.html, ; https://www.sodocs.net/doc/b64714824.html, QQ:1203026348;496617571 邮箱:1203026348@https://www.sodocs.net/doc/b64714824.html, ;496617571@https://www.sodocs.net/doc/b64714824.html, 电话:小陈:152******** 小张:158******** 阿里旺旺:tb3569_1968 ;zwjyln 我们拥有40G!!超大容量!!!是单片机入门者的首选经典资料!!! 您在单片机方面有任何问题,请及时和我们联系,我们会竭诚为您服务!! 承接单片机项目开发,同时包括软件开发和硬件开发。我们是一组拥有扎实的单片机基础知识的大学生,我们可以给您提供从项目开始到项目的完成整个过程的技术支持,其中包括原理图的设计、电路图的proteus软件仿真、程序的编写以及相关软件的使用等

单片机原理及应用综合性实验报告

单片机原理及应用综合性实验报告 姓名:学号 班级: 指导教师:

单片机原理及应用实验报告实验项目名称:键盘、数码管显示综合实验 实验日期:2014.12.22 实验成绩: 实验评定标准:

一、实验目的 1.通过实验,掌握单片机在输入输出口线不够用时,怎样扩展接口的方法来支 持8位LED显示和16键盘集成实现。 2.熟悉8255、8279等芯片性能;掌握其编程方法。 3.掌握键盘子程序调试方法,掌握按一个键并将键值显示出来的编程方法,这 是诊断硬件、测试硬件、产品开发、软件编程必须掌握的方法。 二、实验器材 PC机一台以及Keil、Proteus软件 表1 以8155为扩展方式的器件表 表2 实验原理图元件清单表

三、实验内容 (一)基本内容 1.编写并调试出一个键盘实验子程序 2.用子程序调用方法,分别调用键盘子程序和显示子程序,将按一个键的键值, 在数码管上显示出来。 3.通过8155芯片的扩展功能,建立描述线与数据线同步功能,如图3.1。 图3.1 键盘显示器原理图

图3.2 数码管管脚及电路连接图 (二)扩展内容 模拟控制以红、绿、黄3个发光二极管表示交通信号灯。还有有两位数码倒计时显示。 具体要求: 上电红灯亮并且数码管倒计时30秒,最后5秒黄灯闪烁,倒计时完毕,绿灯亮并且数码管倒计时60秒,最后5秒黄灯闪烁,如此循环。 四、实验步骤 (一)仿真实验过程: 1. 打开Keil 程序,执行菜单命令“Project ”à“New Project ”创建“键盘数码 管显示综合实验”项目,并选择单片机型号为AT89C52.BUS 。 GND a b c d e f g dp g f e d c b a (a)

基于AT89C51单片机的电子万年历的设计_课程设计报告

课程设计报告 设计名称:电子万年历设计 专业班级:自动化10101班 完成时间:2013年6月9日 报告成绩:

摘要 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。 关键字AT89C51;电子万年历; DS1302

1 绪论 1.1 课题研究的背景 随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89C51单片机作为核心,功耗小,能在3V 的低压工作,电压可选用3~5V电压供电。 此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 1.2课题的研究目的与意义 二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。 由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。 1.3课题解决的主要内容 本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面: (1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。 (2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。 (3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。 (4)根据设计的硬件电路,编写控制AT89C51芯片的单片机程序。 (5)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。 (6)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。 (7)软件设计时必须要有完善的思路,要做到程序简单,调试方便。

基于51单片机的计算器(附Proteus仿真图且程序有详细注释)

#include #define uint unsigned int #define uchar unsigned char #define lint unsigned long int uchar SMG[10]={0x3f,0x06,0x5b,0x4f, //数码管取模 0x66,0x6d,0x7d,0x07, 0x7f,0x6f }; uchar DA TA1[8]={0,0,0,0,0,0,0,0}; //第一个数 uchar DA TA2[8]={0,0,0,0,0,0,0,0}; //第二个数 uchar RESUIT[8]={0,0,0,0,0,0,0,0}; //结果 uchar px1=0,px2=0,px3=0,flag=0,flag1=0,flag2=0,flag3=0,f1=0,f2=0,f3=0,f4=0; //各全局变量uchar temp,key; lint x1=0,x2=0,y=0; //输入的数及其结果 void Init(); //系统初始化 void keyscan(); //键盘检测 void delay(uint); //延时 void DataOper(); //数据运算 void DataHandle(); //数据接收 void DisplayHandle(); //显示处理 void display(uchar,uchar); //数码管显示函数 void main() { P2=0x00; while(1) { keyscan(); DataHandle(); DisplayHandle(); } } void Init() //初始化,所有数据归零 { uchar i; px1=0;px2=0;px3=0; flag=0;flag1=0;flag2=0;flag3=0; f1=0;f2=0;f3=0;f4=0; x1=0;x2=0;y=0; for(i=0;i<8;i++) {DA TA1[i]=0;DATA2[i]=0;RESUIT[i]=0;} } void delay(msx) //msx为延时毫秒数 { uint i,j;

51单片机实现交通灯的设计

51单片机实现交通灯的设计 1.器材: 51单片机开发板一块; LED灯 2.功能: 东西向绿灯亮若干秒,黄 灯闪烁5 次后红灯亮,红灯亮后,南 北向由红灯变为绿灯,若干秒后南北 向黄灯闪烁5 此后变红灯,东西向变 绿灯,如此重复。 3. 程序: #include #define uchar unsigned char #define uint unsigned int sbit r1=P0^0;//东西向灯;r代表red,y代表yellow,g代表green sbit y1=P0^1; sbit g1=P0^2; sbit r2=P0^3;//南北向灯 sbit y2=P0^4; sbit g2=P0^5; uchar count=0; uchar type=1;//闪烁次数,操作类型变量 void delay(unsigned int t)//延时程序 { while(--t); } void light()//显示程序实现所需功能 { switch(type) { case 1: r1=1;y1=1;g1=0;//1表示灯灭,0表示灯亮,即东西向绿灯与南北向红灯亮r2=0;y2=1;g2=1; delay(62500);//延时一下,为下一个显示作准备 type=2;//type赋值为2,即执得case 2; break; case 2: delay(62500);//消除影响,使led工作稳定; y1=~y1;g1=1;//进行闪烁,即东西向黄灯闪烁,绿灯关闭 if(++count != 10) return; count=0; type=3; break; case 3: r1=0;y1=1;g1=1;//东西向红灯,南北向绿灯亮 r2=1;y2=1;g2=0;

单片机课程设计--基于51单片机的万年历

单片机课程设计报告 万年历的设计

基于51单片机的万年历 摘要: 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。 软件方面主要包括日历程序、时间调整程序,显示程序等。程序采用C语言编写。所有程序编写完成后,在KeilC51软件中进行调试,

确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 一、设计要求 基本要求: 1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”; 2,具有日历功能; ③时间可以通过按键调整。 发挥部分: ④具有闹钟功能(可以设定多个)。 二:总体设计 电路设计框图

51单片机红绿灯课程设计

1 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

相关主题