程序如下:
#include
#include
#define uint unsigned int
#define uchar unsigned char//宏定义
void delay(uint a);//声明延时函数
uchar c,d;
sbit P00=P0^0;
sbit P30=P3^0;
sbit P31=P3^1;
sbit P32=P3^2;//位操作
bit key_flag=0;//位定义
void main()
{
uint e,h;
P00=0;
delay(100);
P00=1;
delay(500);
P00=0;
TMOD=1;//设定定时器工作方式为1
TH1=(65536-20000)/256; //定时器高八位装入初值
TL1=(65536-20000)%256;//定时器低八位装入初值
ET0=1;//启动定时器中断
EA=1;//开启总中断
TR0=1;//开启定时器
while(1)
{
if(key_flag==1)
{
c=0xfe;d=0xfe;
for(e=8;e>0;e--)
{if(key_flag==1)
{for(h=8;h>0;h--)
{P1=c;
delay(100);
c=_crol_(c,1);//左移一位
}
P2=d;
d=_crol_(d,1);//LED跑马灯主程序
P30=0;P31=0;//位操作
delay(100);
P30=1;P31=1;//位操作
}
else P2=0xdb;//P1口电平
}
}
else
P1=0x7e;//P2口电平
}
}
void delay(uint a)//延时函数
{
uint f,g;
for(;a>0;a--)
for(f=200;f>0;f--);
for(g=200;g>0;g--);
}
void timer_int0() interrupt 1//声明中断函数
{
if(P32==0)
{delay(60);//键盘防抖延迟
if(P32==0)
key_flag=1^key_flag;//按位异或
}
TH1=(65536-20000)/256;//定时器高八位重新装入初值
TL1=(65536-20000)%256;//定时器低八位重新装入初值
}//此为按键检测,每隔20ms检测一次
关键字:单片机 跑马灯 强化版
引用地址:
单片机跑马灯强化版
推荐阅读最新更新时间:2024-03-16 14:02
单片机系统软件看门狗的设计思路解析
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等。 软件看门狗 软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序
[单片机]
基于51单片机设计的电动车控制器
一、项目介绍 随着社会经济的快速发展,人们对节能环保的要求越来越高,电动车因其无污染、噪音小、使用成本低等优点逐渐成为了市场关注的焦点。同时,随着科技的不断进步和应用,电动车的技术水平也在不断提高。 为了更好地满足市场需求和科技进步的要求,本项目基于51单片机设计了一款电动车控制器。主要包括电动车控制和驱动两个关键部分。其中,控制部分采用51单片机作为控制核心,通过编程实现电动车前后行驶、左右转向、加速等操作。而驱动部分则采用L298N驱动芯片驱动直流电机。当前设计的电动车,支持锂电池供电、支持按键实现电动车前后行驶、左右转向和加速等操作,电机采用直流电机,驱动芯片采用L298N。 二、系统架构 本系统由控制器、电机
[单片机]
单片机红外遥控程序beta
千辛万苦,终于把这个完成了。不错不错。现在的问题就在上板子上测试了。刚才发了,发现 / * * / 居然被屏蔽了。标注只能用两个杠杠表示。为了以后更好的发布,我写程序注释的时候尽量用双斜杠。 #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code table ={ 0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; //定义数字显示 sbit remote=P3^3; //定义中断源外中断3.3 int c
[单片机]
8051单片机实现可修改初值(并可命令启停)的单倒计时器
程序实现功能: 1. 通过串口发送 Start.E 命令启动设备. 2. 通过串口发送 Stop.E 命令暂停设备. 3. 通过串口发送 Set init value as 12.E (命令中的数字可以以两位数方式随意给定)设定下次计时开始初值. 注: 为了避免启动设备后第一次计时无法按照用户的意愿进行这一问题, 启动设备后第一次计时先显示0(耗费1s), 之后按照用户给定的值进行倒计时: 若用户在此期间未给出初值, 则从15开始计时. 学习意义: 帮助初学者理解前后台体系架构. #include STC89C5xRC.H unsigned char code DIG_CODE = {0x3f, 0
[单片机]
单片机控制板设计原则及一些细节问题
1.元器件布局 在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。 2.去耦电容 尽量在关键元件,如ROM、RAM等芯片旁边安装去耦电容。实际上,PCB板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc 走线上引起严重的开关噪声尖峰。防止Vcc走线上开关噪声尖峰的唯一方法,是在VCC与电源地之间安放一个0.1
[单片机]
在远程控制中PIC系列单片机有什么应用?
本文介绍了一种用单片机控制的采用电话遥控的简易远程教学系统。它借助于现有的丰富的电话网络资源,具有结构简单,造价低廉,易于操作等特点,可以实现对录像机的各种远距离控制操作。非常适合于贫困地区的电化教育的普及与发展。 1 系统的总体结构 该电话遥控教学系统的总体结构如图1所示。 该系统由电话机、小型程控机、远程控制器和数台录像机、电视机组成,该系统既可以通过小型程控机构成一个局域的小系统,也可以利用电信网构成一个跨省市的远距离遥控系统。在该系统中,远程控制器的设计与制造是该系统的核心与关键。 2 远程控制器的结构及工作原理 该控制器的CPU采用美国Microchip公司生产的PIC16C54一次性用户可编程(OPT)单片
[单片机]
51单片机程序开发入门知识
51单片机在我的理解上来说,就是遵循51指令集工作的芯片。他就像一台超微型的电脑,里面有内存、硬盘、CPU等基本配备。 而他所谓的CPU使用的就是51指令集,他的硬盘就是内置的Flash,他的内存也是内置的RAM和扩展RAM。不过这些基本配备是小了一点而已。 在网上,我们常看到一些介绍什么AT89C51或AT89C52等51的单片机的范例,对于一些初学者来说可能就会认为只有AT89C51或AT89C52才是51单片机,当你给他个STC89S52他都不敢用,认为可能不对(我刚开始学的时候就碰到这种情况,)。其实不是这样的,只要芯片内部使用的是51指令集,那么它就可以认为是51单片机,就可以用51单片机的开发方式进行
[单片机]
基于SRAM的微控制器优化了安全性
结果表明,非易失性(NV)SRAM是用于存储安全数据的最安全的存储器。通过使用 DES 或三重 DES 加密内存,可以建立加密边界,使安全信息不被黑客渗透。通过使用防篡改反应传感器,可以进一步保护SRAM的易失性,这些传感器将擦除加密密钥作为响应。密码键盘等金融应用依靠自动程序和数据存储器加密功能来保护数据。DS5250是一款高性能、安全的8051微控制器,利用安全SRAM的独特特性来保护敏感数据。 无论是在自动取款机、护照/身份验证设备还是便利店的销售点终端中,都必须保护密码、个人识别码 (PIN)、加密密钥和专有加密算法等关键信息免受黑客攻击。金融服务采用详细的政策和程序来保护硬件和软件。因此,金融交易系统的设计者在开发每
[单片机]