Keil uversion5 + Proteus 8.9联合仿真 Keil基本使用教程

Keil 使用Keil uversion5 + Proteus 8.9联合仿真

(以AT89C51为例)

Step 1 Proteus电路仿真

1.1 选择元件

元件清单:
7SEG-COM-ANODE  		// 共阳极数码管
AT89C51 				// C51芯片
BUTTON					// 按键
CAP						// 无极性电容
CAP-ELEC				// 极性电容
RES						// 电阻
CRYSTAL					// 晶振

在这里插入图片描述

1.2按照图示画出电路图

在这里插入图片描述

Step2 Keil uversion5 代码

2.1 创建新工程

2.1.1 Project —> New uversion project…

在这里插入图片描述

2.1.2 选择project存放的路径 与 project 命名

在这里插入图片描述

2.1.3 选择芯片 AT89C51
  1. Search栏中输入 AT89C51

  2. 选择AT89C51 点击 OK 后面弹出的窗口都点

在这里插入图片描述

2.1.4 新建main.c文件
  1. File —> New…
  2. Ctrl + S 保存 名称为 main.c

在这里插入图片描述
在这里插入图片描述

2.1.5 把main.c 添加到target1下的Source Group1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 书写C语言代码

表2-2 LED数码管的段码
显示字符共阴极段码共阳极段码
03FHC0H
106HF9H
25BHA4H
34FHB0H
466H99H
56DH92H
67DH82H
707HF8H
87FH80H
96FH90H
A77H88H
b7CH83H
C39HC6H
d5EHA1H
E79H86H
F71H8EH
P73H8CH
U3EHC1H
T31HCEH
y6EH91H
H76H89H
L38HC7H
“灭”00HFFH
用单片机控制LED数码管显示学号
代码示例:
#include "AT89X51.H"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0

// 共阴极段码表数字 02468 13579
//uchar code seg[] = {0xc0, 0xa4, 0x99, 0x82, 0x80, 
//					  0xf9, 0xb0, 0x92, 0xf8, 0x90, 0x01};
					  
//学号:0023
uchar code seg[] = {0xc0, 0xc0, 0xa4, 0xb0, 0x01};

//延时函数
void delayms(uint j);

//主函数
void main(void){
	uchar i;
	while(1){
		out = seg[i];
		delayms(500);
		i++;
        
		//如果段码为0x01,则表明一个循环的显示已结束
		if(seg[i] == 0x01) 
			i = 0;
	}	
}

//延时函数
void delayms(uint j){
	uchar i;
	for(;j > 0; j--){
		i = 250;
		while(--i);
		i = 249;
		while(--i);
	}
}

2.3 C语言代码编译

1. 设置编译后生成 HEX 文件

在这里插入图片描述

2. 点击Build在这里插入图片描述

编译结果为 0 Error(s), 0 Warring(s)

在这里插入图片描述

Step3 将代码导入到Proteus单片机中

3.1选择hex文件路径

  1. 双击AT89C51芯片

在这里插入图片描述

  1. 选择 hex 文件路径

// HEX 文件在object目录下
在这里插入图片描述

  1. 最后点击确定
    在这里插入图片描述

3.2 效果展示

在这里插入图片描述

THE END

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值