- 更改字體設置:【編輯】-【配置】-【顏色和字體】
- 新建項目
- 新建.c文件(添加源代碼組)
- 配置.hex文件
- 測試代碼:
#include<reg52.h>
void main()
{
while(1)
{
;
}
}
- 編譯
編譯按鈕在工作區的左上角,編譯成功之後,發現main.c前面會有一個“+”號,包含的頭文件 #inlude<reg52.h> 也會顯示在下方。
點亮LED燈
- 電路圖
默認情況下LED燈爲高,因爲流水燈P1.0 - P1.7設置了上拉電阻,當程序設置IO口爲低時,LED點亮。
第一種方法
P1 = 0xf0; //p1.0亮
- 寄存器設置規則
P1
在系統中頭文件中可見,代表sfr P1 = 0x90;
八位寄存器,如何用十六進制代表IO口呢?下面以P1~P7的八位寄存器爲例:
轉換步驟爲:【八位二進制】-【十進制.十進制】-【十六進制】
寄存器編號 | 八位寄存器 | 十進制 | 十六進制 |
---|---|---|---|
P1^0 | 1111 1110 | 15、14 | 0xfe |
P1^1 | 1111 1101 | 15 、13 | 0xfd |
P1^2 | 1111 1011 | 15 、11 | 0xfb |
P1^3 | 1111 0111 | 15 、7 | 0xf7 |
P1^4 | 1110 1111 | 14、15 | 0xef |
P1^5 | 1101 1111 | 13、15 | 0xdf |
P1^6 | 1011 1111 | 11、15 | 0xbf |
P1^7 | 0111 1111 | 7、15 | 0x7f |
注意:流水燈電路原理圖中默認上拉爲高,燈滅;若要點亮 LED則只需設置寄存器爲低即可。如:P1.0
引腳爲低,從低位到高位,從右往左 1111 1110
。
- 程序
#include<reg52.h>
void main()
{
while(1)
{
P1 = 0xf0; //p1.0亮
//八位二進制 十進制轉換 十六進制
//1111 1110 15 14 0xfe
//P1 = 0;// 0000 0000 全亮
//P1 = 0xff// 1111 1111 全滅
}
}
第二種方法
sbit led1 = P1^0; //定義led1 爲 p1.0
#include<reg52.h>
sbit led1 = P1^0;//
void main()
{
while(1) {
led1 = 0 ;//
}
}
燒錄程序
- 配置
關於單片機型號:請選擇“STC89C52”,在“STC89C51 系列”裏面可選。
注意:系統兼容性的問題,可能會出現燒錄軟件點開後閃退的情況,我的解決辦法是去 STC 官網下載最新的燒錄軟件。
- 燒錄步驟
插上USB 數據線後,沒有燈亮,然後點擊燒錄軟件的 “下載/編程”,L1亮了,這時立刻按下板子的電源開關,然後 L2 亮了,這樣就開始燒錄了。
拓 展
- 新建延時頭文件
delay.h
#define uchar unsigned char //8 0-255
#define uint unsigned int //16 0-65535
void delay(uint xms);
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=112;j>0;j--);
}
- 主函數
#include<reg52.h>
#include"delay.h"
sbit led7 = P1^7 ; //p1.7
void main()
{
while(1) {
led7 = 0 ;//打開
delay(500);
led7 = 1; //關閉
delay(500);
}
}
參考資料