白光led 计算机模拟,P1口外接8只LED发光二极管模拟彩灯-单片机原理与应用-电子发烧友网站...
3.1.1 硬件电路
硬件电路如图3.1所示。AT89S51是MCS-51系列单片机中的一种,通常采用40脚DIP封装, 1脚~8脚是4个并行输入/输出端口(P0口、P1口、P2口、P3口)中的一个,称为P1口,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发光二极管模拟彩灯-单片机原理与应用-电子发烧友网站...相关推荐
- c语言一个按键控制8个流水灯,P1口外接8个LED,通过按键控制,实现左右移动的流水灯...
//用P1口外接8个LED,可以做成一个最常见的流水灯. //灯光闪烁的时间间隔,可以使用软件延时,也可以使用定时器来控制. //如果增加一个按键,则还可以控制灯的移动方向. //电路如下: //图片 ...
- 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 ...
- 用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁
//用定时器T0查询方式P0口8位控制LED闪烁 T1查询方式P1口8位控制LED闪烁 #include<reg52.h> // 包含52单片机寄存器定义的头文件 #def ...
- 单片机p0口接8个LED c51语言,51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序。...
51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序. 更多相关问题 下列业务应该计入营业外支出的是(). 维生素的生理功能有哪些? 在实务中 ...
- 按键控制LED定时点亮c语言,单片机定时中断循环点亮LED灯,我有个51单片机的实验,要求51单片机的P1口外接发光二极管依。...
网友问答: #include #include #define uchar unsigned char#define uint unsigned intsbit ds=P2^2;sbit dula=P ...
- c语言编写8个发光二极管循环右移,1、P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。...
满意答案 uvfgi 2013.04.08 采纳率:55% 等级:11 已帮助:15088人 #include #define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1 ...
- 单片机 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 ...
- p1口输入 输出实验C语言,单片机P1口输入输出实验单片机P1口输入输出实验.ppt
单片机P1口输入输出实验单片机P1口输入输出实验 单片机I/O口输入输出实验 (或单片机数字量输入输出实验);单片机P1口输入输出实验 ;2.实验要求(1).2)为必做,3)为选做) 3) P1口作输 ...
- p1口实验_CC2530-GPIO输出控制实验-Led循环闪烁(1)
一.实验目的 通过实验掌握 CC2530 芯片 GPIO(通用输入输出引脚)的配置方法 Led 驱动电路及开关 Led 的原理 二.实验设备 硬件:PC 机一台 ZB2530(底板.核心板.仿真器.U ...
最新文章
- 安装SQL Server 2012示例数据库
- C++ union 使用总结
- VTK:非结构化网格之ClipUnstructuredGridWithPlane
- 深入理解计算机系统(4.2)---硬件的魅力
- pom 选用maven仓库
- python求和函数1到100_Python定义函数实现累计求和操作
- JVM选项:-client vs -server
- HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递
- puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 2
- 《大型网站架构技术》系列分享专栏
- 【剑指offer】面试题20:顺时针打印矩阵
- linux 安装zh.utf 8,debian下安装locale并设置zh_CN.UTF-8
- JVM虚拟机安装苹果系统
- java tapestry_Tapestry简介- 转载 (转自java-cn)
- android vlc 画面不动,vlc播放rtsp over tcp画面突然卡住问题
- directdraw(directdraw怎么开启)
- 水清冷冷:PSCC2019/PSCC2020安装教程和学习技巧(附工具)
- android apk对遥控器支持,Android中关于APK对遥控器支持的修改
- 报错:v-html will override element children 解决方法
- 腾讯地图中轻松定义多边形