51单片机定时开关程序
答:一个简单的开关控制一盏灯的c程序如下:include<reg52.h>sbit S1=P1^4; //将S1位定义为P1^4,检测独立按键sbit led0=P1^0; //将led0定义为P1.0口的LED/***
答:1、先打开我们熟悉的单片机c51编程软件——keil,先把主方法写好。2、然后,我们要定义两个变量。3、接着,设定好定时器的工作方式。4、设置中断发生的机制。5、最后,我们要加进这几行代码进行初值的重装。6、最后,把if语句补充完毕就可以了。
答:AUXR &= 0xBF;//定时器时钟12T模式 TMOD &= 0x0F;//设置定时器模式 TMOD |= 0x10;//设置定时器模式 TL1 = 0x0C;//设置定时初值 TH1 = 0xFE;//设置定时初值 TF1 = 0;//清除TF1标志 ET1 = 1; //使能定时器1中断 TR1=1; //定时器1开始计时 EA =1; //开总中断 } ...
答:;***SPI初始化 ; SPCTL EQU 85H ; 7-SSIG(SS脚功能)-6-SPEN(SPI开关)-5-DORD(数据方向)-4-MSTR(主从模式)-3-CPOL(时钟方向)-2-CPHA(时钟相位)-1-SPR1(时钟频率)-0-SPR0(时钟频率);MOV SPCTL,#11110001B ;SS脚无效,SPI允许,低位先发,主机,CLK为低,上升沿采样,18000/16=...
答:…sbit XXX = P2^6; //定义开关,开始………void main(void)//主程序{ while(XXX == 1);//等待按键按下开始 while(1) { LED1=0; delay1ms(1000*1);//延时m 秒 LED1=1; delay1ms(1000*2);//延时2 秒 LED2=0; delay1ms(1000*1); LED2=1; delay1ms(100...
答:include<reg51.h> sbit LED1 = P1^0; //LED1 sbit LED2 = P1^1; //LED2 sbit K1 = P3^0;sbit K2 = P3^1;sbit K3 = P3^2;int flag;Time0_init() //定时50MS { TMOD = 0x01;TH0 = 0x3c;TL0 = 0xb0;EA = 1;ET0 = 1;TR0 = 1;} void delay(unsigned char m...
答:没想法就不会有创新,你的想法就很好。像这种亮灯的程序,对时间要求不是那么严格(如果极其严格就没法实现),那么可以采用如下方法实现你的要求://假设晶振12MHZ,按键输入P1.0,P1.1,P1.2;LED控制P2.0,P2.1,P2.2,都是低电平有效 include "reg51.h"unsigned int YSJS1=0;unsigned int ...
答:ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } / 函数名称 : Timer0_isr(void) interrupt 1 using 1 函数功能 : 定时器中断程序 / void Timer0_isr(void) interrupt 1 using 1 { TH0=0x00; //重新赋值,方式1是16位计数器,不能硬件重装初始值 TL0=0x00;LED=~LED...
答:也就是0xEE00 TR0 = 1; // 开启定时器0的运行。此语句之后Timer0计数器才开始累加 ET0 = 1; // 开启定时器0的中断。此语句之后,Timer0计数器溢出才会产生中断标志 EA = 1; // 开启总中断开关。此语句之后,中断标志置位才会触发PC跳转到对应的中断向量 好好学习天天向上 ...
答:定义两个寄存器,一个存放亮灯的时长,一个存放灭灯的时长。单片机的某三个I/O口接三个按键,其中一个负责切换亮灯、灭灯的设置选择;另两个按键按下时,单片机中断,一个按键是+,一个按键是- ,按键时,寄存器内的值做相应的+和- 运算,再把这两个值技术处理后,作为定时器的初始值,控制灯的...
网友评论:
商毅13362781065:
谁给个51单片机的定时器C程序 -
5680何柴
: #include<reg52.h>void main() { EA=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; TR0=1; } void interrupt 1 { unsigned char count; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(count==20)//1s{/*input your code*/} }
商毅13362781065:
51单片机C语言程序,利用定时器1控制LED灯每隔100ms亮一个,并且数码管上的数每隔200ms加1,加到100清零 -
5680何柴
: #include<reg51.h> #include<intrins.h> #define uchar unsigned char; uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f uchar number,dat,time; void t0isr() interrupt 1 {TH0=(65536-5000...
商毅13362781065:
51单片机定时程序怎么写?
5680何柴
: 大家好我是单片机新手请教一个问题,用AT89S51单片机设计一个控制器(把led灯用PWM控制,给你个程序参考 使用两个定时器Timer0和Timer1中断实现PWM控制
商毅13362781065:
用51单片机设置定时器 -
5680何柴
: ;定时10S,就一个单片机最小系统了,线路图不用画了吧.ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0 MAIN1:AJMP $ T0INT: ;50ms定时中断一次 MOV TH0,#3CH MOV TL0,#0B0H INC R0 CJNE R0,#200,RTI CPL P1.0 ;假设P1.0装一LED,那么每10s亮或灭一次 MOV R0,#0 RTI:RETIEND
商毅13362781065:
51单片机的定时程序 -
5680何柴
: 给你个提示吧,在主程序里面设置好中断,然后开中断,定时够6秒,这个定时不能直接顶出来的,你可以间接得到,你可以定时0.1秒,然后用一个变量装起来,没定时一次,在中断服务程序里面对这个变量加一,然后在主程序里面不断判断这个变量是否够6000,够的话就对你要的那个变量加一,然后对这个6000的变量清零,就可以了.这个单片机的程序一定要自己多写才行的,这样才可以学到东西.
商毅13362781065:
51单片机定时器1秒1加到99程序 -
5680何柴
: 可设定时器于一定的时间响应(例如50ms) , 再用一个变量来计算几次(20) , 当计数到一定的值代表到一秒,之后再另一个寄存器上加一,如此反复到99就好了
商毅13362781065:
51单片机定时器设置: -
5680何柴
: TMOD = (TMOD & 0XF0) | 0X01; //定时器0工作在模式1,16Bit定时器模式 上述表达式中0XF0的作用是什么? 1 (TMOD & 0XF0) 其中&为逻辑与指令,按位与操作,定时器的模式寄存器TMOD与上0XF0的作用是高4位不变,低4位被清零.(1与上...
商毅13362781065:
51单片机C语言定时器 先A灯亮5S,在灭10S,然后B灯亮5S,灭10S -
5680何柴
: 程序说明:51单片机定时器0工作于方式一,定时50ms中断一次 晶振为12M#include<reg52.h> void main { TOMD = 0X01; //配置定时器0工作于方式一 TH1 = (65536-50000)/256; //高八位装入初值 TL1 = (65536-50000)%256; //低八位装入初值 ET0 = 1; //开定时器0中断 EA = 1; //开总中断 TR0 = 1; //启动定时器0 while(1)
商毅13362781065:
怎么用51单片机定时1个小时 好像是循环,具体汇编程序是怎样的?? -
5680何柴
: 简单啊.大致说来就是 你先开启个定时器,根据你选用的晶振,计算出你要用定时器定时的基准时间,就假设是10毫秒吧.然后给定时器的THx,TLx写入初值,开启中断,进行定时.然后就等待中断.在你响应中断的程序中,再次给单片机送入初值,由于是10毫秒中断一次,因此我们设置几个“软件计数器” 比如每此中断,软甲计数器+1,例如“软件计数器1”在中断程序中计数100次,则是10ms*100=1s 而“软件计数器2”在1的基础上继续计数100次,则是1S*100=100S 而“软件计数器3”在2的基础上继续计数36次,则是100S*36=3600S=1小时.
商毅13362781065:
定时器程序 -
5680何柴
: #include<reg51.h> void main(void) { EA=1; //中断允许 IT1=1; //触发方式为下降沿触发 EX1=1; //外部中断允许 ET0=1; //计时器中断0允许 ET1=1; //计时器中断1允许 TMOD=0x21; //T1用模式2(8位计数器)、T0用模式1 (16位计数器)这里你可...