单片机作业2
文章目录**效果图**999效果图999999效果图第一位7第六位7效果图中间两位轮播效果图六位轮播效果图012345效果图123456效果图11.12.13效果图13.14.15效果图012345轮播效果图**仿真图****代码群**三个9代码六个9代码第一位第六位为7代码六位轮播代码中间两位轮播代码012345代码123456代码11.12.13代码13.14.15代码012345轮播代码效果图999效果图999999效果图第一位7第六位7效果图中间两位轮播效果图六位轮播效果图012345效果图123456效果图11.12.13效果图13.14.15效果图012345轮播效果图仿真图代码群三个9代码#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xf8;// 位选3个数码管 1111 1000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x6f;// 数码管显示“0” 0011 1111dula0;// 关闭段选// 3.保持while(1);}六个9代码#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xc0;// 位选3个数码管 1111 1000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x6f;// 数码管显示“0” 0011 1111dula0;// 关闭段选// 3.保持while(1);}第一位第六位为7代码#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);}六位轮播代码#includereg52.h// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U3位选// 共阴极数码管段码表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--);}// 主函数voidmain(){uchar digit;while(1){// 1.位选控制一直选中6个数码管wela1;P00xc0;// 1100 0000wela0;// 2.段选控制0-9轮播for(digit0;digit10;digit){dula1;P0seg_code[digit];// 显示当前数字dula0;delay(500);// 每个数字停留500ms}}}中间两位轮播代码#includereg52.h// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U3位选// 共阴极数码管段码表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--);}// 主函数voidmain(){uchar digit;while(1){// 1.位选控制一直选中6个数码管wela1;P00xF3;// 1100 0000wela0;// 2.段选控制0-9轮播for(digit0;digit10;digit){dula1;P0seg_code[digit];// 显示当前数字dula0;delay(500);// 每个数字停留500ms}}}012345代码#includereg52.h// 头文件 c#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 段选锁存器U2sbit welaP1^6;// 位选锁存器U3// 数码管的段码表(定义0-9的段码)uchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 数码管显示位码对应第1到第6个数码管需要将2进制转换成16进制uchar code TableWela[]{// 补充代码0xFE,// 1111 1110 → P0.0置低选中第1位0xFD,// 1111 1101 → P0.1置低选中第2位0xFB,// 1111 1011 → P0.2置低选中第3位0xF7,// 1111 0111 → P0.3置低选中第4位0xEF,// 1110 1111 → P0.4置低选中第5位0xDF// 1101 1111 → P0.5置低选中第6位};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j0;j125;j);}}// 主函数voidmain(){uchar i;while(1){for(i0;i6;i){P00x00;// 清空之前的输出dula0;wela0;P0TableWela[i];// 先送位码依次选中1-6位数码管wela1;// 锁存位码wela0;P0TableDula[i];// 再送段码第1个数码管显示0第2个数码管显示1...dula1;// 锁存段码dula0;delay(2);// 保持一段时间}}}123456代码#includereg52.h// 头文件 c#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 段选锁存器U2sbit welaP1^6;// 位选锁存器U3// 数码管的段码表(定义0-9的段码)uchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 数码管显示位码对应第1到第6个数码管需要将2进制转换成16进制uchar code TableWela[]{// 补充代码0xFE,// 1111 1110 → P0.0置低选中第1位0xFD,// 1111 1101 → P0.1置低选中第2位0xFB,// 1111 1011 → P0.2置低选中第3位0xF7,// 1111 0111 → P0.3置低选中第4位0xEF,// 1110 1111 → P0.4置低选中第5位0xDF// 1101 1111 → P0.5置低选中第6位};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j0;j125;j);}}// 主函数voidmain(){uchar i;while(1){for(i0;i6;i){P00x00;// 清空之前的输出dula0;wela0;P0TableWela[i];// 先送位码依次选中1-6位数码管wela1;// 锁存位码wela0;P0TableDula[i1];// 再送段码第1个数码管显示0第2个数码管显示1...dula1;// 锁存段码dula0;delay(2);// 保持一段时间}}}11.12.13代码#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbit dulaP3^4;sbit welaP1^6;// 共阴极段码表带小数点uchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F,// 90x86,// 1.0xDB// 2.};uchar code TableWela[]{0xFE,// 第1位0xFD,// 第2位0xFB,// 第3位0xF7,// 第4位0xEF,// 第5位0xDF// 第6位};voiddelay(uchar x){uchar j;while(x--){for(j0;j125;j);}}voidmain(){uchar i;while(1){for(i0;i6;i){P00x00;dula0;wela0;P0TableWela[i];wela1;wela0;// 显示1 1. 1 2. 1 3if(i0)P0TableDula[1];// 1if(i1)P0TableDula[10];// 1.if(i2)P0TableDula[1];// 1if(i3)P0TableDula[11];// 2.if(i4)P0TableDula[1];// 1if(i5)P0TableDula[3];// 3dula1;dula0;delay(2);}}}13.14.15代码#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbit dulaP3^4;sbit welaP1^6;// 共阴极段码表带小数点uchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F,// 90xCF,// 3. 带小数点0xE6// 4. 带小数点};uchar code TableWela[]{0xFE,// 第1位0xFD,// 第2位0xFB,// 第3位0xF7,// 第4位0xEF,// 第5位0xDF// 第6位};voiddelay(uchar x){uchar j;while(x--){for(j0;j125;j);}}voidmain(){uchar i;while(1){for(i0;i6;i){P00x00;dula0;wela0;P0TableWela[i];wela1;wela0;// 显示1 3. 1 4. 1 5if(i0)P0TableDula[1];// 1if(i1)P0TableDula[10];// 3.if(i2)P0TableDula[1];// 1if(i3)P0TableDula[11];// 4.if(i4)P0TableDula[1];// 1if(i5)P0TableDula[5];// 5dula1;dula0;delay(2);}}}012345轮播代码#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbit dulaP3^4;// 段选锁存sbit welaP1^6;// 位选锁存// 共阴极段码 0~5uchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D// 5};// 6位位选uchar code TableWela[]{0xFE,// 第1位0xFD,// 第2位0xFB,// 第3位0xF7,// 第4位0xEF,// 第5位0xDF// 第6位};// 长延时控制轮播速度越大越慢voiddelay(uchar x){uint i,j;for(ix;i0;i--)for(j110;j0;j--);}voidmain(){uchar i;while(1){// 依次点亮每一位形成轮播动画for(i0;i6;i){P00x00;dula1;dula0;// 显示数字0 1 2 3 4 5P0TableDula[i];dula1;dula0;// 依次点亮第1~6位P0TableWela[i];wela1;wela0;// 轮播速度delay(200);}}}