#include <reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
unsigned int i = 0; //定義回圈變數 i,用于軟體延時
unsigned char cnt = 0; //定義計數變數 cnt,用于移位控制
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while (1) //主回圈,程式無限回圈執行該回圈體陳述句
{
P0 = ~(0x01 << cnt); //P0 等于 1 左移 cnt 位,控制 8 個 LED
for (i=0; i<20000; i++); //軟體延時
cnt++; //移位計數變數自加 1
if (cnt >= 8) //移位計數超過 7 后,再重新從 0 開始
{
cnt = 0;
}
}
}
uj5u.com熱心網友回復:
https://blog.csdn.net/xianfajushi/article/details/82279726計算型及常用流水燈代碼uj5u.com熱心網友回復:
看代碼,定義的4個用在哪?要說蝦米問題?昵稱倒是讓我想起了古詩:葡萄美酒夜光杯,欲飲琵琶馬上催,醉臥沙場君莫笑,古來征戰幾人回。
uj5u.com熱心網友回復:
要問什么問題都沒說??uj5u.com熱心網友回復:

LED 小燈電路圖
我們可以了解到控制引腳 P0.0 經過 74HC245 控制了 DB0,P0.1 控制
DB1……P0.7 控制 DB7。我們還學到一個位元組是 8 位,我們如果寫一個 P0,就代表了 P0.0
到 P0.7 的全部 8 個位。比如我們寫 P0 = 0xFE;轉換成二進制就是 0b11111110,所以點亮 LED小燈的程式。
uj5u.com熱心網友回復:
如果你問的是P1口上的定義的話,沒有用,你流水燈控制在P0口,如果你的程式已達到要的效果,那么洗掉P1上定義。照樣能用。uj5u.com熱心網友回復:
OK。。。。。。。。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/20404.html
標籤:單片機/工控
上一篇:關于proteus實作音樂頻譜
