例如:
void main()
由於普中a2開發板的8×8點陣led由74hc595控制dpa~dph,所以先介紹74hc595晶元。
初始化:srclk為0,rclk為1;此時ser口有八位數字,從高位到低位依次為「76543210」;
寫入:第7位數字寫入ser;
srclk由0->1(上公升沿到達),ser中的第7位數字通過移位暫存器到達qh;
srclk由1->0(下降沿到達),第6位數字寫入ser;
srclk由0->1(上公升沿到達),ser中的第6位數字通過移位暫存器到達qg;
迴圈移動八位數字由高位至低位到達qh至qa,但資料還沒有被輸出;
rclk由0->1,qh至qa中的全部資料一次性被輸出;
#include "reg51.h" //此檔案中定義了微控制器的一些特殊功能寄存
#include "intrins.h"
//功能:點亮8×8點陣led左上角的小燈
//目標:p0^7 = 0;dph = 1,其他為0
typedef unsigned int u16; //對資料型別進行宣告定義
typedef unsigned char u8;
//定義使用的io口
sbit srclk=p3^6;
sbit rclk=p3^5;
sbit ser=p3^4;
sbit led=p0^7;
/** 函 數 名 : hc595sendbyte(u8 dat)
* 函式功能 : 通過 595 傳送 1 個位元組的資料
* 輸 入 : dat: 1 個 595 輸出數值
* 輸 出 : 無
*/void hc595sendbyte(u8 dat)
rclk = 0;
_nop_();
_nop_();
rclk = 1;}/*
* 函 數 名 : main
* 函式功能 : 主函式
* 輸 入 : 無
* 輸 出 : 無
*/void main()
}
備註及說明:
#include//標頭檔案
#include//標頭檔案
sbit srclk = p3^6; //74hc595使用的io定義
sbit lclk = p3^5; //lclk即為rclk,如果使用#include,則無需更改
sbit ser = p3^4;
//74hc595傳送函式
void hc595sendbyte(char date) //定義74hc595的傳送函式
lclk = 0;
_nop_();
_nop_();
lclk = 1;
}//延時函式
void delay(int i)
//主函式
void main()
}
備註及說明:
#include//標頭檔案
#include//功能:利用中斷函式實現點陣led的全亮效果
//定義使用的io口
sbit ser = p3^4;
sbit lclk = p3^5;
sbit srclk = p3^6;
//定義8×8點陣led的列選通訊號,一次亮一列
unsigned char dian_zhen_led[8] = ;
//申明74hc595傳送函式
void hc595send(char date);
//主函式
void main()
//定義74hc595傳送函式
void hc595send(char date)
lclk = 0; //rclk由0->1,qh至qa中的全部資料一次性被輸出
_nop_();
_nop_();
lclk = 1;
}//中斷函式
void interrupttime0() interrupt 1 //中斷型別為t0中斷,1為中斷編號
}
#include//標頭檔案
#include//定義使用的io口
sbit ser = p3^4;
sbit lclk = p3^5;
sbit srclk = p3^6;
//定義圖案「愛心」取模引數
unsigned char ai_xin[8] = ;
//定義8×8點陣led的列選通訊號,一次亮一列
unsigned char dian_zhen_led[8] = ;
//申明74hc595傳送函式
void hc595send(char date);
//申明延時函式
void delay(int i);
//主函式
void main() }}
//定義74hc595傳送函式
void hc595send(char date)
lclk = 0; //rclk由0->1,qh至qa中的全部資料一次性被輸出
_nop_();
_nop_();
lclk = 1;
}//定義延時函式
void delay(int i)
#include//標頭檔案
#include//定義使用的io口
sbit ser = p3^4;
sbit lclk = p3^5;
sbit srclk = p3^6;
//申明74hc595傳送函式
void hc595send(char date);
//定義圖案「我愛你」取模引數
unsigned char wo_ai_ni[40] =
;//定義8×8點陣led的列選通訊號,一次亮一列
unsigned char dian_zhen_led[8] = ;
//主函式
void main()
//定義74hc595傳送函式
void hc595send(char date)
lclk = 0;
_nop_();
_nop_();
lclk = 1;
}//中斷函式
interrupttime0() interrupt 1
cnt++; //計次加1,一次時間間隔為1ms
if(cnt == 100) //時間到達0.1秒
} }
備註及說明: 變數的作用域和scanf
include 變數的作用域 變數的作用範圍 int test int main 之間,出了 之後,就無法訪問了,是因為這個變數所佔據的記憶體空間已經被 了。存在的原因就是為了節約記憶體,提高效能 value d n value printf value d n value error,試圖訪問函式...
js變數和作用域
一 變數型別 i 100 number型別 i abc string型別 i object型別 i 1,2,3 array型別 二 變數宣告 var i 100 顯示宣告 i 100 隱示宣告 在函式內部使用var關鍵字宣告的變數為區域性變數 沒有使用var關鍵字,直接賦值宣告的是全域性變數 當我們...
js變數和作用域
2.變數值的比較 3.引數的傳遞 4.型別檢測 二 js變數的作用域與解析 基本資料型別 基本資料型別的值不能被修改,其值儲存在棧中,當變數賦予新的值,棧中的值被覆蓋 引用資料型別 引用資料型別的值可以被修改,其位址儲存在棧中,值儲存在堆中棧堆 基本資料型別a值 引用資料型別 b位址1 位址1c 位...