keil uvision的簡單運用——數碼管的實作
單片機的使用
51單片機入門
相信很多人對51單片機并不陌生,而且有很多人可能在很久之前就接觸并且學習51單片機,51單片機能夠存在這么長時間,并且始終被人們所利用和提起就一定有他的道理存在,而現實生活中的51單片機就是以一個“萬金油”的角色存在,下面我們就簡單的說一下51單片機實作數碼管的操作,文中我的單片機型號是STC12C5A16AD
如何建立一個keil檔案
1、首先我們需要安裝一個keil uvision的軟體,相信大家對keil并不陌生,我們這里使用的keil uvision 軟體,keil是一個公司的名字,在2005年被arm公司收購,uvision是由keil公司開發的集成開發環境(IDE),可以進行代碼編輯,檔案管理,程式的編譯除錯等,具體安裝包可以在網上下載,也可以通過公眾號<軟體安裝管家>中回復,keil uvision4(但是軟體安裝管家會經常性的維護,所以可能無法獲得),所以后面附上了云盤地址:pan.baidu.com/s/1kCVxnp0HBD0516TQKL3I_Q;密碼:x9a6.
2、建立空白.c檔案夾,
2.1打開軟體:

2.2建立新工程檔案,如果已經漢化的話是打開工程,未漢化是打開project欄,下拉欄中的新建工程或者 new project,

命名為sum(我們一般習慣于把檔案的名字都寫成英文)
選擇型號Atmel 中的AT89C52,然后點擊確定,之后會讓你確定是否建立一個檔案,點擊確認即可


2.3建立空白檔案
檔案或者file點擊新建或者new file


2.4保存或者save as成.c檔案,

2.5點擊工程欄中的目標1的加號未漢化版見圖所示相應位置,打開源組,并且右擊源組,找到把“檔案加到源組”或者“add file to…”

2.6 添加.c檔案,檔案型別未C source file

2.7左邊工程欄會增加一個main.c的c檔案,

2.8“魔法棒”生成Hex檔案,點擊我滑鼠位置的“魔法棒”

2.9 更改時鐘頻率,與單片機上的晶振的頻率相等,我的單片機是11.0592,然后點擊輸出(未漢化點擊相應的位置)在面板點擊生成Hex檔案


然后我們就可以在main.c中撰寫程式了
3、數碼管例程如下:
代碼例程
#include<reg51.h>
#define uint unsigned int// 宏定義 uint 和 uchar
#define uchar unsigned char
void delay_1ms(uint n)//1ms的延遲函式
{
uint i,j;
for(i=n;i>0;i--)
{
for(j=400;j>0;j--);//調整1ms,400與單片機的固有頻率有關
}
}
uchar code PX[]={0XFE,0XFD,0XFB,0XF7};//片選
uchar code DX[]=
{
0XC0,0XF9,0XA4,0XB0,
0X99,0X92,0X82,0XF8,
0X80,0X90,0X88,0X83,
0XC6,0XA1,0X86,0X8E
}; //段選 //為方便使用我列出了數碼管顯示值的數表,根據單片機原理圖完成顯示值數表
void display_1()//四個數碼管交替顯示0-f
{
uchar i;
for(i=0;i<16;i++)
{
P2 = PX[i%4];
P0 = DX[i];
delay_1ms(1000);
}
}
void main()
{
while(1) //因為單片機的周期極短所以我們使用while(1)回圈使單片機一直回圈顯示我們要表現的
{
display_1();//呼叫display_1的函式
}
}
代碼段中的顯示值數表可自己列寫,我這里舉出我所使用單片機所列的表

4、拷入到單片機
此時我們可選擇使用stc-isp軟體,logo如下,并且需要有埠轉串口的驅動

4.1打開檔案,并選擇單片機型號,在單片機上有標注單片機型號

4.2打開程式檔案并選擇剛剛生成的Hex檔案

4.3 關閉單片機,點擊下載/編程,然后打開單片機(單片機是冷啟動)

然后就會在單片機顯示1-F延時1s回圈變化的現象
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/206141.html
標籤:其他
