stc单片机编程按钮1按一下led1亮5秒后熄灭,按钮2按一下led2亮5秒后熄灭,可以互相中断,
i0.0为启动按钮,Q0.0为指示灯 按I0.0,当I0.0断开后开始计时,Q0.0亮5秒,熄灭5秒,如此运行5次后停止 网络1 LD I0.0 TOF T101, 5000 网络2 LDW 501, T101 LDW 1501, T101 OLD LDW 2501, T101 OLD LDW 3501, T101 OLD LDW 4501, T101 OLD = Q0.0 西门子PLC
#include#define uchar unsigned charsbit key1=P1^0sbit key2=P1^1;sbit led1=P1^4;sbit led2=P1^5;uchar cnt1,cnt2;void t0isr() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt1++;cnt2++;if(cnt1>=100)led1=1;if(cnt2>=100)led2=1;}main(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1) { if(key1==0) { while(key1==0); cnt1=0; led1=0; } if(key2==0) { while(key2==0); cnt2=0; led2=0; } }}
#include<reg51.h>
#define uchar unsigned char
uchar cnt1,cnt2;
sbit led1=P1^0;
sbit led2=P1^1;
void ext0() interrupt 0
{
cnt1=0
led1=0;
}
void ext1() interrupt 2
{
cnt2=0;
led2=0;
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt1++;
cnt2++;
if(cnt1>=100)led1=1;
if(cnt2>=100)led2=1;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
while(1)
}
可以相互中断啥意思啊,这个就是一个对按键的识别,然后控制指示灯的状态的啊
单片机程序:两位数码管记秒【加分】
{unsigned char sacn\/\/按键扫描变量 TMOD=0X02;\/\/8位自动重装 TH0=0x06;TL0=0x06;\/\/250us中断一次 ET0=1;EA=1;\/\/开单片机中断 while(1)\/\/等待中断 {if(int_count){sacn=int_count;if(!(scan%40))\/\/10ms进行一次按键扫描 Key_scan();\/\/调用按键扫描函数 P0=seg[second\/10]\/\/10...
利用单片机设计实现一个60秒倒计时显示装置,并且计时到后发出报警声音...
include<reg52.h>sbit bz=P3^1;unsigned char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};unsigned char n,time=60;main(){P1=a[0];P2=a[6];TMOD=0X01;TH0=(65536-10000)\/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;while(1);}timer0() ...
求一个程序,单片机接收红外传感器发出的信号,然后再控制步进电机动作...
if(irpro_ok) \/\/如果处理好后进行工作处理,如按对应的按键后显示对应的数字等 { Ir_work(); } }} 追问 传感器接收到红外信号,给单片机一个端口赋值1,反之赋值0.然后再控制步进电机,这样还需要对红外信号进行处理放大吗?谢谢! 追答 为什么要放大? 单片机采集来的只是电平信号,根据你的程序做出不同的响应...
谁能给我解释一下以下的单片机程序
LJMP SQU ;显示完一个波形,回到方波函数开始,判断有无其他按键 TC0: RET ;返回主函数 SAW: JNB P1.0,N4 ;判断有无其他按键,同方波 JNB P1.2,N5 JNB P1.3,N6 LJMP SSAW N4: MOV R7,#00H LJMP TC1 N5: MOV R7,#02H LJMP TC1 N6: MOV R7,#03H L...
AT89C51单片机利用定时器|计数器T0产生1秒钟的定时,每当一秒定时到来时...
;仿照例7.11 ;TC=M-T\/T计数=9E58H(其中T=25ms)ORG 0000H LJMP MAIN ORG 000BH AJMP BRT0 ORG 0030H MAIN:CLR P1 MOV TMOD,#01H;T0为方式1 SETB EA SETB ET0 SETB TR0 MOV TH0,#9EH MOV TL0,#58H MOV R0,#04H MOV A,#01H LOOP:SJMP $;等待中断 ORG 0080H BRT0:DJNZ ...
C语言控制单片机的详细原理是怎样的?
目前来讲,C语言的编译器种类非常多,有用于各种单片机以及微处理器架构的编译器版本,所以可以用C来做为单片机的编程语言。不同的是,你用TC或者VC编译得到的是X86(如Intel,AMD)的目标代码,只能在PC机上运行,而如果用单片机C编译器(比如Keil C)编译的代码是单片机代码,只能在特定的单片机上运行。...
单片机与TC1047芯片怎么连接
TC1047和TC1047A为线性电压输出的温度传感器,其输出电压与测量的温度成正比。TC1047和TC1047A可以精确测量-40°C至+125°C范围内的温度。同时,TC1047的工作电压范围为2.7V至4.4V;TC1047A的工作电压范围为2.5V至5.5V。这类温度传感器的输出电压典型值为:-40°C时为100mV,0°C时为500mV,+...
STC 89C52RC单片机向TXD端口发送指定数据的程序要怎么写
(2) 波特率不加倍(SMOD=0):Max_Baud = FOSC\/12\/32 例如:22.1184MHz晶振,波特率加倍时,最大波特率=22118400\/12\/16=115200#define FOSC11059200\/\/振荡频率 define BAUD9600\/\/波特率 define SMOD1\/\/是否波特率加倍 if SMOD define TC_VAL(256-FOSC\/16\/12\/BAUD)else define TC_VAL(256-FOSC\/...
单片机c语言编程软件有哪些?
windows下首选VS,版本至少vs2005以上,或者用最新的VSCode,不过需要自己配插件,好处是免费,如果做单片机c开发首选eclipse,linux下如果做单片机首选eclipse,其次是clion。eclipse兼容性最好,不过稳定性差一些,vs在win下没有对手,clion用cmake,相比来说大部分c程序用的都是makefile,需要适应一下。Dev...
单片机芯片中有哪些结构和功能部件?
单片机一切工作停止,直到下一个中断或硬件复位为止。 R 8 位微控制器 8K 字节在系统可编程 Flash ...或TCKL=1时,此标志位无效,定时器2溢出时,强制做自动重载操作。 双数据指针寄存器:为了更有利于访问
逯炕迪克: 比如,长按1s为高电平是一个功能,长按2s是另一个功能可以啊,可以根据按键时间的长短,和高低电平来实现:先读取某个io口的值,若为高电平(if 按键高电平有效),则延时1s,最后再读取一次该io口的值,若继续为高电平,则调用你要的功能即可.步骤为
中站区18241786996: stc89c52rc单片机编程按钮1按下led1量5秒,按钮2按下LED2亮5秒,请高人编程 - ?
逯炕迪克: #include#define uchar unsigned char sbit key1=P1^0 sbit key2=P1^1; sbit led1=P1^4; sbit led2=P1^5; uchar cnt1,cnt2; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; cnt1++; cnt2++; if(cnt1>=100)led1=1; if(cnt2>=100)...
中站区18241786996: 求用单片机编程序 是用c语言编的题目是 当key1每按一次,led闪10次后报警 - ?
逯炕迪克: 找一个读按键的程序, 然后 while (**)判断按键 {计数器加1;灯闪;判断是否是9{是清零报警(基本延时多久后,再关掉报警)}延时20ms判断 按键松开 //这里是死循环在这,除非你要求可以连续读按键 }自己找程序去,编完了给你 ,你以后还是不会
中站区18241786996: stc单片机编程按钮1按一下led1亮5秒后熄灭,按钮2按一下led2亮5秒后熄灭,可以互相中断, - ?
逯炕迪克: 可以相互中断啥意思啊,这个就是一个对按键的识别,然后控制指示灯的状态的啊
中站区18241786996: 请问大佬,STC89C51单片机怎么编程实现长按开关一秒实现一组LED花样转换为另一组. - ?
逯炕迪克: if(~key) { delay(10);//去抖 if(~key) { delay(500);//短按,时间可在 //200-500毫秒之间调整 if(key)//如果释放就是短按 { //此处执行你的程序 } else//如果没释放按键 { delay(500);//再延时500毫秒 if(~key)//如果还没释放 while(~key);//等待释放 { //此处放入长按1秒后 //需要执行的程序 } } } }
中站区18241786996: 51单片机独立按键中,按一下和一直按的区别 - ?
逯炕迪克: 按一下松开这个LED一直亮:if(key==0) { while(key==0); led=0; }按一下松开就亮一下:if(key==0) { led=0; while(key==0); led=1; }
中站区18241786996: 用一个按键控制一个LED闪烁的程序怎么写 - ?
逯炕迪克: 如用51单片机#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit S1=P3^2;sbit LED=P0^0;void delay(uint z){ int x,y; for(x=110;x>0;x--) for(y=z;y>0;y--)}void main(){ LED=0; while(1) { if(S1==0) { delay(5); if(S1==0); { LED=~LED; } } }}以上程序仅供参考
中站区18241786996: 单片机编程:LED发光二极管的初始状态为亮.按一下按键,LED灯灭.再按一下,LED亮,用C语言编程该怎么写?
逯炕迪克: 用if语句编写 然后按键取反 弄个延时做按键防抖 画流程图来设计 应该能行 相信自己哈!
中站区18241786996: 单片机一个按键控制一个发光二极管 - ?
逯炕迪克: 以下是用C语言实现的:#include<reg51.h>sbit KEY=P1^0; sbit LED=P1^1;void delay();void main() {while(1) //不断循环{if(KEY==0) //判断键盘是否被按下{delay(); //调用延时函数,作用消抖if(KEY==0) //再次读键盘,以判断刚才判...
中站区18241786996: 单片机每个按键对应一个LED,按一下按键,对应的灯亮,再按一下该按键,对应的灯灭, - ?
逯炕迪克: 这个程序太简单了哦. 比如你的按键是P2.0,灯是P2.1的话程序如下: org 1000H lcall keyscan sjmp $ keyscan: push acc mov a,p2 jb acc.0,here lcall delay mov a,p2 jb acc.0.here cpl p2.1 here: ret delay: mov r6,20 delay1: mov r7,200 delay2: nop nop nop djnz r7,delay2 djnz r6,delay1 ret