1.兩個問題,乙個待解決:
1.1數碼管的dula,wela,的原理和led1一樣嗎?微控制器為什麼憑這個名字就能找到數碼管?
初步猜測:是郭天祥在他的51微控制器裡面焊接定義好的,就是不知道放在別的地方是否通用。
1.2 sbit dula = p2^6;段的定義介面一定是這個嗎?段的定義口和位的能不能互換呢?
回答:不一定要這麼接,這是定做的板子,郭天祥的板子就可能一定要這麼接,自己畫板子可以自己定義,是i/o口就可以。
2.五個知識點
2.1 sbit dula = p2^6;sbit wela = p2^7;這是數碼管的控制端,p0是數碼管的賦值埠。確定了這兩個埠就能操縱數碼管。
dula,wela = 1;需要開啟,要給埠賦值高電平。
2.2 abcdefgh數碼管 按照順時針命名。當數碼管是共陰極數碼管的時候,1代表該數碼管那一段是亮的。hgfedcba,a是賦值的最低位。位選訊號時,0代表亮。1111 1110代表第乙個數碼管是亮的。
2.3 uchar code table={};用code定義的變數儲存在程式區。const unsigned int a = 100;用const定義的變數儲存在資料儲存區。
2.4 0xfe和0xfe大小寫是一樣的效果。
2.5 p0 = 0xff;如果位選與段選連在一起的畫,在位選與段選之間要用這句話隔開,清空p0口資訊。
3.數碼管相
編寫程式使第乙個數碼管顯示8
#include sbit dula = p2^6;
sbit wela = p2^7;
void main()
實驗板上6個數碼管同時點亮,依次顯示0到f,時間間隔為0.5ms,迴圈下去。
註解:依次顯示指的是6個數碼管同時顯示同乙個數,然後依次變化。
#include #define uint unsigned int
#define uchar unsigned char
uchar code table =
;uint num,x,y;
void delay();
sbit wela = p2^7;
sbit dula = p2^6;
void main() }}
void delay()
第乙個數碼管顯示1,時間為0.5s然後關閉它,立即讓第二個數碼管顯示2,時間為0.5s再關閉它
一直到最後乙個數碼管顯示6,時間同樣為0.5s。關閉它之後再回來顯示第乙個數碼管,一直迴圈下去。
#include #define uint unsigned int
#define uchar unsigned char
uchar code table =
;uint i,x,y;
sbit wela = p2^7;
sbit dula = p2^6;
void delay();
void main() }}
void delay()
郭天祥微控制器程式設計100例程式及隨筆3 定時器程式設計
1.五個知識點 1.1設定中斷的流程 1.1.1主函式設定初始化 1.1.2中斷服務程式 由使用者自己編寫 設定要做的事情,但不可以放太多。1.2主函式的設定 定時器初始化 舉例 void main 或者使用void init interrupt 也可以,不一定要直接放在總程式裡面。設定流程如下 注...
郭天祥51微控制器教程 IIC匯流排
include define uchar unsigned char sbit sda p2 0 資料匯流排 sbit scl p2 1 時鐘匯流排 void delay 大概延時5us void delay1 uchar x 這是乙個寫資料的整體過程 void wirte add uchar ad...
郭天祥10天微控制器學習筆記(1 1)
program 1.1 commit include 包含52標頭檔案,對應的是微控制器型號,其中含各io陣腳的命名定義 sbit d2 p3 0 位定義 p3 0這個陣腳的名字叫d2 unsigned int a 無符號整型,65536到65535 2的16次方 void main 無參主函式入口...