我的是共阳数码管,是8位的,我选通的是第一位,你可以自己改一个地方\x0d\x0a#include\x0d\x0aunsigned char code s8[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};\x0d\x0avoid delay(int i)\x0d\x0a{\x0d\x0a int j;\x0d\x0a for(;i>=0;i...
void main() { uchar n ; P2=0xfe; P1=0xff; while(1) { if(k1==0) { if(n>=9) n=0; else n++; P0=shuzu[n]; while(!k1); delay(); while(!k1); } } } 这段代码定义了一个延时函数delay,用于控制数码管的闪烁速度。在主函数中,首先初始化P2和P1端口,然后进入...
u16 t){ u16 i; for(;t>0; t--) for(i=100; i>0; i--);}void main(void){ u8 num = 0; while(1) { P1 = table[num]; delay(1000); num++; if(num>9) num = 0; }}
问题九:什么是共阴数码管 5分 一只数码管的每一个段划都由一个发光二极管点亮,所以,一位数码管有7个发光二极管构成(如果加上小数点,就有8个)。 如果这8个发光二极管的阴极(负极)都连在一起,就叫“共阴数码管”; 如果这8个发光二极管的阳极(正极)都连在一起,就叫“共阳数码管”。 问题十:数码管显示方...
假设你的是共阳极数码管,P0接数码。按键接P2^0;include<reg52.h> typedef unsinged int uint;sbit key=P2^0;unsigned char tab[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void denay(uint x){ uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--)} void main(){ u...
七段共阳数码管接在P0口,显示从0到9, 按键接P3.2按一下加一, 按键P3.3 按一下减一。程序如下:K1 BIT P3.2 K2 BIT P3.3 START:MOV DPTR,#TABLE MOV R1,#0 MLOOP:MOV A,R1 MOVC A,@A+DPTR MOV P0,A JB K1 ,TK2 CJNE R1,#9,CPM CPM:JNC MLOOP INC R1 JNB K1,...
DPTR,#LEDTAB MOVC A,@A+DPTR RET LEDTAB:DB 0C0H;0 DB 0F9H;1 DB 0A4H;2 DB 0B0H;3 DB 099H;4 DB 092H;5 DB 082H;6 DB 0F8H;7 DB 080H;8 DB 090H;9 END 建议C语言本人工作5年,一直C语言
为什么不运行仿真?把仿真结果截图发上来,看看显示什么,既然显示残缺,就显示出来呀。看你的仿真图,是74LS48译码器的输入端ABCD接错了。估计是,你把高位D和低位A搞颠倒了。实际A是低位,D是高位。所以,应该是D接地,ABC的顺序颠倒一下吧。别...
1.int main(){ char i; //改为有符号i,否则下面循环出错 while(1) for(i = 9; i >= 0; i--)//显示9-0,共10次 { SEG=TAB[i]; delay(500); }} 2.int main(){ char i; //改为有符号i while(1) { for(i = 0; i < 10; i+...
2. 在主循环中,从9到0逐位点亮数码管,每点亮一个数字后,延时一定时间,以便观察效果。3. 数码管点亮0后,程序将开始点亮流水灯。将流水灯的I/O端口设置为输出模式,从第一个灯开始,依次点亮每个灯,每点亮一个灯后延时一定时间。4. 为了实现流水灯的效果,可以在点亮最后一个灯后,再从第一...