使用Protues/Keil平台,采用AT89C51芯片,完成8个LED的流水灯控制

随手笔记,记录一下

一:

打开Protues软件,首页点击“新建工程”,确定创建项目文件的存储路径后确定“下一步”;在窗口的选项“从选中的模板中创建原理图”中选择“Default”,然后点击“下一步”;再选择“不创建PC布版设计”,再点击“下一步”

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 接着选择“没有固件项目”,再“下一步”;

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 点击“完成”。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 二:

在“原理图绘制”窗口下找到选项“DEVICES”,点击左边的“P”,在“Keywords”下面搜索“AT89C51”和你想要的LED,这里我选择的LED是“LED-RED”,每次搜索到对应元件后,双击元件,可以看到“P”下方已经有元件名字的出现。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_7,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16 

 接下来就是图的绘制,这里不再详细描述...

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 三:仿真代码

打开Keil软件,点击“Project”->“new uVision Project”,在你选择好保存该文件的路径下(这里建议存放在特地建好存放Keil代码的文件夹内,方便后面查找),命名好文件后选择保存。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 来到下一步,在Data base下方选择“Atmel”,然后点击“AT89C51”,点击“确认”->“是”->“是”

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 四:

打开“文件”->“新建”一个C程序,然后点击“保存”图案。然后对文件命名。 注意!要在文件名称后方加上“.C”!!!  然后点击保存...

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 然后对“目标一”下方的“源组”添加文件,(即“Target 1”下方的“Source Group 1”),对源组(Source Group 1)点击右键,选择“Add Files to Group'Source Group 1”,点击刚才后缀的C文件,即可添加进去

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 然后对添加进去的C文件写上代码,再选择编译一下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 编译输出没有错误后,点击“Options for target”

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 在“Target”窗口下的Xtal(MHz)我更改为12.0MHz,然后点击“'Output”,勾选“Create HEX File    HEX Format:”然后点击确认,再运行一次。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_15,color_FFFFFF,t_70,g_se,x_16 

 五:

接着我们重新回到Protues ,对AT89C51元件单击,在“Program File:”右边点击“文件”图案,将Keil生成的HEX文件导入进来。在右上角点击“确定”。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 六:

点击下方的“运行仿真”,实验完成✅(代码就不给出了,很简单的)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKn5r6c5bCP5biD,size_20,color_FFFFFF,t_70,g_se,x_16

 

  • 11
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
很抱歉,作为 AI 我没有办法画图或者进行仿真。但我可以给你提供一些参考信息。 首先,你需要在 Proteus 中添加 AT89C51芯片和一个 16 个 LED流水灯电路。其次,你需要添加两个矩阵键盘电路,每个电路都有多个按键,用于控制速度和方向。最后,你需要在 AT89C51 中编写程序,使其能够读取矩阵键盘输入并控制 LED 流水灯的速度和方向。 以下是一个基本的 AT89C51 程序框架,你可以根据自己的需求进行修改: ``` #include <reg51.h> sbit ROW1 = P2^0; // 矩阵键盘第一行 sbit ROW2 = P2^1; // 矩阵键盘第二行 sbit ROW3 = P2^2; // 矩阵键盘第三行 sbit ROW4 = P2^3; // 矩阵键盘第四行 sbit COL1 = P2^4; // 矩阵键盘第一列 sbit COL2 = P2^5; // 矩阵键盘第二列 sbit COL3 = P2^6; // 矩阵键盘第三列 void main() { while(1) { // 读取矩阵键盘输入 if(ROW1 == 0) // 如果第一行被按下 { if(COL1 == 0) // 如果第一列被按下 { // 控制 LED 流水灯向左移动 } else if(COL2 == 0) // 如果第二列被按下 { // 控制 LED 流水灯向右移动 } // 其他列的按键可以根据需要进行添加 } else if(ROW2 == 0) // 如果第二行被按下 { // 控制 LED 流水灯的速度为 1 } else if(ROW3 == 0) // 如果第三行被按下 { // 控制 LED 流水灯的速度为 2 } else if(ROW4 == 0) // 如果第四行被按下 { // 控制 LED 流水灯的速度为 3 } } } ``` 以上代码只是一个基本的框架,具体的实现需要根据你的具体需求进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值