安装产品计数器 4 位,将学习笔记上传讨论栏目的作业提交,注明学习任务、班级、姓名和时间, 要求对按照过程必须截图 ,老师根据作业情况计入成绩。 具体要求: 1 、电路图设计 2 、程序设计 /* 按钮与单片机 P3.4 引脚相连, P0 口通过限流电阻接共阳极数码管(十位), P2 口通过限流电阻接共阳极数码管(个位)。 开始显示 2 位数 00 , 每按一次按钮 , 计数值加 1, 数码管显示计数值。 文件名还得用英文,汉字文件名总是出错。 */ //== 声明区 ================================================ #include
// 定义 8051 暂存器之标头档 unsigned char code TAB[17]= // 共阳 7 节显示器 (g~a) 编码 { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, // 数字 0-4 0x92, 0x82, 0xf8, 0x80, 0x98, // 数字 5-9 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E}; //;A~F 的共阳极显示码 unsigned int coun=0; sbit key=P3^4; void delay1ms(int); // 声明延迟函数 void display(); //== 主程序 ================================================ main() // 主程序开始 { while(1) { // 无穷回圈 , 程序一直跑 if(key==0) // 检查按键 { delay1ms(10); // 延时去抖动 if(key==0) // 再检查 { while(key==0){}; // 等待按键释放 coun++; // 计数值加 1 if(coun==10000) coun=0; display(); }; }; } } // 主程序结束 //==== 显示函数 ============================================== void display() { unsigned int m; unsigned char ge; unsigned char shi; unsigned char bai; unsigned char qian; ge=coun%10; m=coun/10; shi=m%10; m=m/10; bai=m%10; m=m/10; qian=m%10; P0=shi<<4|ge; P2=qian<<4|bai; } // === 延迟函数 , 延迟约 x*1ms ================================ void delay1ms(int x) { int i,j; // 声明整数变数 i for(i=0;i