单片机的各种编程程序 比如流水灯

发布网友 发布时间:2022-04-22 04:56

我来回答

2个回答

热心网友 时间:2023-07-18 04:15

刚自学单片机不久,下面的这个程序是我调试好了的
key1键可控制八个数码管依次显示0~9 十个数字
我采用的单片机是ATS52(STCC52也可以)
注意:按键key1 用P3.2;
共阳极数码管的段选用P0口(a~g-DP接P0.0~P0.7),
位选用P1口;

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^2; //按键的端口设置
uchar code table2[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x83,0xf8,0x80,0x98}; //0~9 十个数字
uchar code table1[]={
0xfe,0xfd,0xfb,0xf7,0xef,
0xdf,0xbf,0x7f}; //八个数码管的位选
uchar num2;
uchar num1;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{

while(1)
{
if(key1==0)
{
delay(5);
if(key1==0)
{
num2++;
if(num2==10)
num2=0;
num1++;
if(num1==8)
num1=0;
}
while(!key1);
delay(5);
while(!key1);
}
else
delay(5);
P0=table2[num2]; //数码管端选
P2=table1[num1]; //数码管位选

}
}

热心网友 时间:2023-07-18 04:16

多看书,这么没有用的问题也在提

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com