|
凌陽出的教程,用來學(xué)習(xí)單片機(jī)c語言非常不錯(cuò),主要講解了結(jié)構(gòu)體實(shí)現(xiàn)字節(jié)、位操作,下面是教程的截圖,完整版本請下載本帖的51黑附件。
0.png (217.02 KB, 下載次數(shù): 81)
下載附件
2017-3-22 03:26 上傳
0.png (161.72 KB, 下載次數(shù): 84)
下載附件
2017-3-22 03:26 上傳
0.png (51.81 KB, 下載次數(shù): 90)
下載附件
2017-3-22 03:28 上傳
源碼:
- /* ========================================================================= */
- /* The information contained herein is the exclusive property of */
- /* Sunplus Technology Co. And shall not be distributed, reproduced, */
- /* or disclosed in whole in part without prior written permission. */
- /* (C) COPYRIGHT 2004 SUNPLUS TECHNOLOGY CO. */
- /* ALL RIGHTS RESERVED */
- /* The entire notice above must be reproduced on all authorized copies. */
- /* ========================================================================= */
- /* */
- /* ========================================================================= */
- /* Project Name : AN_SPMC75_0202 */
- /* File Name : main.c */
- /* Description : Easy-to-Use Byte and Bit mode operation using C data */
- /* structure */
- /* Processor : SPMC75F2413A */
- /* Tools : u'nSP IDE tools v1.18.1A or later version */
- /* ========================================================================= */
- /* Revision */
- /* ========================================================================= */
- /* Version : 1.00 */
- /* Date : 9.2 */
- /* Modified by : 更換正規(guī)的文件頭和最新的頭文件 */
- /* Description : */
- /* ========================================================================= */
- #include "AN_SPMC75_0202.H"
- //===========================================================================
- /*
- .Note:
- 將UInt16型變量variable強(qiáng)制轉(zhuǎn)換為GENBITSDEF類型的指針,
- 那么這樣一個(gè)指針ptr就可以具有GENBITSDEF類型所定義的
- 屬性和成員,對其操作就可以實(shí)現(xiàn)對ptr所指存儲(chǔ)空間進(jìn)行操作。
- */
- #define ptr ((volatile GENTYPEDEF *)(&variable)) //普通變量強(qiáng)轉(zhuǎn)換類型
- main()
- {
- UInt16 variable = 0; //UInt16 變量定義
- GENBITSDEF sBits; //自定義類型GENBITSDEF 變量定義
- GENBYTEDEF sByte; //自定義類型GENBYTEDEF 變量定義
- GENTYPEDEF sMixb; //自定義類型GENTYPEDEF 變量定義
- P_IOD_Attrib->W = 0xFFFF; //IOD初始化
- P_IOD_Dir->W = 0xFFFF;
- P_IOD_Buffer->W = 0xFFFF;
- P_IOD_Data->W = 0x0000;
- sBits.W = 0xA5FF; //字(Word)操作
- sBits.B.bit0 = 0; //位(Bit)操作
- sBits.B.bit15 = 0; //位(Bit)操作
- sByte.W = 0xA5FF; //字(Word)操作
- sByte.B.byte0 = 0xA5; //字節(jié)(Byte)操作
- sByte.B.byte1 = 0xFF; //字節(jié)(Byte)操作
- sMixb.Word = 0xA5FF; //字(Word)操作
- sMixb.Bits.bit14 = 1; //位(Bit)操作
- sMixb.Bits.bit15 = 0; //位(Bit)操作
- sMixb.Byte.byte0 = 0; //字節(jié)(Byte)操作
- sMixb.Byte.byte1 = 0; //字節(jié)(Byte)操作
- ptr->Word = 0x90Fe; //轉(zhuǎn)型后變量的操作方式
- ptr->Bits.bit0 = 1;
- ptr->Bits.bit15 = 0;
- ptr->Byte.byte0 = 0xFF;
- ptr->Byte.byte1 = 0x00;
- while(1)
- {
- LEDCHG->Byte.byte0 = 0xA5; //對硬件(IOD)的字節(jié)(Byte)操作
- LEDCHG->Byte.byte0 = 0x5A;
- LEDCHG->Byte.byte1 = 0xA5;
- LEDCHG->Byte.byte1 = 0x5A;
- LEDCHG->Byte.byte0 = 0x00;
- LEDCHG->Byte.byte0 = 0xFF;
- LEDCHG->Byte.byte1 = 0x00;
- LEDCHG->Byte.byte1 = 0xFF;
- LEDCHG->Word = 0x00; //對硬件(IOD)的字(Word)操作
- LEDCHG->Bits.bit0 = 1; //對硬件(IOD)的位(Bit)操作
- LEDCHG->Bits.bit0 = 0;
- LEDCHG->Bits.bit5 = 1;
- LEDCHG->Bits.bit5 = 0;
- LEDCHG->Bits.bit10 = 1;
- LEDCHG->Bits.bit10 = 0;
- LEDCHG->Bits.bit15 = 1;
- LEDCHG->Bits.bit15 = 0;
- }
- }
復(fù)制代碼
完整教程和源碼下載:
用C語言的結(jié)構(gòu)體實(shí)現(xiàn)字節(jié)、位操作.rar
(305.49 KB, 下載次數(shù): 46)
2017-3-22 03:30 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|