给初学单片机的40个实验

给初学单片机的40个实验
给初学单片机的40个实验

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。

498*20+2*20+2=10002

由以上可知,当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所示

图4.1.2

6.汇编源程序

ORG 0

START: CLR P1.0

LCALL DELAY

SETB P1.0

LCALL DELAY

LJMP START

DELAY: MOV R5,#20 ;延时子程序,延时0.2秒D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

END

7. C语言源程序

#include

sbit L1=P1^0;

void delay02s(void) //延时0.2秒子程序{

unsigned char i,j,k;

for(i=20;i>0;i--)

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

for(k=248;k>0;k--);

}

void main(void)

{

while(1)

{

L1=0;

delay02s();

L1=1;

delay02s();

}

}

2.模拟开关灯

1.实验任务

如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

2.电路原理图

图4.2.1

3.系统板上硬件连线

(1).把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上;

(2).把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;

4.程序设计内容

(1).开关状态的检测过程

单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机

可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即

可。

(2).输出控制

如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向

导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0

时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。

5.程序框图

图4.2.2

6.汇编源程序 ORG 00H

START: JB P3.0,LIG

CLR P1.0

SJMP START

LIG: SETB P1.0

SJMP START

END

7. C语言源程序

#include

sbit K1=P3^0;

sbit L1=P1^0;

void main(void)

{

while(1)

{

if(K1==0)

{

L1=0; //灯亮

}

else

{

L1=1; //灯灭

}

}

}

3.多路开关状态指示

1.实验任务

如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。

(开关闭合,对应的灯亮,开关断开,对应的灯灭)。

2.电路原理图

图4.3.1

3.系统板上硬件连线

(1.把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;

(2.把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上;

4.程序设计内容

(1.开关状态检测

对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.X,REL 或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。

(2.输出控制

根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETB P1.X和CLR P1.X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。

5.程序框图

读P1口数据到A CC中

A CC内容右移4次

A CC内容与F0H相或

A CC内容送入P1口

图4.3.2

6.方法一(汇编源程序)

ORG 00H

START: MOV A,P1

ANL A,#0F0H

RR A

RR A

RR A

RR A

ORl A,#0F0H

MOV P1,A

SJMP START

END

7.方法一(C语言源程序)

#include unsigned char temp;

void main(void)

{

while(1)

{

temp=P1>>4;

temp=temp | 0xf0;

P1=temp;

}

}

8.方法二(汇编源程序)ORG 00H

START: JB P1.4,NEXT1 CLR P1.0

SJMP NEX1

NEXT1: SETB P1.0

NEX1: JB P1.5,NEXT2

CLR P1.1

SJMP NEX2

NEXT2: SETB P1.1

NEX2: JB P1.6,NEXT3

CLR P1.2

SJMP NEX3

NEXT3: SETB P1.2

NEX3: JB P1.7,NEXT4

CLR P1.3

SJMP NEX4

NEXT4: SETB P1.3

NEX4: SJMP START

END

9.方法二(C语言源程序)#include

void main(void)

{

while(1)

{

if(P1_4==0)

{

P1_0=0;

}

else

{

P1_0=1;

}

if(P1_5==0)

{

P1_1=0;

}

else

{

P1_1=1;

}

if(P1_6==0)

{

P1_2=0;

}

else

{

P1_2=1;

}

if(P1_7==0)

{

P1_3=0;

}

else

{

P1_3=1;

}

}

}

4.广告灯的左移右移

1.实验任务

做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

2.电路原理图

图4.4.1

3.系统板上硬件连线

把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。

4.程序设计内容

我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。

每次送出的数据是不同,具体的数据如下表1所示:

表1

5.程序框图

图4.4.2

6.汇编源程序

ORG 0

START: MOV R2,#8

MOV A,#0FEH

SETB C

LOOP: MOV P1,A

LCALL DELAY

RLC A

DJNZ R2,LOOP

MOV R2,#8

LOOP1: MOV P1,A

LCALL DELAY

RRC A

DJNZ R2,LOOP1

LJMP START

DELAY: MOV R5,#20 ;

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

END

7. C语言源程序

#include

unsigned char i;

unsigned char temp;

unsigned char a,b;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

void main(void)

{

while(1)

{

temp=0xfe;

P1=temp;

delay();

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

{

a=temp<

b=temp>>(8-i);

P1=a|b;

delay();

}

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

{

a=temp>>i;

b=temp<<(8-i);

P1=a|b;

delay();

}

}

}

5.广告灯(利用取表方式)1.实验任务

利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。

2.电路原理图

图4.5.1

3.系统板上硬件连线

把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。

4.程序设计内容

在用表格进行程序设计的时候,要用以下的指令来完成

(1).利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。

(2).利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。

因此,只要把控制码建成一个表,而利用MOVC A,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示:

5.程序框图

图4.5.2

6.汇编源程序

ORG 0

START: MOV DPTR,#TABLE

LOOP: CLR A

MOVC A,@A+DPTR

CJNE A,#01H,LOOP1

JMP START

LOOP1: MOV P1,A

MOV R3,#20

LCALL DELAY

INC DPTR

JMP LOOP

DELAY: MOV R4,#20

D1: MOV R5,#248

DJNZ R5,$

DJNZ R4,D1

DJNZ R3,DELAY

TABLE: DB 0FEH,0FDH,0FBH,0F7H

DB 0EFH,0DFH,0BFH,07FH

DB 0FEH,0FDH,0FBH,0F7H

DB 0EFH,0DFH,0BFH,07FH

DB 07FH,0BFH,0DFH,0EFH

DB 0F7H,0FBH,0FDH,0FEH

DB 07FH,0BFH,0DFH,0EFH

DB 0F7H,0FBH,0FDH,0FEH

DB 00H, 0FFH,00H, 0FFH

DB 01H

END

7. C语言源程序

#include

unsigned char code table[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f,

0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f,

0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0x00,0xff,0x00,0xff,

0x01};

unsigned char i;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

void main(void)

{

while(1)

{

if(table[i]!=0x01)

{

P1=table[i];

i++;

delay();

}

{

i=0;

}

}

}

6.报警产生器

1.实验任务

用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz 信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。

2.电路原理图

图4.6.1

3.系统板上硬件连线

(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”

区域中的SPK IN端口上;

(2.在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭;

(3.把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上;

4.程序设计内容

(1.信号产生的方法

500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周

期为1ms,信号电平每500us变反1次;

5.程序框图

图4.6.2

6.汇编源程序

FLAG BIT 00H

ORG 00H

START: JB P1.7,START JNB FLAG,NEXT

MOV R2,#200

DV: CPL P1.0

LCALL DELY500

LCALL DELY500

DJNZ R2,DV

CPL FLAG

NEXT: MOV R2,#200 DV1: CPL P1.0

LCALL DELY500

DJNZ R2,DV1

CPL FLAG

SJMP START

DELY500: MOV R7,#250 LOOP: NOP

DJNZ R7,LOOP

RET

END

7. C语言源程序

#include #include

bit flag;

unsigned char count;

void dely500(void) {

unsigned char i;

for(i=250;i>0;i--) {

_nop_();

}

}

void main(void)

{

while(1)

{

if(P1_7==0)

{

for(count=200;count>0;count--)

{

P1_0=~P1_0;

dely500();

}

for(count=200;count>0;count--)

{

P1_0=~P1_0;

dely500();

dely500();

}

}

}

7. I/O并行口直接驱动LED显示

1. 实验任务

如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。

2. 电路原理图

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单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。因此构成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板

2014版51单片机实验开发板焊接和调试资料

2014版51单片机实验开发板焊接调试指南 一、焊接指南: 1、先矮后高(先焊接低矮的器件如飞线、卧式电阻等,再焊比较高的器件)。 2、先小后大(先焊接体积比较小巧的器件,再焊体积比较大的器件)。 3、注意有极性元器件的安装和焊接(普通二极管、发光二极管、三极管、电解电容的极性,以及接插件的缺口方向、芯片插座方向等)。 4、建议不要一次性的把很多元件都放好才焊,应该是先放几个,焊好后剪掉元件引脚线,再接着放和焊。元件插入电路板后,为了防止电路板翻转焊接时掉落,可以适当把元件脚掰过两边,但是千万不要把元件脚全部掰平到电路板上! 5、建议一个类型一个类型地焊接,比如先统一把所有电阻焊完,再统一焊接二极管,然后再统一焊电容,等等。这样就不会搞漏。 6、所有元器件,包括电容、发光二极管等,都应该尽可能压低到电路板表面后再在反面焊接,不要让元件歪歪扭扭的“站”在电路板上。 7、注意发光二极管、排针、排座芯片插座不要长久焊接,防止这些塑料件被烫坏而报废! 8、芯片插座,尤其是单片机插座,要认真检查所有针脚从电路板洞中全部露出来后再焊接,否则贸然焊接后才发现有脚没过来时,整个芯片插座可能得拆出来才能解决问题,不仅费工而且极可能使芯片插座报废! 二、调试指南: 把元件清单后半部分的元器件焊接完毕后,绝对不可以马上把清单的前部分器件如芯片等插入电路板通电测试,这样做会因为焊接等原因导致元器件大面积损坏!应按以下步骤一步步按顺序进行调试: 1、不要插入任何芯片、液晶显示模块、电池,先用万用表测量单片机芯片插座的第20脚(地线脚)和第40脚之间(电源脚)是否短路。如有一定要先排除,否则可能会导致电脑USB口和下载线的损坏!重点检查电路板的电源线有否与地线之间有毛刺粘连,尤其是左下角可调电阻的一个脚所在电源线与地线之间是否粘连。 2、板子正确接好下载线,然后插到电脑USB口,反复按动板子上的电源开关,这时左上角的电源指示灯应该可以亮灭。如果灯不亮,断电检查开关是否可以通断,电源指示灯是否焊反或烫坏。 3、接着用一根杜邦线一头接在地线上,一头顺序接通P2.0、P2.1……P2.7的引出脚,以及右边的十个LED灯的引出脚,此时对应的灯应该点亮,不亮的不是烫坏了就是焊反了。揭开蜂鸣器上的盖纸,地线接P2.0时,除灯亮外,应可听到蜂鸣器发出响声,不响的,检查所接三极管和蜂鸣器是不是接反。地线接P2.1时,应可听到继电器“滴答”的吸合声。 4、上述步骤检查通过的,则说明板子基本没问题了,可以进行下一步调试。没通过的绝对不可以继续下去! 5、断电,插上51单片机,注意芯片方向。运行下载软件,看看是否可以进行正常下载!注意最好使用STC的V481下载软件,并确保下载线驱动装好、串口号设对。如果电脑端无问题但还是不能下载的,重点检查下载线的收发两根线是否正确接到单片机收发口上(收发接反、收发线相互粘连或与别的线粘连)。能正常下载,说明板子基本可以正常使用了。 6、强烈建议,板子使用中,用到什么芯片再插入相应的芯片,不要一股脑儿全插上,避免不知不觉中未用到的芯片误连接或操作而损坏。尤其是纽扣电池,没用到时钟的坚决不能放到板上,它造成的DS1302芯片损坏率和板子不正常的几率奇高(芯片出厂或编程时没有进入电池不充电保护状态)!

写给电脑初学者的一些建议(注册表篇)

【原创2008】写给电脑初学者的一些建议(注册表篇)发表于2008-02-03 14:04 在上篇文章中对新手朋友们关心的安全问题做了一点小小的阐述。今天,再就WIN系统中的注册表问题跟大家做个探讨。说实话,注册表问题很难写,不光是因为牵涉到了很多新手朋友们头疼的技术问题,而且覆盖面广、涉及的内容多,也很容易看花眼,但总是要写的,所以,如果新手朋友一下看不懂的话,建议多看几遍,多动手多验证,这样对提高你们对电脑的了解和维护都有很大的裨益。 有人曾经说过,了解了注册表就读懂了WIN系统,这句话是一点都不假的。那么,什么是注册表?注册表有什么功能?如何去修改注册表以达到最佳的效果?又如何来区分注册表里有用和无用甚至是危害的部分呢? 什么是注册表?在还是使用Dos和Win3.x操作系统的时代里,大部分的应用程序都采用了ini文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.ini 和win.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数目的不断增加和复杂性的日益增强,则需要在.ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,几乎没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.ini和win.ini这个两个文件会变的越来越大。每次增加的内容会导致系统性能越来越慢,在每次应用程序的升级都出现类似的难题:升级后会增加更多的参数项但是从来不去掉旧的参数设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了能够解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini 文件,这样下来多个.ini文件影响了系统正常的存取级别设置。 在windows操作系统序列里,system.ini和win.ini这两个文件包含了操作系统的所有控

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/a217712146.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/a217712146.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

51单片机实验课题集

51单片机实验课题设计要求 1.1课程设计的总体要求 本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。 (1)基本要求: 根据课题要求,研究51单片机实验(如AT89S51_V1.4等)开发板或其它实验开发板的功能和实验样例,学习和掌握keil集成开发环境或Medwin集成开发环境,在此基础上仔细研究课题功能,重新设计实验所需要的电气原理图,编写相对应的应用程序,实现其功能,学生课题实验的优劣可以从以下几个标准衡量: 1.只会使用标准测试程序和资源实现课题部分功能; 2.使用标准测试程序及其他资源实现部分功能; 3.通过修改标准程序实验全部课题基本要求者; 4.完全自主编程实现全部课题基本要求者; 5.软硬件技术应用自如,超越课题要求者。 (2)发挥要求: 在完成本人选题的基本要求前题下,完成发挥部分要求,并具有新内容的自主 发挥和创新,并取得良好效果。 (3)分类标准: 1.完成了实验(1)的全部要求,并熟练运用开发工具。 2.在完成实验(2)的部分要求,并具有创新内容。 1.2分组和实验注意事项 本实验提供的实验课题根据教学要求组成设计小组,进行分工合作,实验工作要细心认真、防止意外,有问题及时向指导老师反映,同学间可以通过研讨、互相学习解决实验中的问题。 每组同学实验过程包括: (1)听课,了解实验方法 (2)调研和了解课题,进行课题的方案选择 (3)学习开发工具,包括实验板,编程软件,仿真软件等 (4)学习汇编语言以及C语言在51编程上的使用 (5)学习系统测试、调试和故障排除,功能实现 (6)自主实验,包括课题实现和相关资料整理提交 1.3报告要求 (3)基本要求:写明实验内容和方法,画出所用部分资源的原理图等。 (4)提高要求:说明选题依据,资源的选择和该资源在设计中的功能说明,原理图设计,程序结构框图和说明,操作使用说明。 (5)发挥部分:提出设计思想,设计原理图,提供源程序,说明创新点。提供程序

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单片机实验报告

实验一 点亮流水灯 实验现象 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单片机流水灯实验报告

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 实验结果:

六、实验总结 这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。

初学占星(写给初入门的童鞋)

初学占星 (写给初入门的童鞋) 作者:简单 好多童鞋都问“我这样的小白能学占星吗?能学好吗?学占星要从哪开始学?需要看哪些入门书籍?”没问题的,大家都能学,大家都要对自己有信心。 为了入门的童鞋少走些弯路,在下就把自己学习占星的经验和思路跟大家分享一下。 首先要说的是我们要端正学习占星的初衷,占星是认识自己,认识世界的一把钥匙,千万不要把占星当做算命的手段过度迷信。教条的话不多说,下面就来分享下在下学习占星的思路。这里主要介绍的是现代占星(现代占星也就是心理占星)。 第一,符号的学习。 要想学习占星,不认识这些星盘上的符号是不行的,所谓的符号,就是行星和十二星座的符号。初学者建议不要记太多的符号,最好先记住十大行星和十二星座的符号,我们看命盘时最需要的就是这两种符号。其实所谓行星,就是太阳系的八大行星加上太阳和月亮。所谓十二星座,就是黄道带上的十二个星座,占星上的十二星座和天文上的十二星座是有所区别的。 十大行星符号 ???♀ ♂ ????? 十二星座符号

第二,守护星的学习。白羊座,火星 金牛座,金星 双子座,水星 巨蟹座,月亮 狮子座,太阳 处女座,水星 天秤座,金星 天蝎座,冥王星 射手座,木星 摩羯座,土星 水瓶座,天王星 双鱼座,海王星 第三,星盘的学习。

这是一张由Astrology32软件绘制的星盘。星盘的最外圈标有星座符号的是星座,然后是刻度(最小的格代表1度,一个星座是30度),然后标有数字的一圈叫做宫位,最里边各种颜色的线叫做相位。星盘上有四个点,其中Asc叫做上升点,Des叫做下降点,Mc是天顶,Ic是天底。以上是一张星盘的基本信息。 第四,十二星座分类 做了张表便于记忆,顺便把守护星也加了进去。所谓的四分也就是四元素。 综合了以上信息以后,基本上就能看懂一张星盘也能大致明白别人说的什么星落在什么星座什么宫上与什么星形成了相位。接下去就需要更具体的理解星座的含义了。

基于51单片机的开发板

江西工业学院 课程设计报告书 题目:基于STC89C52RD单片机实验板的制作 与程序设计 系别: 专业: 姓名:学号: 指导老师: 2016 年12 月

目录 第1节引言 (3) 1.2 基于89C51单片机系统实验板概述 (3) 1.2.1stc89C51单片机开发板硬件配置情况 (4) 1.2.2、stc89C51单片机实验板配套实验 (4) 第2节系统主要硬件电路设计 (5) 2.1 STC89C51单片机简介 (5) 2.2电源转换芯片MAX232 (6) 2.3 四位一体共阳LED数显 (7) 2.4 LED 灯电路 (8) 2.5 按键电路 (9) 2.6蜂鸣器 (9) 2.7 8*8点阵 (9) 第3节实验系统软件设计 (10) 3.1 花样流水灯程序设计: (10) 3.2.简易时钟程序设计: (11) 3.3 8*8点阵屏显示程序设计 (13) 第4节结束语 (14) 参考文献 (14) 附录 (14) 课程设计指导教师评语 (17)

基于STC89C52RD单片机系统实验板的制作与程序设计 第1节引言 单片微型计算机简称单片机,又称微控制器(MCU),它的出现是计算机发展史上的一个重要的里程碑,它以体积小、功能全、性价比高等诸多优点独具特色,在工业控制、尖端武器、通信设备、信息处理、家用电器等嵌入式应用领域中独占鳌头。本次课设采用的STC89C51单片机是51系列单片机的一种代表,目前51系列单片机是国内目前应用最广泛的一种单片机之一。单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计的基础课。 1.1本设计任务和主要内容 本设计以单片机STC89C52RD为控制核心,由八路LED模块、八路按钮模块、四位一体共阳数显模块、语音模块等部分组成。可实现花样流水灯、简易电子琴、外部中断控制、时间显示等功能。要求在将硬件电路准确无误地安装后进行软件调试,至少完成以下三个程序设计及调试任务 1 .1.1花样流水灯:程序循环输出到单片机P1口,从左到右依次点亮,每次增加一个,直至全亮;从左到右依次暗灭,每次减少一个,直至全灭;从右向左依次点亮,每次亮一个;从左到右依次点亮,每次亮一个;8个发光二极管闪烁三次;两个二极管前后追逐循环三次;两个按键控制,K1按下停止循环,K2按下继续循环。 1.1.2.简易时钟电路:采用动态扫描技术,四位数显实现数字时钟,要求显示时、分,K0调时、K1调分;整点报时。 1.1.3 8*8点阵屏显示程序设计:动态轮流显示数字0-9,字母A-Z 1.2基于89C51单片机系统实验板概述 本次课设所使用的单片机最小系统板包括以下器件:电源端子(DC +5V),可以USB供电,也可独立电源供电。通用异步串口,采用MAX232做电平转换。STC89C51单片机。各种颜色的LED发光二极管共9个,其中8个接于P1口做LED显示,还有一个做电源灯显示。四位一体共阳数码管可以实现时钟电路及动态扫描显示。还有其他电阻电容若干,系统板一个,大按键开关两个,用于中断控制和通信开关。

献给初学者-DSP入门教程

前言:此资料也是来源于网络,并不是我们原创,但是希望这些资料能够给初学DSP的朋友们一点帮助,也希望你们能够把这里当成是你们学习DSP技术的一个家园,让我们携手共建,为更多的朋友创造学习的条件~ 1、TI DSP的选型 主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。DSP的主要供应商有TI,ADI,Motorola,Lucent 和Zilog等,其中TI占有最大的市场份额。 TI公司现在主推四大系列DSP 1)C5000系列(定点、低功耗):C54X,C54XX,C55X 相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。处理速度在80MIPS--400MIPS之间。C54XX和C55XX 一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。两个系列的数字IO都只有两条。 2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX ,C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),W ATCHDOG、CAN总线/PWM发生器、数字IO脚等。是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。 3)C6000系列:C62XX,C67XX,C64X 该系列以高性能著称,最适合宽带网络和数字影像应用。32bit,其中:C62XX和C64X是定点系列,C67XX 是浮点系列。该系列提供EMIF 扩展存储器接口。该系列只提供BGA封装,只能制作多层PCB。且功耗较大。同为浮点系列的C3X中的VC33现在虽非主流产品,但也仍在广泛使用,但其速度较低,最高在150MIPS。 4)OMAP系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP 的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。 其他系列的DSP曾经有过风光,但现在都非TI主推产品了,除了C3X系列外,其他基本处于淘汰阶段,如:C3X的浮点系列:C30,C31,C32 C2X和C5X系列:C20,C25,C50 每个系列的DSP都有其主要应用领域. 2、设计中如何得到技术参考资料以及如何得到相关源码 原则是碰到问题就去https://www.360docs.net/doc/a217712146.html, 1)在TI网站的搜索中用keyword搜索资料,主要要注意的就是Application Notes,user guides 比如不知道怎样进行VC5402的McBSP编程,搜McBSP和VC5402 如果不知道如何设计VC5402和TLV320AIC23的接口以及编程,搜TLV320AIC23和VC5402; 这样可以搜到一堆的资料,这些资料一般均有PDF文档说明和相应的源程序包提供,download后做少许改动即可 2)来DSP交流网,HELLODSP真诚欢迎每一位有需要的朋友 3)google搜 4)再不济,找技术支持,碰运气了 3、如何看待TI DSP庞杂的技术文档 新手进行DSP开发学习之时,常常感觉技术文档太多,哪本都有用,哪本都想看,无从下手。此时原则是只看入门必须的、只看和芯片相关的。根据经验,如下的资料必看不可: 1)讲述DSP的CPU,memory,program memory addressing,data memory addressing的资料都需要看、外设资源的资料可以只看自己用到的部分;

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;

51单片机20个实验-代码详细

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O 接口引出,可以很方便的完成所有实验。因此构

成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。

基于51单片机多功能实验板设计

毕业设计说明书 设计题目:基于51单片机多功能实验板设计作者姓名: 班级学号: 系部:机电工程系 专业:机电一体化 指导教师: 2012年4月15 日

摘要 设计一种基于51单片机的实验板,实验板具有成本低、体积小、可靠性能高,功能多、低功耗设计、操作方便等特点。本设计介绍了该开发板的开发过程及相关硬件设计。实验板以STC89C52以单片机为核心控制器,板上资源主要包括通信模块、数码管模块、LED模块、蜂鸣器模块、键盘模块等。 实验板可以作为主控制模块安装于控制系统中执行控制任务,也可以用于高校教学,实验板能够完成多数通用实验,操作简单,控制结果可见,性价比高,具有一定的实用价值和现实意义。 关键词: STC89C52 MAX232 键盘LED灯数码管蜂鸣器 目录 第1章绪论 1.1单片机基本概念及引脚说明 (1) 1.2STC89C芯片介绍………………………………………………………………。3 1.3MAX2芯片介绍...........................................................................。3 第2章方案介绍 (5) 2.1系统原理框图 (5) 第3章硬件电路设计 (6) 3.1 键盘模 (6) 3.2 发光二极管模块 (6) 3.3 数码管模块 (8) 3.4 蜂鸣器模块 (8) 3.5 串行通信模块 (8) 3.6 中断模块 (9)

3.7 电源模块 (10) 3.8 复位模块 (10) 第4章实验板实用方法 (11) 4.1 KEIL 软件介绍 (11) 4.2 STC-ISP下载 (13) 附A单片机引脚分配 (15) 致谢 (16) 参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。.17 第一章绪论 1.1单片机基本概念及引脚说明

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. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

51单片机实验开发板设计

东 北 石 油 大 学 课 程 设 计 2012年 7 月 8日 课 程 单片机课程设计 题 目 51单片机实验开发板设计 院 系 电气信息工程学院测控系 专业班级 测控09 学生姓名 学生学号 指导教师

东北石油大学课程设计任务书 课程单片机课程设计 题目51单片机实验开发板设计 专业测控技术与仪器姓名学号 一、任务 设计一款基于仿真软件实现的51单片机实验开发板。 二、设计要求 [1] 该实验开发板力求单片机IO口分配合理,实验板硬件资源丰富。 [2] 外围电路设计合理,程序例程正确。 [3] 基本电路包括:单片机最小系统、8位流水灯电路、LED显示电路、蜂鸣 器电路、键盘电路、1602及12864液晶显示电路。 [4] 提交设计报告、电路图及程序源码。 三、参考资料 [1] 潘永雄.新编单片机原理与应用[M].西安电子科技大学出版社,2003. [2] 丁元杰.单片微机原理与应用[M].机械工业出版社,2006. [3] 朱定华.单片微机原理及接口技术实验[M].北方交通大学出版社,2002. [4] 付家才.单片机控制工程实践技术[M].化学工业出版社,2004. [5] 杨丽凤,王艳秋,张军.单片机原理与接口技术[M].清华大学、北方交通大学 出版社,2004. 完成期限至 指导教师 专业负责人曹广华 2012年6月29 日

目录 第1章绪论 (2) 单片机现状与发展 (2) 单片机的性能特点 (2) 本设计任务 (3) 第2 章总体方案论证与设计 (4) 电源 (4) 显示功能方案 (4) 电位指示选择 (4) 总体硬件组成框图 (4) 第3章系统硬件设计 (6) 单片机最小系统 (6) 键盘模块设计 (7) LED显示模块设计 (7) 流水灯显示模块设计 (8) 发声模块设计 (9) 串口通信模块设计 (9) 第4章系统的软件设计 (10) LED模块的程序设计 (10) 键盘模块的软件设计 (11) 第5章系统调试与测试结果分析 (12) 使用的仪器仪表 (12) 系统调试 (12) 测试结果 (13) 结论 (14) 参考文献 (15) 附录1 程序 (16)

51单片机信号发生器实验报告

微控制器技术创新设计实验报告姓名:学号:班级: 一、项目背景 信号发生器也叫做振荡器或是信号源,在现在的科技生产实践中有着广泛而重要的应用。现在的特殊波形发生器在价格上不够经济,有些昂贵。而基于AT89C51单片机的函数信号发生器可以满足此要求。根据傅里叶变换,各种波形均可以用三角函数的相关式子表示出来。函数信号发生器能够产生多种波形,如三角波、锯齿波、矩形波、方波和正弦波。 二、项目整体方案设计 可以利用单片机编程的方法来实现波形的输出。可选用AT89C51作为控制器,输出相应波形的数字信号,再用D/A 转换器输出相应波形的模拟信号。用DAC0832作为D/A转换器,再经过两级放大后输出,最终在示波器上显示。可以使用按键扫描来实现波形的变化

三、硬件设计 四、软件设计 #include #define uchar unsigned char #define uint unsigned int Const tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff}; void delay(void) { uchar i; for(i=230;i>0;i--); }

void main() { uchar i; while(1) { for(i=0;i<18;i++) { P1=tab[i]; delay(); } } } 五、实验结果

六、项目总结 通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。特别是理论联系实际。我认为掌握单片机的应用及开发技术是最基本的也是必要的。单片机是以后从事相关嵌入式研发最为基本的入门芯片。所以学好单片机是我们电子类的必要任务。通过这次单片机课程设计的顺利完成,离不开付老师指导,也离不开班上同学的耐心帮助。在此,我对所有帮助过我的老师和同学表示我真挚的感谢!

51系列单片机实验系统指导书

51系列单片机实验系统指导书 目录 前言 第1章下载式实验系统的使用方法 1.1 软件安装与启动 1.1.1 1.1.2 文件操作 1.1.3 建立工程项目(汇编) 1.1.4 调试程序 第2章软件实验 2.1 数据传送实验 2.2 清0实验 2.3 数据转换实验 2.4 拆字、拼字实验 2.5 散转程序实验 2.6 时钟实验 2.7 计数器实验 2.8 无符号十进制数加法实验 2.9 数据排序实验 2.10 单字节BCD码除法实验 2.11 查找相同个数实验 第3章硬件实验 3.1 P1口彩灯控制实验 3.2 数码管显示实验 3.3 顺序控制实验 3.4 8031和8155接口扩展与数码管显示实验 3.5 键盘、数码管显示综合实验 3.6 A/D转换实验 3.7 D/A转换实验 3.8 A/D与D/A转换综合实验 第4章89C51系列实验 4.1 顺序控制实验 4.2 数码管显示实验 4.3 键盘、数码管显示综合实验

4.4 A/D转换实验 4.5 D/A转换实验 前言 目前,51系列单片机在我国的各行各业得到了广泛应用,各大专院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。为了适应这一学习上的要求,国外厂家开发了多种实验、开发系统,但普遍存在集成度高,严重脱离实际的情况。作者集多年理论教学、实验教学、产品开发的经验,完全摒弃了以前各种实验设备的那种思维模式,重新开发出一种实验、开发系统,专从产品开发角度出发,安排各种硬件实验,并且做到每一个实验就是一个小产品,每个实验就是一个产品开发的过程,从单片机最小系统开始,逐步扩展功能,从单一功能到功能多样,从小到大,从简单到复杂,自成系统给人一种完整的学习思路,让学习者概念清晰、直观明了、易学易懂,特别是加强了硬件故障排除方法的指导,解决了学习者中普遍对硬件故障排除难的问题;其次是加强了软件调试的指导,提供了一些软件调试方法和步骤,帮助初学者很快入门,帮助熟练者更加深化。 本实验系统采用模块式设计,为各学校单片机的课程设计、学生的毕业设计、提供了硬件设备,该模块可反复使用、任意组合、方便经济,解决了各单位研究与实验经费不足的问题。特别在开发产品中更加适用,一个产品谈妥后厂家往往要求几天之拿出产品样机,你可用此系统很快拼装成一个产品样机,供编程人员仿真,同时进行印制板设计。若出现问题,硬件可及时修改、添加,一切开发成功后,再作印制板,一次成功,减少经费损失,缩短了开发周期,为产品开发提供了方便。 本实验指导书分四章:第1章,下载式实验系统的使用;第2章,软件实验;第3章,硬件实验;第4章,89C51单片机实验,特别第4章完全讲解的是一个产品开发的全过程,力求使学习者获得更大的收益。

相关文档
最新文档