C51单片机使用2-流水灯测试
一、流水灯测试
运行效果:每隔0.6秒蜂鸣器响一声、同时LED灯由P1_0到P1_7轮着亮。
1、流水灯电路设计
LED灯共阳极,IO口输出低电平为点亮LED灯、IO口输出高电平则熄灭LED灯。由于单片机IO输出的电流不足以驱动LED灯,因此使用74HC573芯片驱动LED灯。
2、蜂鸣器电路设计
3、C语言移位实现
(1)左移:操作符”<<“。每执行依次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位,CY位中原来的数丢弃,最低位补0,其它位依次向左移动一位。
样例程序:
while(1)
{a=a<<1;
}
(2)右移:操作符”>>“。每执行依次右移指令,被操作的数将最低位移入单片机PSW寄存器的CY位,CY位中原来的数丢弃,最高位补0,其它位依次向右移动一位。
while(1)
{a=a>>1;
}
(3)循环左移:最高位移入最低位,其它位依次向左移一位。自带函数 _crol 实现
(4)循环右移:最低位移入最高位,其它位依次向右移位。自带函数 _cror 实现
流水灯实现使用C51自带的库函数_crol_()实现循环左移.
测试代码如下
//flow light and beep
#include <reg51.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charunsigned char m,n;
sbit beep=P2^3; //蜂鸣器void delay10ms() //延时10毫妹胱映绦?
{unsigned char a,b;for(a=100;a>0;a--)for(b=225;b>0;b--);
}void delay02s(void) //延时0.2秒子程序
{unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--)for(k=248;k>0;k--);
}void Delay_ms(uint xms)
{uint i,j; for(i=xms;i>0;i--)for(j=110;j>0;j--);
}void main()
{n=0xfe; //设置初始值 11111110while(1){/*//beep=0;delay02s();delay02s();delay02s();//beep=1;m=_crol_(n,1);n=m;P1=m;delay02s();delay02s();delay02s();*///beep=0;Delay_ms(500);//beep=1;m=_crol_(n,1);n=m;P1=m;Delay_ms(500);}
}
4、毫秒延时函数
第一个循环语句执行一次,则第二个循环语句执行110次。单片机的晶振是12MHz,它的时钟周期就是1/12us,它是单片机中最基本、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。
需要延时多少毫秒,xms值设置多少就行。这个时间是个大概时间,需要精确的时间需要使用专用的定时器中断
void Delay_ms(uint xms)
{uint i,j; for(i=xms;i>0;i--)for(j=110;j>0;j--);
}
C51单片机使用2-流水灯测试相关推荐
- C51单片机实验——LED流水灯
实验一 LED流水灯实验报告 实验名称:LED流水灯实验 实验环境:普中实验系统:Keil μVision 4软件: 实验目的: (1)掌握uVision实验环境的使用 (2)掌握单片机I/O控制方法 ...
- C51单片机按键控制流水灯模式(定时器版本)以及定时器时钟
上篇文章我们学了关于定时器的三大组成部分及许多寄存器的概念问题,这篇文章我们就要开始讲解实操部分. 首先,我们先来看看本文最后写成的代码: 以上三张是代码的主函数,此外,代码中还需用到的独立按键检测代 ...
- c语言编程流水灯与交通灯实验,C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟.doc...
C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟 学 号: 班 级: 自动化10班 姓 名: 张 指导老师: 胡 2012.12 单片机核心板实验要求 流水灯实验 实验目的: 简单I/O引 ...
- ## C51单片机2种方法让8个流水灯依次亮灭
C51单片机2种方法让8个流水灯依次亮灭 第一种 数组 就是把每次亮灯情况写在数组里面.8个二极管共同接地.比如说0xfe是二进制是11111110,第一个灯灭.然后下一个数是0xfd,对应二进制是1 ...
- c51单片机学习笔记-LED流水灯实验
目的:实现 LED 流水灯,只需循环让 D1-D8 指示灯逐个点亮. 方法:点亮 D1 且把 D2-D8 熄灭,延时一段时间后再点亮 D2 且把 D1. D3-D8 熄灭,延时一段时间后再点亮 D3 ...
- C51单片机之keil编程入门(一)
C51单片机之keil编程入门(一) 编程需结合原理图来理解 附上单片机原理图:http://file.elecfans.com/web1/M00/56/5B/pIYBAFs9rlmAcK6tABHJ ...
- C51单片机学习——密码锁的实现
C51单片机学习--密码锁的实现 文章目录 C51单片机学习--密码锁的实现 说在前面:因为我的板子是液晶屏和数码管不能同时用,所以下面我使用的是液晶屏,下面的代码通俗易懂也有注释,如果有的控件不知到 ...
- C51单片机仿真学习笔记
这阵子在学习单片机的仿真,记录下过程,方便以后可以翻阅查看 1.首先是下载安装C51版的keil4软件,然后下载安装proteus软件,打开ISIS 7 Professional 部分操作步骤如下 之 ...
- MCU - C51 单片机「实例」
前言 本文主要讲述 C51 单片机 学习需要掌握的基础内容纲领「实例代码地址」 订阅专栏,后续会陆续更新每章节内容 文章目录 前言 概览 1. Hello Wriprin 2. 创建工程文件 (.c) ...
最新文章
- MPB:湖南师大尹佳组-​乳酸菌益生菌表面粘附能力的检测
- java下拉框选择_java中下拉框选项内容
- android 入门-Android Permission denied(不允许连接Socket) 错误
- wxWidgets:wxMediaCtr类用法
- HDU - 6393 Traffic Network in Numazu(线段树+LCA+树链剖分+并查集)
- 追剧《今夕何夕》,同步唯美高清桌面壁纸
- 如何启用“锁定内存页”选项 (Windows)
- 爬楼梯 · Climbing Stairs
- 【数学基础】机器学习中的几个熵
- .NET序列化与反序列化(转)
- 揭秘ASM磁盘头信息
- 152、全面图解交换机接口及连接
- 利器 | Terminal Shell 改造记录 Windows Terminal + ZSH + Tmux
- 祝贺 StreamX 开源一周年
- python如何用for循环写九九乘法表
- 基于面向对象实现:猫抓老鼠小游戏 有一只猫和一只老鼠,当猫的体重是小于老鼠体重的5倍时,猫可以抓到老鼠。
- 15 个 “高效实用” 的Python工具库!
- 前端视角漫谈百度ueditor编辑器前后端分离配置
- 一位36岁程序员的困惑
- zlkw什么意思_kw是什么意思
热门文章
- 成年人的标志:把反馈当作礼物
- 根据LabelImg标注的方框大小批量裁剪图片
- 苹果android怎么设置关闭,iPhone手机系统更新提醒太烦人,终于知道怎样彻底关闭了!...
- 手把手教你4种方法用Python批量实现多Excel多Sheet合并
- html逐帧动画,CSS秘密花园: 逐帧动画
- 悲情天才Walter Pitts—计算神经学,控制论和人工智能的诞生
- 基于UDP的歌词同步系统
- 单商户商城系统功能拆解20—售后订单
- JavaScript之WebAPI
- 如何写一个拼写纠错器 -- how to write a spelling corrector