基于单片机的心型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系统源 ...
随机推荐
- 对char *f=new char[4]赋初值
用new 开辟的可以直接指向字符串常量,但是之后就不能进行修改了比如 char * f=new char[4]; f="ab"; f[0]='0'//错误 但是可以输出f[0]; ...
- sql中常量和变量的引用
String name =jtf.getText().trim(); String sql="select * from stu where stuname=' "+name+& ...
- BZOJ 2161 布娃娃(权值线段树)
题意 给n<1e5个娃娃,每个娃娃有属性\(p\),\(c\),\(l\),\(r\)(均在ll范围内),问你对每个娃娃\(i\),满足所有\(l_j\leq p_i\leq r_j\)的娃娃\ ...
- EMC NW disaster and recovery simulation 1
终于可以模拟成功了虽然只是个实验但是很有借鉴意义. 前期的准备就不说了都懂直接上图吧 scanner -B networker_indexclone to find out the laster bo ...
- ELK搭建(docker环境)
ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开 ...
- qt creator源码全方面分析(2-10-2)
目录 Creating Your First Plugin 创建一个插件项目 构建并运行插件 文件结构 qmake项目 插件元数据模板 插件类 头文件 源文件 Creating Your First ...
- php curl 相关知识
整理了下curl $ch = curl_init(); # 设定url和把结果返回,是否返回头部 curl_setopt($ch, CURLOPT_URL, 'http://www.baidu. ...
- 基于原生的 html css js php ajax做的一个 web登录和注册系统
完整代码下载: 百度网盘地址 https://pan.baidu.com/s/1D1gqHSyjgfoOtYCZm7ofJg 提取码 :nf0b 永久有效 注意: 1 如果要正常运行此示例, 本地需要 ...
- linux的那些事-时间 时区
时间表示: 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式显示当前时间,或是设置系 ...
- CentOS7时区和时间设置
[root@saltstack-master ~]# timedatectl set-timezone Asia/Shanghai [root@saltstack-master ~]# ln -sf ...