基于51单片机旋转LED课设

基于51单片机旋转LED课设
基于51单片机旋转LED课设

课程设计

课程名称_单片机原理及接口技术_ 题目名称基于51单片机旋转LED 学生学院___ 专业班级_ __学号

学生姓名____ _ ____ 指导教师_______ __________

2016年06 月15 日

任务书

广东工业大学课程设计任务书

题目名称基于STC89C52的旋转LED

学生学院

专业班级

姓名

学号

一、课程设计的内容

用STC89C52单片机制作一台旋转LED设备:

1.设计并绘制硬件电路图;

2.选择所需元器件,根据电路图在洞洞板上焊接好元器件;

3.编写程序并将调试好的程序固化到单片机中;

4.对作品进行测试。

二、课程设计的要求与数据

单片机采用STC89C52芯片,供电采用无线供电模块,电机驱动电路,溢出中断标志采用红外发射与接收,由底座的电机旋转带动顶部单片机及LED灯电路的旋转,由无线供电模块给单片机及LED灯供电,由单片机控制LED亮灭的周期,在旋转时形成图案及文字,按此要求设计硬件和软件以实现这一功能。

三、课程设计应完成的工作

1. 结合已有的开发板,用其进行程序的下载;

2. 完成软件、硬件的设计,并进行硬件的焊接制作,并将调试成功的程序固化到单片

机中,最后进行硬件与软件的调试;

3.撰写设计说明书。

四、课程设计进程安排

五、应收集的资料及主要参考文献

[1].李全利.单片机原理及接口技术(第2版).高等教育出版社,2009年01月

[2].求是科技.单片机典型外围器件及应用实例.北京:人民邮电出版社,2006年02月

[3].谭浩强.C语言程序设计(第二版).北京:清华大学出版社,1999年12月

[4].刘坤等编著.51单片机C语言应用开发技术大全.北京:人民邮电出版社 2008年09月发出任务书日期:2016年 06月 06日指导教师签名:

计划完成日期: 2016 年 06月 17日基层教学单位责任人签章:

主管院长签章:

摘要:

本设计是基于物体在快速运动时给与人的眼睛一种视觉暂留的效果。故设计使用51单片机的两组I/O口控制16个LED灯的亮灭,底座采用可调电源、可调电阻与电机的组合来提供不同的转速来旋转,又用无线供电模块给顶部的单片机和LED灯供电,并且设置有红外发送与接收模块,发送端采用小遥控器,接收端采用0038红外接收头,从而通过按遥控器上面不同的按键使旋转起来的LED按照程序中设定的不同图案的显示。本设计主要有两个难点:无线供电的不稳定和遥控控制这两个难点部分。通过许多天的尝试和调试,终于基本解决了这些问题。当然,在本设计中存在着许多不足之处,例如地方的光照条件,地方供电问题等等,有待进一步改善和学习。

目录

任务书 (2)

一、课程设计的内容 (2)

二、课程设计的要求与数据 (2)

三、课程设计应完成的工作 (2)

四、课程设计进程安排 (3)

五、应收集的资料及主要参考文献 (3)

摘要: (4)

1.绪论 (6)

1.1背景 (6)

1.2意义 (6)

2.硬件部分 (6)

2.1硬件设计 (6)

2.2硬件具体模块 (7)

2.2.1可调直流电源模块 (7)

2.2.2电机模块 (7)

2.2.3无线供电模块 (8)

2.2.4 STC89C52单片机及最小系统模块 (8)

2.2.5 LED模块 (9)

3.软件部分 (10)

4.心得 (18)

5.参考文献 (19)

附录: (19)

1.原理图 (19)

2.实物图 (20)

1.绪论

1.1背景

随着时代的发展,在室外没有投影仪的情况下,用于宣传广告的LED显示已不断创新。但是传统的LED显示具有普遍的缺点:位置固定、操作麻烦、价格昂贵,体积庞大,安装困难等。因此设计出一款轻便、便宜,结构简单的LED显示——旋转LED已是时代潮流所需。

1.2意义

微机不停更新换代,功能不断强大。微机具有体积小,重量轻,控制能力突出等优点,且比较容易掌握,使用方便。通过单片机控制LED灯则很好的解决了传统LED显示的普遍去电。如今多数LED显示为点阵显示,LED的利用率和新颖度大大下降,而通过单片机控制的旋转LED可以用于像酒吧,发廊等一切需要广告的地方,这样不仅降低了成本,而且大大增加了对顾客的吸引力,这样便极大地提高了企业竞争力。

2.硬件部分

2.1硬件设计

采用可调电源通过可调电阻给电机、无线供电模块供电,无线模块给STC89C52单片机、红外接收端、LED供电,采用遥控器作为红外发射,发送的红外信号给接收端处理,再送往单片机中断处理,把单片机存储的不同图案通过I/O口的高低电平送往LED,通过LED的亮灭实现图案显示。

2.2硬件具体模块

2.2.1可调直流电源模块

采用可调电源,将电压调为6-12V同时给电机和无线供电模块供电。

2.2.2电机模块

采用普通电动小马达作为电机提供旋转运动,与可调电阻(阻值为100-300欧姆)串联,从而调节可调电阻的阻值来改变电机的转速。

2.2.3无线供电模块

采用网上购买到的无线供电模块线圈通过感应电压给顶部供电,作为电源给单片机、LED、红外接收端供电。

2.2.4 STC89C52单片机及最小系统模块

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。具有8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间且可直接使用串口下载。

最小系统采用2个20pF的电容和1个11.0592MHz的晶振搭建而成,因考虑电路的简便和轻便,故省去复位电路。

2.2.5 LED模块

采用16个红色LED灯,分别接入单片机的P0、P1口,其中,采用的是共阳的接法。

2.2.6 红外发送、接收端

发送端用的是小型遥控器,接收端采用的0083红外接收管,并且红外接收端的OUT脚接入单片机的P3.2口,外部中断0口,提供中断信号

3.软件部分

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit D=P3^2;

sbit IR=P3^2;

uchar IRtime;

bit IR_ok;

bit IR_receive_ok;

uchar IRcord[4];

uchar IRdata[33];

uchar code tb1[];

uchar code tb2[];

uchar i,j;

uint count;

uint temp;

/*图案字形码*/

uchar code tb1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

uchar code tb2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//图案1 uchar code tb3[]={0x5f,0xaf,0xd7,0xeb,0xf5,0xfa,0xf2,0xf1, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

uchar code tb4[]={0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf, 0x5f,0xaf,0xd7,0xeb,0xf5,0xff,0xff,0xff};//图案3 uchar code tb5[]={0x6f,0x1f,0x27,0x3b,0x35,0x5a,0x72,0x91, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

uchar code tb6[]={0x0f,0x1f,0x7f,0x5f,0x9f,0x5f,0x7f,0xbf, 0x5f,0xaf,0xd7,0xeb,0xf5,0xff,0xff,0xff};//图案2

void delay(uint z)

{

uchar x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--);

} //延时1ms函数void bolang1() //图案1函数

{ while(D==1)

{

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

{

P0=tb1[i];

P1=tb2[i];

delay(2);

}

for(j=15;j>0;j--)

{

P0=tb1[j];

P1=tb2[j];

delay(2);

}

}

}

void bolang2() //图案3函数{

while(D==1)

{

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

{

P0=tb5[i];

P1=tb6[i];

delay(2);

}

for(j=15;j>0;j--)

{

P0=tb5[j];

P1=tb6[j];

delay(2);

}

}

}

void bolang3() //图案2函数{ while(D==1)

{

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

{

P0=tb3[i];

P1=tb4[i];

delay(2);

}

for(j=15;j>0;j--)

{

P0=tb3[j];

P1=tb4[j];

delay(2);

}

}

}

void bolang4() //图案4函数{ while(D==1)

{ P0=0x5f;

P1=0xd7;

delay(3000);

P0=0xd7;

P1=0xbf;

delay(3000);

}

}

void bolang5() //图案5函数{ while(D==1)

{ P0=0x8f;

P1=0xfe;

delay(3000);

P0=0xfe;

P1=0x8f;

delay(3000);

}

}

void bolang6() //图案6函数

{ while(D==1)

{

P0=0x00;

P1=0xff;

delay(300);

P0=0xff;

P1=0x00;

delay(300);

}

}

void IR_init() //红外初始化函数{

TMOD=0x02;

TH0=0x00;

TL0=0x00;

EA=1;

ET0=1;

TR0=1;

IT0=1;

EX0=1;

}

void time0() interrupt 1 //定时器每溢出一次,变量加1,用于检测码的时长{

IRtime++;

}

void int0() interrupt 0

{

static uchar i;

static startflag;

if(startflag)

{

if((IRtime>32)&&(IRtime<54)) //判断引导码

i=0;

IRdata[i]=IRtime;

IRtime=0;

i++;

if(i==33) //33位数据录入

{

IR_ok=1;

i=0;

}

}

else

{

startflag=1;

IRtime=0;

}

void IRcordpro() //红外解码

{

uchar i,j,k,dat,value;

k=1;

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

{

for(j=0;j<8;j++)

{

dat=IRdata[k];

if(dat>5)

value|=0x80;

if(j<7)

value>>=1;

k++;

}

IRcord[i]=value;

value=0;

}

IR_receive_ok=1;

}

void IRword() //遥控器码值选定图案函数{

switch(IRcord[2])

{

case 0x45:bolang1();

break;

case 0x46:bolang2();

break;

case 0x47:bolang3();

break;

case 0x44:bolang4();

break;

case 0x40:bolang5();

break;

case 0x43:bolang6();

break;

default:break;

}

IR_receive_ok=0;

}

void main()

{

uchar i;

IR_init();

while(1)

{

P0 = 0x00;

P1 = 0x00; //全亮等待

if(IR_ok)

{

IRcordpro();

IR_ok=0;

}

if(IR_receive_ok)

{

IRword();

}

}

}

4.心得

经过两个星期几乎每晚熬夜的艰苦奋斗,终于把这个简陋但不简单的作品做出来了。现在是夏天,每天都奔波于宿舍、实验室、器材店当中,衣服每次都被汗水给浸透,而且设计制作的过程并不是一帆风顺的,首先因为材料的一无所有而慢慢采购,期间更换过很多次方案,然后又要跑去买;然后硬件和软件也经常出问题,而且是那种解决掉一个旧问题就出现一个新问题。每天都在想着怎么解决。硬件部分问题主要为马达的转轴与顶层的板子的固定问题,使得旋转起来稳定一点,还有无线供电模块供电不稳定,刚开始采用了电池作为底座的电机和无线供电模块的供电,然而电量不稳定,导致LED的亮度大大下降甚至不亮,到后来顶部的无线供电模块给LED供电不稳定,又试过采用安装纽扣电池在顶板给LED和单片机供电,然而又因为纽扣电池耗电太快,又放弃了,恢复为无线供电,所以无线供电模块供电的不稳定性依然存在。软件部分主要为延时的调整,怎样才能稳定地显示图案;还有就是红外遥控的部分,我们都没有学过怎样使用红外遥控,所以又得看了很久视频和各种书籍才能写出来比较基础的红外遥控程序。

不管怎么说,作品算是做出来了。我们也得到了足够的意志力和耐心锻炼,知识也得到了扩展,这也是这次课程设计的最大收益,也相信这会对我们以后的学习、工作也很大的帮助。通过这旋转LED的制作,我收获了很多,在这里我要感谢和我一起的队友,也感谢老师让我们有这个一起制作,收获知识的机会。希望我们以后再接再厉,做出更厉害、更有意义的作品出来!

5.参考文献

【1】李全利单片机原理及接口技术第2版高等教育出版社 2009(01)

【2】胡阳基于视觉暂留的动态扫描LED旋转屏【J】.现代电子技术 2012(04)

【2】求是科技单片机典型外围器件及应用实例北京人民邮电出版社,2006(02)【3】谭浩强 C语言程序设计(第二版)北京清华大学出版社,1999(12)

【4】刘坤等编著 51单片机C语言应用开发技术大全北京人民邮电出版社 2008(09)附录:

1.原理图

2.实物图

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

基于51单片机交通灯课设(内含程序和实物图)

单片机控制交通灯 摘要 随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉足。 单片机的应用正在不断深入,单片机可以用来仿真各个系统。在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用单片机STC89C52为中心器件来设计交通灯控制器,实现了通过P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。 关键词:单片机交通灯数码管看门狗

目录 第1章前言 (1) 1.1课题任务及主要实现内容 (1) 1.2原理分析 (1) 1.2.1交通灯显示时序的理论分析 (1) 1.2.2 交通灯显示的理论分析 (2) 第2章设计方案分析 (3) 2.1 单片机与外围接口部件 (3) 2.2 倒计时显示界面 (4) 2.3 交通灯 (4) 第3章硬件系统设计 (4) 3.1 单片机的选择 (4) 3.2 STC89c52的看门狗设置 (8) 3.3 硬件电路实现 (9) 3.2.1 最小系统设计 (9) 3.3.2 显示设计 (11) 3.2.3 发光二极管模拟红绿灯 (13) 3.2.4 按键模块 (14) 第4章软件电路设计 (15) 4.1 软件编译环境测试 (15) 4.1.1 C语言介绍 (15) 4.1.2 Keil uVision4介绍 (15) 4.2软件总体设计 (15) 第5章电路检测 (17) 结论 (20) 参考文献 (21) 附录:22 原理图 (22) 源程序: (22)

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

单片机实训心得

沧州职业技术学院单片机实训报告 心得体会 为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然最后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。 总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。

51单片机用C语言实现交通灯(红绿灯)源程序

51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。源程序如下: /* 1、程序目的:使用定时器学习倒计时红绿灯原理主要程序和倒计时一样 2、硬件要求:数码管、晶振12M */ #include bit red,green,yellow,turnred; //定义红、黄、绿及转红标志 code unsigned char tab[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9 unsigned char Dis_Shiwei;//定义十位 unsigned char Dis_Gewei; //定义个位 void delay(unsigned int cnt) //用于动态扫描数码管的延时程序 { while(--cnt); } main() { TMOD |=0x01;//定时器设置 10ms in 12M crystal定时器0,工作方式1,16位定时器 TH0=0xd8; //65535-10000=55535=D8F0(十六进制) TL0=0xf0; IE= 0x82; //中断控制,EA=1开总中断,ET0=1:定时器0中断允许 TR0=1; //开定时器0中断 P1=0xfc;//红灯亮,根据红黄绿接灯的顺序。 red =1; while(1) { P0=Dis_Shiwei;//显示十位,这里实现用8位数码管,即左1位 P2=0; delay(300);//短暂延时 P0=Dis_Gewei; //显示个位,左数,2位 P2=1; delay(300);

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/cd15695273.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/cd15695273.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

AT89C51单片机的概述

AT89C51单片机的概述 (1)AT89C51单片机的结构 AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k bytes 的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大[3]。AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。 上图为AT89C51单片机的基本组成功能方块图。由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍几个主要部分。 外中断控制并行口串行通信 AT89C51 功能方块图 (2)AT89C51的管脚说明 ATMEL公司的AT89C51是一种高效微控制器。采用40引脚双列直插封装形式。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管

脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3口管脚备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE 的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。 PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

基于AT89c51单片机实现的交通灯

江西科技师范大学 通信与电子学院《单片机应用技术》实训报告实训题目:模拟交通灯 小组成员:龚石冲罗仁敏曾建伟 班级:12电子科学与技术 指导老师:熊朝松

一、实训选题内容、要求 交通模拟灯 要求: 1、南北方向为主干道,东西方向为支路;主干路绿灯时间为45秒,红灯时间为35秒; 支路绿灯时间30秒,红灯时间为50秒,两个方向的黄灯时间都为4秒; 2、使用定时器实现时间的倒计时;用显示部件显示主干道路的倒计时变化; 3、设计三个外部按钮,分别用以手动控制紧急情况下两个方向同时禁通过;南北方向 长时间通过(不显示时间倒计时变化);东西方向长时间通过;释放按钮后则正常 通行。 二、实训计划和人员安排 经小组人员商定,分工完成任务,在课余时间完成。 若其中遇到什么问题,大家聚在一起讨论解决。具体分工如下: 1、程序编写:龚石冲 2、实体焊接:龚石冲 3、实训报告:罗仁敏 4、视频及PPT:曾建伟 三、实训选题分析 交通灯由东西南北四向灯,倒计时显示,人行横道通行指示标志等部分组成。其中东西南北四向灯中的每一向都由红、黄、绿三色灯组成;东西为一组,南北为一组。黄灯在红绿灯之间转换时亮。倒计时显示表示红、黄、绿灯亮时所剩时间。由于人行横道通行指示标志与红灯是同步的,所以在模拟交通灯时省略。交通会遇到一些突发情况。因此交通信号灯要设定一些特定功能,以防不时之需。 整个电路由单片机完成,控制部分由软件完成,硬件只负责响应。 四、方案设计 方案一:主控系统采用AT89C51单片机作为控制器,由定时器1间接控制通行倒计时及南北和东西的通行。由按键开关完成禁止通行,东西 通行,南北通行。 方案二:主控系统采用AT89C51单片机作为控制器,由延时函数完成信号灯

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

51单片机实训报告

“51单片机”精简开发板的组装及调试实训报告

为期一周的单片机实习已经结束了。通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。 此次实训主要有以下几个方面: 一、实训目的 1.了解“51”精简开发板的工作原理及其结构。 2.了解复杂电子产品生产制造的全过程。 3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。4.能运用51单片机进行简单的单片机应用系统的硬件设计。 5.掌握单片机应用系统的硬件、软件调试方法 二、实验原理 流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 它的电气性能指标:输入电压:DC4.5~6V,典型值为5V。可用干电池组供电,也可用直流稳压电源供电。 如图所示: 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 三、硬件组成 1、晶振电路部分 单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 2、复位端、复位电路 给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各

89c51试题

单片机期末考试试题库及答案 01、单片机是将微处理器、一定容量的 RAM 和ROM以及 I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片内集成了 4 KB的FLASH ROM,共有 5 个中断源。 3、两位十六进制数最多可以表示 256 个存储单元。 4、89C51是以下哪个公司的产品?( C ) A、INTEL B、AMD C、ATMEL D、PHILIPS 5、在89C51中,只有当EA引脚接高电平时,CPU才访问片内的Flash ROM。 6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。T 7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。F 8、当CPU访问片外的存储器时,其低八位地址由 P0 口提供,高八位地址由 P2 口提供,8位数据由 P0 口提供。 9、在I/O口中, P0 口在接LED时,必须提供上拉电阻, P3 口具有第二功能。 10、是非题:MCS-51系列单片机直接读端口和读端口锁存器的结果永远是相同的。F 11、是非题:是读端口还是读锁存器是用指令来区别的。T 12、是非题:在89C51的片内RAM区中,位地址和部分字节地址是冲突的。F 13、是非题:中断的矢量地址位于RAM区中。F 14、MCS-51系列单片机是属于( B )体系结构。 A、冯诺依曼 B、普林斯顿 C、哈佛 D、图灵 15、89C51具有 64 KB的字节寻址能力。 16、是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外RAM区时用MOVX指令,访问片内RAM区时用MOV指令。T 17、在89C51中,片内RAM分为地址为 00H~7FH 的真正RAM区,和地址为80H~FFH的特殊功能寄存器(SFR) 区两个部分。 18、在89C51中,通用寄存器区共分为 4 组,每组 8 个工作寄存器,当CPU复位时,第 0 组寄存器为当前的工作寄存器。 19、是非题:工作寄存器区不允许做普通的RAM单元来使用。F 20、是非题:工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T 21、是非题:特殊功能寄存器可以当作普通的RAM单元来使用。F 22、是非题:访问128个位地址用位寻址方式,访问低128字节单元用直接或间接寻址方式。T 23、是非题:堆栈指针SP的内容可指向片内00H~7FH的任何RAM单元,系统复位后,SP初始化为00H。F 24、数据指针DPTR是一个 16 位的特殊功能寄存器寄存器。 25、是非题:DPTR只能当作一个16位的特殊功能寄存器来使用。F 26、是非题:程序计数器PC是一个可以寻址的特殊功能寄存器。F 27、在89C51中,一个机器周期包括 12 个振荡周期,而每条指令都由一个或几个机器周期组成,分别有单周期指令、双周期指令和 4周期指令。 28、当系统处于正常工作状态且振荡稳定后,在RST引脚上加一个高电平并维持 2 个机器周期,可将系统复位。 29、是非题:单片机89C51复位后,其PC指针初始化为0000H,使单片机从该地址单元开始执行程序。T 30、单片机89C51复位后,其I/O口锁存器的值为 0FFH ,堆栈指针的值为 07H ,SBUF的值为不定,内部RAM的值不受复位的影响,而其余寄存器的值全部为 0H 。 31、是非题:单片机系统上电后,其内部RAM的值是不确定的。T 32、以下哪一个为51系列单片机的上电自动复位电路(假设RST端内部无下拉电阻)(P39图2-16(a))。 33、在89C51中,有两种方式可使单片机退出空闲模式,其一是任何的中断请求被响应,其二是硬件复位;而只有硬件复位方式才能让进入掉电模式的单片机退出掉电模式。 34、请用下图说明89C51单片机读端口锁存器的必要性。 读锁存器是为了避免直接读端口引脚时,收到外部电路的干扰,而产生的误读现象。 35、请说明为什么使用LED需要接限流电阻,当高电平为+5V时,正常点亮一个LED需要多大阻值的限流电阻(设LED的正常

(完整)基于89C51单片机交通灯课程设计要点

(完整)基于89C51单片机交通灯课程设计要点 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于89C51单片机交通灯课程设计要点)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)基于89C51单片机交通灯课程设计要点的全部内容。

华北水利水电学院 基于C51单片机 交通灯课程设计实验报告 姓名:田坤 班级:125 专业:电子信息科学与技术 指导老师:辛艳辉刘明堂 2013年1月16日 摘要 近年来,随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,正在不断的应用到实际生活中,并且根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS-51系列单片机STC89C51为中心器件来设计交通灯控制器,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题.系统具

有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。 关键词:交通灯 单片机 数码管 一 。总体设计思路 1.1设计目的及思路 设计目的 了解交通灯管理的基本工作原理,熟练掌握STC89C51的工作原理和应用编程,熟悉STC89C51单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式和应用编程外部中断的方法,掌握多位LED 显示问题的解决。 设计思路 (1)分析目前交通路口的基本控制技术,提出自己的交通控制的初步方案。 (2)确定系统交通控制的总体设计,增加了倒计时显示提示。 (3)进行显示电路。 (4)进行软件系统的设计。 1。2 实际交通灯显示时序及状态转换的理论分析 图1所示为红绿灯转换的状态图。 图1 红绿灯状态转换图 表1 十字路口指示灯燃 亮方 S1 S4 S3 S2

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

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内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

AT89C51单片机英文文献附带翻译

AT89C51的概况 一 AT89C51应用 单片机广泛应用于商业:诸如调制解调器,电动机控制系统,空调控制系统,汽车发动机和其他一些领域。这些单片机的高速处理速度和增强型外围设备集合使得它们适合于这种高速事件应用场合。然而,这些关键应用领域也要求这些单片机高度可靠。健壮的测试环境和用于验证这些无论在元部件层次还是系统级别的单片机的合适的工具环境保证了高可靠性和低市场风险。Intel 平台工程部门开发了一种面向对象的用于验证它的AT89C51 汽车单片机多线性测试环境。这种环境的目标不仅是为AT89C51 汽车单片机提供一种健壮测试环境,而且开发一种能够容易扩展并重复用来验证其他几种将来的单片机。开发的这种环境连接了AT89C51。本文讨论了这种测试环境的设计和原理,它的和各种硬件、软件环境部件的交互性,以及如何使用AT89C51。 1.1 介绍 8 位AT89C51 CHMOS 工艺单片机被设计用于处理高速计算和快速输入/输出。MCS51 单片机典型的应用是高速事件控制系统。商业应用包括调制解调器,电动机控制系统,打印机,影印机,空调控制系统,磁盘驱动器和医疗设备。汽车工业把MCS51 单片机用于发动机控制系统,悬挂系统和反锁制动系统。AT89C51 尤其很好适用于得益于它的处理速度和增强型片上外围功能集,诸如:汽车动力控制,车辆动态悬挂,反锁制动和稳定性控制应用。由于这些决定性应用,市场需要一种可靠的具有低干扰潜伏响应的费用-效能控制器,服务大量时间和事件驱动的在实时应用需要的集成外围的能力,具有在单一程序包中高出平均处理功率的中央处理器。拥有操作不可预测的设备的经济和法律风险是很高的。一旦进入市场,尤其任务决定性应用诸如自动驾驶仪或反锁制动系统,错误将是财力上所禁止的。重新设计的费用可以高达500K 美元,如果产品族享有同样内核或外围设计缺陷的话,费用会更高。另外,部件的替代品领域是极其昂贵的,因为设备要用来把模块典型地焊接成一个总体的价值比各个部件高几倍。为了缓和这些问题,在最坏的环境和电压条件下对这些单片机进行无论在部件级别还是系统级别上的综合测试是必需的。Intel Chandler 平台工程组提供了各种单片机和处理器的系统验证。这种系统的验证处理可以被分解为三个主要部分。系统的类型和应用需求决定了能够在设备上执行的测试类型。 1.2 AT89C51提供以下标准功能:

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作为中心器件来设计交通灯控制器。实现以下功能:

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

相关文档
最新文档