作业2:6位数数码管显示

张开发
2026/4/9 21:10:13 15 分钟阅读

分享文章

作业2:6位数数码管显示
文章目录1. 显示3位01.1效果图2、数码管显示2个7一头一尾2.1效果图3、数码管轮播6位数3.1效果图4、数码管轮播显示2位4.1效果图展示1. 显示3位01.1效果图#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xf8;// 位选3个数码管 1111 1000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x3f;// 数码管显示“0” 0011 1111dula0;// 关闭段选// 3.保持while(1);}2、数码管显示2个7一头一尾2.1效果图#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xde;// 位选3个数码管 1111 1000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x07;// 数码管显示“0” 0011 1111dula0;// 关闭段选// 3.保持while(1);}3、数码管轮播6位数3.1效果图#includereg52.h#defineucharunsignedchar#defineuintunsignedint// 锁存器控制引脚sbit dulaP3^4;// 段选锁存sbit welaP1^6;// 位选锁存// 共阴极数码管 0~9 段码uchar code seg_code[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 毫秒级延时voiddelay(uint ms){uint i,j;for(ims;i0;i--)for(j110;j0;j--);}// 显示单个数字 0~9voiddisplay_digit(uchar digit){P0seg_code[digit];// 输出段码dula1;// 打开段锁存delay(1);dula0;// 关闭段锁存}// 主函数voidmain(){uchar num;// 位选打开所有6个数码管wela1;P00xc0;// 1100 0000 选中全部6位wela0;while(1){// 循环显示 0~9for(num0;num10;num){display_digit(num);delay(500);// 每个数字显示 500ms}}}4、数码管轮播显示2位4.1效果图展示#includereg52.h#defineucharunsignedchar#defineuintunsignedint// 锁存器控制引脚sbit dulaP3^4;// 段选锁存sbit welaP1^6;// 位选锁存// 共阴极数码管 0~9 段码uchar code seg_code[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 毫秒级延时voiddelay(uint ms){uint i,j;for(ims;i0;i--)for(j110;j0;j--);}// 显示单个数字 0~9voiddisplay_digit(uchar digit){P0seg_code[digit];// 输出段码dula1;// 打开段锁存delay(1);dula0;// 关闭段锁存}// 主函数voidmain(){uchar num;// 位选打开所有6个数码管wela1;P00xf3;// 1100 0000 选中全部6位wela0;while(1){// 循环显示 0~9for(num0;num10;num){display_digit(num);delay(500);// 每个数字显示 500ms}}}

更多文章