STC12C5204AD单片机 低压检测中断中写入EEPROM的问题?程序中赋值一个 全局变量 volatile cnt,有2个中断 一个外部中断(优先级低) 一个低压检测中断(优先级高)。程序流程
2012-07-09 14:24
各有友友们 帮帮忙
2013-11-06 15:21
#includeunsigned char digtal1[10]={0xc0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0123456789#define uchar unsigned charuchar ch;void delay1ms(x) //0.5ms {int y,z;for(y=x;y>0;y--) for(z=60;z>0;z--); }void init_uart(){TMOD=0X20; //定时器/计算器工作模式寄存器TH1=0XFD; //timer high 1TL1=0XFD; //timer low1TR1=1;//定时器T1的运行控制位SCON=0X50; //串行控制寄存器EA=1;//CPU的总中断允许控制位ES=1;//串行口中断允许位}void main(){ init_uart();while(1){ P3=ch; P2=digtal1[8]; delay1ms(1000); }}void UART_interrupt() interrupt 4 { if(RI) { RI=0; //接收中断请求标志位 ch=SBUF;}}
2017-06-27 13:51
新手上路,请指导,先行谢过了!
2013-05-11 10:38
#include "reg51.h"#include"intrins.h"typedef unsigned char BYTE;typedef unsigned intWORD;sfr ADC_CONTR1 = 0x90;sfr ADC_CONTR2= 0x91;sfr ADC_RES = 0xff;sfr P1ASF = 0x9D;#define ADC_POWER0x80#define ADC_FLAG0X10#define ADC_START0X08#define ADC_SPEEDLL 0X00#define ADC_SPEEDL0X20#define ADC_SPEEDH0X40#define ADC_SPEEDHH0X60void InitADC();void Delay(WORD n);void InitADC();BYTE ch = 0;bit DisplayEN;unsigned char i;void InitADC(){ P1ASF = 0X03; ADC_RES =0;if(++ch>7)ch=0; ADC_CONTR1 =ADC_POWER|ADC_SPEEDLL|ADC_START|ch; Delay(2);ADC_CONTR2 =ADC_POWER|ADC_SPEEDLL|ADC_START|ch; Delay(2);}void main(){{InitADC();while(1);}{InitADC0 = InitADC1; display(DisplayData,0,0) ; display(DisplayData,0,0) ; display(DisplayData,0,0) ; InitADC0 = InitADC1;display(DisplayData,0,0) ; display(DisplayData,0,0) ; display(DisplayData,0,0) ;DisplayData[5]=ADData0/100;DisplayData[4]=ADData0/10%10;DisplayData[3]=ADData0%10;DisplayData[2]=ADData1/100;DisplayData[1]=ADData1/10%10;DisplayData[0]=ADData1%10;for(i=0;i
2013-05-14 13:02
2022-10-26 07:48
总是进了中断后不能判断哪个按键按下,无法进行下一步操作。请各路大神帮忙。。
2017-07-05 16:54
void delay1ms(x) //0.5ms {int y,z;for(y=x;y>0;y--) for(z=60;z>0;z--); }void init_uart(){TMOD=0x20; //定时器/计算器工作模式寄存器TH1=0xFD; //timer high 1TL1=0xFD; //timer low1TR1=1;//定时器T1的运行控制位SCON=0x50; //串行控制寄存器EA=1;//CPU的总中断允许控制位ES=1;//串行口中断允许位}void UART_R() interrupt 4{RI=0; Serial_digtal[ch++]=SBUF; if(ch==N)//获取SBUF接收到的数据 flag=1;}void main(){init_uart();while(1){ if(flag==1) //接收完成标志为1 {ES=0; //关串口中断for(ch=0;ch
2017-06-28 16:06
本次设计利用DC-DC升压电路提供给BQ2000的电池充电系统,并且利用STC12C5204AD单片机编程产生PWM来跟踪最大功率(MPPT)输出。本系统电路结构简单、各波形良好,测量结果精确,符合
2021-11-11 06:25
本次设计利用DC-DC升压电路提供给BQ2000的电池充电系统,并且利用STC12C5204AD单片机编程产生PWM来跟踪最大功率(MPPT)输出。本系统电路结构简单、各波形良好,测量结果精确,符合
2021-11-06 18:21