久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6575|回復(fù): 26
收起左側(cè)

如何讓單片機(jī)程序里一段代碼就運(yùn)行一次,以后重啟都不會(huì)再執(zhí)行了

  [復(fù)制鏈接]
ID:709761 發(fā)表于 2021-7-6 12:09 | 顯示全部樓層 |閱讀模式
如題
回復(fù)

使用道具 舉報(bào)

ID:716656 發(fā)表于 2021-7-6 13:51 | 顯示全部樓層
變量為1,判斷第一次進(jìn)入運(yùn)行過(guò)以后,變量減一,為0,寫入flash,下一次進(jìn)入if(0)就不執(zhí)行了。。。不知道可行不
回復(fù)

使用道具 舉報(bào)

ID:660851 發(fā)表于 2021-7-6 15:06 | 顯示全部樓層
做一個(gè)數(shù)據(jù)存儲(chǔ)到單片機(jī)flash(掉電不會(huì)丟失數(shù)據(jù))存儲(chǔ)中,運(yùn)行那段代碼之后就改變存儲(chǔ)數(shù)據(jù),程序上電讀取該數(shù)據(jù),判斷是否是設(shè)定值
回復(fù)

使用道具 舉報(bào)

ID:798631 發(fā)表于 2021-7-6 17:20 | 顯示全部樓層
設(shè)定一個(gè)標(biāo)志數(shù)據(jù) 進(jìn)行硬件存儲(chǔ)  軟件修改標(biāo)志數(shù)據(jù)的值 判斷數(shù)值后執(zhí)行相應(yīng)代碼就可以,執(zhí)行1次 執(zhí)行1年這樣類似這樣的功能這樣的實(shí)現(xiàn)最方便
回復(fù)

使用道具 舉報(bào)

ID:415064 發(fā)表于 2021-7-6 18:31 | 顯示全部樓層
第一次執(zhí)行后,把flag寫入flash。以后每次讀取flag來(lái)不執(zhí)行
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2021-7-6 19:03 | 顯示全部樓層
壓著我頭發(fā)啦 發(fā)表于 2021-7-6 13:51
變量為1,判斷第一次進(jìn)入運(yùn)行過(guò)以后,變量減一,為0,寫入flash,下一次進(jìn)入if(0)就不執(zhí)行了。。。不知道 ...

只有0和1,容易出錯(cuò),要像板凳說(shuō)的那樣寫入一個(gè)指定的字節(jié)比如 55H 然后判斷,要求高的多寫幾個(gè)不同的字節(jié)
回復(fù)

使用道具 舉報(bào)

ID:452950 發(fā)表于 2021-7-6 20:39 | 顯示全部樓層
關(guān)鍵在于如何判斷是否第一次通電,所以只要用一個(gè)標(biāo)志來(lái)表示是否已執(zhí)行過(guò)此段程序就可以了,這就需要掉電記憶功能,可以用單片機(jī)的flash,也可以用外置的存儲(chǔ)芯片來(lái)儲(chǔ)存這個(gè)標(biāo)志。
回復(fù)

使用道具 舉報(bào)

ID:81196 發(fā)表于 2021-7-7 08:56 | 顯示全部樓層
帶記憶性的得寫到存儲(chǔ)里邊才可以方便下一次的斷電重啟后的再次判斷.可以判斷具體標(biāo)志,常規(guī)是寫0x5A或0xA5這種特殊的數(shù)據(jù)來(lái)做標(biāo)記.
回復(fù)

使用道具 舉報(bào)

ID:716656 發(fā)表于 2021-7-7 09:59 | 顯示全部樓層
hhdsdy 發(fā)表于 2021-7-6 19:03
只有0和1,容易出錯(cuò),要像板凳說(shuō)的那樣寫入一個(gè)指定的字節(jié)比如 55H 然后判斷,要求高的多寫幾個(gè)不同的字 ...

謝謝,穴道了
回復(fù)

使用道具 舉報(bào)

ID:709761 發(fā)表于 2021-7-8 07:57 | 顯示全部樓層
如果FLASH壞了,或者讀出數(shù)據(jù)錯(cuò)誤,怎么辦
回復(fù)

使用道具 舉報(bào)

ID:709761 發(fā)表于 2021-7-8 08:00 | 顯示全部樓層
用硬件的方法可靠,運(yùn)行一次,再把單片機(jī)引腳焊接拉低為0,判斷引腳電平
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2021-7-8 09:40 | 顯示全部樓層
李冬 發(fā)表于 2021-7-8 07:57
如果FLASH壞了,或者讀出數(shù)據(jù)錯(cuò)誤,怎么辦

FLASH那么容易壞嗎?你怎么不問(wèn)單片機(jī)壞了怎么辦?在調(diào)試正常程序時(shí)序沒(méi)問(wèn)題并且FLASH不壞的情況下,讀出數(shù)據(jù)出錯(cuò)的情況極少(比如被干擾了,有這份擔(dān)心就要做好軟硬件抗干擾措施)。
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2021-7-8 09:44 | 顯示全部樓層
李冬 發(fā)表于 2021-7-8 08:00
用硬件的方法可靠,運(yùn)行一次,再把單片機(jī)引腳焊接拉低為0,判斷引腳電平

運(yùn)行一次后再焊接引腳不覺(jué)得麻煩嗎?STC單片機(jī)自帶斷電保存的寄存器,能用軟件解決的為什么還要?jiǎng)邮钟密浻布Y(jié)合的方法?
回復(fù)

使用道具 舉報(bào)

ID:531720 發(fā)表于 2021-7-8 15:19 | 顯示全部樓層

可以用
int  status = 1;
#if  status
      里面是你需要執(zhí)行一次的語(yǔ)句
#end if
status = 0;
回復(fù)

使用道具 舉報(bào)

ID:709761 發(fā)表于 2021-7-9 11:19 | 顯示全部樓層
胖球 發(fā)表于 2021-7-8 15:19
可以用
int  status = 1;
#if  status

下次重啟又運(yùn)行了
回復(fù)

使用道具 舉報(bào)

ID:176854 發(fā)表于 2021-7-9 18:01 | 顯示全部樓層
本帖最后由 jjjjjjir 于 2021-7-9 20:01 編輯






回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2021-7-9 23:11 | 顯示全部樓層
李冬 發(fā)表于 2021-7-9 11:19
下次重啟又運(yùn)行了

你會(huì)看程序嗎?單片機(jī)每次上電,status都賦值為1一次,然后執(zhí)行一次里面的程序,再次循環(huán)(不是斷電上電))才跳過(guò)這個(gè)程序,根本就不符合你的要求,反而上面帖子那么多建議你用斷電存儲(chǔ)器保存狀態(tài)的正確建議置之不理
回復(fù)

使用道具 舉報(bào)

ID:709761 發(fā)表于 2021-7-10 08:26 | 顯示全部樓層
hhdsdy 發(fā)表于 2021-7-9 23:11
你會(huì)看程序嗎?單片機(jī)每次上電,status都賦值為1一次,然后執(zhí)行一次里面的程序,再次循環(huán)(不是斷電上電 ...

我的意思是斷電重啟會(huì)再次運(yùn)行。斷電存儲(chǔ)器有使用壽命,不保險(xiǎn),想找找更好的辦法。
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2021-7-10 09:07 | 顯示全部樓層
李冬 發(fā)表于 2021-7-10 08:26
我的意思是斷電重啟會(huì)再次運(yùn)行。斷電存儲(chǔ)器有使用壽命,不保險(xiǎn),想找找更好的辦法。

隨意的一款斷電存儲(chǔ)器,讀寫的壽命都不會(huì)低于10萬(wàn)次,你一天會(huì)寫入幾次壽命有多少可以自己算,更何況這個(gè)只需要寫入一次(以后重啟只要判斷有數(shù)據(jù)并且正確,不會(huì)執(zhí)行寫操作,你不會(huì)認(rèn)為不管對(duì)錯(cuò)每次都必須重寫數(shù)據(jù)吧?),剩下的都是讀取數(shù)據(jù)了,讀取數(shù)據(jù)不影響存儲(chǔ)器的壽命,你擔(dān)心什么?
回復(fù)

使用道具 舉報(bào)

ID:854029 發(fā)表于 2021-7-10 11:03 | 顯示全部樓層
有EEROM的單片機(jī)很容易,沒(méi)有EEROM的做不了。
回復(fù)

使用道具 舉報(bào)

ID:641314 發(fā)表于 2021-7-10 15:32 | 顯示全部樓層
設(shè)定一個(gè)標(biāo)準(zhǔn)位 只有第一次的運(yùn)行的時(shí)候標(biāo)志位是0 運(yùn)行完之后將標(biāo)志位寫到flash 切記每次開機(jī)先從flash將數(shù)據(jù)讀出來(lái)
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2021-7-10 17:33 | 顯示全部樓層
VCC5v就夠了,F(xiàn)U 是個(gè) 50ma保險(xiǎn)絲。   P1.1給一次高電平,  保險(xiǎn)絲熔斷。   保險(xiǎn)絲熔斷前,P1.2始終是高電平,當(dāng)保險(xiǎn)熔斷后,P1.2就始終是低電平了。  這個(gè)可以滿足你的要求,而且是純硬件,可靠性高。   不過(guò),打死我也不會(huì)這么用。
aaa.jpg
回復(fù)

使用道具 舉報(bào)

ID:689247 發(fā)表于 2021-7-10 17:46 | 顯示全部樓層
robinsonlin 發(fā)表于 2021-7-10 17:33
VCC5v就夠了,F(xiàn)U 是個(gè) 50ma保險(xiǎn)絲。   P1.1給一次高電平,  保險(xiǎn)絲熔斷。   保險(xiǎn)絲熔斷前,P1.2始終是高電 ...

老哥這個(gè)想法絕了
回復(fù)

使用道具 舉報(bào)

ID:342822 發(fā)表于 2021-7-10 18:00 | 顯示全部樓層
呵呵~~bascom avr 是有這一功能的。在按下復(fù)位鍵到向SRAM寫0期間加入命令$NORAMCLEAR禁止清除,
就可以保留復(fù)位前的變量值也就保留了標(biāo)志位。
回復(fù)

使用道具 舉報(bào)

ID:250637 發(fā)表于 2021-7-12 14:04 | 顯示全部樓層
cpu小白白 發(fā)表于 2021-7-10 17:46
老哥這個(gè)想法絕了

這個(gè)方法就牛皮了
回復(fù)

使用道具 舉報(bào)

ID:642999 發(fā)表于 2021-7-16 17:03 | 顯示全部樓層
寫個(gè)程序給你看一下:

u8 i;//i是全局變量
void main(){
u8 i;
while(1){
讀取(i);
if(i==0){
led=1;
i=1;
存入(i);
}
}
}
回復(fù)

使用道具 舉報(bào)

ID:342822 發(fā)表于 2021-7-16 20:49 | 顯示全部樓層
7777.gif
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av毛片在线| 毛片黄片 | 一道本不卡 | 亚洲精品视频免费 | 中文字幕在线视频免费观看 | 日韩精品视频在线播放 | 一道本视频 | 亚洲成人精品 | 日皮视频免费 | 日韩欧美综合在线视频 | 欧美性猛交一区二区三区精品 | 日韩在线| 国产日韩欧美中文 | 久久国内 | 日韩成人av在线播放 | 国产成人麻豆免费观看 | 亚洲理论在线观看电影 | 97精品国产97久久久久久免费 | 国产69精品久久99不卡免费版 | 欧美伦理一区 | 欧美成人精品在线观看 | 国产成人精品一区二区三区网站观看 | 免费精品 | 成人精品视频在线观看 | 成人精品视频在线观看 | 中文字幕一区在线观看视频 | 成人免费观看男女羞羞视频 | 国产成人综合一区二区三区 | 国产一区二区三区视频在线观看 | 亚洲午夜精品 | 亚洲国产精品久久久 | 精品国产一区二区三区久久 | 超碰8| 欧美视频二区 | 中文字幕在线一区二区三区 | 欧美福利| 亚洲精品视频免费观看 | 成年人视频免费在线观看 | av在线电影网 | 操操网站 | 亚洲免费一区二区 |