文档库 最新最全的文档下载
当前位置:文档库 › 基于51单片机的LED显示棒制作

基于51单片机的LED显示棒制作

基于51单片机的LED显示棒制作
基于51单片机的LED显示棒制作

LED显示棒

一、产品介绍

随着科技的日益发展,电子技术也慢慢伸展到了生活的各个领域,娱乐类也不例外。作为娱乐类的电子产品之一---LED显示棒又名摇摇棒。它可以在产品所经过区域显示出一派字幕,流光溢彩,饶有趣味。

本设计是基于STC89C52单片机和C语言编程所制作的一款可切换字幕的LED摇摇棒。摇摇棒是利用视觉暂留效应设计出来的,物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。假设我们设定我们的眼睛的暂留时间是0.4秒,如果我们的16个LED来回摇摆的时间快过0.4秒,那么我们看到的图像就是这一列LED在各个位置显示的图像的叠加.16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整的画面。与LED点阵的显示有几分相仿。

二、LED显示棒功能特色

本款摇摇棒可显示的字幕包括字母(A)、(电)、奥运五环图像、(welcome)、(济宁)、北京奥运会会微图案、(电子技术)、五角星图案、(0123)、I ?U、笑脸图像,11种汉字图像。

LED 显示棒可应用于明星演唱会、体育场中的球迷等大型活动或娱乐场所

还可以作为儿童玩具。

三、 LED 显示棒方案设计框图

四、 系统总体设计结构及说明

以STC89C52单片机为控制核心,控制有16只led 灯组成的线阵显示字符或图形。用按键实现切换。采用9V 电池转换为5V 电源供电。

五、 电路原理图及说明

系统电源VCC为5V,本款摇摇棒采用9V电池电源转换为5V 电源供电。STC89C52单片机作为控制器,在它的P1、P3口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。

8、9管脚外接复位电路,P2口28管脚外接字幕切换按键,40

管脚接自锁开关,28、29管脚外接时钟电路。

LED显示棒PCB板

为了便于携带以及摇摆设计板材尺寸为2cm*20cm。六、LED显示棒程序流程图

六、LED显示棒程序代码及说明

程序代码(见附表)

以线阵排列的16个led有两组十六进制代码组成。将字幕代码分别送给P1、P3。每个字幕有16*16点阵组成,在单片机中存储好四个字幕代码数组,如此往复在摇摇棒经过区域形成一个64*16的点阵屏。实现显示效果。

七、LED显示棒使用说明及注意事项

1、按下电源开关,手握摇摇棒下部以适当的频率左右摇摆,线阵排列的16个LED灯所经过的区域即可出现字幕或图案。

2、按下切换键即可摇摆出另一幅字母或图案。

3、按下复位键即可从头开始显示所摇摆出的字母或图案。

4、使用完毕关闭电源开关即可。

A、系统电源VCC为5V,下载程序和调试时一定要保证5V电压。

B、本款摇摇棒16个LED灯采用共阳极连接。

摇摇棒程序代码

#include

#define unchar unsigned char

#define unint unsigned int

int i,j;

sbit key=P2^7;

int k;

//************延时函数****************

void delay(unchar xms)

{

unchar m,n;

for(m=0;m

for(n=0;n<150;n++);

}

//************键盘检测*************

void keyscan()

{

if(key==0)

{

delay(10);

if(key==0)

{

k++;

while(!key);

if(k>10)

k=0;

}

}

}

//*****************************************

unsigned char code table_0[]={

0xff,0xfb,0xff,0xfb,0xff,0xf3,0xff,0xc3,

0xff,0x1b,0xfc,0x3b,0xf1,0xbf,0xe7,0xbf,

0xe3,0xbf,0xe0,0xbf,0xf8,0x1b,0xfe,0x03,

0xff,0x83,0xff,0xe3,0xff,0xfb,0xff,0xfb,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; //显示"A"的字模unsigned char code table_1[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xe0,0x0f,0xed,0xdf,

0xed,0xdf,0xed,0xdf,0xed,0xdf,0x00,0x03,

0xed,0xdd,0xed,0xdd,0xed,0xdd,0xed,0xdd,

0xe0,0x0d,0xff,0xfd,0xff,0xf1,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; //显示"电"的字模unsigned char code table_2[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xf0,0x3f,0xef,0xdf,

0xdf,0xef,0xdf,0xef,0xdf,0xef,0xdf,0xef,

0xdf,0xef,0xdf,0x03,0xde,0xed,0xdd,0xee,

0xee,0xdd,0xf0,0x3e,0xfd,0xfe,0xfd,0xfe,

0xed,0xde,0xf0,0x3e,0xfd,0xfe,0xfd,0xfe,

0xf0,0x3e,0xed,0xde,0xde,0xed,0xdf,0x03,

0xdf,0xef,0xdf,0xef,0xdf,0xef,0xdf,0xef,

0xdf,0x03,0xde,0xed,0xed,0xde,0xf0,0x3e,

0xed,0xde,0xdd,0xee,0xde,0xed,0xdf,0x03,

0xdf,0xef,0xdf,0xef,0xdf,0xef,0xdf,0xef,

0xdf,0xef,0xef,0xdf,0xf0,0x3f,0xff,0xff,

0xf0,0x3f, 0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; //显示"奥运五环的字模unsigned char code table_3[]={

0xff,0xff,0xef,0xff,0xe1,0xff,0xe0,0x1f,

0xee,0x03,0xff,0xe3,0xef,0x0f,0xe0,0x7f,

0xe0,0x7f,0xe0,0x07,0xff,0x03,0xff,0x87,

0xec,0x3f,0xe1,0xff,0xe7,0xff,0xef,0xff,

0xff,0xff,0xf8,0x3f,0xf6,0xdf,0xf6,0xdf,

0xf6,0xdf,0xf6,0xdf,0xf9,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0x00,0x07,0xff,0xfb,

0xff,0xfb,0xff,0xe7,0xff,0xff,0xff,0xff,

0xfc,0x3f,0xfb,0xdf,0xf7,0xef,0xf7,0xef,

0xf7,0xef,0xff,0xff,0xff,0xff,0xfc,0x3f,

0xfb,0xdf,0xf7,0xef,0xf7,0xef,0xf7,0xef,

0xfb,0xdf,0xfc,0x3f,0xff,0xff,0xff,0xff,

0xff,0xff,0xf8,0x1f,0xf7,0xff,0xf7,0xff,

0xf8,0x3f,0xf7,0xff,0xf7,0xff,0xf8,0x1f,

0xff,0xff,0xff,0xff,0xf8,0x3f,0xf6,0xdf,

0xf6,0xdf,0xf6,0xdf,0xf8,0xbf,0xff,0xff,}; //显示"welcome的字模unsigned char code table_4[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xf7,0xdf,0xbb,0xdf,0xd9,0x80,0xcf,0x8f,

0xf1,0xff,0xde,0xfd,0xde,0xfb,0xcd,0x07,

0x55,0xff,0x9b,0xff,0xd5,0xff,0xcd,0x00,

0xde,0xff,0x9f,0x8f,0xdf,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xf5,0xff,0xcd,0xff,0xdd,0xff,0xdd,0xff,

0xdd,0xff,0xdd,0xfd,0x5d,0xfe,0x9c,0x01,

0xdd,0xff,0xdd,0xff,0xdd,0xff,0xdd,0xff,

0xdd,0xff,0xd5,0xff,0xcd,0xff,0xff,0xff,}; //显示"济宁"的字模unsigned char code table_5[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xdf,0x0f,0x9f,0x3f,0x5f,0x9f,0xdf,0xcf,

0xdf,0x0f,0xc2,0x7f,0x58,0xff,0x58,0xff,

0x5a,0x3f,0xc3,0x1f,0xdf,0xc7,0xdf,0xf7,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,};// 显示"北京奥运会微”的字模unsigned char code table_6[]={

0xff,0xff,0xff,0xff,0xe0,0x0f,0xed,0xdf,

0xed,0xdf,0xed,0xdf,0xed,0xdf,0x00,0x03,

0xed,0xdd,0xed,0xdd,0xed,0xdd,0xed,0xdd,

0xe0,0x0d,0xff,0xfd,0xff,0xf1,0xff,0xff,

0xff,0x7f,0xff,0x7f,0xbf,0x7f,0xbf,0x7f,

0xbf,0x7f,0xbf,0x7d,0xbf,0x7e,0xb8,0x01,

0xb7,0x7f,0xaf,0x7f,0x9f,0x7f,0xbf,0x7f,

0xff,0x7f,0xfe,0x7f,0xff,0x7f,0xff,0xff,

0xef,0x7f,0xef,0x7d,0xee,0xfe,0x00,0x01,

0xed,0xff,0xeb,0xfd,0xff,0xfd,0xec,0xfb,

0xed,0x37,0xed,0xcf,0x01,0xcf,0xed,0xb7,

0xec,0x7b,0xed,0xf9,0xef,0xfb,0xff,0xff,

0xf7,0xf7,0xf7,0xf7,0xf7,0xef,0xf7,0xdf,

0xf7,0xbf,0xf6,0x7f,0xf5,0xff,0x00,0x01,

0xf5,0xff,0xf6,0xff,0xb7,0x7f,0xd7,0x9f,

0xf7,0xcf,0xf7,0xe7,0xf7,0xef,0xff,0xff};//显示"电子技术"的字模unsigned char code table_7[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,

0xfc,0xfd,0xfc,0x63,0xfc,0x03,0xf8,0x07,

0xc0,0x07,0x00,0x0f,0xc0,0x07,0xf8,0x07,

0xfc,0x03,0xfc,0x63,0xfc,0xfd,0xfd,0xff,

0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,

0xfc,0xfd,0xfd,0x63,0xfd,0x9b,0xfb,0xf7,

0xc7,0xf7,0x3f,0xef,0xc7,0xf7,0xfb,0xf7,

0xfd,0x9b,0xfd,0x63,0xfc,0xfd,0xfd,0xff,

0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; //显示"★"的字模

unsigned char code table_8[]={

0xf8,0x0f,0xf7,0xf7,0xef,0xfb,0xef,0xfb,

0xf7,0xf7,0xf8,0x0f,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xf7,0xfb,0xf7,0xfb,0xe0,0x03,0xff,0xfb,

0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xf1,0xf3,0xef,0xeb,0xef,0xdb,0xef,0xbb,

0xee,0x7b,0xf1,0xf3,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xf3,0xe7,0xef,0xfb,0xee,0xfb,0xee,0xfb,

0xed,0x77,0xf3,0x8f,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; //显示"0123"的字模

unsigned char code table_9[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0x7f,0xfe,0x7f,0xfe,0x00,0x00,

0x00,0x00,0x7f,0xfe,0x7f,0xfe,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xf1,0xff,0xe0,0xff,

0xc0,0x7f,0x80,0x3f,0x00,0x1f,0x00,0x0f,

0x00,0x07,0x80,0x03,0xc0,0x01,0xf0,0x00,

0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0f,

0x00,0x1f,0x80,0x3f,0xc0,0x7f,0xe0,0xff,

0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0x00,0x03,0x00,0x01,

0x00,0x01,0xff,0xf8,0xff,0xf8,0xff,0xf8,

0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf8,

0xff,0xf8,0x00,0x00,0x00,0x01,0x00,0x03,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};// 显示"I ? U"的字模

unsigned char code table_10[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xf8,0x1f,0xe7,0xe7,0xdf,0xfb,

0xbf,0xfd,0x7f,0xfe,0x7f,0xfe,0xff,0xff,

0xff,0xef,0xc1,0xdf,0xbf,0xaf,0x7f,0xe7,

0xbf,0xf3,0xc1,0xf1,0xff,0xf1,0xff,0xf1,

0xbf,0xf3,0x7f,0xe7,0xbf,0xaf,0xc1,0xdf,

0xff,0xef,0xff,0xff,0x7f,0xfe,0x7f,0xfe,

0xbf,0xfd,0xdf,0xfb,0xe7,0xe7,0xf8,0x1f,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//显示"(^-^)"的字模

//***************显示函数****************

void xianshi()

{

for(i=0,j=1;i<=127,j<=128;i=i+2,j=j+2)

{

if(k==0)

{

P1=table_0[j],P3=table_0[i]; //显示"A"

delay(2);

}

else if(k==1)

{

P1=table_1[j],P3=table_1[i]; //显示"济宁"

delay(2);

}

else if(k==2)

{

P1=table_2[j],P3=table_2[i]; //显示"电"

delay(2);

}

else if(k==3)

{

P1=table_3[j],P3=table_3[i]; //显示"welcome"

delay(2);

}

else if(k==4)

{

P1=table_4[j],P3=table_4[i]; //显示"奥运五环”

delay(2);

}

else if(k==5)

{

P1=table_5[j],P3=table_5[i]; // 显示"北京奥运会微"

delay(2);

}

else if(k==6)

{

P1=table_6[j],P3=table_6[i]; //显示"电子技术"

delay(2);

}

else if(k==7)

{

P1=table_7[j],P3=table_7[i]; //显示"★"

delay(1);

}

else if(k==8)

{

P1=table_8[j],P3=table_8[i]; //显示"0123"

delay(1);

}

else if(k==9)

{

P1=table_9[j],P3=table_9[i]; //显示"I ? U"

delay(1);

}

else if(k==10)

{

P1=table_10[j],P3=table_10[i]; //显示"(^-^)"

delay(1);

}

}

}

//****************主函数******************************* void main(void)

{

while(1)

{

keyscan();

xianshi();

}

}

51单片机基础知识试题题库(复习资料)

单片机原理与应用复习资料 第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时〃表示从P0口稳定地送出了低8位地址。(备注:ALE 为地址锁存控制信号,书上P22) 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。(p25 更具体些是在内部存储器的用户RAM区开辟的) 3、当使用8751且EA=1〃程序存储器地址小于1000H 时〃访问的是片内ROM。 4、MCS-51系统中〃当PSEN信号有效(备注:低电平为有效信号)时〃表示CPU要从外部程序存储器读取信息。(p22) 5、MCS-51有4组工作寄存器(p23 备注:称为通用寄存器或者工作寄存器)〃它们的地址范围是00H~1FH 。(延伸:通用寄存器占去32个单元,位寻址区占去16个单元,用户RAM区占去80个单元,三者总共为128个单元,组成内部数据存储器的低128单元区) 6、MCS-51片内20H~2FH(即为位寻址区)范围内的数据存储器〃既可以字节寻址又可 以位寻址。(p24) 7、PSW中RS1 RS0=10时〃R2的地址为12H 。 8、PSW中RS1 RS0=11时〃R2的地址为1AH 。(p27 查表2.3即可) 9、单片机系统复位后〃(PSW)=00H〃因此片内RAM寄存区的当前寄存器是第0 组〃8个寄存器的单元地址为00H ~ 07H 。(p27 参考下一题) 10、PC复位后为0000H 。(p38 查表2.6即可,有各种寄存器的初始化状态) 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。(p37) 12、PC的内容为将要执行的下一条指令地址。(p30)

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

根据C51单片机的键盘及LCD显示

基于C51单片机的键盘及LCD显示 一、实验目的 1.掌握矩阵式键盘的数字键和功能键的编程方法。 2.掌握LCD的接口技术和编程方法。 3.掌握仪器监控程序设计和调试方法。 二、预习与参考 1. 结合ST7920 控制器系列中文图形液晶模块有关资料手册,详细了解ST7920接口设计技术。 2. 参考资料 1)实验板说明书 2)ST7920 控制器系列中文图形液晶模块资料手册 三、设计指标 利用实验板上提供的键盘电路,LCD显示电路,设计一人机界面,能实现以下功能: 1.LCD上显示“重庆科技学院” 2.按键至少包括0-9的数字键 3.LCD显示按键值 4.电子钟显示:时,分,秒(选作) 四、实验要求 1.以单片机为核心,设计4*4非编码键盘及LCD的硬件电路,画出电路原理图。 2.设计4*4非编码键盘及LCD的控制软件,画出流程图,编写控制程序。

五、实验仪器设备和材料清单 单片机实验板、连接导线、ST7920图形液晶模块、PC机; Keil c51软件 六、实验设计及实施的指导 1.实验课前布置实验任务,提出实验要求,预习相关资料,完成硬件草图设计和软件流程图备查。 2.经指导教师检查,预习达到要求者进入实验室实验。 3.按照设计的电路连线,构建键盘及显示系统,经检查无误方可进入下一步。 4.在指导教师指导下调试LCD显示程序。 5.在指导教师指导下调试按键程序。 6.综合调试直到满足设计要求。 七、实验成绩评定方法 实验成绩包括预习、实验完成质量、实验报告质量4部分组成,各部分所占比例分别为30%、30%、40%。 八、实验报告要求 1.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

基于51单片机的流水灯设计说明

基于51单片机的流水灯设计 一.基本功能 利用AT89c51作为主控器组成一个LED流水灯系统,实现8个LED 灯的左、右循环显示。 二.硬件设计 图1.总设计图

1.单片机最小系统 1.1选用AT89C51的引脚功能 图2. AT89C51 XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。 RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得部特殊功能寄存器容均被设成已知状态。 P3:端口3是具有部提升电路的双向I/O端口,通过控制各个端口的高低电平了实现LED流水灯的控制。

1.2复位电路 如图所示,当按下按键时,就能完成整个系统的复位,使得程序从新运行。 图3.复位电路 1.3时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。 在AT89C51芯片部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。

图4.时钟电路 2.流水灯部分 图5.流水灯电路 三.软件设计 3.1编程语言及编程软件的选择 本设计选择C语言作为编程语言。C语言虽然执行效率没有汇编语言

基于51单片机的PS2键盘的单片机编程

PS2键盘的单片机编程 在单片机系统中,经常使用的键盘都是专用键盘.此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出.与此相比,在PC系统中广泛使用PS/2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求.因此在单片机系统中应用PS/2键盘是一种很好的选择. 文中在介绍PS/2协议和PS/2键盘工作原理与特点的基础上,给出了一个在单片机上实现对PS/2键盘支持的硬件连接与驱动程序设计实现.该设计实现了在单 片机系统中对PS/2标准104键盘按键输入的支持.使用Keil C51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中.所有程序在 Keil uVision2上编译通过,在单片机AT89C51上测试通过. 1 PS/2协议 目前,PC机广泛采用的PS/2接口为mini-DIN 6pin的连接器,如图1所示. PS/2设备有主从之分,主设备采用Female插座,从设备采用Male插头.现在广泛使用的PS/2键盘鼠标均在从设备方式下工作.PS/2接口的时钟 与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中).主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生. 1.1 从设备到主设备的通信 当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平.如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据.传输的每一帧由11位组成,发送时序及每一位的含义如图2 所示. 每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1.从设 备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟 下降沿读人数据线状态.

51单片机基础知识及期末复习

51单片机简答题部分(经典) 1、什么叫堆栈? 答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。 2、进位和溢出? 答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。 3、在单片机中,片内ROM的配置有几种形式?各有什么特点? 答:单片机片内程序存储器的配置形式主要有以下几种形式:(1)掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固 化,用户不能修改ROM中的程序。掩膜ROM单片机适合于 大批量生产的产品。用户可委托芯片生产厂家采用掩膜方法 将程序制作在芯片的ROM。 (2)EPROM型单片机:内部具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM 中,也可以将EPROM中的信息全部擦除。擦去信息的芯片 还可以再次写入新的程序,允许反复改写。 (3)无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。 无ROM型单片机价格低廉,用户可根据程序的大小来选择外接 程序存储器的容量。这种单片机扩展灵活,但系统结构较复 杂。 (4)E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。该类型目前比较常用 (5)OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片内程 序存储器中,程序写入后不能再改写。这种芯片的价格也较 低。 4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系? 答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周

单片机说明

第一章 LAB2000单片机仿真系统的使用 1.1 单片机仿真系统的介绍 1.1.1 概述 本仿真实验系统可实现MCS51/MCS196单片机原理与接口的一系列实验,并在硬件上预留了自主开发实验的空间。该实验系统对基本实验仅需少量连线就可进行,以减轻学生的工作量,同时也提供了一些需较多连线的扩展性实验以进一步锻炼学员的动手能力(详见第2部分)。此外,它还为学生们提供了强大的软硬件调试手段。本仿真实验系统由板上仿真器、实验仪、伟福仿真软件、开关电源构成。 1.仿真器系统构成 本仿真实验系统具有三种使用方法: (1)无系统机,仅用实验仪的板上仿真器进行仿真和实验。 (2)有系统机,用系统机上的WINDOWS/DOS软件驱动板上仿真器进行仿真和实验。 (3)有系统机、用外接仿真器进行仿真和实验。 (4)无实验仪、无仿真器,仅在系统机上采用软件模拟方式进行仿真。 2.实验系统自带键盘和显示器,自带系统监控程序。如果没有系统机也照样进行各种学习和实验。 3.配备有DOS,Windows两套PC机系统软件,在有系统机的情况下,通过外接仿真器实现64K全空间的硬件断点和仿真。 4.PC机和系统机软件具有全集成化仿真环境,中、英文两种界面,软件仿真与硬件仿真两种模式,软件仿真可以在无仿真仪的情况下进行。 5.其中实验实例及实验程序,可采用机器码、汇编、C等三种语言编写,以适应不同层次的学生的需求。 本实验仪可以方便灵活地构成各种实验方案,在有无系统机和实验仪的情况下,都能进行相应的编程实验,从而具有极为广泛的应用围,板上提供了基本的实验电路,减少繁琐的连接线过程,板上也提供了DIP40/28/24/20/16/14插孔和CPU的地址数据总线引出插孔,供学生自己扩展其它实验,培养实际动手能力,加强对实验电路的理解。实验程序采用多种语言适应不同层次的学生的需要。高级语言编写应用程序,是一种时代的需要,通过应用高级语言的编程和实验,可使学生掌握高级语言的编程方法,为今后进入社会实践打下坚实的基础。而汇编语言又能让学生了解机器深层的原理。 1.1.2 伟福实验系统的支持软件 1.板上单片机仿真部分(使用WAVE集成调试软件) (1)支持DOS、Windows'95/98双平台 (2)具有编辑、汇编、编译、调试和软件模拟等功能,所有操作均可通过窗口和菜单的 选择来完成。方便用户编写和调试软件、直观反映程序运行情况,提高软件开发效率。 (3)支持汇编语言、C、PLM高级语言源程序调试。 (4)可观察数组,记录等各种复杂变量。 (5)脱开实验系统单独进行软件模拟,这种方式尤其适用于软件实验 注意:(1)无论是集成电路的插拔、通讯电缆的连接、跳线器的设置还是实验线路的连接,都应确保在断电情况下进行,否则可能造成对设备的损坏。 (2)实验线路连接完成后,应仔细检查无误后再接通电源。 1.2 WAVE的开发环境

51单片机独立按键程序查询法和外部中断两种

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111代表第一个程序。//2222222222222222222222222代表第二个程序,以此类推 //1111111111111111111111111111111111111111111111111111111111111111111 //1111111111111111111111111111111111111111111111111111111111111111111 /****************************************************************************** * * 实验名: 左右流水灯实验 * 使用的IO : LED使用P2,键盘使用P3.1 * 实验效果: 按下K1键, * 注意: ******************************************************************************* / #include #include #define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( ); //延时10ms /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main(void) { unsigned int i,j; j=0xfe; //1111_1110 while(1) { GPIO_LED=j; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) {

51单片机基础知识 (问答题)

1、单片机的机器周期、状态周期、振荡周期和指令周期之间是什么关系? 答:一个机器周期恒等于6个状态周期或12个振荡周期,即1M=6S=12P。 2、存储器中有几个保留特殊功能的单元用做入口地址?作用是什么? 答:MCS-51系列单片机的存储器中有6个保留特殊功能单元; 作用:0000H为复位入口、0003H为外部中断0入口、000BH为T0溢出中断入口、0013H为外部中断1入口、001BH为T1溢出中断入口、0023H为串行接口中断入口。 3、开机复位后,CPU使用是的哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工 作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器。 它们的地址是00H~07H。CPU通过对程序状态字PSW中RS1、RS0的设置来确定和改变当前工作寄存器组。如:RS1、RS0为00则指向第0组;为01则指向第1组;为10则指向第2组;为11则指向第3组。 4、MCS-51的时钟周期、机器周期、指令周期的如何分配的?当振荡频率为8MHz时,一个单片 机时钟周期为多少微秒? 答:MCS-51的时钟周期是最小的定时单位,也称为振荡周期或节拍。一个机器周期包含12个时钟周期或节拍。不同的指令其指令周期一般是不同的,可包含有1~4个机器周期。 当振荡频率为8MHz时,一个单片机时钟周期为0.125μs 。 5、EA/V 引脚有何功用?8031的引脚应如何处理?为什么? PP 答:EA/V PP是双功能引脚: (1)EA接高电平时,在低4KB程序地址空间(0000H~0FFFH),CPU执行片内程序存储器的指令,当程序地址超出低4KB空间(1000H~FFFFH)时,CPU将自动执行片外程序存储器的指令。 (2)EA接低电平时,CPU只能执行外部程序存储器的指令。 8031单片机内部无ROM,必须外接程序存储器。因此,8031的EA引脚必须接低电平。 在对8751单片机内部的EPROM编程时,此引脚V PP外接+12V电压,用于固化EPROM程序。 6、单片机对中断优先级的处理原则是什么? 答:⑴低级不能打断高级,高级能够打断低级; ⑵一个中断以被响应,同级的被禁止; ⑶同级,按查询顺序,INT0→T0→INT1→T1→串行接口。 7、MCS-51的外部中断的触发方式有哪两种?他们对触发脉冲或电平有什么要求? 答:有电平触发和脉冲触发。

51单片机基础知识试题题库(考试用含答案)

第二章习题参考答案 一、填空题: 2、MCS-51的堆栈是软件填写堆栈指针临时在片内RAM数据存储器内开辟的区域。 INCDEC都不影响PSW 堆宅操作只有一条寻址方式直接寻址方式 3、当使用8751且EA=1 〃程序存储器地址小于1000H时〃访问的是片内 ROM 7、PSW中RS1RSO=10寸〃R2 的地址为12H。 8、PSW中RS1RS0=11 时〃R2的地址为1AH。 17、使用8031芯片时〃需将/EA引脚接低电平〃因为其片内无ROM存 22、但单片机的型号为8031/8032时〃其芯片引线EA一定要接di电平

7、单片机8031的ALE引脚是()。 A、输出高电平 B、输出矩形脉冲〃频率为fosc的1/6 C、输出低电平 D、输出矩形脉冲〃频率为fosc的1/2 11、单片机上电复位后〃堆栈区的最大允许范围是()个单兀。 A、64 B、120 C、128 D、256 12、单片机上电复位后〃堆栈区的最大允许范围是内部RAM的() A、OOH—FFHB 001■— 07HC 071■— 7FHD 08H— 7FH 13、对于8031单片机〃其内部RAM()O A、只能位寻址 B、只能字节寻址 C、既可位寻址又可字节寻址 D、少部分能位寻址 18、单片机8051的XTAL1和XTAL2引脚是()弓I脚。 A、外接定时器 B、外接串行口 C、外接中断 D、外接晶振 23、MC—51的专用寄存器SFR中的堆栈指针SP是一个特殊的存贮区〃用来()〃它是按后进先出的原则存取数据的。 A、存放运算中间结果 B、存放标志位 C、暂存数据和地址存放待调试的程序

51单片机键盘设置

\\\§8.3 键盘接口技术 一、键盘输入应解决的问题 键盘是一组按键的集合,它是最常用的单片机输入设备. 操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘, 如:ASCⅡ码键盘、BCD码键盘等; 靠软件识别的称为非编码键盘。 在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。 本节着重讨论非编码键盘的原理、接口技术和程序设计。 键盘中每个按键都是—个常开关电路,如图所示。

1.按键的确认:P1.7=1 无按键; P1.7=0 有按键; 2.去抖动 去抖动的方法: ①硬件去抖动采用RS触发器: 优点: 速度快,实时, 缺点: 增加了硬件成本 ②软件去抖动采用延时方法 延时5—10ms 延时5—10ms P1.7=0 确认P1.7=0 P1.7=1 (去前沿抖动) (去后沿抖动) 二、独立式键盘

每个I/O口连接一个按,S1 P1.0 S2 P1.1 ………………………. S8 P1.7 软件: START:MOV P1,#0FFH ;置P1口为高电平 JNB P1.0, RS1 ; S1按下,程序去执行RS1 JNB P1.1, RS2 ; S2按下,程序去执行RS2

JNB P1.2, RS3 ; S3按下,程序去执行RS3 JNB P1.3, RS4 ; S4按下,程序去执行RS4 JNB P1.4, RS5 ; S5按下,程序去执行RS5 JNB P1.5, RS6 ; S6按下,程序去执行RS6 JNB P1.6, RS7 ; S7按下,程序去执行RS7 JNB P1.7, RS8 ; S8按下,程序去执行RS8 AJMP START ; 继续扫描按键 …………. RS1: AJMP PK1 ; RS2: AJMP PK2 ; RS3: AJMP PK3 ; RS4: AJMP PK4 ; RS5: AJMP PK5 ; RS6: AJMP PK6 ; RS7: AJMP PK7 ; RS8: AJMP PK8 ; AJMP START ; 无键按下,继续扫描………………… PK1: ……….. ;按键S1功能处理程序 AJMP START ;处理S1按键后, 继续扫描PK2: ……….. ;按键S2功能处理程序

基于某51单片机地键盘盘可调万年历

开放性实验报告 题目: 基于80C51的万年历设计_ 院系:

专业班级: 学号: 姓名: 指导老师:________________________ 时间:2014年9月8号 摘要 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能。本系统选用DALLAS 公司生产的日历时钟芯片DS1302来作为实时时数字万年历采用直观数字显示,可以同时显示年、月、日、周、时、分、秒等信息,还具有键盘时间校准等功能。该电路采用AT89C52单片机作为核心,用以5V电压供电。 本系统硬件部分由AT89C52单片机、DS1302时钟芯片、LCD1602液晶显示环境下以C51语言编写,包括时间设置、时间显示、时间修正等功能。在仿真的时候,以Proteus 与Keil uVision4软件为基础,编写了MCS-51单片机对LCD1602显示控制的软件,绘制其原理图,并使用Proteus软件与Keil uVision4软件建立联合仿真。本设计主要论述了原理图各个模块的作用,以及控制软件的各个模块的编程。

关键词:时钟芯片DS1302;单片机AT89C52;液晶显示1602;独立键盘等

目录 第1章绪论 (1) 1.1实时万年历的简介 (1) 1.2系统所实现的功能 (3) 第2章开发工具软件简介 (4) 2.1K EIL U V ISION4软件简介 (4) 2.2P ROTEUS软件简介 (4)

2.3K EIL U V ISION4与P ROTEUS软件联合仿真 (5) 第3章LCD1602显示控制技术 (6) 3.11602字符型LCD简介 (6) 3.2LCD1602功能 (7) 3.3 LCD1602的指令说明及时序 (8) 3.4LCD1602的RAM地址映射及标准字库表 (7) 3.5 LCD1602的一般初始化(复位)过程 (8) 第4章系统硬件概况 (13) 4.1系统概况 (13) 4.2 MCS-51单片机最小系统模块 (14) 4.3 DS1302时钟芯片控制与键盘设置时间模块 (15) 4.4 LCD1602显示模块 (16) 第5章软件控制系统概况 (18) 5.1程序流程概况 (18) 5.2 流程图 (18) 5.3 源程序代码 (19) 参考文献 (25)

51单片机基础知识试题题库

第二章习题参考答案一、填空题:片内RAM数据存储器内开辟 的区域。 MCS-512、的堆栈是软件填写堆栈指针临时在 PSWINC DEC 都不影响直接寻址方式堆宅操作只有一条寻址方式 时,访问的是1000H 3 、当使用8751且EA=1,程序存储器 地址小于ROM。片内。 RS0=10RS1 时,R2的地址为1 2H7、PSW中。 R2的地址为1AH时,8、PSW中RS1 RS0=11 。的位,该位所在字节的字节地址为、内部RAM中,位地址为30H 14 电平,因为其片内芯片时,需将8031/EA引脚接低17、使用 ROM 存无 di电平。 22、但单片机的型号为8031/8032时,其芯片引 线EA一定要接 )。ALE引脚是( 80317、单片机的A、输出高电平 B、 输出矩形脉冲,频率为fosc的1/6 C、输出低电平 D、输出矩形脉冲,频率为fosc的1/2 )个单元。11、单片机上电复位后,堆栈区的最大允许范围是( 、256 C、128 DA、64 B、 120

)。 12、单片机上电复位后,堆栈区的最大允许范围是内部RAM 的( 08H—7FH7FH D、07H B、00H— C、07H— A、00H—FFH )。、对于8031单片机,其内部RAM( 13、只能字节寻 B A、只能位寻址址 D、少部分能位寻址 C、既可位寻址又可字节寻址 )引脚。引脚是(和XTAL2 18、单片机8051的XTAL1 、D C、 外接中断、、 A外接定时器 B外接串行口 外接晶振 是一个特殊的存贮区,用来SPSFR51的专用寄存器中的堆栈指针23、 MCS—),它是按后进先出的原则存取数据的。( B、存放标志位、存放运算中间结果 A 、存放待调试的程序D C 、暂存数据和地址 三、判断题 √)、6PC可以看成使程序存储器的地址指针。( 、判断以下有关7PC和DPTR的结论是否正确?√)(不能 访问。PC是可以访问的,而DPTR、A. √) B、它们都是16位的存储器。( DPTR而×)( PC有自动加“1”的功能,、C它们都有自动加“1” 的功能。 的加“1”则需通过指令INC DPTR来完成。

51单片机基本程序

1第一位隔一秒闪烁一次 #include<> #define uint unsigned int sbit led1=P1^0; uint i; uint j; void main() { while(1) { % led1=0; for(i=1000;i>0;i--) for(j=110;j>0;j--); led1=1; for(i=1000;i>0;i--) for(j=110;j>0;j--); } } ; 2复杂广告灯 #include<> #define uint unsigned int #define uchar unsigned char uchar discode[]={ 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,sbit k2=P3^5; sbit k3=P3^6; sbit k4=P3^7; sbit d=P1^2; sbit c=P1^3; , uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; void delayms(uint); uchar numt0,num; void display(uchar numdis) //显示59s的常用方式 !

{ uchar shi,ge; shi=numdis/10; ge=numdis%10; P1=0xff; //控制十位数字 P1=0xfd; P0=table[shi]; delayms(10); P1=0x00; 。 P1=0xff; //控制个位数字 P1=0xfe; P0=table[ge]; delayms(10); P1=0x00; } void delayms(uint xms) //简单的延时程序/ { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void init() //初始化函数 { TMOD=0x01; TH0=(65536-45872)/256; ) TL0=(65536-45872)%256; EA=1; ET0=1; } void keyscan() //控制键盘的程序{ if(k1==0) { delayms(10); //去抖动延时 \

基于C51单片机矩阵键盘控制蜂鸣器的应用

学校代码 10126 学号科研创新训练论文 题目基于C51单片机的蜂鸣器和流水灯的 应用 院系内蒙古大学鄂尔多斯学院 专业名称自动化 年级 2013 级 学生姓名高乐 指导教师高乐奇 2015年06月20日

基于C51单片机的蜂鸣器和流水灯的应用 摘要 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。本文介绍了单片机的发展及应用,和基于单片机的蜂鸣器和流水灯的知识及应用,还介绍了此次我所设计的课题。 关键词:C-51单片机,控制系统,流水灯,蜂鸣器,程序设计

The application of buzzer and flowing water light based on C51 MCU Author:GaoLe Tutor:GaoLeQi Abstract This age is a new technology emerge in endlessly era, in the electronic field especially automation intelligent control field, the traditional schism components or digital logic circuit, is composed of control system with unprecedented speed was replaced by micro-controller intelligent control system. SCM has small, strong function, low cost, etc, it can be said that wide application, intelligent control and automatic control core is the micro-controller.This article introduces the MCU development and application,the knowledge and application of buzzer and flowing water light based on MCU,then introduces the task I have designed this time. Keyword:C51 micro-controller,control system,flowing water light,buzzer ,programming

MCS-51单片机复习题参考题库

MCS-51单片机复习题参考题库 测控2011-1、2班2014-4-19 一、填空题 1、167D= B= C7 H。 2、8051内部有四个并行口,P0口直接作输出口时,必须外接上拉电阻;并 行口作输入口时,必须先向锁存器置1 ,才能读入外设的状态。 3、若单片机的主振频率为6MHz,则一个时钟周期为1/6 微秒,一个机器周期为2 微秒。 4、当MCS-51执行MOVX @DPTR,A指令时,伴随着WR* 控制信号有效。 5、若累加器A中的数据为110110010B,则PSW中的P=___1______。 6、内部RAM中,位地址为50H的位,该位所在字节的字节地址为2AH 。 7、MCS-51单片机串行口以方式2工作时,若系统晶振频率fosc为12MHz,PCON中的SMOD设置为1,则波特率为375KB/S bps。 8、若LED为共阴极接法,则“9”的七段代码值应当为___7F_____H。 9、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为64 K字节。 10、如果(A)=7AH,(30H)=A5H, PSW=80H,执行ADDC A,30H;INC 30H两条指令后, (A)= 20H ,(30H)= A6H 。 11、已知(20H)=X, (21H)=Y,指令 MOV SP,#70H, PUSH 20H; PUSH 21H; POP 30H; POP 40H; 执行完后,(71H)= , (72H)= , (30H)= , (40H)= ,SP= 12、帧格式为1个起始位,8个数据位和1个停止位的异步串行通讯方式是方式1。 13、在异步通信中每个字符由10位组成,串行口每分钟传25000个字符,则对应的波特率为4167bps 。 14、起止范围为0000H~3FFFH的存储器的容量是16 KB。 15、11根地址线可选2KB 个存储单元,16KB存储单元需要14 根地址线。 16、若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过4微妙。 17、指令MOVC A,@A+PC的源操作数的寻址方式为把地址为A+PC的内存单元的内容给A 。 18、甲乙双方采用串行口模式1进行通信,采用定时器T1工作在模式2做波特率发生器,波特率为2400bit/s,当系统晶振为6MHz时,SMOD=1,计数初值为F3H 。

51单片机实例(含详细代码说明)

1 ?实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭, 亮一灭的时间间隔为秒。 2. 电路原理图 图 4.1.1 3. 系统板上硬件连线把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上 4. 程序设计内容 (1).延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢下面具体介绍其原理: 1 ?闪烁灯 13 FO OJADQ FO 1 /AD] FO.2/AD2 FCi 3j*AOTi PO 4/AE>4 FtJ.6fAO& i^U.7/AD7 五尿5¥尸二 7/Jk 1 J5 尸N G/-A 1 ■* J - i/JL U P2 /IfA 1 J RZ W 1 1 g 3劇in P3 L/A91 F3 G/AH F-Ji CJ/I2CD I rTZK G pj 3/1H T1 P^JS/T 1 £/暫冠 理 监 居 . ■ V 11111111 PPP沪厂JLH甘 r3Hb

如图4.1.1所示的石英晶体为12MHz因此,1个机器周期为1微秒机器周期微秒 = ___________ ___________ MOV R6,#20 2 个2 L ______ D1: MOVR7,#248 2 个2 2+ 2X 248= 498 20X =— DJNZ R7,$ 2 个2X 248 (498 DJNZ R6,D1 2 个2X 20= 40 10002 因此,上面的延时程序时间为。 由以上可知,当R6= 10、R7= 248时,延时5ms R6= 20、R7= 248时, 延时10ms,以此为基本的计时单位。如本实验要求秒=200ms 10m X R5 =200ms贝U R5= 20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET

51单片机按键控制花样灯

51单片机按键控制花样灯 时间:2012-09-10 13:50:11 来源:51hei 作者: /**************************************************** * 本程序实现用按键控制花样灯。 * * 当K1按下时,灯从0xfe向左跑一遍; * * 当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置;* * 当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。* * 当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。* * 当K5键按下时,结束任意正在进行的程序,使LED灯全部熄灭。* ******************************************************/ ************************************************* 连接方法:P0接独立按键JP5;P2接LED灯接口JP1 * ***********************************************************/ #include //头文件,函数声明 #include //定义按键所在位 sbit K1=P0^0; sbit K2=P0^1; sbit K3=P0^2; 页脚内容1

sbit K4=P0^3; sbit K5=P0^4; unsigned char led; unsigned char j; void delayms(unsigned char ms) // 1ms标准延时 { while(ms--) { for(j=0;j<110;j++); //还是无法设置比较标准的延时,如1S等;所以应该用定时器延时才最准确} } void main() { //P2=led; unsigned int i; while(1) { /********************************************* 页脚内容2

c51单片机基础知识选择题教学提纲

c51单片机基础知识 选择题

单片机基础知识选择题 1.在MCS-51单片机中,当采用4MHZ晶振频率时,一个机器周期等于()微秒。 A.1 B.2 C.3 D.4 答案:C 2.如果某51单片机系统的定时/计数器0的中断服务程序放在程序存储区的3000H地址开始的一段空间内,此时跳转到定时/计数器0的中断服务程序的指令LJMP 3000H应放在()开始的中断地址区。 A.0003H B.0013H C.0023H D.000BH 答案:D 3.MCS-51单片机的字长是()。 A.2位 B.4位 C.8位 D.16位 答案:C 4.单片机复位时,程序计数器PC的值为()。 A.0000H B.0030H C.4000H D.4100H 答案:A 5.某存储器芯片有12根地址线,8根数据线,该芯片有()个存储单元。 A.1 KB B.2 KB C.3 KB D.4 KB 答案:D 6.MCS-5l单片机的堆栈区是设置在( )中。 A.片内ROM区 B.片外ROM区 C.片内RAM区 D.片外RAM区 答案:C 7.在单片机中,()是数据存储器,()是程序存储器。 A.ROM B.EPROM C.RAM D.EEPROM

答案:C; A、B、D 8.单片机在与外部I/O口进行数据传送时,将使用()线。

A.ALE INT0 B.PSEN ALE C.WR RD ALE D.ALE INT1 答案:C 9.下列计算机语言中,CPU能直接识别的是()。 A.自然语言 B.高级语言 C.汇编语言 D.机器语言 答案:D 10.MCS-5l单片机的堆栈区是设置在( )中。 A.片内ROM区 B.片外ROM区 C.片内RAM区 D.片外RAM区 答案:C 11.当MCS-51单片机接有外部存储器,P2口可作为 ( )。 A.数据输入口 B.数据的输出口 C.准双向输入/输出口 D.输出高8位地址 答案:C 12.下列关于栈的描述中错误的是()。 A.栈是先进后出的先性表 B.栈只能顺序存储 C.栈具有记忆作用 D.对栈的插入和删除操作中,不需要改变栈底指针 答案:C 13.调用子程序、中断响应过程及转移指令的共同特点是()。 A.都能返回 B.都通过改变PC实现转移 C.都将返回地址压入堆栈 D.都必须保护现场 答案:B 14.下面哪一个器件是同相OC门电路。() A.74LS04 B.74LS14 C.74LS07 D.74LS06 答案:C 15.14根地址的寻址范围可达()KB。 A.8 B.16

51单片机各针脚介绍

51单片机各引脚及端口详解 51单片机引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图: l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。 P0口有三个功能: 1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口) 2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口) 3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp) 接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。 在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。 ALE 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。参见图2(8051扩展2KB EEPROM电路,在图中ALE 与4LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出。 由于ALE是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用。 PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。 1、内部ROM读取时,PSEN不动作; 2、外部ROM读取时,在每个机器周期会动作两次; 3、外部RAM读取时,两个PSEN脉冲被跳过不会输出; 4、外接ROM时,与ROM的OE脚相接。 参见图2—(8051扩展2KB EEPROM电路,在图中PSEN与扩展ROM的OE脚相接) EA/VPP 访问和序存储器控制信号 1、接高电平时: CPU读取内部程序存储器(ROM) 扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。 2、接低电平时:CPU读取外部程序存储器(ROM)。 3、8751烧写内部EPROM时,利用此脚输入21V的烧写电压。 RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。 XTAL1和XTAL2 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 VCC:电源+5V输入 VSS:GND接地。

相关文档
相关文档 最新文档