007 變數的作用域和LED點陣

2022-06-10 02:54:10 字數 3423 閱讀 8696

例如:

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 位...