单片机实例4——广告灯的左移右移(硬件电路图+汇编程序+C语言程序)
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所示
P1.7 |
P1.6 |
P1.5 |
P1.4 |
P1.3 |
P1.2 |
P1.1 |
P1.0 |
说明 |
L8 |
L7 |
L6 |
L5 |
L4 |
L3 |
L2 |
L1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
L1亮 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
L2亮 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
L3亮 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
L4亮 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
L5亮 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
L6亮 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
L7亮 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
L8亮 |
表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 <AT89X51.H>
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<<i;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();}}
}
单片机实例4——广告灯的左移右移(硬件电路图+汇编程序+C语言程序)相关推荐
- 单片机实例3——多路开关状态指示(硬件电路图+汇编程序+C语言程序)
3. 多路开关状态指示 1. 实验任务 如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极 ...
- 单片机实例1——闪烁灯(硬件电路图+汇编程序+C语言程序)
1. 闪烁灯 1. 实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒. 2. 电路原理图 图4.1.1 3. 系统板上硬件连线 ...
- 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)
2. 模拟开关灯 1. 实验任务 如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭. 2. 电 ...
- 单片机实例6——报警产生器(硬件电路图+汇编程序+C语言程序)
6. 报警产生器 1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开 ...
- 单片机实例21——拉幕式数码显示技术(硬件电路图+汇编程序+C语言程序)
21. 拉幕式数码显示技术 1. 实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数 ...
- 单片机实例26——点阵式LED简单图形显示技术(硬件电路图+汇编程序+C语言程序)
26. 点阵式LED简单图形显示技术 1. 实验任务 在8X8点阵式LED显示"★"."●"和心形图,通过按键来选择要显示的图形. 2. 电路原理图 图4.26 ...
- 单片机实例14——4×4矩阵式键盘识别技术(硬件电路图+汇编程序+C语言程序)
14. 4×4矩阵式键盘识别技术 1. 实验任务 如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线:在数码管上显示每个按键 ...
- 单片机实例22——电子琴(硬件电路图+汇编程序+C语言程序)
22. 电子琴 1. 实验任务 (1. 由4X4组成16个按钮矩阵,设计成16个音. (2. 可随意弹奏想要表达的音乐. 2. 电路原理图 图4.22.1 3. 系统板硬件连线 (1. 把" ...
- 单片机实例19—— “叮咚”门铃(硬件电路图+汇编程序+C语言程序)
19. "叮咚"门铃 1. 实验任务 当按下开关SP1,AT89S51单片机产生"叮咚"声从P1.0端口输出到LM386,经过放大之后送入喇叭. 2. 电路原理 ...
最新文章
- iOS 开发_..和self...的区别以及使用
- Jackcard相似度和余弦相似度(向量空间模型)的java实现
- CTF-i春秋网鼎杯第一场misc部分writeup
- 阿里云oss数据迁移到腾讯云cos 方法二(强烈推荐)
- Lesson 16.3 卷积操作
- 【文末有福利】量子计算是对计算本质的发现
- C++ 易混淆的概念-sizeof和strlen、char* 和char[]、*p++和(*p)++
- deliphi 字符串分割_delphi中拆分字符串的函数
- 更改via浏览器字体_【安卓】我心中的最佳手机浏览器
- php汉字笔顺生成,【已测源码】php开发汉字笔顺字帖在线生成器程序源码
- 中文汉化AE扩展脚本 AtomX 3.0.0 不断更新预设包文件
- m3u8视频下载和转码mp4
- MSP430F149的TIMERA定时中断理解
- mac电脑怎么彻底关闭系统更新提示?
- 设置行与行的间隔(行间距)
- 前端处理 token 时效性问题
- 服务器芯片组 c242评测,完胜690!最详尽的C68G芯片组性能评测
- oracle中before,oracle触发器before和after数据区别
- 《Migrating to Cloud-Native Application Architectures》学习笔记之Chapter 3. Migration Cookbook...
- Centos7安装fish shell,介绍及使用