当前位置:文档之家› 嵌入式实验报告(电子表流水灯设计)

嵌入式实验报告(电子表流水灯设计)

嵌入式实验报告(电子表流水灯设计)
嵌入式实验报告(电子表流水灯设计)

山西大学

计算机组装与维护论文

题目电子表设计

学院计算机与信息技术学院

专业软件工程

指导教师李月香

学生姓名曹艳艳

学号 2008242001 日期 2010-12-10

电子表设计

内容提要:LCD 电视是 Liquid Crystal Display 的简称,是液晶显示屏的全称:它包括了TFT,UFB,TFD,STN等类型的液晶显示屏。

LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。

1888年奥地利植物学家发现了一种白浊有粘性的液体,后来,德国物理学家发现了这种白浊物质具有多种弯曲性质,认为这种物质是流动性结晶的一种,由此而取名为Liquid Crystal即液晶LCD显示器是智能仪器仪表中最常用的显示器件。近年来一些单片机内部也集成了LCD控制级驱动电路,更方便了单片机在嵌入式系统中的应用,特别是微功耗智能化仪器仪表上的应用。

关键词:LCD 工作原理应用发展

参考文献:

1.《嵌入式系统应用基础》。

2. 百度百科。

一、实验目的

1.熟练掌握单片机控制系统硬件电路的设计、测试;单片机监控程序的编写、调试及运行。

2.学习使用单片机设计出简单的应用系统。

二、实验设备

1.PC计算机;

2.NEC全系列微控制器(单片机)开发工具EM/EZ-1系统;

3.实验系统。

三、实验内容及要求

1.设计方案

本次使用主要使用了LCD,做了一个电子表。

主函数显示电子表。

P3.0按键中断用来测温度并在LCD上显示。

P4.0按键中断用来进入更改时间的中断。

P4.1按键中断用来进入设置闹钟的中断。

P4.2用来在进入更改时间中断和设置闹钟中断时进行小时的设置。

P4.3用来在进入更改时间中断和设置闹钟中断时进行分钟的十位设置。

P4.4用来在进入更改时间中断和设置闹钟中断时进行分钟的个位设置。 P4.5是一个流水灯和蜂鸣器中断。

2.结构图

3.实现的功能

1.实现了利用LCD 动态的显示秒数的走动。

2.实现了利用按键中断实现的温度计,更改时间和设置闹钟。

3.实现了通过利用LED 灯做成一个流水灯。

4.实现了中断还原,即在进入中断时电子表上的值清空,显示当前中断的内容,当中断结束时LCD 还原为进入中断前的电子表时间。

3.电路原理

温 度 计

更 改 时 间

电子表

设 置 闹 钟

设 置 小时

设 置 分 钟

设 置 分 钟

流 水 灯

4.实验步骤

1.了解清楚LCD的工作原理。

2.编写电子表显示程序。

3.了解按键中断原理,并进行设置中断。

4.了解AD转换原理,编写测温度程序,形成温度计。

5.了解按键的过程,编写设置闹钟和更改时间程序。

6.了解LED灯工作原理,编写流水灯程序。

7.把所有的功能加入按键中断里,并了解每个中断的优先级(P3.0优先于P4)。

8.编译程序,编译成功后,连接单片机调试,观察单片机运作。

5.程序流程图

6.实验源代码

#pragma sfr #pragma interrupt INTKR KEY_duan #pragma interrupt INTP5 yellow_key RB1 #pragma DI #pragma EI

开始

初始化端口

显示电子表 P3.0是否为0

Y

显示温度

N

P4.0是否为0

Y

更改时间

P4.1是否为0 N

Y

设置闹钟

结束

P4.1是否为0 N

Y

显示流水灯

#pragma access

#define KEY1 0xfe

#define KEY2 0xfd

#define KEY6 0xf9

unsigned int LCD_buff[10]={0x070d,0x0600,0x030e,0x070a,0x0603,0x050b,0x050f,0x0701,0x070f,0x070b};

float

tem_num[80][2]={60,1829.8,59,1891.4,58,1955.4,57,2022.0,56,2091.3,55,2163.4,54,2238.8,53,2317.4,52,2399.2 ,51,2484.5,50,2573.3,49,2665.2,48,2761.1,47,2861.0,46,2965.1,45,3073.8,44,3187.2,43,3305.6,42,3429.2,41,355 8.2,40,3692.9,39,3833.2,38,3979.8,37,4132.9,36,4293.1,35,4460.5,34,4635.4,33,4818.4,32,5009.9,31,5210.3,30,5 420.2,29,5639.4,28,5869.1,27,6109.8,26,6362.0,25,6626.4,24,6903.4,23,7193.9,22,7498.8,21,7818.8,20,8154.8,1 9,8506.9,18,8876.9,17,9265.6,16,9674.3,15,10104,14,10553,13,11025,1211521,11,12044,10,12594,9,13173,8,13 782,7,14424,6,15102,5,15816,4,16565,3,17355,2,18189,1,19070,0,20000,-1,20980,-2,22025,-3,23109,-4,24267,-5,25492,-6,26777,-7,28137,-8,29577,-9,31103,-10,32720,-11,34434,-12,36252,-13,38181,-14,40229,-15,42404,-1 6,44696,-17,47131,-18,49719,-19,52472};

unsigned int AD[5];

unsigned int tem[5];

unsigned int dig_buff[2];

unsigned int addr;

int Clock[4]={0,0,0,0};

int Chang_clock[4]={0,1,5,0};

void delay_long()

{

int i,j;

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

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

}

void delay(){

int i,j;

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

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

}

void buz()

{

int Buzi;

for(Buzi=5;Buzi>0;Buzi--)

CKS=0XE0; delay();BZOE=0;

CKS=0x80; delay();BZOE=0;

CKS=0xA0; delay();BZOE=0;

CKS=0x80; delay();BZOE=0;

CKS=0XC0; delay();BZOE=0;

CKS=0xA0; delay();BZOE=0;

CKS=0XE0; delay();BZOE=0;

CKS=0XC0; delay();BZOE=0;

}

void led(){

int i;

P3.4=1;

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

P15.1=1; P15.3=1;delay_long();P15.1=0;P15.3=0;

P13 = 0x05; delay_long();

P13.3=1; P14.1=1;delay_long();P13.3=0;P14.1=0;

P14.2=1; P15.0=1;delay_long();P14.2=0;P15.0=0;

}

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

{

P13.0 = 0x01; delay_long();P13 = 0x00;

P13.1 = 0x01; delay_long();P13 = 0x00; P13.2 = 0x01;

delay_long();P13 = 0x00; P13.3 = 0x01; delay_long();

P13 = 0x0; P14.0 = 0x01; delay_long();P14 = 0x0;

P14.1 = 0x01; delay_long();P14 = 0x0; P14.2 = 0x01;

delay_long();P14 = 0x0; P14.3 = 0x01; delay_long();

P14 = 0x0; P15.0 = 0x01; delay_long();P15 = 0x0;

P15.1 = 0x01; delay_long();P15 = 0x0; P15.2 = 0x01;delay_long();

P15 = 0x0;P15.3 = 0x01;delay_long();P15 = 0x0;

}

}

//温度计:在按键中断中,当按键按下,LCD上显示温度度数,出中断后,LCD恢复中断前电子表运行到的值,接着运行。

void A_D(){

int i,m,k;

int buffer[6];

int j=0;

int n=0;

float ai,AD_RI;

ADCE=1;

PM2.5=1;

ADPC0=0x00;

ADM=0x08;

ADCS=1;

addr=0xFA44;

for(k=0;k<6;k++){

buffer[k]=peekw(addr);

addr=addr+2;

}

for(addr=0xFA44;addr<0xFA50;addr++){

pokew(addr,0x0000);

addr++;

}

for(m=0;m<5;m++){

ADS=0x05;

delay_long();

AD[m]=ADCR;

ai=(AD[m]/64-0.5)*5/1024;

AD_RI=4*(5.0/ai-1);

while(AD_RI>tem_num[80][1]&&n<80){n++;} if(n==0||n==80)tem[m]=0xFFFF;

//tem[m]=(int)tem_num[n][0];

tem[m]=AD[m];

for(i=3;tem[m]!=0;i--){

dig_buff[i]=tem[m]%10;

tem[m]=tem[m]/10;

}

pokeb(0xFA52,0x08);

addr=0xFA4A;

while(j<5){

pokew(addr,LCD_buff[dig_buff[j]]);

addr=addr+2;

j++;

}

delay_long();delay_long();

}

ADCS=0;

ADCE=0;

addr=0xFA44;

for(k=0;k<6;k++){

pokew(addr,buffer[k]);

addr=addr+2;

}

pokeb(0xFA52,0x00);

}

void red()

{

PM3.3=0;P3.3=0;P13.0=1;P13.3=1;P14.2=1;P15.1=1;CKS=0x80;

delay_long(); BZOE=0;P13.0=0;P13.3=0;P14.2=0;P15.1=0;

}

void yellow()

{

PM3.3=0;P3.3=0;P13.1=1;P14.0=1;

P14.3=1;P15.2=1;CKS=0xA0;delay_long();

BZOE=0;P13.1=0;P14.0=0;P14.3=0;P15.2=0;

}

void green()

{

PM3.3=0;P3.3=0;P13.2=1;P14.1=1;

P15.0=1;P15.3=1;CKS=0xC0;delay_long();

BZOE=0;P13.2=0;P14.1=0;P15.0=0;P15.3=0;

}

void middle()

{

PM3.3=0;PM3.4=0;

P3.3=0;P3.4=0;P3.4=1;CKS=0XE0;

delay_long();BZOE=0;P3.4=0;

}

void a()

{

P3=0x00;P13.0=1;P13.2=1;P13.1=1;delay_long(); }

void b()

{

P13=0x00;P14=0x00;P15=0x00;

P13.3=1;P14.0=1;P14.1=1;delay_long();

}

void c()

{

P13=0x00;P14=0x00;P15=0x00;

P14.2=1;P14.3=1;P15.0=1;delay_long();

}

void d()

{

P13=0x00;P14=0x00;P15=0x00;

P15.3=1;P15.2=1;P15.1=1;delay_long();

}

void all()

{

P13=0x00;P14=0x00;P15=0x00;

P13.0=1;P13.2=1;P13.1=1;delay_long();

P13.3=1;P14.0=1;P14.1=1;delay_long();

P14.2=1;P14.3=1;P15.0=1;delay_long();

P15.3=1;P15.2=1;P15.1=1;

delay_long();P3.4=1;delay_long();

}

//用来设置改变时间的值,中断1键进入设置,分别按3,4,5键各几下LCD上显示相应的值,把这个值保存到相应的数组中。

void ChangTime()

{

int h1,h2,m1,m2;

int addr;

h1=0;h2=0;m1=0;m2=0;

addr=0xFA44;

for(addr=0xFA44;addr<0xFA50;addr++){

pokew(addr,0x0000);

addr++;

}

while(P4.1!=0){

if(P4.2==0)

{

P13.0=1;

h1=h1+1;delay();P13.0=0;

if(h1>=24){h1=0;h2=0;}

else {h2=h1%10;

h1=h1/10;}

Chang_clock[0]=h1;

Chang_clock[1]=h2;

pokew(0xFA44,LCD_buff[h1]);

pokew(0xFA46,LCD_buff[h2]);

}

if(P4.3==0)

{

P13.1=1;

m1=m1+1;delay();P13.1=0;

if(m1>=6){m1=0;}

Chang_clock[2]=m1;

pokew(0xFA48,LCD_buff[m1]);

}

if(P4.4==0)

{

P13.2=1;

m1=m1+1;delay();P13.2=0;

if(m2>=10){m2=0;}

Chang_clock[3]=m2;

pokew(0xFA4A,LCD_buff[m2]);

}

}

}

//设置闹钟,用2键按键中断进入,用3,4,5,键设置时分,分别按3,4,5键各几下LCD上显示相应的值,把这个值保存到相应的数组中。

void Set_bell()

{

int h1,h2,m1,m2;

int buffer[6];int k=0;

int addr;

h1=0;h2=0;m1=0;m2=0;

addr=0xFA44;

for(k=0;k<6;k++){

buffer[k]=peekw(addr);

addr=addr+2;

}

for(addr=0xFA44;addr<0xFA50;addr++){ pokew(addr,0x0000);

addr++;

}

while(P4.0!=0){

if(P4.2==0)

{

P13.0=1;

h1=h1+1;delay();P13.0=0;

if(h1>=24){h1=0;h2=0;}

else {h2=h1%10;

h1=h1/10;}

Clock[0]=h1;

Clock[1]=h2;

pokew(0xFA44,LCD_buff[h1]);

pokew(0xFA46,LCD_buff[h2]);

}

if(P4.3==0)

{

P13.1=1;

m1=m1+1;delay();P13.1=0;

if(m1>=6){m1=0;}

Clock[2]=m1;

pokew(0xFA48,LCD_buff[m1]);

}

if(P4.4==0)

{

P13.2=1;

m1=m1+1;delay();P13.2=0;

if(m2>=10){m2=0;}

Clock[3]=m2;

pokew(0xFA4A,LCD_buff[m2]);

}

}

addr=0xFA44;

for(k=0;k<6;k++){

pokew(addr,buffer[k]);

addr=addr+2;

}

}

//中断函数

void KEY_duan()

{

DI();

switch(P4)

{

case KEY1:{P1.4=1;ChangTime();P1.4=0;};break;//更改时间的按键中断case KEY2:{P1.7=1;Set_bell();P1.7=0;}break;//闹钟的按键中断

case KEY6:{led();buz();a(); b();c();d();all();}break;//流水灯及蜂鸣器的中断default: ;break;

}

}

//P3.0按键的中断函数

void yellow_key()

{

DI();

P1.4=1;

A_D();

P1.4=0;

}

//电子表的程序,包括实时设置闹钟和更改时间void Elec_watch()

{

int g,h,m,n,j,i;

int hour=0;

while(1){

if(hour>=24)hour=0;

if(Chang_clock[0]!=0){

g=Chang_clock[0];

Chang_clock[0]=0;

}

else g=hour/10;

while(g<=2){

pokew(0xFA44,LCD_buff[g]);

if(Chang_clock[1]!=0){

h=Chang_clock[1];

Chang_clock[1]=0;

}

else h=hour%10;

while(h<=9){

pokew(0xFA46,LCD_buff[h]);

if(Chang_clock[2]!=0){

m=Chang_clock[2];

Chang_clock[2]=0;

}

else m=0;//yellow();

while(m<6){

pokew(0xFA48,LCD_buff[m]);

if(Chang_clock[3]!=0){

n=Chang_clock[3];

Chang_clock[3]=0;

}

else n=0;

while(n<=9){

pokew(0xFA4A,LCD_buff[n]);

j=0;

if(g==Clock[0]&&h==Clock[1]&&m==Clock[2]&&n==Clock[3]){

while(P4.3!=0){

red();

if(P4.3==0)break;

middle();

}

}

while(j<6){

pokew(0xFA4C,LCD_buff[j]);

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

if(Chang_clock[0]!=0||Chang_clock[1]!=0||Chang_clock[2]!=0||Chang_clock[3]!=0)break;

pokew(0xFA4E,LCD_buff[i]);

pokeb(0xFA53,0x01);

delay_long();

pokeb(0xFA53,0x00);

delay_long();}

if(Chang_clock[0]!=0||Chang_clock[1]!=0||Chang_clock[2]!=0||Chang_clock[3]!=0)break;

j++;

}

if(Chang_clock[0]!=0||Chang_clock[1]!=0||Chang_clock[2]!=0||Chang_clock[3]!=0)break;

n++;

}

if(Chang_clock[0]!=0||Chang_clock[1]!=0||Chang_clock[2]!=0||Chang_clock[3]!=0)break;

m++;

}

if(Chang_clock[0]!=0||Chang_clock[1]!=0||Chang_clock[2]!=0||Chang_clock[3]!=0)break;

hour++;

}

if(Chang_clock[0]!=0||Chang_clock[1]!=0||Chang_clock[2]!=0||Chang_clock[3]!=0)break;

}

}

}

void main()

{

//初始化中断端口

PM3.0=1;

PU3.0=1;

EGP.5=1;

PMK5=0;

PM1.4=0;

P1.4=0;

PM1.7=0;

P1.7=0;

//初始化

PM13=0x00;

PM14=0x00;

PM15=0x00;

P13=0x00;

P14=0x00;

P15=0x00;

//初始化按键端口

PM4=0xff;

KRM=0x03; PU4=0xff;

KRMK=0;

//初始化LCD

PF2=0x00;

PFALL=0x0f;

LCDC0=0x34;

LCDMD=0x30;

LCDM=0xc0;

EI();

Elec_watch();//调用电子表函数

}

7.实验结果及分析

电子表显示时:分秒,秒每秒加一到60时分加一,秒变为0,按黄色键LCD上显示 XX 度,按KEY1进入更改时间中断,分别按P4.2,P4.3,P4.4各几下LCD上显示相应的数字,再按KEY1退出中断,同时电子表显示刚才更改为的时间。按KEY2进入设置闹钟中断,分别按P4.2,P4.3,P4.4各几下LCD上显示相应的数字,再按KEY2退出中断,同时电子表继续接着中断前的时间运行,当到达闹钟所设时间,会有声音和灯的提醒,按P4.3退出提醒,电子表继续,最好按KEY6进入流水灯中断,单片机上的LED灯流动闪烁,流水灯完成后自动返回电子表。

8.实验中遇到的问题及解决方法

1.由于在AD转换连接的电路不同导致公式算出的电阻偏高,在温度-电阻表中无对应的值,导致显示的温度不准确。

解决方法:通过试验,自己总结出一套计算电阻的公式代入,得到准确的电阻值,在温度-电阻表中找到相对应的值,显示出较准确的温度。

2. 在做更改时间和设置闹钟时,在获取设置值时,出现按得次数与得到的值不符。

解决方法:通过单步调试,发现在让按键后自加的时候总是多加一,导致错误,更改了自加的位置问题解决。

8.总结

通过这次的做实验,了解到了关于单片机的很多知识,对嵌入式有了深一步的理解,并手动做了一个嵌入式,感觉提高很高,我个人比较喜欢LCD,感觉很有趣,试验中也遇到了许多问题,并一一解决了,提高了分析能了和调试能力,感觉有很大的提高,如果可能的话在下边会多多接触这一方面的知识,做一些自己的东西。

花样流水灯实验报告

黄淮学院信息工程学院 单片机原理及应用课程设计性实验报告

五、硬件电路设计 根据设计任务,首先进行系统硬件的设计。其硬件原理图由LED显示电路和单片机最小系统组成,如图所示,其中包括时钟电路采用部时钟方式,复位电路采用上电自动复位。由于单片机的I/O口的高电平驱动能力只有微安级,而灌电流可以达到3毫安以上,因此采用低电平驱动。P1、P2、P3分别控制8个led灯。 六、软件程序设计 1、软件设计思路 如果通过上图所示电路图完成实验要求,通过数组,分别同时控P0、P1、P2分别控制8个led灯,从而协调控制24个灯实现花样流水灯效果。 开始 编写数组 主循环 逐个点亮 24灯同时闪烁 逐个熄灭

P3=table1[i]; delayms(500); } shan();//全部闪烁 for(i=0;i<8;i++)//逐个熄灭{ P3=table2[i]; delayms(500); } for(i=0;i<8;i++) { P1=table3[i]; delayms(500); } for(i=0;i<8;i++) { P0=table2[i]; delayms(500); } } } void delayms (uintt) { uint x,y; for(x=t; x>0;x--) for(y=50;y>0;y--); } 七、软硬件仿真调试分析 1、仿真调试结果

图片 1 逐个点亮图片 2 24灯闪烁 图片 3 逐个熄灭 2、性能测试及结果分析 通过仿真结果发现通过上述系统可以实现实验要求,24个灯逐个点亮,24个灯全亮后,24个灯一起闪烁,闪烁5次后,然后24个灯逐个熄灭。由此证明系统满足实验要求。 八、项目总结 在本次花样流水灯试验中,使用循环程序、数组语句实现了实验要求,设计过程中遇到了很多的问题,但经过努力,最终设计出了合理的解决方案。通过此次实验,对多个led灯的控制能力进一步得到提升。 九、项目设计报告成绩 实验报告成绩: 指导教师签字: 年月日

流水灯实验报告综合二

实验名称:流水灯的实验设计与制作班级100713 学号07 姓名张凯瑜指导教师庞涛 一、实验目的: 1.增进对单片机的感性认识,加深对单片机理论方面的理解。 2.掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。 3.了解和掌握单片机应用系统的软/硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。 二、实验原理:

原理图说明:该设计选用一块STC89C52型单片机,使用其P1口和P3口的部分。P1口作为发光二极管的控制信号输出端,P3.2作为按钮K1外部中断0的信号输入口,P3.3为按钮K2外部中断1的信息输入口,P3.4作为K3信息输入口。单片机晶振频率为11.0592MHz,方便在线下载程序调试。电源使用5v 直流电,其中R11、C6为K1键硬件消抖(但效果不太理想,所以在软件中也做了软件消抖)。 三、实验设备: 电烙铁、万用电表、斜口钳、剥线钳、镊子、电池座、导线若干,所需元件清单: 四、实验方法与步骤: (1)认识各种元件,了解各元件的功能和使用方法。 (2)根据实验原理设计实验电路图和焊接图,并多次进行修正。

(3)按照实验焊接图在洞洞板上进行焊接。 焊接时在覆铜一面进行焊接,没有覆铜的一面用来放置元件。焊接时先对MCU座定好位,焊好对角两个角,然后焊接电源电路,按键电路,再复位和晶振电路,最后焊接LED 部分。 (4)插上编写好程序的单片机,实现“流水灯”效果。 五、实验测量与记录: 功能说明:本设计一共可以显示5种花样 k1键:切换显示花样k2键:暂停显示k3键:继续显示 流水灯——正面无单片机时 流水灯——正面有单片机时

EDA课程设计---流水灯设计

EDA课程设计流水灯设计

目录 一、摘要··3 二、流水灯设计目的··4 三、流水灯设计流程··4 四、流水灯设计程序··5 五、流水灯设计管脚分配··7 六、功能仿真图··8 七、原理图波形图··9 八、设计注意事项··10

九、课程设计总结··11 十、参考文献··12 十一、评分表··13 一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、

自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。

单片机花样流水灯设计实验报告

**大学 物理学院 单片机花样流水灯设计实验 课题:花样流水灯设计 班级: 物理 *** 姓名: *** 学号: ……………

当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。 本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。 关键字:AT89C51 单片机流水灯数码管

1. 单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。 【实验设计目标】 设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED 灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。

单片机实验报告

PIC单片机原理与应用实验报告 学校: 学院: 班级: 姓名: 学号: 指导教师:

实验一I/O端口实验 一、实验目的 (1)掌握MPLAP IDE集成开发环境的基本操作。 (2)掌握单片机的I/O端口的设计方法。 (3)掌握在线调试器的使用方法。 (4)学会查阅相关数据手册。 二、实验仪器设备 (1)PC机一台; (2)MPLAP IDE开发软件一套; (3)PICkit3在线调试器一套; (4)APP009实验板一块; 三、实验要求 (1)设计发光LED灯闪烁程序,下载调试,验证功能。 (2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。 (3)设计按按键加1计数程序,下载调试,验证功能。 四、实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具; (3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; 程序代码: #include void delay(void); int main() { while(1) { TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出); https://www.doczj.com/doc/8212003644.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.doczj.com/doc/8212003644.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

多功能流水灯实验报告

课程设计报告设计课题:多功能流水灯 专业班级: 学生姓名: 指导教师: 设计时间:

题目多功能流水灯 一、课程设计目的 1、掌握数字系统的设计方法和测试方法。 二、课程设计题目(问题)描述和要求 设计一个四模式三路彩灯(红、绿、黄三种颜色)显示系统。该系统的显示模式由外部输入Z、Y控制,要求开机自动置入初态后便按规定模式循环运行。设各路彩灯均为8个(红灯序号为r1-r8,绿灯序号为g1-g8,黄灯序号为y1-y8),各模式规定如下: XY=00时,系统的显示模式在以下六个节拍间循环: 第一节拍,依次点亮奇号红灯(r1亮→r1、r3亮→r1、r3、r5亮→r1、r3、r5、r7亮),其余灯均灭。 第二节拍,依次点亮偶号红灯,其余灯均灭。 第三节拍,依次点亮奇号绿灯,其余灯均灭。 第四节拍,依次点亮偶号绿灯,其余灯均灭。 第五节拍,依次点亮奇号黄灯,其余灯均灭。 第六节拍,依次点亮偶号黄灯,其余灯均灭。 XY=01时,系统的显示在第一、二节拍间循环。 XY=10时,系统的显示在第三、四节拍间循环。 XY=11时,系统的显示在第五、六节拍间循环。 三、系统分析与设计 根据课程设计题目问题描述和要求,完成:

主要器件: 绘制电路原理图:确定选用的元件及其封装形式,完善电路。 原理图设计过程:进行电子电路设计时,首先要有一个设计方案,而将电路设计方案表达出来的最好方法就是画出清晰、正确的电路原理图。根据设计需要选择出元器件,并把所选用的元器件和相互之间的连接关系明确地列出,直观地表达出设计概念。 电路原理图的基本组成是电子元器件符号和连接导线,电子元器件符号包含了该元器件的功能,连接导线则包含了元器件的电气连接信息,所以电路原理图设计的质量好坏直接影响到PCB印制电路板的设计质量。 绘制原理图的两大原则:首先应该保证整个电路原理图的连线正确,信号流向清晰,便于阅读分析和修改;其次应该做到元器件的整体布局合理、美观、实用。 在Protel中绘制电路原理图的步骤: 启动原理图编辑器,新建电路原理图文件。 设置原理图的相关参数,如图纸的大小、版面及环境参数等。 加载元件库,在图纸上放置需要的各种元器件。 编辑元器件的属性,并对元器件进行合理的布局调整。 使用导线或网络标签对所有的元器件进行电气意义上的连接。 对电路原理图进行整体的编辑、调整。 保存文档,打印输出。 绘制元件库:为绘制原理图做补充。有些元件在系统库文件里可能找不到,我们可以自己动手绘制一个能表示实际元件的图形,并将其添加到原理图中。建议大家从一开始就建立一个属于自己的元件库,以后每设计一次电路,当遇到没有的原件时,就往库里添加一个元件,日积月累,自己的元件库就会充实起来,以后绘制原理图时就会非常方便。 绘制PCB封装:也是为设计原理图做补充。原理图上的元件仅仅是一个元件代号,我们可以随意改变其模样,但是PCB封装绝对不能随意改动。所谓封装,就是元件在PCB上的实际焊接点,如果焊接点与元件对应不上,那么这块板子就

流水灯课程设计(免费)..

数字电子技术课程设计报告 (彩灯控制器) 专 专业:电子信息工程 班级:7B1211 学号:123025 姓名:白旭飞 年月:2014-6-28

一、设计要求 1. 以8或10个指示灯作为显示器件,能自动的从左到右、从右到左自动的依次被点亮,如此周而复始,不断循环。 2.打开电源时控制器可自动清零,每个指示灯被点亮的时间相同约为0.5S~2S 范围内。 3.用计算机画出设计电路图,进行仿真分析验证其正确性。 4.写设计说明书一份(画总原理框图以及说明主要工作原理,单元电路的设计和元器件的选择,画出完整的电路图和元器件明细表,收获、体会及建议) 二、设计的作用,目的 1.作用 利用控制电路可使彩灯(例如霓虹灯)按一定的规律不断的改变状态,不仅可获得良好的观赏效果,且可以省电(与彩灯全亮相比)。 2.目的 用NE555芯片,74LS151芯片,74LS163芯片,74LS194,以及一些逻辑门芯片完成彩灯控制器。 三、设计的具体实现 1.系统概述 接通电源时,555占空比可调振荡器产生1s单位的脉冲,脉冲送到下一个模块74LS151计数器,目的实现模5计数器,达到每五秒生成一个脉冲输向下一个芯片74LS194移位寄存器以及计数器74LS163。进而彩灯在脉冲的作用下依次点亮,并实现循环,完成实验要求。 2.总体思路 先用555定时器用来生成1s标准单位cp脉冲,把脉冲给计数器74LS151,通过74LS151形成模5加法计数器,再将74LS151输出信号供给74LS194移位寄 存器输入端,Q 0,Q 1, Q 2 和Q 3 接彩灯然后连接几个逻辑门,把74LS194接成环形 计数器。就能实现基本电路要求。 3.方案设计 总体电路共分三大块。第一块实现时钟信号的产生;第二块实现灯亮灭情况的演示;第三块实现灯亮灭的控制及节拍控制。

单片机流水灯实验报告

流水灯实习报告 一、实验原理 单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED 灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。 二、硬件原理图 三、实验程序 ORG 00H AJMP START ORG 001BH AJMP INT ORG 0100H START: MOV SP,#60H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA

INT: PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR TR1 MOV TL1,#B0H MOV TH1,#3CH SETB TR1 DJNZ R1,EXIT MOV R1,#20 MOV DPTR,#DATA MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#8000H Movx @DPTR,A INC R0 ANL 00,#07H EXIT: POP DPH

POP PSW POP ACC RETI DATA: DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END 四、实验功能 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去. 五、实验总结 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。 尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我

微机原理课程设计流水灯控制系统.doc

微机原理课程设计 流水灯控制系统 姓名 :XX 学院:物理电气信息学院 班级: 2010 电子 姓名 :12010245

流水灯控制系统 一、设计内容: 本课程设计选用8086 对 8255A的 A口控制来实现模拟流水灯功能的 实现。编写相关程序,通过proteus仿真软件来实现我名字“安亮” 两个字的闪烁,“安”字接 8255 的 A 口的 P0,“亮”字接 A 口的 P1。先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪 烁八次,再跳到开始,以此循环。 二、设计目的: 1、了解流水灯的基本工作原理 2、熟悉 8255A 并行接口的各种工作方式和应用 3、利用 8255A 接口,LED 发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。 三、实验原理 在 8086 系统中,采用 16 位数据总线,进行数据传输时,CPU

总是将低 8 位数据线上的数据送往偶地址端口,而过高8位数据线上 的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低 8 位数据线传送到CPU,从奇地址端口取得的数据总是通过高8 位数据线送到 CPU。在 8086 系统中,将 8255A的 A1端和地址总线的 A29255A 在对 CPU并且,相连, A1 端和地址总线的 A0 的 8255A 而将相连, 的端口进行访问时,将地址总线的 A0 位总是设置为 0。本课程设计通 过对 8255A 的 A 口控制来实现模拟流水灯功能的实现。“安”接 A 口 的 P0,“亮”接 A口的 P1,实现两个字按一定规律的一个闪烁。 8255 的内部结构 255A 内部结构由以下四部分组成:数据端口A、B、C;A组控制和 B 组控制;读 / 写控制逻辑电路;数据总线缓冲器。 端口 A:包括一个 8 位的数据输出锁存 / 缓冲器和一个 8 位的数据 输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。

51单片机流水灯实验报告单片机实验报告流水灯

51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现LED灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示: 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。

四、实验电路图 五、通过仿真实验正确性

代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A ACALL DELAY SJMP LOOP DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1

DJNZ R1,DEL2 RET End 实验结果: 六、实验参考程序 #include #define uchar unsigned char #define uint unsigned int uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P00=P0^0; sbit P01=P0^1; void delay(uchar t) { uchar i,j; for(i=0;i

花样流水灯设计

单片机课程设计 2014年 6月 15日 课 程 单片机课程设计 题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班 学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛

一丶任务 设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。 二丶设计要求 通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。 三丶设计方案 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。 单片机流水灯循环控制系统硬件框图 此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。 四丶系统硬件设计 4.1 直流稳压电源电路

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分。本项目直流稳压电源为+5V。 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。此处用3节1.5V的干电池供电。 4.2 单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。 时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

LED灯实验报告

mcs-51单片机接口技术实验 适用:电气类专业本科学生 实验报告 实验一熟悉proteus仿真模拟器,led花样表演 一、实验目的 掌握以下方法: 1.在proteus的环境下,设计硬件原理图; 2.在keilc集成环境下设计c51语言程序; 2.在proteus的环境下,将硬件原理图与软件联接仿真运行。 二、实验环境 1.个人微机,windows操作系统 2.proteus仿真模拟器 3.keilc编程 三、实验题目 基本题:使用8051的并口带动8个led发光二极管显示一种花样表演。提高题:使用一个键切换实现3种以上花样表演。 四、实验类型: 学习、模仿与简单设计型。 五、实验步骤: 0、进入isis,先选择需要的元件,然后设计电原理图,保存文件; 1、在keilc软件集成环境下编写源程序,编译工程文件; 2、将所设计的硬件原理图与目标代码程序相联接; 4、按play键,仿真运行程序。 附,可能用到的元件名称: cpu:at89c51或任一种mcs-51家族cpu; 晶振:crystal; 电容器:capacitors,选22pf 电解电容:cap-elec或genelect10u16v 复位电阻:minres10k 限流电阻:minres330r 按键:button led:led-blue/red/yellow或diode-led (一)接线图如下: (二).基础花样 (四)程序流程图 (五)c程序 #include <> #define uint unsigned int #define uchar unsigned char const tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, /*正向流水灯*/ 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,};/*反向流水灯*/ const tab2[]={0xff,0x00,0xff,0x00,0xff,0x00,}; void delay() { uint i,j; for(i=0;i<256;i++) for(j=0;j<256;j++)

Proteus花样流水灯课程设计

Proteus花样流水灯课程设计

课程论文 题目:基于51单片机LED流水灯设计 课程名称: 学生姓名: 学生学号: 系别: 专业: 年级: 任课教师: 电气信息工程学院制 1月 基于51单片机的LED流水灯设计

1 单片机AT89C51芯片简介 MCS-51兼容4K字节,可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:。全静态工作:0Hz—24Hz,三级程序存储器锁定。128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源可编程串行通道,低功耗的闲置和掉电模式,片内震荡器和时钟电路。 图1 AT89C51芯片

1.1电源引脚 Vcc(40脚):典型值+5V。 Vss(20脚):接低电平。 1.2外部晶振 XTAL1、XTAL2分别与晶振两端相连接。 1.3输入输出口引脚 P0口:I/O双向口。作输入口时,应先软件置“1”. P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 1.4控制引脚 RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。 RST (9脚):复位信号输入端(高电平有效)。ALE/-PROG(30脚):地址锁存信号输出端.第一功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。 2硬件电路 2.1晶振电路 单片机晶振的作用是为系统提供基本的时钟信号。一般一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

左右来回循环的流水灯实验报告

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________院(部)____________________________专业________________ 班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 01 信息科学技术学院 计算机科学与技术0961 2012 12 27

摘要 (2) 1、单片机概述 (2) 2、仿真软件介绍 (2) 3、需求分析 (2) 一、课程设计目的 (3) 二、课程设计要求 (3) 三、实验内容 (3) 1、设计任务与要求 (3) 2、系统分析 (3) 1).硬件电路设计(画出原理图、接线图) (4) 2)软件框图 (5) 3、用keil建项目流程 (7) 4、程序清单 (7) 4、系统调试 (9) 四、设计总结(结论) (10)

摘要 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。能够通过按键控制8个LED小灯从左到右依次点亮。 关键字:单片机、LED流水灯 1、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处 理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片机控制系统。 单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它 们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 2、仿真软件介绍 (1).Keil uv3 运行Keil uv3 新建工程:菜单“Preject->New Preject”,保存为*.uv2,选择芯片型号,copy否 新建文件:菜单“File->New”,保存为*.c,编写程序 将源文件添加到工程:在左侧project workspace的source group1点右键选择addfile加入*.c 设置工程:点菜单栏上的,选Target,设晶振值;选Output,点create Hex file以生成少些文件;选Debug,选择软件仿真(simulator)或硬件仿真(Keil Monitor)方式。 编译链接:点菜单栏上的进行编译,或点菜单栏上的进行编译链接,或点菜单栏上的进行重新编译链接,或点菜单栏上的停止编译。 编译链接后生成*.hex文件,可烧写到单片机。 (2).Proteus 使用Proteus仿真 点击单片机,在Program Files处选择*.hex文件,OK,进行仿真 RESPACK--8 排阻,就是好多电阻连载一起,有一个公共端,1端为公共端接VCC(上拉)或地(下拉) 一般接在51单片机P0口,因P0口内没有上拉电阻,不能输出高电平,所以要接上拉电阻。 3、需求分析

电子科技大学 数字逻辑课程设计——流水灯的实现

数字逻辑课程设计 ——流水灯的设计 1问题概述: 设计一个可以循环移动的流水灯,灯总数为8盏,具体要求如下: 1、5亮,其余灭,右移三次后全灭 4、8亮,其余灭,左移三次后全灭 4、5亮,其余灭,各向两边移三次后全灭 1、8亮,其余灭,各向中间移三次后全灭 所要求的彩灯电路在某电路板上完成,该电路板能够提供48MHz标准时钟信号,附带有8个共阳的LED管可作为彩灯使用。 2问题分析 本装置可以看作一个具有20个状态的无输入、8个输出的Moore型时钟同步状态机,每一个状态对应依次出现的每一种亮灯情况,用5位状态编码表示。这里构造一个模20的计数器来循环产生这20种状态。同时对于输入的48MHz的标准时钟信号,需要将其转化为1HZ的信号,此处同样用计数器来实现分频功能。8个输出分别控制LED的发光情况。这里使用5-32的译码器实现输出函数的构造。电路框图如下: 这里使用一个5位的状态编码Q4Q3Q2Q1Q0,表示20个状态。8位的输出函数F7F6F5F4F3F2F1F0分别表示由左至右每一个灯的通断情况。由于本题中LED灯采用共阳极连接方式,所以当Fn为低电平时,对应的LED灯发光。 本电路状态图如下:

本电路的转移/输出表如下: 现针对每一部分设计具体电路 3设计方案 3.11/48MHz分频电路 对于48MHz的信号,一秒钟内有4.8*10^7个周期,而所需1Hz信号,每秒只有一个周期。使输入信号每经过2.4*10^7个周期,输出信号翻转一次方向,便可获得所需的1Hz信号。可以构造一个模4.8*10^7的计数器用于计数,并使计数器输出的最高位在一秒之内恰好变化一次,且占空比为50%,故采用7片74x163进行级联。计数范围为:0110100100011100101000000000-1001011011100011010111111111。这样恰好可以保证最高

51单片机实训报告

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

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

单片机流水灯实验报告

单片机流水灯实验报告 电子信息工程学系实验报告 课程名称:单片机原理及接口 实验项目名称:实验2 流水灯实验时间: xx-10-21 班级:电信092 姓名:蔡松亮学号: 910706247 一、实验目的: 进一步熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。 二、实验原理: MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输

出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。 以P1口为例,内部结构如下图所示: 图 P1口的位结构 作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。 I/O口的注意事项,如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用;四个口在作输入口使用时,均应先对其写“1”,以避免误读;P0口作I/O 口使 用时应外接10K的上拉电阻,其它口则可不必;P2可某几根线作地址使用时,剩下的线不能作I/O口线使用;P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。

流水灯课程设计

河南理工大学 电子技术课程设计报告 心 形 流 水 灯 姓名:明* 学号:3110080020** 专业班级:电气10-7班 指导老师:李端 所在学院:电气工程与自动化学院、

目录 摘要 (3) 一、设计指标(要求) (4) 二、系统框图 (4) 三、各单元电路设计、参数计算和元器件选择 3.1 脉冲产生电路 (5) 3.2 复位电路 (8) 3.3 分频电路 (8) 3.4 移位控制电路 (10) 3.5 显示部分 (11) 四、电路图及工作原理 (12) 五、元器件清单 (12) 六、实际PCB图或布线 (13) 七、设计总结 7.1 电路的特点和方案的优缺点 (13) 7.2 心得体会 (14) 八、参考文献 (15)

摘要 随着时代的进步,人们审美方式的提高,流水灯在都市生活中扮演着愈加不可或缺的角色。酒店,婚庆,酒吧,KTV,广场,商场,招牌等场所的流星雨灯条、流水瀑布灯、月花灯等,给人以繁星闪耀,流水似瀑的感觉。而彩色LED闹钟,手机外壳的跑马灯的应用点缀了我们的日常生活。 流水灯的控制方法可通过多种方法实现,但相对现代可编程控制器而言,利用移位寄存器实现最为便利。通常用左移寄存器实现灯的单方向移动,通过双向移位寄存器实现灯的双向移动。 此次课程设计,是通过制作四路流水灯来实现18个LED心形灯的控制。 关键词:双向移位寄存器,NE555脉冲电路,LED灯。

一、 设计指标 (1)输出为4路(18个)LED 灯; (2)要求能实现左移右移功能,左右移自动切换; (3)移动速度可调节 (4)每个循环左移和右移的步数和变化规律自定。 二、系统框图

单片机流水彩灯课程设计

课程名称:单片机课程设计 设计题目:流水灯彩灯设计 学院:应用技术学院 专业:电子信息工程信息方向

目录 一、实训的目的 (3) 二、实训的基本要求 (3) 三、电路基本工作原理 (4) 四、组装过程及技巧 (5) 五、软件设计及程序清单 (5) 六、心得体会 (11) 一、实训的目的 通过具有一定功能和应用价值的一个具体产品的设计与制作,或

者一个实际项目的开发与应用,使学生受到工程设计、制造工艺、调试检测和撰写技术报告的系统训练,启迪我们的创新思维,培养我们分析问题和解决问题的综合能力。通过实训使我们巩固、加深和学习光电子技术的基础理论、基本知识和技能技能。使我们正确地选择和使用常用电工仪表、电子仪器及有关实验设计。使我们掌握基本电量及电子元件的测试技术、实验方法和数据的分析处理。使我们能应用已学的理论知识设计简单的应用电路,合理选择元器件构成实用的电子小系统。使我们受到基本的实验技能、系统的工程实践和撰写技术报告的初步训练。培养我们严肃认真、实事求是、独立思考、踏实细致的科学作风和创新的精神。 二、实训的基本要求 要求: 1. 该流水灯设置12个发光二极管,两个按键K1和K2。 2. 上电后,12个LED灯全亮 3. 两个按键一个用于流水灯的启动和停止,另一个用于选择流水灯的花样。 4.“流水”的花样不得少于两种,越多越好。 三、电路图及其基本工作原理 该电路由2个30PF的电容和一个晶震组成的,其中晶振接在18和19引脚。这个作用是为单片机提供一个正常的工作时钟频率

单片机40引脚接+5V的电源,20引脚接地。使用510Ω电阻和发光二极管组成12条支路,分别对应连接单片机的P1口12个。才用共阳极接法40段接上5V的外加电压,通过单片机的P1口控制输出高电平还是低电,当电压为低电平的时候,二极管发光。 电路图如下: 四、组装过程及焊接技巧 (1)材料:松香、焊锡。焊接时最常用的焊料是焊锡。松香焊剂是一种可靠的焊剂,它在电路维修和电子制作中应用广泛。将焊接的

相关主题
文本预览
相关文档 最新文档