数码管循环显示"0"-“F”
一、数码管循环程序的编译
1.keil新建工程
打开project选择新建
打开ATmel,选择AT89C51
是否将标准8051启动代码复制到项目并将文件添加到项目中,此次项目可以不添加8051启动代码,选择否。
2.新建文本进行C语言编译
另存为"数码管循环显示.c"
将该c程序添加进入工程
程序代码如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff
};
void DelayMS(uint x)
{
uchar t;
while(x--)
for(t=120;t>0;t--);
}
void main()
{
uchar i=0;
P0=0x00;
while(1)
{
P0=~DSY_CODE[i];
i=(i+1)%16;/*显示0-f*/
DelayMS(400);
}
}
3.创建hex文件
点击该按钮进行设置
选择output并勾选创建hex文件
进行编译得到hex文件
二、使用proteus进行仿真
设计电路图如下
双击AT89C51添加hex文件
添加完成
仿真结果如下:
总结:本次学习了keil新建工程及对51芯片的c语言编译,并使用proteus进行仿真,收获颇多,在寻找元器件的过程中,对元器件英文名不熟悉,产生了许多错误,后面会进步的。