做個15路輸出的彩燈
//想做個15路輸出的彩燈,使用P0.0~P0.7和P2.0~P2.6端口輸出;預置數(shù)為15個1(10進制32767)。
//設置+1(P3.3)和-1(P3.4)兩個按鈕。
//可以減到十進制32047,到32047后如果繼續(xù)按-1按鈕,可以回到32767重新進行減法。
//加法也一樣,加到32767后,再按+1按鈕可以到32047重新+1.
//再設置一個按鈕(P2.7),當P2.7接地時,在當前顯示的數(shù)字上減去十進制數(shù)1712進行顯示。
//求單片機彩燈程序。
最佳答案:
//============================
#include
sbit K_1 = P3^3; //+
sbit K_2 = P3^4; //-
sbit D_1 = P2^7; //顯示方式選擇
//----------------------------
void delay_ms(unsigned int n)
{
unsigned char j;
while(n--) for(j = 0; j < 230; j++); //230是實驗測試所得!
}
void main()
{
unsigned int m;
m = 32767;
while(1) {
if (D_1 == 1) {
P2 = ~(m / 256);
P0 = ~(m % 256);
}
else {
P2 = ~((m - 1712) / 256);
P0 = ~((m - 1712) % 256);
}
if (K_1 == 0) {
delay_ms(10);
if (K_1 == 0) {
m++;
if (m > 32767) m = 32047;
while(K_1 == 0);
} }
if (K_2 == 0) {
delay_ms(10);
if (K_2 == 0) {
m--;
if (m < 32047) m = 32767;
while(K_2 == 0);
} } }
}
//============================
本程序用PROTEUS仿真畫面如下: