您现在的位置: 主页 > MCU > 单片机技术应用 > 做个15路输出的彩灯 -
本文所属标签:
为本文创立个标签吧:

做个15路输出的彩灯 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
//想做个15路输出的彩灯,使用P0.0~P0.7和P2.0~P2.6端口输出;预置数为15个1(10进制32767)。//设置+1(P3.3)和-1(P3.4)两个按钮。//可以减到十进制32047,到32047后如果继续按-1按钮,可以回到327

//想做个15路输出的彩灯,使用P0.0~P0.7和P2.0~P2.6端口输出;预置数为15个1(10进制32767)。
//设置+1(P3.3)和-1(P3.4)两个按钮。
//可以减到十进制32047,到32047后如果继续按-1按钮,可以回到32767重新进行减法。
//加法也一样,加到32767后,再按+1按钮可以到32047重新+1.
//再设置一个按钮(P2.7),当P2.7接地时,在当前显示的数字上减去十进制数1712进行显示。
//求单片机彩灯程序。

本文引用地址: http://www.21ic.com/app/mcu/201806/764400.htm

最佳答案:
//============================
#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仿真画面如下:




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > 做个15路输出的彩灯 -
 

"做个15路输出的彩灯 -"的相关文章

网站地图

围观()