基于单片机的心型LED灯的设计与实现
#include<reg51.h>
#include<intrins.h>
#define char unsigned char
#define unit unsigned int
sbit k1=P3^;//定义开始键
sbit k2=P3^;//定义暂停键
sbit k3=P3^;//定义模式切换
sbit k4=P3^; //定义速度切换
void disp1();
void disp2();
void disp3();
void typeqiehuan();
void speedqiehuan();
unit speed=;unit type=;unit time=;unit count=;
int flag1=;
void delay(unit s)
{
unit x,y;
for(x=s;x>;x--)
for(y=;y>;y--);
while(flag1==); //毫秒级
}
void disp1()
{
unit i;
P1=P0=0x00;
delay();
/*P1=P0=0x00;
delay(1000);
P1=P0=0x00;
delay(1000);
P1=P0=0x00;
delay(1000);
P1=P0=0x00;
delay(1000);
P1=P0=0x00;
delay(1000);*/
P1=P0=0xff;
for(i=;i<;i++)
{
P1=P0=0x00;
delay();
P1=P0=0xff;
delay();
}
} void disp2()
{
P1=0xff;
P0=0x00;
delay(speed);
/*if(k2==0)
while(1)//如果检测K2按下,死循环
;
else */if(k2==)
goto l;
l:P1=0x00;
P0=0xff;
delay(speed);
} void disp3()
{
P1=0x33;
P0=0xCC;
delay(speed);
/* if(k2==0)
while(1)
;
else */if(k2==)
goto m;
m:P1=0xCC;
P0=0x33;
delay(speed);
} void typeqiehuan()
{
while()
{
while(k2==);
if(type%==)
disp2();
if(type%==)
disp3();
}
}
void speedqiehuan()
{
//while(1)
//{
//while(k4==0)
if(time%==)
speed=;
else if(time%==)
speed=;
else if(time%==)
speed=;
else if(time%==)
speed=;
//}
} void T0_INT() interrupt
{
typeqiehuan();
}
void T1_INT() interrupt
{
count++;
if(count%==)
flag1=;
else
flag1=;
}
void T0_TIME() interrupt
{
TH0=(-)/;//取高八位,算初值
TL0=(-)%;//取低八位,算初值
if(k3==)
{
delay(); //防抖
if(k3==)
type++;
}
if(k4==)
{
delay();
if(k4==)
time++;
}
speedqiehuan();
}
void main()
{
disp1();
//P0=0xff;
//P1=0xff;
//delay(5000);
TMOD=0x01;//T0为工作方式一
IT0 = ;//TCON中控制INT0触发方式位,INT0下降沿触发中断
IT1 = ;
EA = ; //总中断允许控制位
EX0 = ; //允许外部中断INT0
EX1 = ; //允许外部中断INT1
ET0=;//允许计数器T0溢出中断
TH0=(-)/;
TL0=(-)%;
TR0=;//立即开始计数
IP=0x06;//设置优先级
while() //等待人来操作,防止程序过快跑完
{
P1=P0=0x00;
}
}
仿真原理图如下:
基于单片机的心型LED灯的设计与实现的更多相关文章
- 单片机远程控制步进电机、LED灯和蜂鸣器
通过採用C#语言实现的上位机控制单片机的步进电机模块.LED灯和蜂鸣器模块,使步进电机进行正.反转和停止并控制转速:LED灯模块进行有选择的呼吸式表达:蜂鸣器模块的開始和终止. 上位机通过串口和自己定 ...
- 单片机上的发光二极管(LED灯)
LED(light-emitting diode),即发光二极管,俗称 LED 小灯,它的种类很多,参数也不尽相同,我们板子上用的是普通的贴片发光二极管.这种二极管通常的正向导通电压是 1.8V到 2 ...
- 51单片机---点亮一个LED灯
1 程序源码 #include <REGX52.H> `包含51单片机的头文件` sbit led = P0^0; int main(void) { while(1) { led = 1; ...
- 嵌入式学习笔记(综合提高篇 第一章) -- 利用串口点亮/关闭LED灯
1 前言 从踏入嵌入式行业到现在已经过去了4年多,参与开发过的产品不少,有交换机.光端机以及光纤收发器,停车场出入缴费系统,二维码扫码枪,智能指纹锁以及数字IC芯片开发等; 涉及产品中中既有 ...
- 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯
关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...
- [转] 基于TINY4412的Andorid开发-------简单的LED灯控制
阅读目录 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> ...
- 基于TINY4412的Andorid开发-------简单的LED灯控制
参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:pengdonglin137@163.com 平 ...
- 字符型设备驱动程序-first-printf以及点亮LED灯(三)
根据 字符型设备驱动程序-first-printf以及点亮LED灯(二) 学习 修改函数 中的printf 为 printk. #include <linux/module.h> /* ...
- 【转载】基于TINY4412的Andorid开发-------简单的LED灯控制
阅读目录(Content) 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源 ...
随机推荐
- PHP Ajax 跨域问题最佳解决方案 【摘自菜鸟教程】
PHP Ajax 跨域问题最佳解决方案 分类 编程技术 http://www.runoob.com/w3cnote/php-ajax-cross-border.html 本文通过设置Access-Co ...
- 微信小程序中的图表构建
第一 html中的代码 <view class="container"> <canvas canvas-id="lineCanvas" bin ...
- centos6.5和centos7.5统一字符集为zh_CN.UTF-8解决系统和MySQL数据库乱码问题
linux的服务器需要做的操作 centos6.5下: 修改默认字符集为 zh_CN.UTF-8,如果没有中文语言包可能需要安装中文语言包支持 [root@meinv01 ~]# yum groupi ...
- Flutter Widgets 之 InkWell 和 Ink
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 InkWell InkWell组件在用户点击时出现&quo ...
- centos容器yum安装JDK环境
1.yum命令安装jdk 选择版本安装 -openjdk java--openjdk-devel 或者如下命令,安装jdk1.8.0的所有文件 -openjdk*yum install -y java ...
- HTTP下帐号密码的截取
用到工具: arpspoof -->>IP欺骗 ettercap -->>抓包 攻击者:192.168.100.110 kali 实验者:192.168.100 ...
- CentOS6.5安装指定的PHP版本(php5.5)(转)
查询是否安装有php #rpm -qa|grep php 删除之前安装的php版本 (yum install 安装) #rpm -e php-fpm-5.3.3-47.el6.x86_64 --nod ...
- vue-cli搭建vue项目(单页面应用)
1.全局安装vue-cli 2.创建项目: vue init webpack test test是项目名称,会在当前工作目录下新建一个test文件夹 接下来会手动选择一些配置 除了Setup unit ...
- cornerstone使用beyond compare比较工具
prefrences->general->external compare tool->open script foder 新建一个bc.sh文件(名字可以任意,sh后缀即可)保存到 ...
- linux 命令行下设置代理
当linux 代理软件设置好后,我们需要设置命令行代理的连接方式,这样在命令行中的软件才能使用: 设置http/https代理: export https_proxy="127.0.0.1: ...