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语言程序)相关推荐

  1. 单片机实例3——多路开关状态指示(硬件电路图+汇编程序+C语言程序)

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

  2. 单片机实例1——闪烁灯(硬件电路图+汇编程序+C语言程序)

    1. 闪烁灯 1. 实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒. 2. 电路原理图 图4.1.1 3. 系统板上硬件连线 ...

  3. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)

    2. 模拟开关灯 1. 实验任务 如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭. 2. 电 ...

  4. 单片机实例6——报警产生器(硬件电路图+汇编程序+C语言程序)

    6. 报警产生器 1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开 ...

  5. 单片机实例21——拉幕式数码显示技术(硬件电路图+汇编程序+C语言程序)

    21. 拉幕式数码显示技术 1. 实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数 ...

  6. 单片机实例26——点阵式LED简单图形显示技术(硬件电路图+汇编程序+C语言程序)

    26. 点阵式LED简单图形显示技术 1. 实验任务 在8X8点阵式LED显示"★"."●"和心形图,通过按键来选择要显示的图形. 2. 电路原理图 图4.26 ...

  7. 单片机实例14——4×4矩阵式键盘识别技术(硬件电路图+汇编程序+C语言程序)

    14. 4×4矩阵式键盘识别技术 1. 实验任务 如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线:在数码管上显示每个按键 ...

  8. 单片机实例22——电子琴(硬件电路图+汇编程序+C语言程序)

    22. 电子琴 1. 实验任务 (1. 由4X4组成16个按钮矩阵,设计成16个音. (2. 可随意弹奏想要表达的音乐. 2. 电路原理图 图4.22.1 3. 系统板硬件连线 (1. 把" ...

  9. 单片机实例19—— “叮咚”门铃(硬件电路图+汇编程序+C语言程序)

    19. "叮咚"门铃 1. 实验任务 当按下开关SP1,AT89S51单片机产生"叮咚"声从P1.0端口输出到LM386,经过放大之后送入喇叭. 2. 电路原理 ...

最新文章

  1. iOS 开发_..和self...的区别以及使用
  2. Jackcard相似度和余弦相似度(向量空间模型)的java实现
  3. CTF-i春秋网鼎杯第一场misc部分writeup
  4. 阿里云oss数据迁移到腾讯云cos 方法二(强烈推荐)
  5. Lesson 16.3 卷积操作
  6. 【文末有福利】量子计算是对计算本质的发现
  7. C++ 易混淆的概念-sizeof和strlen、char* 和char[]、*p++和(*p)++
  8. deliphi 字符串分割_delphi中拆分字符串的函数
  9. 更改via浏览器字体_【安卓】我心中的最佳手机浏览器
  10. php汉字笔顺生成,【已测源码】php开发汉字笔顺字帖在线生成器程序源码
  11. 中文汉化AE扩展脚本 AtomX 3.0.0 不断更新预设包文件
  12. m3u8视频下载和转码mp4
  13. MSP430F149的TIMERA定时中断理解
  14. mac电脑怎么彻底关闭系统更新提示?
  15. 设置行与行的间隔(行间距)
  16. 前端处理 token 时效性问题
  17. 服务器芯片组 c242评测,完胜690!最详尽的C68G芯片组性能评测
  18. oracle中before,oracle触发器before和after数据区别
  19. 《Migrating to Cloud-Native Application Architectures》学习笔记之Chapter 3. Migration Cookbook...
  20. Centos7安装fish shell,介绍及使用

热门文章

  1. Linux——ip协议
  2. php饶disfunction,Insomni’hack CTF-l33t-hoster复现分析
  3. excel的MD5函数宏
  4. Linux常见的目录及作用
  5. 如何保存和恢复微信、QQ的电脑聊天记录
  6. Python 查找二叉树的节点数目
  7. linux查看进程的cpu和内存利用率
  8. MySQL-事务、事务隔离级别
  9. 腾讯文档体验报告|“我”不是石墨
  10. 美的使用鸿蒙系统,美的全面接入“鸿蒙”,今年将完成全品类覆盖