电梯楼层显示电路设计
二.实验原理 电梯楼层显示电路是由单片机控制的,主要的部件有 51 单片机、开关控制和数码显示管组 成。通过数码管显示楼层,开关控制。
1.AT89C51 的基本概述 AT89C5l 单片机,是一种低功耗、高性能的、片内含有 4KB Flash ROM 的 8 位 CMOS 单片机, 工作电压范围为 2.7~6V(实际使用+5V 供电),8 位数据总线。它有—个可编程的全双工串 行通信接口,能同时进行串行发送和接收。AT89C51 具有 4K 并行可编程的非易失性 FLASH 程序存储器,可实现对器件串行在系统编程 ISP 和在应用中编程(IAP)。在系统编程 ISP (In-System Programming)当 MCU 安装在用户板上时允许用户下载新的代码在应用中编程。 IAP(In-Application Programming)MCU 可以在系统中获取新代码并对自己重新编程,这 种方法允许通过调制解调器连接进行远程编程。片内 ROM 中固化的默认的串行加载程序 Boot Loader 允许 ISP 通过 UART 将程序代码装入 Flash 存储器,而 Flash 代码中则不需要加载程 序对于 IAP 用户程序通过使用片内 ROM 中的标准程序对 Flash 存储器进行擦除和重新编程。
{
int i;
while(n--)
{ for(i=0;i<10000;i++){;}}
}
void main()
{
int count=1;
P2=0x06;
while(1)
{
if(sw1==0)
{
if(count==1){P2=table[count];delay(10);}
else {do {count--;P2=table[count];delay(10);}while(count-1>0);}
}
if(sw2==0)
{
if(count<2){do{count++;P2=table[count];delay(10);}while(2-count>0);}
else
if(count>2){do
{count--;P2=table[count];delay(10);}while(count-2>0);}
else {do {count++;P2=table[count];delay(10);}while(6-count>0);}
}
if(sw7==0)
{
if(count==7){P2=table[count];delay(10);}
else
if(count>7){do
{count--;P2=table[count];delay(10);}while(count-7>0);}
引脚功能说明: VCC:电源电压。 GND:接地。 P0 口:一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复用口。作为输出口时,每位
1
单片机原理及应用课程设计 能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在 Flash 编程中,P0 口接收指令字节;在校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口:一个带内部上拉电阻的 8 位双向 I/O 口,P1 口的输出缓冲级可驱动 4 个 TTL 逻辑门 电路。 P2 口:一个带有内部上拉电阻的 8 位双向 I/O 口,P2 口的输出缓冲级可驱动 4 个 TTL 逻辑 门电路。 P3 口:一组带有内部上拉电阻的 8 位双向 I/O 口,P3 口的输出缓冲级可驱动 4 个 TTL 逻辑 门电路。第二功能如 1 所示: RST:复位输入。在振荡器工作时,该引脚出现两个机器周期以上的高电平将使单片机复位。 PSEN:程序储存允许输出是读通信号。当 AT89C51 由外部程序存储器取指令(数据)时,每 个机器周期两次 PSEN 有效。 EA/VPP:外部访问允许。要使 CPU 仅仅访问外部程序存储器,EA 端必须保持低电平。如果 EA 端为高电平,接 Vcc 端,CPU 则执行内部程序存储器中的指令。 XTAL1:振荡器反向放大器及内部时钟发生器的输入端。 XTAL2:振荡器反向放大器输入端。
else {do {count++;P2=table[count];delay(10);}while(5-count>0);}
}
if(sw6==0)
{
if(count==6){P2=table[count];delay(10);}
else
if(count>6){do
{count--;P2=table[count];delay(10);}while(count-6>0);}
else {P2=table[coun)
{
if(count==3){P2=table[count];delay(10);}
else
if(count>3){do
{count--;P2=table[count];delay(10);}while(count-3>0);}
else {do{count++;P2=table[count];delay(10);}while(7-count>0);}
}
if(sw8==0)
{
if(count==8){P2=table[count];delay(10);}
else {do{count++;P2=table[count];delay(10);}while(8-count>0);}
<<单片机原理及应用>>课程设计
姓名:纪乐 学号:12013241906 专业:通信工程 班级:2013 级 1 班 指导老师:陈潮红 学院:物理电气信息学院 完成日期:2015 年 12 月 10 日
单片机原理及应用课程设计
电梯楼层显示电路设计
前言:近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时 带动传统控 制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个 核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用 对象特点的软件结合,加以完善。本次设计通过了解单片机的基本知识,简单的扩展外围电 路,完成基本的功能。 摘要:AT89C51 单片机 电梯楼层 Proteus 仿真
else {do{count++;P2=table[count];delay(10);}while(4-count>0);}
}
if(sw5==0)
{
if(count==5){P2=table[count];delay(10);}
else
if(count>5){do
4
单片机原理及应用课程设计
{count--;P2=table[count];delay(10);}while(count-5>0);}
三.实验方案
四.实验源程序 #include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit led=P2; sbit sw1=P1^0;
3
单片机原理及应用课程设计
sbit sw2=P1^1;
sbit sw3=P1^2;
2.数码管显示原理 我们最常用的是七段式和八段式 LED 数码管,八段比七段多了一个小数点,其他的基
本相同。所谓的八段就是指数码管里有八个小 LED 发光二极管,通过控制不同的 LED 的亮灭 来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 LED 的阴极连在一起,让其接地,这样给任何一个 LED 的另一端高电平,它便能点亮。而共阳极 就是将八个 LED 的阳极连在一起。其原理图如下。
其中引脚图的两个 COM 端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其 接正 5 伏电源。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们 的段选线(即 a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选
2
单片机原理及应用课程设计
一.设计任务 1、掌握 51 单片机的基本结构及相关知识,掌握 Keil 和 Protues 软件的使用和两者的关系, 并能更好的用两种软件来做单片机实验的仿真。利用 51 单片机、数码管显示器设计一个单 片机显示系统,要求在液晶上显示楼层“1,2,3,4,5,6,7,8”。 2、按照设计任务在 Proteus Professional 中绘制电路原理图; 3、了解电梯楼层显示电路的编程方法和相关知识,根据设计任务的要求编写程序,画出程 序流程图,并在 Proteus 下进行仿真,实现相应功能。 4、培养学生自主学习、正确分析和解决问题的能力
}
}
}
五.实验步骤
1、打开 Protues 软件,画出实验电路仿真图:如下
2、打开 keil 软件,project—new uvision project—输入工程名 loucengxianshi,保存。
然后新建 Text,输入上面的 C 语言程序(见附页),编译。保存成后缀名为.C 的文件。然后
左击左面栏里的 sourcegroup1—Add file to source group1,选择刚刚保存的.C 文件,点
sbit sw4=P1^3;
sbit sw5=P1^4;
sbit sw6=P1^5;
sbit sw7=P1^6;
sbit sw8=P1^7;
char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};