基于EM78P153S的流水灯
#include"EM78x153xx.h"
#define DISI() _asm{disi}
#define ENI() _asm{eni}
#define SLEP() _asm{slep}
#define NOP() _asm{nop}
#define WDTC() _asm{wdtc}
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned short ushort;
#define ledl PORT5
#define ledh PORT6
void delay(void)
{uchar i,j;
for(j=0;j<200;j++)
for(i=0;i<200;i++)NOP();
}
const ushort rundata[16]={0xfffe,0xfffc,0xfff8,0xfff0,
0xffe0,0xffc0,0xff80,0xff00,
0xfe00,0xfc00,0xf800,0xf000,
0xe000,0xc000,0x8000,0x0000};
void main(void)
{uchar i,j,k;
uint run;
WDTC();//清看门狗
DISI();//禁止中断
STATUS=0X00;//清除状态标志位
P5CR=0x00;//置P5为输出口
P6CR=0x00;//置P6为输出口
PDCR=0x00;//禁止P5,P6下拉
ODCR=0x00;//禁止P6开漏
PHCR=0x00;//禁止P6上拉
for(;;)
for(i=0,k=0;i<16;i++,k--)
{run=rundata[i];
for(j=0;j>8);
delay();
}
}
}
void _intcall interrupt(void) @ int
{
// Write your code (inline assembly or C) here
//restore ACC,R3,R4
_asm
{
reti //tell Compiler to recover common registers here
SWAP 0X1F ;restore A
SWAPA 0X1F
}
}
void _intcall interrupt_l(void) @ 0x08:low_int 0
{
_asm
{
//save A --> 0x1F
MOV 0X1F,A ;backup A to 0x1F
}
}
关键字:EM78P153S 流水灯
引用地址:
用EM78P153S给同事写流水灯
推荐阅读最新更新时间:2024-03-16 14:26
基于STM32单片机流水灯控制中的GPIO_Init()函数解析
学习STM32时,首先要熟悉流水灯例程,在这里就来分析流水灯中的GPIO_Init()函数 例如:流水灯例程中使用的端口是macLED1_GPIO_PORT=GPIOB, 控制的引脚是GPIO_Pin_0, 引脚的模式是GPIO_Mode_Out_PP(通用推挽输出), 引脚的速率是GPIO_Speed_50MHz, 用到的寄存器是CRL 将上述的引脚、模式、速率换算成32位的16进制,分别是: 1)控制的引脚是GPIO_Pin_0 换算成32位的16进制是:0x0000 0001 2)引脚的模式是GPIO_Mode_Out_PP(通用推挽输出) 换算成32位的16进制是:0x0000 0010 3)引脚的速率是GPIO_Sp
[单片机]
初级单片机流水灯程序
----- 主程序开始 ----- START: CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭 CLR P1.1 ;P1.1输出低电平,使LED2点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED2熄灭 CLR P1.2 ;P1.2输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序
[单片机]
STC89C52单片机 流水灯
流水灯 宏定义 用define 进行宏定义的典型用法 #define uchar unsigned char 注意宏定义后面不能加分号,它是预处理指令不是语句。 其中用“uchar”直接替换了unsigned char 此时我们可以用uchar去定义变量类型如:uchar i ;等价于 unsigned char i ; 对于上面的宏定义我们是用来给已有数据类型取别名。 对已有数据类型取别名一般还有使用关键字typedef, 定义方法如下: typedef 已有数据类型 新的数据类型;(要加分号) 函数的定义 函数就是将多条语句集合在一起,来完成一种特定功能。 函数分为标准函数库,和用户自定义函数。 标准函数库:kei
[单片机]
如何用用C语言编写的单片机来控制流水灯
用C语言编写的单片机流水灯程序的软件和硬件,可以让八个LED轮流点亮,每个灯点亮和熄灭时间均为1秒。是利用单片机I/O口控制外部设备的简单例子。当然,在你掌握了本程序后,完全可以充分发挥你的想象,改变一下程序内容和灯的接法(比如用光耦驱动继电器来控制霓虹灯),做出各种变化非凡的大型灯光广告牌。 一、硬件电路 因为电路用单片机控制,所以电路非常简洁。其电路原理图见下图,印制板图如下图所示。 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,共8个引脚。图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成时钟振
[单片机]
独立按键使流水灯逐个亮,学习使用
#include msp430x54x.h #include #include //***************************************************************************// // // // Init_Port(void): 设置IO端口 // // // //********************************************************
[单片机]
基于MCS-51单片机的流水灯功能设计与实现
今天,小编带大家一起来继续从基础做起,轻松玩转MCS-51单片机。这次主要实现的功能是:基于STC89C51单片机的流水灯功能设计与实现。如下图所示:下图为跑马灯电路(与单片机接口设置)。电路:1个LED光管点亮的电流值约为3~10mA,电阻值为1K。 电路通过编程后,可实现可以LED灯单个点亮或者实现流水灯功能、跑马灯功能等;(具体程序的话,可以自己是写一下)这里小编就写了一个实现流水灯的C源代码。大家也可以自己发散思维,让灯想怎么亮就怎么亮...有过自己动手的童鞋,肯定有过这样的感受:自己买的板板,用过一遍又一遍,但是每次都会变出点新花样出来,每次都是乐此不疲的写这代码,完全沉浸其中不可自拔....下图是具体功能实现时板
[单片机]
用单片机控制的LED流水灯设计
1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C
[单片机]
流水灯
; 知识要点:理解2进制数与端口的关系 ORG 0000H;程序开始 LJMP MAIN; ORG 030H; MAIN:MOV P1,#0DBH;11011011--零为亮 ACALL DEL;延时 MOV P1,#06DH;01101101 ACALL DEL;延时 MOV P1,#0B6H;10110110 ACALL DEL;延时 AJMP MAIN; DEL: MOV R7,#0FFH;延时子程序 DEL1:MOV R6,#0FFH; DEL2: DJNZ R6,DEL2; DJNZ R7,DEL1; RET; END
[单片机]