![]() |
發(fā)布時間: 2021-7-10 14:38
正文摘要:小白剛學用定時寫了個1秒閃燈沒問題,可是寫流水單就出現(xiàn)問題了,圖片是程序運行狀態(tài),麻煩大家指教一下 單片機源程序如下: #include "reg52.h" #include "intrins.h" #define uchar unsigned char # ... |
兄弟的你sec進行移位有錯,是移位操作,不是累加 |
P0=~_crol_(1,sec); |
光看你的圖就知道問題在哪里了,你的sec這個變量在循環(huán)里累加,一開始是0,然后是1,2,3.....但是你要轉換為二進制去看啊,其實你的sec是0000,0001,0010,0011,0100......這樣子變化的,所以根本沒有流水燈的效果嘛,要通過移位操作才行,不能累加。 |
#include "reg52.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int void main() { uint cnt; uchar sec=0; TMOD=0x01; TH0=0xB8; TL0=0x00; TR0=1; P0=0xfe; while(1) { if(TF0==1) { TF0=0; TH0=0xB8; TL0=0x00; cnt++; if(cnt>=50) { cnt=0; P0=_crol_(P0,1); } } } } |
1.燈是低電平亮2.移位那里有錯,你對sec進行移位有錯。 |
Powered by 單片機教程網(wǎng)