本文通过仿真原理图设计和程序设计,实现了单个数码管显示0-9,显示数字动态显示。
仿真原理图采用protues8.7设计,特别注意P0口需要外接上拉电阻,以及引脚与单片机IO口的连接。具体如图。
本设计的代码采用KEIL5设计,具体如下:
代码语言:javascript复制/*-----------------------------------------------
名称:单个共阳数码管动态显示变化数字
内容:通过循环赋值给P1,让数码管显示特定的字符或者数字
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
// 显示数值表0-9
void Delay(unsigned int t); //函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255
while (1) //主循环
{
for(i=0;i<10;i ) //加入 for循环,表明for循环大括号中的程序循环执行10次
{
P0=dofly_table[i]; //循环调用表中的数值
Delay(60000); //延时,方便观看数字变化
}
//主循环中添加其他需要一直工作的程序
}
}/*------------------------------------------------
延时函数,含有输入参数 unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
结合仿真和程序,本设计的仿真视频如下:
http://mpvideo.qpic.cn/0bf2k4alwaaa7qalpbto4zpvav6dxnlqboya.f10002.mp4?