您的位置:首頁>設計>正文

「機電一體化」單片機是這麼玩的嗎

大家好, 我是途說, 頭條原創作者, 日常分享機電知識。

在前面的文章中我已經跟大家分享了工科生通常都需要使用哪些軟體、並且這些軟體是用來幹嘛的。

那麼今天, 小編就跟大家交流交流如何使用protues和keil uvision軟體對單片機系統進行設計, 咱們以1602的液晶顯示為例。

硬體部分的設計

首先, 我們打開protues軟體

然後點圖示的P, 會彈出如圖的視窗, 在視窗中輸入AT89C52

按兩下藍色部分, 會在左邊元件庫裡添加我們的單片機晶片, 按照上面的步驟, 完成下面清單中元件的添加

添加好元件後, 咱們就可以開始繪製原理圖了, 先將需要的元件, 按照一定的位置擺放好, 如圖

然後根據下面的圖, 連好線路

其中, 圖中標記的地方代表的是+5v的電源和接地, 這兩個元件在下圖所示的位置

好了, 到這裡, 我們的硬體部分就設計完成了, 下面我們開始軟體部分的設計。

軟體部分的設計

首先我們需要創建一個資料夾, 用來保存待會寫好的程式

然後, 我們打開keil軟體, 點new project

然後選擇保存在我們剛剛創建的資料夾裡面

保存的時候別忘了給工程起一個名字,然後我們點開Atmel,選擇裡面的89C52

點擊OK就可以開始創建檔了,點擊file中的new,也可以按快速鍵Ctrl+N

新建了檔過後,會在右邊的工作區出現一個text檔,這時我們點擊保存,保存到一開始創建的那個資料夾,同樣地,要給這個檔起一個名字,但是這個時候要手動地給檔後面加一個.c的尾碼名,點擊保存

這時,我們要將剛剛保存的文件載入到工作區裡面來,點開左上角Target1的加號,右擊new group選擇Add files to...

然後選擇我們剛剛保存的.c文件,點擊Add,再點擊close,此時我們會發現工作區的text檔變成了我們剛剛保存的那個.c文件

此時我們久可以進行程式的編輯了,程式如下:

#include

#define uchar unsigned char

#define uint unsigned int

uchar code table[]="jin ri";

uchar code table1[]="tou tiao!";

sbit lcden=P3^4;

sbit lcdrs=P3^5;

uchar num;

void delayms(int ms)

{

int i,j;

for(i=0;i

for(j=0;j<120;j++);

}

void write_com(uchar com)

{

lcdrs=0; //rs為0,寫指令

P0=com;

delayms(5);

lcden=1; //e為1開始讀指令

delayms(5);

lcden=0; //e為0表示指令讀取結束

}

void write_data(uchar date)

{

lcdrs=1; //rs為1,寫數據

P0=date;

delayms(5);

lcden=1; //開始讀數據

delayms(5);

lcden=0; //數據讀取結束

}

void init() //初始化

{

lcden=0;

write_com(0x38);

write_com(0x0e);

write_com(0x06);

write_com(0x01);

write_com(0x80);

}

void main()

{

init();

for(num=0;num<6;num++)//表示第一行顯示6個位元組

{

write_data(table[num]);

delayms(20);

}

write_com(0x80+0x40);

for(num=0;num<9;num++) //表示第二行顯示9個位元組

{

write_data(table1[num]);

delayms(20);

}

while(1);

}

由於篇幅關係這裡我就把程式直接給大家了,裡面也有注釋,大家看不懂的可以在評論區裡交流,大家將程式複製粘貼就好。

然後點開下圖的圖示

設置好下圖中的數字為12

以及下圖中的√

好了,此時點擊保存和編譯,會彈出圖示的無警告和無錯誤的對話方塊

好了,這個時候回到我們的硬體圖,按兩下單片機晶片點擊載入檔的圖示

選擇我們之前創建的資料夾中的.hex檔,就將程式載入到單片機中去了

最後最後,大家點擊左下角的類比運行圖示,就可以在1602的液晶顯示器上面看到我們設置的字元了

怎麼樣,大家所謂單片機其實並沒有很神秘。

我是途說,頭條原創作者,如果大家對我的文章感興趣,歡迎大家評論交流。

然後選擇保存在我們剛剛創建的資料夾裡面

保存的時候別忘了給工程起一個名字,然後我們點開Atmel,選擇裡面的89C52

點擊OK就可以開始創建檔了,點擊file中的new,也可以按快速鍵Ctrl+N

新建了檔過後,會在右邊的工作區出現一個text檔,這時我們點擊保存,保存到一開始創建的那個資料夾,同樣地,要給這個檔起一個名字,但是這個時候要手動地給檔後面加一個.c的尾碼名,點擊保存

這時,我們要將剛剛保存的文件載入到工作區裡面來,點開左上角Target1的加號,右擊new group選擇Add files to...

然後選擇我們剛剛保存的.c文件,點擊Add,再點擊close,此時我們會發現工作區的text檔變成了我們剛剛保存的那個.c文件

此時我們久可以進行程式的編輯了,程式如下:

#include

#define uchar unsigned char

#define uint unsigned int

uchar code table[]="jin ri";

uchar code table1[]="tou tiao!";

sbit lcden=P3^4;

sbit lcdrs=P3^5;

uchar num;

void delayms(int ms)

{

int i,j;

for(i=0;i

for(j=0;j<120;j++);

}

void write_com(uchar com)

{

lcdrs=0; //rs為0,寫指令

P0=com;

delayms(5);

lcden=1; //e為1開始讀指令

delayms(5);

lcden=0; //e為0表示指令讀取結束

}

void write_data(uchar date)

{

lcdrs=1; //rs為1,寫數據

P0=date;

delayms(5);

lcden=1; //開始讀數據

delayms(5);

lcden=0; //數據讀取結束

}

void init() //初始化

{

lcden=0;

write_com(0x38);

write_com(0x0e);

write_com(0x06);

write_com(0x01);

write_com(0x80);

}

void main()

{

init();

for(num=0;num<6;num++)//表示第一行顯示6個位元組

{

write_data(table[num]);

delayms(20);

}

write_com(0x80+0x40);

for(num=0;num<9;num++) //表示第二行顯示9個位元組

{

write_data(table1[num]);

delayms(20);

}

while(1);

}

由於篇幅關係這裡我就把程式直接給大家了,裡面也有注釋,大家看不懂的可以在評論區裡交流,大家將程式複製粘貼就好。

然後點開下圖的圖示

設置好下圖中的數字為12

以及下圖中的√

好了,此時點擊保存和編譯,會彈出圖示的無警告和無錯誤的對話方塊

好了,這個時候回到我們的硬體圖,按兩下單片機晶片點擊載入檔的圖示

選擇我們之前創建的資料夾中的.hex檔,就將程式載入到單片機中去了

最後最後,大家點擊左下角的類比運行圖示,就可以在1602的液晶顯示器上面看到我們設置的字元了

怎麼樣,大家所謂單片機其實並沒有很神秘。

我是途說,頭條原創作者,如果大家對我的文章感興趣,歡迎大家評論交流。

Next Article
喜欢就按个赞吧!!!
点击关闭提示