#include<reg51.h>
#define uchar unsigned char
bit flag=1;
uchar j,k;
uchar code tab[]={
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
};
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
void delay(unsigned int ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void disp()
{
if(flag)
k=0;
else
k=4;
P0=tab[k+0];
P2_0=0;
delay(1);
P2_0=1;
P0=tab[k+1];
P2_1=0;
delay(2);
P2_1=1;
P0=tab[k+2];
P2_2=0;
delay(2);
P2_2=1;
P0=tab[k+3];
P2_3=0;
delay(2);
P2_3=1;
}
void t0init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
t0init();
while(1)
disp();
}
void t0int() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
j++;
if(j==40)
{
j=0;
flag=!flag;
}
}
...51单片机显示1234,2S后显示5678 ,一直循环!
P0=tab[k+1];P2_1=0;delay(2);P2_1=1;P0=tab[k+2];P2_2=0;delay(2);P2_2=1;P0=tab[k+3];P2_3=0;delay(2);P2_3=1;} void t0init(){ TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;} void main(){ t0init();while(1)disp();...
怎么用c语言编写数码管1234和5678来回闪烁
1.51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include<reg51.h> \/\/51单片机头文件#include <intrins.h> \/\/包含有左右循环移位子函数的库#define uint unsigned int \/\/宏定义#define uchar unsigned char \/\/宏定义sbit beep=P2^3;void delay(uint z) \/\/延时函数,z的...
用51单片机C语言编写程序实现6位共阴极数码管循环显示0123456789ABCDEF...
\/\/数码管段选 \/* 8 9a b c def*\/code uchar wen[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf};\/\/数码管位选uchar huancun[] = {0x00,0x00,0x00,0x00,0x00,0x00};\/\/数码管段选缓存sbit duan = P2^6;\/\/段选sbit wei = P2^7;\/\/位选void delay(uchar x)\/\/延时函数...
实现单片机信号灯1-8依次循环点亮的程序怎么写
电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?下面是c语言程序源码 include <reg51.h> void delay100ms(); \/\/如果函数是在主函数后面定义...
51单片机动态显示学号后8位
table[10]={...};\/\/0-9的七段码 while(1){for(i=0;i<8;i++){weila=1;\/\/打开位锁存器P0=1<
帮忙编个51单片机两个数码管的C语言编程(第一个显示4,第二个显示6)
delays(10); while(1) { shi=1; \/\/关闭十位显示 ge=0; \/\/打开个位显示 P0=0xa4; \/\/让个位显示3 delays(5); P0=0xff; \/\/显示清0 ge=1; \/\/关闭个位显示 shi=0; \/\/打开十位显示 P0=0xf9; \/\/让十位显示2 delays(5); P0=0xff; \/\/显示清0; }} ...
51单片机的共阴数码管怎么显示数字(c语言)
要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。以显示数字“0”为例,c语言程序如下:include<reg52.h> define uchar unsigned char define uint unsigned int \/\/数码管的段码编码 Uchar table[10] ={0x3f,0x06,...
51单片机显示八位数码管的C语言程序
1、最开始,我们先打开keil。2、接着,我们要定义好库函数,想要实现动态数码灯,这个步骤是很重要的。3、接着,我们加上一条循环语句。4、最后,我们把先前定义的延时语句delayms写好。5、最后,点击这里进行编译,生成一个hex文件。6、如果这里无错误警告的话,就说明我们的程序写对了,那我们就可以...
51单片机,8个数码管循环显示1-9的C语言程序。
\/*显示0-9*\/\\x0d\\x0aDelayMS(200);\\x0d\\x0a}\\x0d\\x0a}\\x0d\\x0a下面程序从左到右显示\\x0d\\x0a#include\\x0d\\x0a#include\\x0d\\x0a#defineucharunsignedchar\\x0d\\x0a#defineuintunsignedint\\x0d\\x0a\\x0d\\x0aucharcodeDSY_CODE[]=\\x0d\\x0a{\\x0d\\x0a0xc0,0xf9,...
用c语言循环语句怎么写一个51单片机的时钟啊,用8个数码管显示时间。
disdat[3]=min%10;disdat[4]=min\/10;disdat[5]=10;disdat[6]=hour%10;disdat[7]=hour\/10; }void flash(){switch(flashbit){case 0:break;case 1:disdat[6]=0x10;disdat[7]=0x10;delay(50);dischg();delay(80);break;case 2:disdat[3]=0x10;disdat[4]=0x10;delay(50);...