久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
單片機(jī)程序 只能切換LED1和LED2的狀態(tài),不能同時(shí)亮或同時(shí)滅 不知問題出在哪里?
[打印本頁]
作者:
木示
時(shí)間:
2023-3-6 14:59
標(biāo)題:
單片機(jī)程序 只能切換LED1和LED2的狀態(tài),不能同時(shí)亮或同時(shí)滅 不知問題出在哪里?
本例程是,STC官方的例程,學(xué)習(xí)過后,欲將其改造:通過按鍵改flag次數(shù),然后將flag次數(shù),寫進(jìn)EEPROM,再讀取出來,相對應(yīng)的LED狀態(tài)隨著flag的改變而改變。現(xiàn)在問題是:只能切換LED1和LED2的狀態(tài),不能同時(shí)亮或同時(shí)滅。不知問題出在哪里?請高手們不吝指導(dǎo)一下!謝謝!
#include "STC8G.h"
#include "intrins.h"
#define FOSC 11059200UL
#define BRT (65536 - FOSC / 115200 / 4)
#define uchar unsigned char
#define uint unsigned int
//sfr P0M1 = 0x93;
//sfr P0M0 = 0x94;
//sfr P1M1 = 0x91;
//sfr P1M0 = 0x92;
//sfr P2M1 = 0x95;
//sfr P2M0 = 0x96;
//sfr P3M1 = 0xb1;
//sfr P3M0 = 0xb2;
//sfr P4M1 = 0xb3;
//sfr P4M0 = 0xb4;
//sfr P5M1 = 0xc9;
//sfr P5M0 = 0xca;
//sfr AUXR = 0x8e;
//sfr T2H = 0xd6;
//sfr T2L = 0xd7;
//sfr IAP_DATA = 0xC2;
//sfr IAP_ADDRH = 0xC3;
//sfr IAP_ADDRL = 0xC4;
//sfr IAP_CMD = 0xC5;
//sfr IAP_TRIG = 0xC6;
//sfr IAP_CONTR = 0xC7;
//sfr IAP_TPS = 0xF5;
//void UartInit()
//{
// SCON = 0x5a;
// T2L = BRT;
// T2H = BRT >> 8;
// AUXR = 0x15;
//}
//void UartSend(char dat)
//{
// while (!TI);
// TI = 0;
// SBUF = dat;
//}
sbit LED1=P5^4;
sbit LED2=P3^3;
sbit KEY=P3^2;
// uchar V;
char flag=1;
void IapIdle()
{
EA=0; //禁止中斷
IAP_CONTR = 0; //關(guān)閉IAP功能
IAP_CMD = 0; //清除命令寄存器
IAP_TRIG = 0; //清除觸發(fā)寄存器
IAP_ADDRH = 0x80; //將地址設(shè)置到非IAP區(qū)域
IAP_ADDRL = 0;
EA=0; //重啟中斷
}
char IapRead(int addr)
{
char dat;
EA=0;
IAP_CONTR = 0x80; //使能IAP
IAP_TPS = 12; //設(shè)置等待參數(shù)12MHz
IAP_CMD = 1; //設(shè)置IAP讀命令
IAP_ADDRL = addr; //設(shè)置IAP低地址
IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
IAP_TRIG = 0x5a; //寫觸發(fā)命令(0x5a)
IAP_TRIG = 0xa5; //寫觸發(fā)命令(0xa5)
_nop_();
dat = IAP_DATA; //讀IAP數(shù)據(jù)
IapIdle(); //關(guān)閉IAP功能
EA=1;
return dat;
}
void IapProgram(int addr, char dat)
{
EA=0;
IAP_CONTR = 0x80; //使能IAP
IAP_TPS = 12; //設(shè)置等待參數(shù)12MHz
IAP_CMD = 2; //設(shè)置IAP寫命令
IAP_ADDRL = addr; //設(shè)置IAP低地址
IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
IAP_DATA = dat; //寫IAP數(shù)據(jù)
IAP_TRIG = 0x5a; //寫觸發(fā)命令(0x5a)
IAP_TRIG = 0xa5; //寫觸發(fā)命令(0xa5)
_nop_();
IapIdle(); //關(guān)閉IAP功能
EA=1;
}
void IapErase(int addr)
{
EA=0;
IAP_CONTR = 0x80; //使能IAP
IAP_TPS = 12; //設(shè)置等待參數(shù)12MHz
IAP_CMD = 3; //設(shè)置IAP擦除命令
IAP_ADDRL = addr; //設(shè)置IAP低地址
IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
IAP_TRIG = 0x5a; //寫觸發(fā)命令(0x5a)
IAP_TRIG = 0xa5; //寫觸發(fā)命令(0xa5)
_nop_(); //
IapIdle(); //關(guān)閉IAP功能
EA=1;
}
void main(void)
{
uchar V;
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
// UartInit();
// IapErase(0x0400);
// UartSend(IapRead(0x0400));
// P5=IapRead(0x0400);
// IapProgram(0x0400, 0x12);
// UartSend(IapRead(0x0400));
//P3=IapRead(0x0400);
IT0 = 0;
EX0 = 1;
EA = 1;
V = IapRead(0x0400); // 開機(jī)讀取EEPROM區(qū)數(shù)據(jù),還原關(guān)電前LED的亮滅狀況
IapErase(0x0400); //擦除
while(1)
{
IapProgram(0x0400, V); //寫入
V= IapRead(0x0400); //讀取
for(V=flag;flag<=4;flag++)
{
if(V==1)
{
LED1=0;LED2=1;
IapErase(0x0400); // 擦除
IapProgram(0x0400, 1); //寫入
}
if(V== 2)
{
LED1=1; LED2=0;
IapErase(0x0400); // 擦除
IapProgram(0x0400, 2); //寫入
}
if(V== 3)
{
LED1=0; LED2=0;
IapErase(0x0400); // 擦除
IapProgram(0x0400, 3); //寫入
}
if(V== 4)
{
LED1=1; LED2=1;
IapErase(0x0400); // 擦除
IapProgram(0x0400, 4); //寫入
}
}
}
}
//--------------中斷函數(shù)--------------
void int0_process() interrupt 0
{
if (KEY==1)
{
if(flag<=4)flag++;
else flag=1;
// _nop_();
// _nop_();
// _nop_();
// _nop_();
}
0dd052a361c499db25608fbb65b5c09.jpg
(234.06 KB, 下載次數(shù): 151)
下載附件
2023-3-6 15:11 上傳
作者:
lkc8210
時(shí)間:
2023-3-6 17:38
EEPROM有擦寫壽命,大概100k
你把擦寫放到while(1)中,估計(jì)一下子就爆了
建議當(dāng)V有改變時(shí)才擦寫EEPROM
作者:
wulin
時(shí)間:
2023-3-6 20:25
V是隨時(shí)變化的變量,只有斷電保存才有實(shí)際意義。如此頻繁保存,要不了幾個(gè)時(shí)辰,單片機(jī)就廢了。
作者:
君工創(chuàng)
時(shí)間:
2023-3-6 23:56
進(jìn)入while(1)之后就是不斷擦除、寫入,用意何在?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文视频在线
|
一区二区三区免费观看
|
国产高清精品在线
|
欧美精品一区二区三区在线播放
|
亚洲成人av在线播放
|
特黄色一级毛片
|
麻豆亚洲
|
人人干免费
|
91大神xh98xh系列全部
|
插插插干干干
|
欧美中文字幕一区
|
久久久毛片
|
日韩视频精品在线
|
四虎影视1304t
|
欧美极品在线视频
|
99精品免费在线观看
|
欧美激情五月
|
亚洲人在线
|
国内精品视频在线
|
国产精品久久精品
|
91精品国产91久久久久久丝袜
|
一区二区三区视频
|
亚洲精品9999久久久久
|
欧美大片在线观看
|
久久99久久99
|
91一区二区在线观看
|
夜夜草天天草
|
日韩一区二区三区在线观看视频
|
亚洲av毛片
|
久久成人精品视频
|
精品久久精品
|
亚洲天堂一区二区
|
国产激情视频在线
|
成人在线免费视频
|
精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区
|
黄免费观看视频
|
91香蕉嫩草
|
日韩久久精品视频
|
超碰91在线
|
午夜精品久久久久久久99黑人
|
欧美久久不卡
|