欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 請教為啥單片機+74hc595顯示不正常? [打印本頁]

作者: 13872888583    時間: 2024-4-1 20:38
標題: 請教為啥單片機+74hc595顯示不正常?
晚上好,各位老師,請教一下我的程序是否有問題,單片機STC8H8K64U,兩個74HC595推動四位數碼管,剛開始采用延時程序,hour=1234.可以正常顯示1234.后來采用定時中斷顯示,hour改為1111.顯示444.請教一下,這樣寫程序是否正常,如果錯誤,該怎么改?謝謝

IMG_20240401_203010.jpg (829.43 KB, 下載次數: 72)

IMG_20240401_203010.jpg

51hei.png (22.23 KB, 下載次數: 83)

51hei.png

作者: lkc8210    時間: 2024-4-1 22:20
先把211行的k++移到213行之后
確保LED8[k]里k的值不會超過4
作者: 13872888583    時間: 2024-4-1 22:35
lkc8210 發表于 2024-4-1 22:20
先把211行的k++移到213行之后
確保LED8[k]里k的值不會超過4

高手,正常了,現在4個1111了。以前不明白,為啥自加加要放到后面。現在知道了
作者: xiaobendan001    時間: 2024-4-2 08:41
放前邊也沒問題吧,主要是后面的if(k>=4)改成3才對啊,因為=4就是led[4]就越界了。
作者: 13872888583    時間: 2024-4-2 10:13
xiaobendan001 發表于 2024-4-2 08:41
放前邊也沒問題吧,主要是后面的if(k>=4)改成3才對啊,因為=4就是led[4]就越界了。

不能是3,3就少一位了。
作者: xiaobendan001    時間: 2024-4-2 10:43
13872888583 發表于 2024-4-2 10:13
不能是3,3就少一位了。

3的話就要放前邊,4就放后邊,總之就是不能讓數組越界。不越界還有一個辦法,把數組定義大一些。
作者: 君工創    時間: 2024-4-2 15:11
if(K>3){K=0;)這樣也可以吧。
作者: Hephaestus    時間: 2024-4-2 17:03
214、215行應該挪到217~219的括號內部,現在顯示4個一樣的數字看不出來,如果是1234就有大問題了。
作者: 13872888583    時間: 2024-4-2 18:58
君工創 發表于 2024-4-2 15:11
if(K>3){K=0;)這樣也可以吧。

不可以,采用二樓那位師傅的就剛剛好
作者: 13872888583    時間: 2024-4-2 19:02
xiaobendan001 發表于 2024-4-2 10:43
3的話就要放前邊,4就放后邊,總之就是不能讓數組越界。不越界還有一個辦法,把數組定義大一些。

自加加放到前面,目前hour=1234,試過k=3,4,5.其中3少一位顯示,4顯示錯誤,還是少一位,5顯示和4一樣,最后一位亂碼。
作者: 13872888583    時間: 2024-4-2 19:03
Hephaestus 發表于 2024-4-2 17:03
214、215行應該挪到217~219的括號內部,現在顯示4個一樣的數字看不出來,如果是1234就有大問題了。

沒事,采用二樓那位師傅剛剛好,目前就是1234.
作者: xiaobendan001    時間: 2024-4-2 19:18
13872888583 發表于 2024-4-2 19:02
自加加放到前面,目前hour=1234,試過k=3,4,5.其中3少一位顯示,4顯示錯誤,還是少一位,5顯示和4一樣, ...

是,放前邊的同時,判定那部分也要放前邊,否則K=0的時候就無法參與顯示了
或者你把數組改成LED8[5],然后把1234放到LED8[1]~LEN8[4],就一樣能顯示1234了。
作者: 13872888583    時間: 2024-4-3 08:16
xiaobendan001 發表于 2024-4-2 19:18
是,放前邊的同時,判定那部分也要放前邊,否則K=0的時候就無法參與顯示了
或者你把數組改成LED8[5],然 ...

好的,謝謝,師傅。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1