3.1.1 硬件电路

硬件电路如图3.1所示。AT89S51是MCS-51系列单片机中的一种,通常采用40脚DIP封装, 1脚~8脚是4个并行输入/输出端口(P0口、P1口、P2口、P3口)中的一个,称为P­1­口,8条口线用P1。0~P1。7表示,这8个引脚均可带最大20mA灌电流负载,可以直接驱动发光二极管,图示电路中D0~D7为8只LED,各经300Ω电阻限流后接在+5V电源与P1端口之间。图示电路中18、19脚所接晶振和电容与单片机内部电路组成振荡器,为单片机提供工作时钟。9脚所接RC电路构成单片机上电复位电路,单片机只有经过复位才能开始执行程序。

图3.1 AT89S51单片机P1口外接8只LED发光二极管

工作原理

当P1。0~P1。7中的某端口为低电平时,对应的发光二极管亮,为高电平灭。我们只要控制P1口各位的电平状态,就可以控制8只LED的亮与灭。例如使(P1)=01010101B=55H, D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭,从效果上看亮与灭是相间隔的;反之,使(P1)=10101010B=AAH,则另外4只LED亮,若反复以一定时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。

3.1.2 控制程序

实现上述8只LED发光二极管控制的程序非常简单,可以用不同的指令来编程。以下是几种模式彩灯的控制程序。

1. 将立即数送P1口的程序

ORG 0000H ; 定义程序从程序存贮器0000H单元开始存放

LOOP: MOV P1,#55H ; 立即数55H送P1口,4只LED亮

SJMP LOOP ; 原地踏步

END ; 程序结束

第一条指令指明程序在程序存贮中的存贮位置,第二条指令将立即数55H传送到P1口,对应的LED灯亮,第三条指令是一条无条件转移指令,即单片机执行完上一条指令后,会不断反复指行这条指令,直到电源断电,第四条是程序结束指令(本例程序演示效果参见随书光盘)。

2. 通过累加器A控制P1口的程序

ORG 0000H

LOOP: MOV A,#0AAH ;将立即数AAH送累加器A

MOV P1, A ;累加器A中的数送P1端口

SJMP LOOP ;转移到LOOP

END

3. 流水式彩灯程序

最简单的流水式彩灯程序也是简单的,程序流程图如图3.2所示,程序如下。

图3.2 最简单的流水式彩灯程序流程图

ORG 0000H

LOOP: MOV P1,#55H ;将立即数55H送P1端口

LCALL TIME   ;调延时子程序TIME

MOV P1,#0AAH ;将立即数AAH送P1端口

LCALL TIME ;调延时子程序TIME

SJMP LOOP ;转移到LOOP

TIME: MOV R6,#200 ;延时子程序TIME

TIME1:MOV R7,#200

TIME2:NOP

NOP

NOP

DJNZ R7,TIME2

DJNZ R6,TIME1

RET

END

4. 开幕式与闭幕式彩灯程序

ORG 0000H

LJMP MAIN ;跳转到主程序

ORG 0030H

MAIN: MOV R0,#8 ;R0送循环次数8

MOV DPTR,#TAB  ;给数据指针赋值

LOOP: MOV A,#00H ;

MOVC A,@ A + DPTR

MOV P1,A

LCALL TIME

INC DPL

DJNZ R0,LOOP

SJMP MAIN

TIME: MOV R6,#200

TIME1: MOV R7,#200

TIME2: NOP

NOP

NOP

DJNZ R7,TIME2

DJNZ R6,TIME1

RET

TAB: DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH

END

3.1.3 源程序的编辑、编译、下载

打开“伟福”模拟仿真软件进行程序的编辑、编译。

打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。

白光led 计算机模拟,P1口外接8只LED发光二极管模拟彩灯-单片机原理与应用-电子发烧友网站...相关推荐

  1. c语言一个按键控制8个流水灯,P1口外接8个LED,通过按键控制,实现左右移动的流水灯...

    //用P1口外接8个LED,可以做成一个最常见的流水灯. //灯光闪烁的时间间隔,可以使用软件延时,也可以使用定时器来控制. //如果增加一个按键,则还可以控制灯的移动方向. //电路如下: //图片 ...

  2. c51语言定义位变量,C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 。...

    C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 . 更多相关问题 铸造全冠颈部肩台通常为A.0.2-0.4mmB.0.03mmC.0.3mmD.0.5-0.8mmE.1.0mm ...

  3. 用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁

    //用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁 #include<reg52.h>        //  包含52单片机寄存器定义的头文件 #def ...

  4. 单片机p0口接8个LED c51语言,51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序。...

    51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序. 更多相关问题 下列业务应该计入营业外支出的是(). 维生素的生理功能有哪些? 在实务中 ...

  5. 按键控制LED定时点亮c语言,单片机定时中断循环点亮LED灯,我有个51单片机的实验,要求51单片机的P1口外接发光二极管依。...

    网友问答: #include #include #define uchar unsigned char#define uint unsigned intsbit ds=P2^2;sbit dula=P ...

  6. c语言编写8个发光二极管循环右移,1、P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。...

    满意答案 uvfgi 2013.04.08 采纳率:55%    等级:11 已帮助:15088人 #include #define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1 ...

  7. 单片机 P0口、P1口 寄存器和引脚的不同

    已知8051单片机的P0口8个引脚开路,P1口8个引脚均通过1k电阻上拉到电源(VCC). MOV A, #10 MOV B, #20 MOV P1, A MOV P0, B ADD A, B MOV ...

  8. p1口输入 输出实验C语言,单片机P1口输入输出实验单片机P1口输入输出实验.ppt

    单片机P1口输入输出实验单片机P1口输入输出实验 单片机I/O口输入输出实验 (或单片机数字量输入输出实验);单片机P1口输入输出实验 ;2.实验要求(1).2)为必做,3)为选做) 3) P1口作输 ...

  9. p1口实验_CC2530-GPIO输出控制实验-Led循环闪烁(1)

    一.实验目的 通过实验掌握 CC2530 芯片 GPIO(通用输入输出引脚)的配置方法 Led 驱动电路及开关 Led 的原理 二.实验设备 硬件:PC 机一台 ZB2530(底板.核心板.仿真器.U ...

最新文章

  1. 安装SQL Server 2012示例数据库
  2. C++ union 使用总结
  3. VTK:非结构化网格之ClipUnstructuredGridWithPlane
  4. 深入理解计算机系统(4.2)---硬件的魅力
  5. pom 选用maven仓库
  6. python求和函数1到100_Python定义函数实现累计求和操作
  7. JVM选项:-client vs -server
  8. HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递
  9. puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 2
  10. 《大型网站架构技术》系列分享专栏
  11. 【剑指offer】面试题20:顺时针打印矩阵
  12. linux 安装zh.utf 8,debian下安装locale并设置zh_CN.UTF-8
  13. JVM虚拟机安装苹果系统
  14. java tapestry_Tapestry简介- 转载 (转自java-cn)
  15. android vlc 画面不动,vlc播放rtsp over tcp画面突然卡住问题
  16. directdraw(directdraw怎么开启)
  17. 水清冷冷:PSCC2019/PSCC2020安装教程和学习技巧(附工具)
  18. android apk对遥控器支持,Android中关于APK对遥控器支持的修改
  19. 报错:v-html will override element children 解决方法
  20. 腾讯地图中轻松定义多边形

热门文章

  1. 新代系统反向间隙参数_SYNTEC是什么系统
  2. oracle raise 含义,Oracle中RAISE异常详解
  3. 4.2 Python图像的图像恢复-组合滤波器
  4. python打开.exe文件
  5. 快速排序(基于顺序容器vector;基于数组array)
  6. oracle强弱动态游标,Oracle动态游标的使用
  7. 线程+线程池【面试题】
  8. 远程连接阿里云服务器数据库
  9. HTML基础——标签
  10. Java 实现“多继承”