一.目的:
使用keil进行编译并且用proteus画出电路图,实现一个简单的用51单片机来完成0~F的数码管字符显示
二.在keil中进行程序编译
1.打开keil应用,建立一个新工程,输入工程名并且保存至文件中
2.创建一个新的.c文件,输入需要的代码,保存至指定文件
代码如下:
//#include<reg52.h> //包含头文件
void delay(void){
unsigned char i,j;
for(i=0;i<255;i++)
{
for(j=0;j<255;j++);
}} //主函数
void main(void)
{unsigned char i;
unsigned char code Tab[16]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E}; //定义数字0-f的断码表
while(1)
{for(i=0;i<16;i++) //循环16次。数码管循环显示数字0-f
{
P0=Tab[ i]; //P0口输出数字0-F对应的断码
delay( ); //延时
}}}
3.对程序进行编译,看是否存在错误,其编译结果如下所示:
三.在proteus上画出电路图
1.新建一个工程,修改工程的名字,点下一步
(1)点新建工程
(2)点击下一步
(3)后面继续点下一步,然后得到一个布景图,便可以开始进行电路图的绘制:
2.进行元件的选择:
基本的proteus的使用,便是进行元件的选择,然后进行摆放、连线,现在介绍51单片机实现0~F的数码管字符显示所需要的元件:
(1)51单片机的选择
点击左侧的P键
在搜索框输入“89c51",选择相应的器件
(2)晶振的选择:
同样在P键中进行元器选择,在搜索框中输入”crystal”,找到相应的元件:
(3)电阻的选择:
在搜索框中输入“res",找到元件点击确定
(4)电容的选择:
在搜索框中输入“cap”,选择元件并确定
(5)数码管的选择
在搜索框中输入“7seg”,找到元件并进行确定
(6)终端的选择:
点击左侧按钮,电源和接地都在如图所示中选择
3.进行电路图的连接绘制
按照如图所示进行电路图的连接:
四.将keil中编译的hex文件在proteus电路图中进行仿真运行
1.右键点击Target 1,点击Options for 'Target 1’
2.点击output,勾选“Create HEX File",点击OK
可以看到文件中生成了hex文件
3.hex文件在proteus上运行
(1)双击89c51单片机,出现如下界面,点击Program File旁边的文件图标
(2)添加hex文件,点击确定
4.进行电路图的仿真
(1)点击三角形符号运行
(2)仿真结果如下: