一個51程式設計和模擬——流水燈

HarrietLH發表於2020-10-03

一、安裝Protues

  1. Protues的下載
    分享連結:
    https://pan.baidu.com/s/1MmD8q2o0lx61s9iIz7ZLxQ
    提取碼:d0o5
  2. Protues的安裝過程
    ①開啟安裝包,找到Proteus8.8 sp1,雙擊開啟
    在這裡插入圖片描述
    ②由於是在虛擬機器Windows XP的環境下安裝,所以多一些步驟,可以不用管,直接點選下一步
    在這裡插入圖片描述
    ③繼續直接點選下一步
    在這裡插入圖片描述
    ④開始安裝嚮導,點選Next
    在這裡插入圖片描述
    ⑤先勾選"I accept the terms of this agreement",再點選Next
    在這裡插入圖片描述
    ⑥選擇“Use a locally installed license key",然後點選Next
    在這裡插入圖片描述
    ⑦直接點選Next
    在這裡插入圖片描述
    ⑧先選擇"Browse For Key File",會彈出一個新視窗,再找到License.lxk,再點選該檔案
    在這裡插入圖片描述
    ⑨點選Install,會彈出一個對話方塊,選擇“是”,再點選“Close”
    在這裡插入圖片描述
    ⑩開始安裝,這個需要等待一段時間
    在這裡插入圖片描述
    你以為到這裡軟體就可以正常使用了嗎?答案肯定是否定的,由於還沒有對軟體進行註冊,就不能夠正常使用。
  3. 註冊
    找到安裝包中的Patch,點選它,就完成了註冊。
    在這裡插入圖片描述

二、流水燈的設計

  1. 原理圖
    ①放置晶片和元件
    在這裡插入圖片描述
    ②開始放置元件
    ③畫匯流排和放置電源
    ④連線元件

    原理圖:
    在這裡插入圖片描述

三、程式編寫

流水燈的程式碼:

//51微控制器程式設計常用的標頭檔案
#include <reg51.h>
#include <intrins.h>
//延遲函式
void delay_ms(int a)
{
	int i,j;
	for(i=0;i<a;i++)
	{
		for(j=0;j<1000;j++) _nop_();

	}
}

void main(void)
{
	while(1)
	{
		P0=0xfe;
		delay_ms(50);
		P0=0xfd;
		delay_ms(50);
		P0=0xfb;
		delay_ms(50);
		P0=0xf7;
		delay_ms(50);
		P0=0xef;
		delay_ms(50);
		P0=0xdf;
		delay_ms(50);
		P0=0xbf;
		delay_ms(50);
		P0=0x7f;
		delay_ms(50);
	}
}

生成Hex檔案的方法:
在Keil uVision中點選Options for Target進入一個新的介面,首先點選Output,然後勾選Create Hex File,最後點選OK
在這裡插入圖片描述
完成上面的設定後,點選編譯,生成該檔案。

四、模擬

首先,雙擊原理圖中的AT89C51晶片
在這裡插入圖片描述
然後,點選圖中的三角標誌,開始模擬
在這裡插入圖片描述
模擬效果

其中的一種效果圖:
在這裡插入圖片描述
完整過程:
https://share.weiyun.com/XK8E8X6k

五、總結

     通過從建立到模擬的整個過程,讓我對整個過程有了進一步的瞭解,進一步的掌握到整個過程操作。但是,在整個過程還是遇到了許多的問題,像原理圖的整個設計上,還存在不理解的情況。程式碼部分自己不是很清楚每個語句的真實含義。

六、參考材料

  1. 51微控制器程式設計與模擬_1_流水燈
  2. proteus使用入門教程
  3. 流水燈原理圖和程式設計

相關文章