单片机C语言编程教程

上传人:206****923 文档编号:45693166 上传时间:2018-06-18 格式:PDF 页数:26 大小:6.02MB
返回 下载 相关 举报
单片机C语言编程教程_第1页
第1页 / 共26页
单片机C语言编程教程_第2页
第2页 / 共26页
单片机C语言编程教程_第3页
第3页 / 共26页
单片机C语言编程教程_第4页
第4页 / 共26页
单片机C语言编程教程_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机C语言编程教程》由会员分享,可在线阅读,更多相关《单片机C语言编程教程(26页珍藏版)》请在金锄头文库上搜索。

1、 2004-4-7 1 of 26 PICC11.1PICCCCPICCCPCPC PCCCPIC CPICMicrochipPICCPICCHitechCCSIARBytecraftHitechPICCPICHitechPICPICC-LitePICPIC16F84 PIC16F877PIC16F628FlashPICC-Lite PICCPICCHitech-PICC IAR CCS PIC11.2Hitech-PICCPICCANSIPICPICPIC2004-4-7 2 of 26 PICPICC C4KC/#include “pc68.h” /_CONFIG (HS /void S

2、etSFR(void); void Clock(void); void KeyScan(void); void Measure(void); void LCD_Test(void); void LCD_Disp(unsigned char); /unsigned char second, minute, hour; bit flag1,flag2; /11-2 C2004-4-7 4 of 26 void main(void) SetSFR(); PORTC = 0x00; TMR1H += TMR1H_CONST; LED1 = LED_OFF; LCD_Test(); /while(1)

3、asm(“clrwdt”); /Clock(); /KeyScan(); /Measure(); /SetSFR(); / 11-1 C11.5PICC11.5.1PICCPICC11-1bit 1 01char 8 PICCcharunsigned char 8 short 16 unsigned short 16 int 16 unsigned int 16 long 32 unsigned long 32 float 24 double 2432PICCdouble243211-1 PICCPICCLittle-endian2004-4-7 5 of 26 11.5.2PICC11-1b

4、itPICC Cunsigned int data10; struct commInData unsigned char inBuff8; unsigned char getPtr, putPtr; ; union int_Byte unsigned char c2; unsigned int i; ; 11-2 C11.5.3PICCbankPICCbankbank bank0unsigned char buffer32; bit flag1,flag2; float val8; bank0bankbankbank1 unsigned char buffer32; /bank1bank2 b

5、it flag1,flag2; /bank2bank3 float val8; /bank3PICbank128CbankRAM bankError000 : Cant find 0x12C words for psect rbss_1 in segment BANK1 0x12C300bank1bank1 bank1bankbankbankCbankbank bankbankbank2004-4-7 6 of 26 11.5.4PICCPICCautobank0PICPICCbank0bank011.5.5PICCbitPICCbank8 PICPICC0x00000x00008flag10

6、x1230x123/8 = 0x24 0x123%8 = 3 flag10x243flag10x240x123PICPICC tmp0x20tmp |= 0x80 = bsf 0x20,7 tmp unsigned b1: 1; unsigned b2: 1; unsigned b3: 1; unsigned b4: 1; unsigned b5: 1; unsigned : 2; / oneBit; unsigned char allBits; myFlag; 11-3 myFlag.oneBit.b3=1; /b31myFlag.allBits=0; /00011ANSI-C011.5.6

7、PICCPICCIEEE-754324PICC24 float24double24double322411.5.7PICCC bankPICCPICCPICC2004-4-7 8 of 26 unsigned char tmpData 0x20; /tmpData0x20PICCtmpData0x200x20unsigned char tmpData 0x20; /tmpData0x20bit tmpBit0 tmpData*8+0; /tmpBit0tmpData0bit tmpBit1 tmpData*8+1; /tmpBit0tmpData1bit tmpBit2 tmpData*8+2

8、; /tmpBit0tmpData2tmpData11.5.8PICCextern Cexterncode1.cbank1 unsigned char var1, var2; /bank1code2.cextern bank1 unsigned char var1, var2; /bank1volatile PICCCvolatile IOvolatilevolatile unsigned char STATUS 0x03; volatile bit commFlag; volatileCvolatilevolatile2004-4-7 9 of 26 volatileconst constR

9、OMROMconstretlw PICCconst unsigned char name=”This is a demo”; /constRAMpersistent C PICCmainPICCpersistentpersistenpersistent unsigned char hour,minute,second; /persistentpersistentPIC11.5.9PICCPICCCPICRAMFSRPICC PICCCRAMFSRFSR256bank0/1bank2/3512PICC2004-4-7 10 of 26 unsigned char *ptr0; /bank0/1b

10、ank2 unsigned char *ptr1; /bank2/3bank3 unsigned char *ptr2; /bank2/3bankbank0bank1bank2bank3 bankbank0bankbankunsigned char *ptr0; /bank0/1bank2 unsigned char buff8; /bank2ptr0 = buff; /bank2bank0/1PICCFixup overflow in expression (.) bankvoid SendMessage(unsigned char *); bank0bank1bank2bank3void

11、SendMessage_2(bank2 unsigned char *); Fixup overflowROMROMconst unsigned char company=”Microchip”; /ROMconst unsigned char *romPtr; /ROMromPtr company; /data = *romPtr+; /1*romPtr data; /CPICCPICPICCRAM2004-4-7 11 of 26 PCpersistentvolatile PICCbank bank0/1bank2/3 bank0bank/bank0/1bank0unsigned char

12、 *ptr0; /bank2/3bank0bank2 unsigned char *ptr0; /bank2/3bank1bank2 unsigned char * bank1 ptr0; bankbankbankvolatilepersistentconstbankvolatilepersistentconstbank/bank0/1bank0volatile unsigned char *ptr0; /bank2/3bank1bank2 unsigned char * volatile bank1 ptr0; /ROMROMconst unsigned char * const ptr0;

13、 11.6PICCPICC11.6.12004-4-7 12 of 26 PICCCPIC2KC 2K2K11.6.2PIC8 7PICC*.mapcall graphCall graph: *_main size 0,0 offset 0 _RightShift_C * _Task size 0,1 offset 0 lwtoft ftmul size 0,0 offset 0 ftunpack1 ftunpack2 ftadd size 0,0 offset 0 ftunpack1 ftunpack2 ftdenorm 11-4 Cmain C11.6.3PICCvoid Task(voi

14、d); unsigned char Temperature(void); void BIN2BCD(unsigned char); void TimeDisplay(unsigned char, unsigned char); 2004-4-7 13 of 26 C11-111.6.4PICCCvoid interrupt ISR(void); ISR voidinterruptinterruptPICC0x0004retfievoid interrupt ISR(void) /if (T0IE /TMR0/TMR0 if (TMR1IE /TMR1/TMR1 /11-5 CPICCCPICC

15、2004-4-7 14 of 26 PIC11.6.5PICCCbank0#include #include PICCCprintf/sprintfprintf/sprintfCscanfprintfPICCgetch()putch()scanf/printf getch()putch()11.7PICCPICC11.7.1PICPICC C_CONFIG (HS _CONFIG pic.hHEX16F7x/*/ #define RC 0x3FFF / RC#define HS 0x3FFE / HS2004-4-7 15 of 26 #define XT 0x3FFD / XT#define LP 0x3FFC / LP/*/ #define WDTEN 0x3FFF / #define WDTDIS 0x3FFB / /*/#define PWRTEN 0x3FF7 / #define PWRTDIS 0x3FFF / /*/#define BOREN 0x3FFF / #define BORDIS 0x3FBF / /*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号