当前位置:文档之家› 实验二P1口控制LED发光二极管

实验二P1口控制LED发光二极管

实验二P1口控制LED发光二极管
实验二P1口控制LED发光二极管

实验二 P1口控制LED发光二极管

一、实验目的

1、进一步熟练Proteus及Keil软件的基本操作

2、掌握8051单片机P1口的使用方法

3、掌握LED发光二极管的原理及使用方法

4、学习汇编程序的调试及仿真方法

二、实验电路

三、实验内容及步骤:

要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。

1、使用Proteus画出电路原理图

2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件

3、进行Protues与Keil uVision联动的相关设置:

4、在Proteus中仿真运行。

四、思考

1、将本实验的实验现象改为“不发光二极管循环移位”。

2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。

参考程序:

ORG 0

LJMP MAIN

ORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,A

LCALL DELAY

RL A

SJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123

DJNZ R5,$

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

实验三数码管静态显示实验

一、实验目的

1、进一步熟悉51系列单片机

2、了解8051单片机P0口的使用方法

3、掌握共阴极数码管的原理及使用方法

4、学习8051的编程、调试、编译、仿真。

二、实验电路

图3 数码管静态显示电路原理图

注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。

三、要求及步骤:

要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。

1、使用Proteus画出电路原理图

2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件

3、进行Protues与Keil uVision联动的相关设置:

4、在Proteus中仿真运行。

四、思考

1、为什么要将P0口各引脚通过电阻R3-R9接到电源?

2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?

3、怎样修改程序使数字以递减方式循环显示?

4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?

参考程序:

ORG 00H

LJMP START

ORG 30H

START: MOV DPTR,#TABLE

S1: MOV R4,#00H

S2: MOV A,R4

MOVC A,@A+DPTR

MOV P0,A

LCALL DELAY

INC R4

CJNE R4,#0AH,S2

SJMP S1

DELAY: MOV R5,#20 ;延时子程序

D2: MOV R6,#200

D1: MOV R7,#123

DJNZ R7,$

DJNZ R6,D1

DJNZ R5,D2

RET

TABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FH

END

实验四基本输入/输出实验

一、实验目的

1、进一步熟悉8051单片机并行I/O口的使用方法

3、掌握并行I/O口输入/输出操作的方法

4、学习8051的编程、调试、编译、仿真。

二、实验电路

图4 并行I/O口基本输入/输出

注:按钮要从元件库选择Switches & Relays类中的BUTTON。

三、要求及步骤:

要求:在按钮动作的控制下,将十六进制数字0-F循环显示在数码管上(每按一次按钮,显示的数字加1)。

1、使用Proteus画出电路原理图

2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件

3、进行Protues与Keil uVision联动的相关设置:

4、在Proteus中仿真运行。

四、思考

1、如何检测按钮是否按下?

2、怎样修改程序,可以使数字0-F在按钮控制下,以递减方式循环显示?

3、若在P0口接8个LED,如何实现每按一次按钮,点亮的LED左移一位(8个LED中只有一个点亮)?

参考程序:

ORG 00H

LJMP START

ORG 30H

START: MOV P1,#01H

MOV DPTR,#TABLE

MOV R4,#00H

CLR A

MOVC A,@A+DPTR

MOV P0,A

LOOP: MOV A,P1

ANL A,#01H

JZ LOOP

LOOP1: MOV A,P1

ANL A,#01H

JNZ LOOP1

INC R4

MOV A,R4

ANL A,#0FH

MOVC A,@A+DPTR

MOV P0,A

SJMP LOOP

TABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FH

DB 77H,7CH,39H,5EH,79H,71H,76H

END

实验五数据传送指令练习

一、实验目的

1、进一步掌握Keil软件的使用。

2、熟悉数据传送指令功能及使用。

二、实验内容

1、输入数据传送指令并单步执行输入的指令;

2、练习数据传送指令的基本应用。

三、实验步骤

1、数据传送指令的功能

1)输入如下程序:

ORG 0030H

MOV A,#0BBH

MOV DPTR,#0070H

MOVX @DPTR,A

MOV R0,#70H

MOV @R0,A

MOV A,#0CCH

XCHD A,@R0

SJMP $

END

2)观察DPTR、A、R0、内部RAM70H和外部RAM70H单元中内容并填入表中第一空行。

3)单步执行完上述程序,重新观察上述寄存器和存储单元中内容并填入表中第二空行。

4)分析程序运行结果,并把分析结果和运行结果进行比较。

2、PUSH指令对堆栈的影响

1)输入如下程序:

ORG 0040H

MOV A,#0AAH

MOV PSW,#0CCH

PUSH ACC

PUSH PSW

SJMP $

END

2)观察A、PSW、SP、07H、08H和09H单元中内容,并填入表表。

3)单步执行上述程序,重新观察上述寄存器和堆栈区中内容填入表中。

4)分析程序运行结果,并把分析结果和实验结果进行比较,看两者是否相同。

3、编写把A、PSW、DPTR中内容入栈保护并恢复的程序,并验证。

4、编写将内RAM的30H、40H单元内容相互交换的程序,并验证。

5、编程实现交换外RAM 1050H、1060H单元的数据,并运行验证。

四、实验总结:

1、堆栈操作的原则是什么?在程序设计中需要保护和恢复数据时应注意什么?

2、对内RAM、外RAM及ROM进行数据传送的指令,分别可使用何种寻址方式?

实验六算术及逻辑运算指令练习

一、实验目的

1、熟悉算术及逻辑运算类指令的功能。

2、掌握算术及逻辑运算类指令对标志位的影响。

3、掌握算术、逻辑运算指令的编程应用。

二、实验内容

1、求两个16位无符号二进制数的和

2、四位十进制数的加法

3、算术、逻辑运算指令的基本应用

三、实验步骤

1、调试程序:求两个16位数的和

设内RAM30H和32H开头的两个单元分别存放有两个16位无符号二进制数(低8位在30H 或32H单元,高8位在31H或33H单元),将和存放在30H单元开始的存储区。

ORG 0000H

LJMP MAIN

ORG 0030H MAIN: MOV A,30H

ADD A,32H

MOV 30H,A MOV A,31H ADDC A,33H MOV 31H,A SJMP $

END

要求:选择几组数据测试该程序,如有错,将其改正。

2、编程:四位十进制数的加法:

设内RAM中30H和32H开头的两个单元分别存放有两个四位十进制数的压缩BCD码(低8位在30H或32H单元,高8位在31H或33H单元),试编写程序求这两个十进制数的和,并将结果放在从34H单元开始的存储区(低8位在低地址单元)。

要求:测试、调试程序,并记录测试数据及正确运行结果

3、分别编写实现如下功能的程序并运行、验证。

(1)外RAM1000H~1020H单元中8位无符号二进制数求和,结果存放在内RAM30H单元开始的存储区。

(2)外RAM的1000H和2000H单元中分别放着一个8位无符号二进制数X和Y,计算3X+4Y,并将结果存入内RAM的30H单元和31H单元。(低8位在30H单元)。

(3)将两位十进制数的压缩BCD码转换成ASCII码。(源数据在内RAM 20H单元,结果存放在内RAM30H开始的两个单元,低字节在31H单元)

(4)将内RAM 从30H开始的20个单元全部清零。

四、实验总结:

1、算术加、减法指令如何影响PSW中的有关标志位?

2、如何实现两个BCD数的减法?

实验七汇编语言程序设计

一、实验目的:

1、练习常见的简单的分支、循环程序结构的设计方法。

2、练习常见的程序调试方法。

二、实验内容:

1、编写程序,将内RAM的30H~40H单元存放的单字节数据传送到外RAM中以1000H为起始地址的存储区。

在内RAM的30H-40H随意输入数据,调试并运行程序,观察结果。

2、编写程序,查找外部RAM的1020H-1030H单元中是否有0AAH这个数,如果有,将内RAM的30H单元置为01H,否则将30H单元置为00H。

在外RAM中输入数据,运行程序,观察结果。

3、在内部RAM30-5FH单元存放着一组无符号数,编写程序查找出这些无符号数的最大值,将结果存放于60H单元。

在相关单元中输入一些数据,运行程序,观察实验结果。

4、内RAM从40H单元开始的10个单元中存放着单字节带符号数,编程分别统计出正、负数的个数,并存入50H、51H单元中。

三、实验要求:

1、实验前充分预习,写出所需程序

2、上机将程序调试正确,并分析程序运行结果

四、实验报告要求:

写出调试正确的程序。

五、思考题:

1、汇编语言程序如何测试和调试?

2、在子程序调用和返回指令执行时,PC值如何变化?

实验八外部中断实验

一、实验电路(如图3.3.45所示)

图3.3.45 外部中断实验电路原理图

二、实验目的

1、熟悉51系列单片机

2、了解AT89C51 P1口、P3口的使用方法

3、了解键盘的原理及使用方法

4、了解发光二极管的原理及使用方法

5、掌握外部中断的原理及使用方法

6、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件INT.HEX

三、实验器材

1、单片机主板

2、单片机扩展板

3、连接导线若干

四、实验注意事项

1、单片机主板、单片机扩展板接+5V

2、因J14为有极性排阻,故单片机扩展板一定要连GND和VCC,否则发光二极管不亮

3、图中粗线部分为要求学生自己连线部分

五、实验现象

正常情况下8个LED发光二极管循环显示,延迟时间为1秒,当有按键按下即产生外部中断时,8个LED发光二极管全亮,延迟时间为2秒。

六、思考

请同学们自己试一下外部中断0。

实验定时器中断

一、实验电路(如图3.3.46所示)

图3.3.46 定时器中断电路原理图

二、实验目的

1、熟悉51系列单片机

2、了解AT89C51 P1口的使用方法

3、掌握定时器、计数器的原理及使用方法

4、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件INT.HEX

三、实验器材

1、单片机主板

2、单片机扩展板

3、连接导线若干

四、实验注意事项

1、单片机主板、单片机扩展板接+5V电压

2、因J14为有极性排阻,故单片机扩展板一定要接GND和VCC,否则LED发光二极管不亮

3、图中粗线部分为要求学生自己连线部分

五、实验现象

LED发光二极管循环显示,延迟时间为1秒。

六、思考

将LED发光二极管的循环延迟时间设置的更长或更短。

实验数码管动态显示实验

一、实验电路(如图3.3.33)

图3.3.33 数码管动态显示电路原理图

二、实验目的

1、熟悉51系列单片机

2、了解AT89C51 P1口、P2口的使用方法

3、学习驱动芯片ULN2003A的原理及使用方法

4、学习驱动芯片74HC245的原理及使用方法

5、掌握数码管(共阴、共阳两种)的原理及使用方法

6、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件LEDDT.HEX

三、实验器材

1、多功能实验板

2、单片机扩展板

3、连接导线若干

四、实验注意事项

1、多功能实验板、单片机扩展板均采用+5V电压

2、因图中将74HC245的GND和VCC引脚隐藏,故学生自己连线时一定要将GND和VCC连上,否则芯片不工作

3、图中粗线部分为要求学生自己连线部分

五、实验现象

1、显示数字1—6。

六、思考

1、显示其它数字和字符。

一、实验电路(如图3.3.34所示)

图3.3.34 矩阵键盘实验电路原理图

二、实验目的

1、熟悉51系列单片机

2、了解AT89C51 P1口、P2口的使用方法

3、了解共阳数码管的原理及使用方法

4、掌握矩阵键盘的原理及使用方法

5、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件KEY.HEX

三、实验器材

1、多功能实验板

2、单片机扩展板

3、连接导线若干

四、实验注意事项

1、多功能实验板、单片机扩展板接+5V电压

2、数码管为共阳数码管,公共端接+5V

3、图中粗线部分为要求学生自己连线部分

五、实验现象

1、ENTER键为全亮键,ESC键为全灭键,其它数字键为按哪一位数字键,在数码管上显示其数字。

一、实验电路(如图3.3.43)

图3.3.43 液晶LCD电路原理图

二、实验目的

1、熟悉51系列单片机

2、了解AT89C51 P1口、P2口的使用方法

3、了解电位器的使用方法

4、掌握液晶模块LCD的原理及使用方法

5、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件LCD.HEX

三、实验器材

1、单片机多功能实验板

2、单片机扩展板

3、连接导线若干

四、实验注意事项

1、单片机扩展板、单片机多功能实验板均采用+5V电压

2、单片机多功能实验板接GND和VCC时一定不能接反,否则会烧毁LCD液晶模块

3、图中粗线部分为要求学生自己连线部分

五、实验现象

1、显示“CS&S”字样。

六、思考

1、请同学们在液晶模块上显示“HOW ARE YOU”。

实验 交通灯控制(定时器延时法)

一、实验目的

1. 进一步理解单片机内部定时器/计数器的工作原理和使用方法。

2. 学习模拟交通灯控制的方法。

3. 学习数据输出程序的设计方法。

4. 学习中断处理程序的编程方法。 二、实验内容

用CPU 的P1口输出控制信号,控制六个LED 灯(红,绿,黄),模拟交通灯管理。

三、实验电路连接

P1.0 ●-----------------------●

P1.1 ●-----------------------● P1.2 ●-----------------------● P1.3 ●-----------------------● P1.4 ●-----------------------● P1.5 ●-----------------------● LED5 四、实验说明

l. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始为状态0。 状态0:东西红灯,南北红灯;然后转入

状态1:南北绿灯通车,东西红灯;过一段时间转入

状态2:南北绿灯闪几次转黄灯亮,延时几秒,东西仍然红;再转入 状态3:东西绿灯通车,南北红灯;过一段时间转入

状态4:东西绿灯闪几次转黄灯亮,延时几秒,南北仍然红灯;最后循环至状态1。 2. 各用一组红、黄、绿色LED 分别表示南北方向和东西方向。

3. 由定时器来产生通车延时时间,时间长短1秒以上(由同学自己确定)。

提示:内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ ,本程序定时器工作于方式1(16位方式)时,最大定时时间为:

216*1μs=65536μs=65.536ms

所以需要配合软件记数。如要延时2秒,则需要T0中断32次,所 用时间为

65536*32=2097120μs ≈2s

因此在T0中断处理程序中,要判断中断次数是否到32次,若不到32次,则只使中断次数加1,然后返回,若到了32次,定时2秒时间到。 4. 用软件延时方法产生“闪”延时时间。 五、实验仪器和设备

PC 机、W A VE 软件、E2000/S 仿真器+POD8X5X 仿真头、MULT1A 用户板、实验板、开关电源等。

六、参考程序框图(见下页)

主程序框图

中断处理程序框图

51单片机P1口输入输出实验实验报告

实验一P1口输入输出实验 一实验目的 1 掌握P1口作为I/O口时的使用方法。 2 理解读引脚和读锁存器的区别。 二实验原理 由 AT89C51 组成的单片机系统,通常情况下 P0 口分时复用作为地址、数据总线, P2 口提供 A15-A8 即高 8 位地址, P3 口用作第二功能,只有 P1 口用作 I/O 口。 P1 口是 8 位准双向口,它的每一位都可独立地定义为输入或输出。既可作为 8 位的并行 I/O 口,也可作为 8 个不同的输入输出端。 P1 口的结构如图 2.1 所示,当其工作在输入方式时,对应锁存器必须先写 1 ,才能正确地读到引脚上的信号,否则,若对应锁存器的值为 0 ,执行读引脚指令时,读到的结果永远为 0 。每个 I/O 端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以 I/O 端口为源操作数的指令,如 MOV C , P1.3 ,而读锁存器指令一般为“读 - 修改 - 写”指令,如 ANL P1.3 , C 指令,请同学们在实验中体会。图 2 中, P1.2 作为输出口, P1.3 作为输入口。

三实验内容与要求 1.编写程序实现当P1.3为低电平时(SW1闭合),发光管亮;P1.3为高电平时发光管灭。 修改程序在执行读P1.3之前,先执行CLR P1.3,观察结果是否正确,分析在第二种情况下程序为什么不能正确执行,理解读引脚和读锁存器区别。 四实验内容 实验程序: ORG 0000H MAIN: MOV SP,#60H ; 设置堆栈指针SP为60H MOV P1,#0FFH ;当P1口用作输入时,所有位对应的锁存器必须先置1 LOOP: ;CLR P1.3 MOV C,P1.3 ;读P1.3 JC LIGHT CLR P1.2 ;LED灭 SJMP LOOP LIGHT: SETB P1.2 ;LED 亮 SJMP LOOP RET END 若在执行读P1.3之前,先执行CLR P1.3,观察结果将会不正确。 五实验结论 1、当P1口用作输入时,所有位对应的锁存器必须先置1 2、在执行读P1.3之前,先执行CLR P1.3,观察结果不正确,程序不能正确执行,因为系统读取的是锁存器的状态。 3、读引脚和读锁存器区别:第一种方式是将引脚作为输入,那是真正地从外部引脚读进输入的值,第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读引脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。

键盘与LED显示实验

实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。

5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED 显示器,学生可选用任一位LED 显示器,只要按地址输出相应的数据,就可以显示所需数码。 显示字形 1 2 3 4 5 6 7 8 9 A b C d E F 段 码 0xfc 0x60 0xda 0xf2 0x66 0xb6 0xbe 0xe0 0xfe 0xf6 0xee 0x3e 0x9c 0x7a 0x9e 0x8e 六、实验原理图 01e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1GND2DS29 LG4041AH 234 567 89A B C D E F e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1 GND2DS30 LG4041AH 1 2 3 4 5 6 7 8 JP4112345678 JP4712345678JP42 SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH A C B 12345678 JP92D 5.1K R162 5.1K R163VCC VCC D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 U36 8255 D0D1D2D3D4D5D6D7WR RD RST A0A1PC5PC6PC7 PC2PC3PC4PC0PC1CS 12345678JP56 12345678JP53 12345678 JP52 PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7 (8255 PB7)(8255 PB6)(8255 PB5)(8255 PB4)(8255 PB3)(8255 PB2)(8255 PB1)(8255 PB0) (8255 PC7)(8255 PC6)(8255 PC5)(8255 PC4)(8255 PC3)(8255 PC2)(8255 PC1)(8255 PC0) (8255 PA0) (8255 PA1) (8255 PA2) (8255 PA3) (8255 PA4) (8255 PA5) (8255 PA6) (PA7) I N T 0(P 3.2) I N T 0(P 3.3) 七、连线说明

-单片机报告第一个实验p1口输入输出实验

电工电子实验报告 课程名称:单片机原理及接口技术 实验项目名称:P1口输入、输出实验 实验学生班级:D自集成111 实验学生姓名:吴弟 实验学生学号:233110138 同组学生姓名: 实验指导老师:曾宪阳屈波 孙来业陆红伟 实验时间:2013.4.1 实验地点:B302 工业中心

预习报告 实验目的: 1、学习P1口的使用方法。 2、学习延时子程序的编写和使用。 3、理解读引脚和读锁存器的区别。 主要实验仪器: 1、计算机一台 2、实验箱一台 实验原理及主要工作: 1、P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS 管导通,读入的数据是不正确的。 2.8051延时子程序的延时计算问题,对应程序 DELAY: MOV R6,#0H MOV R7, #0H DELAYLP:

DJNZ R6,DELA YLP DJNZ R7,DELA YLP RET 查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为: (256×255+2)×2×12÷6 ≈261ms 实验电路与连线: 实验2 P1口输入输出 P1.0 ●———●LED0 K0 ●———●P1.0 P1.1 ●———●LED1 K1 ●———●P1.1 P1.2 ●———●LED2 K1 ●———●P1.1 P1.3 ●———●LED3 P1.3 ●———●L5

根据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.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

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++)

P1口输入输出实验

实验一P1 口输入输出 一.实验目的 (1)进一步熟悉51单片机外部引脚线路连接; (2)验证常用的51指令; (3)学习简单的编程方法; (4)掌握单片机全系统调试的过程及方法; (5)学习P1 口的有关功能作用以及使用方法。 二?实验说明 P1 口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。作为输出口时,不需要在片外接上拉电阻,P1 口“读引脚”输入时,必须先向锁存器写1; 三?实验内容 P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序 读取开关状态,将此状态,在发光二极管上显示出来 四?实验原理 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。循环时间由定时器控制。 五?实验流程 ORG 0000H ;程序入口 AJMP RIGHT ;跳向标号RIGHT处 ORG 0030H ;程序

RIGHT: MOV R0,#08H ;置移位次数

MOV A,#0FFH ;置全 1 CLR C ;将Cy 清零 RIGHT1: RRC A ;由于进位Cy=0 ,所以带进位的循环右移会出现灯的亮灭 MOV P1,A ;输出至P1 口,控制LED CALL DELAY ;调用延时子程序 DJNZ R0,RIGHT1 ;R0-1,不为0则转移到标号 RIGHT1处 AJMP RIGHT ;绝对转移至RIGHT 处 ?***************************************************************************** 5 ; /*延时子程序*/ ?***************************************************************************** DJNZ R5,DELAY1 ;R5-1,不为 0 则转移至 DELAY1,执行 2*10us RET ;退出子程序执行 END 七?硬件设计 (1) P1 口某一 I/O 口线反转输出电路 (2) P1 口输出电路 DELAY: MOV R5,#10 DELAY1: MOV R6,#50 DELAY2: MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY2 ;R6-1,不为0则转移至 DELAY2,执行2*200*10us H-5V +5V Vcc P1.0 Pl 1 EA XI PL 2 Pl .3 Pl XS Pl.5 Pl.6 Pl .7 R.ST Vss ;使用不停的跳转来实现延时, 30 P 80CS1 LED 360fi + 5V

单片机实验报告——LED灯控制器

《微机实验》报告LED灯控制器 指导教师: 专业班级: 姓名: 学号: 联系方式:

一、任务要求 实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。 实验内容:利用C8051F310单片机设计一个LED灯控制器 主要功能和技术指标要求: 1. LED灯外接于P0.0端。 2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。 3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 4. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 使用按键(KINT)控制LED灯闪烁模式的切换。 二、设计思路 C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,单次定时最长可以达到的时间为 1.027s,可以满足0.5Hz是的定时要求。 基础部分: 给TMOD赋值10H,即选用T1定时器采用定时方式1,三种频率对应的半周期时间为0.25s、0.5s、1s。计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。 要使闪烁持续10s,三种模式需要各循环40、20、10次。 用LOOP3:MOV C,PSW.5 ;PSW.5为标志位,进定时器中断后置一 JNC LOOP3 代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。 为了减少代码长度,可以采用循环结构,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1、TL1赋值时同理。这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。

STM32 汇编语言,按键控制LED移动实验

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;按键控制LED移动实验;;;;;;;;;;;;;;;;;;;; ;;8个LED接在PE口(PE[0..7]);;;;;;;;;;;;;;;;;;;;;;;;; ;;按下按键则LED循环向右跑一格;;;;;;;;;;;;;;;;;;;;;;;; ;;2011-5-3 by 追梦;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BIT2 EQU 0X00000004 BIT6 EQU 0X00000040 BIT8 EQU 0X00000100 GPIOE EQU 0X40011800 ;GPIOE 地址 GPIOE_CRL EQU 0X40011800 ;低配置寄存器 GPIOE_CRH EQU 0X40011804 ;高配置寄存器 GPIOE_ODR EQU 0X4001180C ;输出,偏移地址0Ch GPIOE_BSRR EQU 0X40011810 ;低置位,高清除偏移地址10h GPIOE_BRR EQU 0X40011814 ;清除,偏移地址14h IOPEEN EQU BIT6 ;GPIOE使能位 IOPAEN EQU BIT2 ;GPIOA使能位 KEY EQU BIT8 ;按键在PA.8 GPIOA EQU 0X40010800 GPIOA_CRH EQU 0X40010804 ;高配置寄存器 GPIOA_IDR EQU 0X40010808 RCC_APB2ENR EQU 0X40021018 STACK_TOP EQU 0X20002000 AREA RESET,CODE,READONL Y DCD STACK_TOP ;MSP主堆栈指针 DCD START ;复位,PC初始值 ENTRY ;指示开始执行 START LDR R1,=RCC_APB2ENR LDR R0,[R1] ;读 LDR R2,=IOPEEN ORR R0,R2 ;改 LDR R2,=IOPAEN ORR R0,R2 ;改 STR R0,[R1] ;写,使能GPIOA,E时钟 ;PE[0..7] 8个引脚均设置成推挽式输出 LDR R0,=0x33333333 LDR R1,=GPIOE_CRL STR R0,[R1] ;PA.8--KEY 浮空输入 MOV R0,#0X04 LDR R1,=GPIOA_CRH

LED调光实验报告

LED调光实验报告 高亮度发光二极管(LED)在各种领域应用普及,并要求LED具备有调光功能。在现在的几种调光技术中,从简单的可变电阻负载到复杂的脉冲宽度调制(PWM)开关,每一种方法均有其利弊。PWM调光的效率最高,电流控制也最精准。本文以LED驱动器LM3405为例,论述LED在调光时的特性,例如亮度与正向电流的关系、波长的变化(色移)和控制器的工作周期限制等。 由于LED的功率低于1 W,所以可用任何类型的电压源(开关器、晶体管)和串串联电阻建构一个电流源。对于少数光线输出端电流的改变而造成亮度和颜色的变化,人的肉眼是不容易察觉出来。不过,一旦将多个LED串联,该稳压器便必需担当电流源的角色。这是因为LED的正向电压VF会随正向电流IF变化,图1是LED波长随着正向电流IF变化图,而该变化对于每个LED都不相同的,即使是同一批产品也有区别。在较大的电流下,光线的强度变化通常约为20%。而 LED制造商一般都会采用较大的VF范围来增加亮度和颜色,因此上述情况尤其突出。然而,除了电流外,正向电压还会受到温度影响。假如只采用镇流电阻器,则光源的颜色和亮度变化很大,而唯一可确保色温稳定的方法是稳定前正向电流IF。 大部分设计人员只习惯为LED设计稳压器,但在设计电流调节器方面显然有不同的要求。电压输出必须要配合固定的输出电流。虽

然在大多数应用中, LED驱动器的输出电流可容许误差±10%,而直流电流的输出纹波更可高达20%,一旦纹波超出20%,人的肉眼便会察觉到亮度的变化,假如输出纹波进一步增加到40%,肉眼就无法承受。 一般而言,电流调节器的设计都需使用比较大的电感以使电感电流IL的变化少于20%。这里可采用LM3405,即使电感由于1.6 MHz 的高开关频率而变得较小,仍可发挥很好的效用。LM3405性能参数如下: 控制方法: 封装:电流模式 TSOT-6 最大输入电压: 15V 应用:工业照明 1A 1~22uF 4.7~10uH 驱动电流:输出电容:电感: 3、脉冲宽度调制调光技术

06 12864LCD显示计算器键盘按键实验

目录 1 课程设计概述和要求 (1) 1.1 课程设计要求与任务 (2) 1.2 课程设计思路 (2) 1.3 课程设计需要配置的环境 (3) 2 系统设计 (3) 2.1 设计框图 (3) 2.2 元件解析 (3) 2.2.1 LCD12864芯片……………………………………………………………4 2.2.2 AT89C51芯片 (5) 2.2.3 其他部件 (6) 2.2.4 电路分析 (7) 3 软件设计 (12) 3.1 程序流程图 (12) 3.2 程序代码 (12) 4 系统的仿真与调试 (13) 4.1 硬件调试 (13) 4.2 软件调试 (14) 4.3 软硬件调试 (14) 5 总结 (14) 附录1:程序代码 附录2:12864LCD显示计算器键盘按键实验Proteus仿真图

1 课程设计概述和要求 1.1 课程设计任务与要求 设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。 设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键 2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器 设计计算器键盘按键,系统主要包括硬件和软件两部分。重点就 是各部分硬件的连接设计以及程序的编写。本章讲述的就是系统 硬件的设计,其中包括各模块的器件选择和电路设计。将计算器 按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显 示于12864LCD液晶显示屏上。 1.2 课程设计目的思路 1、先把与题目有关的芯片资料找到,熟悉一下芯片资料 2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。 3、分析一下此程序的各部分的功能,各零件的工作原理。 4、对程序进行调试,分析调试结果,观察并得出结论。 1.3 课程设计需要配置的环境 1、一台主机,一台显示器 2、Keil uVision3/Keil uVision4 应用程序软件 3、ISIS 7 Professional 仿真软件 4、老师交给的仿真电路图,及案例 5、纸张,以及一些参考资料 2 系统设计 2.1.设计框图 框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。同时罗列出需要主要使用到的各个器件,以方面系统开发中器件的选取。通过框图设计,让设计者从整体上把握系统的开发。 12864LCD显示计算器键盘按键实验设计框图如下所示

电工LED灯手工制作实验报告

浙江农林大学 天目学院 实习(课程设计)报告 课程电工及电子技术实习 系(部)工程技术系 指导老师 专业班级汽车服务101班 学生姓名 学号 一、原理图及原理说明

LED(Light Emitting Diode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片, 晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P 型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。 二、元器件清单 330欧姆电阻一个 105/400V电容一个开关一个

390欧姆电阻一个发光管一个整流二极管五个 发光二极管 18个开关按钮一个压簧一个 充电按钮一个充电插头一个插头支架一个 开关线路板一个充电线路板一个自功丝 4个 导线 8根 led线路板一个电瓶一个 镜片一个反光杯一个灯罩一个 装饰片一个外壳一套金属软管一个 三、调试 为了方便调试,LED 和电池夹可暂不安装,待调试结束后再另行安装。小夜灯控制电路和电源电路相互独立,这两部分电路的调试也应分开进行,以免彼此牵扯而影响电路测试和故障判断。 控制电路调试时先将 LED 的连接线按电路原理图焊接在控制电路板上,再在控制电路板上两电源输入端以及 RXD 和 TXD 端各焊接 1 根导线,分别与电源和编程电路相连。电路连接妥当后仔细检查几遍,确认无误后即可上电将程序下载至单片机内,之后重新上电对按键功能和 LED 状态进行全面测试。 电源电路调试时,在电源电路板上两电源输入端各焊接 1 根导线与电源相连,这里同样使用稳压电源来调试。检查电路时要特别注意以上几点。与调试控制电路一样,功耗问题不能轻易忽略,调试时要有足够的耐心,力争将功耗降至最低,这一点对调试采用电池供电的电路至关重要。四、心得体会 这是大学学习阶段一次非常难得的理论与实际相结合的机会,通过这次的设计,我摆脱了单纯的理论知识学习状态,.通过试验进一步理解和消化了书本知识,分析每个语句的含义,运用所学知识进行简单的程序设计。在制作过程中,不断调试和修改序,提高了对单片机的应用能力,分析问题和解决问题的能力。实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际问题的能力,同时也提高我查阅文献资料、设计手册以及设计规范等其他专业能力水平,提高是有限的但提高也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好的被知识武装了起来,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力。顺利如期的完成本次实习给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,通过对单片机的系统学习。对一些 LED的设计做了一些必要的改进。同时对自己的改进也做了真实的仿真。达到了预期的目的。但是在改进的过程里也发现了自己的很多的不足。这会在以后的学习生活里不断提高,逐步完善自己。

实验三 P1口亮灯实验

实验三、P1口亮灯实验 一、实验目的: a)掌握keil及proteus的联合仿真方法 b)掌握并口的操作方法 c)掌握延时程序的编写 二、实验内容: P1口做输出口,接八只发光二极管(低电平时发光),P0口接七段数码管,编 写程序,使发光二极管循环点亮。请根据系统电路图,编写相应的程序并给予适 当的注释。 (一)实验要求: z基本要求: a)每个二极管每次点亮持续的时间约为一秒钟,假设使用的系统时钟频率为 12MHZ; b)其中时间控制可以利用延时程序实现,也可以利用定时器实现; c)正确连接电路,编写程序,调试运行,使发光二极管能够循环点亮; d)通过Proteus7软件观察实验结果。 z提高要求:能够通过按键控制彩灯循环的模式。 (二)实验基本步骤: 1.打开Keil,新建工程:Project/New Project,输入工程名,并保存 2.选项选择器件:Atmel 的89C51 3.新建程序文本,并另存为该文件为汇编文件格式: (1)“File/New”,(2) File/Save As/键入欲使用的文件名及后缀名,即“文件名.asm”。再单击“保存” 4.添加该文件该工程:回到编辑界面后,单击“Target 1”前面的“+”号,然后 在“Source Group 1”上单击右键,单击“Add File to Group ‘Source Group 1’” 选择刚才新建的汇编文件。 5.设置工程该的options选项:projec / options for project,(1)output 选项卡中Create HEX File 前打勾;(2)Debug 选项卡选择use“Proteus VSM simulator”。 6.用proteus的ISIS打开电路图P1.DSN 7.将proteus 里DEBUG /use remote debug monitor打勾 8.在keil的汇编文件中输入程序代码,并编译,调试。(1)写完代码后单击“Project” 菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成 功后(0个errors),(每次修改程序后都要重新编译下,才能生效)。(2)再单击 “Debug”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷 键Ctrl+F5),点击RUN进行运行。 9.观察运行结果:在proteus中点击运行按键,观测二极管是否循环点亮。 基本要求的参考代码 ORG 0000H MAIN LJMP

实验一 P1口亮灯实验

实验一P1口亮灯实验 一、实验目的 (1)熟悉编程和程序调试 (2)学习P1口的使用方法; (3)学习延时子程序的编写。 二、实验内容 P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 三、实验预备知识 (1)P1口为准双向口,可定义为输入,也可定义为输出。 (2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHZ)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。 四、程序框图 五、实验步骤 实验步骤说明: 本实验需要用到单片机最小应用系统和十六位逻辑电平显示模块。 用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管点亮。 1.使用单片机实验箱,用扁平数据线将单片机P1口与LED灯相连。P1.0~P1.7用插针连至L1~L8。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(实验(一)),进行编译,直到编译无误。生成hex文件。 5.打开实验板总电源,将hex文件下载到实验板内,观察发光二极管显示情况。 参考例子: (1)点亮板子上的第一个灯LED1 (2)点亮板子上的LED1、LED3、LED5、LED7灯,与LED2、LED4、LED6、LED8灯交替

闪烁

(3)流水灯:从LED1---LED8依次点亮参考程序: 1) #include void main() { P1=0xfe; } 2) #include #define uint unsigned int #define uchar unsigned char void delay(); void main() { while(1) { P1=0xaa; delay(); P1=0x55; delay(); } } void delay() { uint x,y; for(x=100;x>0;x--) for(y=600;y>0;y--) ; } 3) #include #include #define uint unsigned int #define uchar unsigned char uchar temp,num;

LED灯泡设计与制作实验报告

西安邮电大学 专业课程设计报告书 系部名称: 学生姓名:) 专业名称: 班级: 实习时间:2013年6月3日至2013年6月14日

LED灯泡设计与制作实验报告 【一】项目需求分析 课程设计分为三个独立模块 一、Tracepro学习及操作,完成LED建模与仿真; 二、LED灯泡驱动电路反向设计(完成驱动的原理图设计和PCB版的生成及仿真); 三、LED球形灯泡焊接制作。 【二】实施方案及本人承担的工作 实施方案: 一、第一步骤是安装tracepro软件,并了解其页面基本情况。 第二步骤是熟悉光学仿真软件Tracepro,完成LED灯珠的光学仿真设计。 第三步骤是掌握LED灯珠设计,并了解实际操作过程原理以及LED二次光学设计基本原理。 二、通过分析现有LED驱动电路,对其进行反向设计,画出其驱动电路,并理解其实现原 理。完成LED驱动电路原理图,并仿真得出其结果 三、焊接完成一个LED灯泡,并能点亮。 本人承担的工作: 在本次专业课程设计中,我和我的搭档从一开始就认真对待。所以每一部分的完成都是我们共同努力的结果。从最开始的LED灯外形的绘制,LED灯珠的光学仿真设计,驱动电路的设计,LED驱动电路原理图,PCB原理图并仿真,我们俩都有完成各自的,在之后的交流和共同学习下完成最好的一份。LDE灯的焊接是我们两共同努力完成的。

【三】程序框图 【四】实验结果 首先我们利用Tracepro光学仿真软件制作出了灯罩的实体图以及LED灯珠仿真,并实现了其光学仿真;其次用Protel 99SE软件制作出了驱动电路原理图以并生成PCB板然后做了仿真;最后在了解了LED灯的工作原理,掌握了它的驱动电路之后,我们焊接了自己的LED灯,并使其点亮。

按键及显示实验

一、实验原理及电路 1、LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。, 2、由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且还自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。 实验电路图 二、功能说明 设计并实现一4×4键盘的接口,键盘与1602显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送1602显示,键盘采用4×4键盘。将键盘进行编号记作0—F当按下其中一个按键时将该按键对应的编号在一个1602显示出来,当按下下一个按键时便将这个按键的编号1602上显示出来 实验框图

四、实验代码 #include #define uchar unsigned char #define uint unsigned int #define lcd_data P3 sbit lcd_EN=P2^2; sbit lcd_RW=P2^1; sbit lcd_RS=P2^0; uchar key,a; uchar sys_time1[]="good"; uchar sys_time2[]="morning!"; uchar sys_time3[]="play"; uchar sys_time4[]="basketball!"; uchar sys_time5[]="study"; uchar sys_time6[]="hard!"; unsigned char code key_code[]={ 0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xB7,0x77 }; void delayms(uint ms) { uchar t; while(ms--) { for(t=0;t<120;t++); } } void delay_20ms(void) { uchar i,temp; for(i = 20;i > 0;i--) { temp = 248; while(--temp); temp = 248; while(--temp); } } void delay_38us(void) { uchar temp;

LED小灯实验报告

led流水灯的设计报告 课程名称: led流水灯设计学院:大数据与信息工程学院专业:姓名:学号:年级:任课教师: 一、实验的背景和意义 单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把cpu随机存储器ram、只读存储器rom、多种输入输出口、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的应用。大致可以分为以下几个范畴: 1、在智能仪器仪表上的应用,例如精确的测量设备;2、在工业控制中的应用,例如用单片机可以构成形式多样的控制系统,与计算机互联网构成二级控制系统等;3、在家用电器中的应用,可以从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电话对讲机等;4、在医用设备中的应用,例如医用呼叫机、各种分析仪、超声诊断设备及病床呼叫系统等等;5在各种大型电器中的模块化作用,如音乐集成单片机,看是简单的功能,微缩在电子芯片中,就需要复杂的类似于计算机的原理。 本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的i/o引脚。系统已采用mcs —51系列单片机为中心器件来设计led流水灯系统,实现led左循环显示,并实现循环的速度可调。二、设计目的 1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2.掌握汇编语言程序和c语言程序设计方法。 3.培养实践技能,提高分析和解决实际问题的能力。三、设计任务及要求 1.用个发光二极管作为显示电路 2.实现led动态显示 3.能连续循环显示 四、设计思路 led流水灯实际上是一个带有八个放光二极管的单片机最小应用系统,即为由晶振led 灯、电阻、电容器、电源等电路和必要的软件组成的单个单片机。 如果要让接在p1.0口的led1亮起来,那么只需要把p1.0口的电平变为低电平就可以了;相反,如果要让接在p1.0口的led1熄灭,那么只需要把p1.0口的电平变为高电平就可以了;同理,接在p1.1—p1.7口的其他7个led的点亮的熄灭的方法同led1。因此,只要使接在单片机上的八个led灯在接通电源后除了最右端一个其余都亮,一秒后倒数第二个熄灭其余都亮,如此循环往复,就可以达到流水的效果。 在此我们还需注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令时的时间很短,我们在控制二极管亮灭的时候应该延迟一段时间,否则我们就看不到“流水”的效果了。 五、模块介绍 采用at89c51作为主控芯片,将p1分别接8个led实现显示,采用汇编语言编程和c 语言实现。方案框图如下: 图2.1 六、元件清单 硬件设计主要是介绍构成此led流水灯单灯左移电路的硬件,对原理图、电阻电容模块的主要原件,及电路设计加以解释说明,模块化的加以说明,才不会相互混淆便于准确的说明。 at89c51单片机简介 1、主要特点有: at89c51是4k字节闪速存储器,128字节内部ram,32个i/o口线,2个16位定时器/

实验五(硬件实验二) 定时器控制P1口亮灯实验 (1)

实验五 定时器控制P1口亮灯实验 一、实验目的 1.熟悉MCS -51定时/计数器的初始化编程方法,掌握根据延时要求计算定时器初值的方法。 2.理解定时器溢出中断的概念,掌握中断服务程序的编程方法。 3. 学习并行口的使用方法。 二、实验项目 1. 根据要求在单片机实验箱上接线。 2. 使用上位机(PC )按要求编制实验程序。 3. 调试实验程序,观察输出结果。 三、实验设备与仪器 1.DVCC 或 Dais 实验箱 1台 2.PC 机 1台 四、实验原理 实验电路原理图如图4-1所示,通过编程使用8051内部的定时器T0计时,当时间到(定时/计数器溢出)时,往并行口P1送数据,点亮外部扩展的LED 小灯。程序流程图如图4-2所示。 图4-1 电路原理图 (a ) 共阳极接法 (b )共阴极接法

图 4-2 实验程序框图 五、注意事项 1.接线时必须关闭实验箱电源。 2.不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 3. Dais 实验箱(大箱)上的LED小灯是共阳极接法,当输出为低电平(逻辑0)时灯 被点亮;而DVCC实验箱(小箱)上的为共阴极接法,当输出为高电平(逻辑1)时点亮。 4. 如使用Dais实验箱,请先检查CPU选择开关是否在51档,与PC通讯速率开关设置 为多少。 5. 如使用DVCC实验箱,按“复位键”后再按下“PCDBG”方可实现与系统的连接。 6.实验箱上,只需把连线从P1口端接到LED小灯模块的接线口即可, 74LS244、电阻 等元件的接线已布在实验箱底板上。 六、实验说明及操作步骤

实验二 P1口输入、输出实验

在开始实验二之前,先在实验一(认真分析实验一的代码)的基础上实现如下花型(0表示灯亮,1表示灯灭): 花型之二:即每次亮灯两个进行移动 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 花型之三(跑马灯):1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

实验二P1口输入、输出实验 一.实验要求 1、P1口做输出口,接共阳七段显示器,编写程序,显示0到9中的任意一个数字。 2、P1口做输出口,接共阳七段显示器,编写程序,循环显示0到9(延时程序段可以使用实验一种的程序段)。 3、P1口做输入口,接四个开关,编写程序读取开关状态,将此状态在四个发光二极管上显示出来。 二.实验目的 1、学习P1口的使用方法。 2、学习延时子程序的编写和使用。 三.实验电路及连线(见附件) 四.实验说明 1、P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS 管导通,读入的数据是不正确的。 2、延时子程序的延时计算问题(晶振频率为12MHz,请在实验报告中分析如何延时200ms 的)对于程序 DELAY: MOV R5,#20 ; 延时200ms D2: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET 五.实验程序(见附件)

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