首页 > 软件 > 新手,求一个52单片机定时通断LED灯30分钟的程序

新手,求一个52单片机定时通断LED灯30分钟的程序

软件 2024-02-24

单片机C语言定时中断LED灯程序求修改

#include sbit P00=P0^0; sbit key=P1^0; unsigned int i=0; void main(void) { TMOD=0x10;//设定定时器的工作模式为定时器1方式1 TH1=15536/256;//向定时器装入初值高八位 TL1=15536%256;//向定时器装入初值低八位 EA=1;//开总开关 ET1=1;//开分开关 TR1=1;//启动定时器 while(1) { if(key==0)TR1=0; else TR1=1; } } void t1(void) interrupt 3//定时器0服务函数 { TH1=1553

求52单片机流水灯程序

//单片机流水灯程序,是学习单片机的最简单的程序。

//流水灯

#include //51头文件

#define DY_PORT P1 //设置LED连接的I/O组

#define DY_SPEED 100 //设置每一个明亮级的停留时间(值域:0~65535)

void delay (unsigned int a){ // 1ms延时程序

unsigned int i;

while( --a != 0){

for(i = 0; i < 600; i++);

}

}

void main(void){

unsigned int i;

unsigned int temp;

while(1){

temp=0x01;

for(i=0;i<8;i++){ //8个流水灯逐个闪动

DY_PORT=~temp;

delay(DY_SPEED); //调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++){ //8个流水灯反向逐个闪动

DY_PORT=~temp;

delay(DY_SPEED); //调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++){ //8个流水灯依次全部点亮

DY_PORT=temp;

delay(DY_SPEED); //调用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮

DY_PORT=temp;

delay(DY_SPEED); //调用延时函数

temp>>=1;

}

}

}

单片机定时中断 循环点亮LED灯

在此我指出你程序的三点: 1:你写汇编程序注意程序的入口地址,比如:“ORG 0000H,主程序开始的入口ORG 0100,中断程序开始的入口 ORG 0200等等...”。你要知道汇编和C不同,汇编比起C语言要相对机械一些。汇编程序是写入硬件内部的,严格的配合硬件的结构,于是从上往下执行时,你的汇编程序注意标程序的入口地址,加上合适的跳转。 2:你把PSW ACC入栈保护起来做什么? 搞得程序执行都不按常理了。你找书熟悉下它们,有时画蛇添足也会出问题的。 3:main程序前面一般都是初始化程序,而你的程序前面是要循环的内容。写程序不仅需要逻辑,还需要你写得规范,条理清澈。 以下我帮你修改了你

求一个52单片机卡流水灯程序题目如下

#define led P0//你用的单片机端口#define uchar unsigned char#define uint unsigned int#define ON 0//假设按下为0松开为1#define OFF 1sbit button1=P1^0;//方式选择sbit button2=P1^1;//速度选择+sbit button3=P1^2;//速度选择-//uchar Fshi=0,BT1=255,BT2=255,BT3=255;uint DELAY=1000,Delay=50;void delay(uint a){ DELAY=1000; for(;a>0;a--)whil

求51单片机定时LED闪烁程序代码

#include//包括一个52标准内核的头文件

#defineucharunsignedchar

/******************************主函数*****************************/

voidtimer0();

voidmain()//主程序

{

TMOD=0x01;//定时器0工作方式1

EA=1;

ET0=1;//定时器0中断

TR0=1;//启动定时器0

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

while(1);//程序循环

}

/*****************************定时器0中断*************************/

voidtimer0()interrupt1

{

uchart;//定义变量

TF0=0;//定时器清0

t++;//中断一次累加1

if(t==20)//预置值,溢出20次就是1秒钟,晶振12MHZ

{

t=0;

P3=~P3;//反转LED灯的亮灭

}

}

/*****************************************************************/


标签:单片机 信息技术 编程语言 定时 led灯

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18