|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
用過(guò)16F676的看過(guò)來(lái),為什么我的串口會(huì)沒(méi)有輸出。 |
| 作者:lzgq 欄目:單片機(jī) |
移植到12F675上卻是好的。 #include"pic16630.h" #include<conio.h> #define PORTBIT(adr,bit) ((unsigned)(&adr)*8+(bit)) static bit TxData @ PORTBIT(PORTC,4); static bit RxData @ PORTBIT(PORTC,5); //#define INIT_PORT TRISIO = 0x08 /* set up I/O direction */ /* XTAL.html">XTAL frequency */ #define XTAL 4000000 /* Baud rate */ #define BRATE 9600 /* Don't change anything else */ #define DLY 3 /* cycles per null loop */ #define TX_OHEAD 13 /* overhead cycles per loop */ #define RX_OHEAD 12 /* RECEIVER overhead per loop */ #define DELAY(ohead) (((XTAL/4/BRATE)-(ohead))/DLY) void putch(unsigned CHAR c) { unsigned CHAR dly, bitno; bitno = 11; // INIT_PORT; TxData = 0; /* start bit */ bitno = 12; do { dly = DELAY(TX_OHEAD); /* wait one bit time */ do /* nix */ ; while(--dly); if(c & 1) TxData = 1; if(!(c & 1)) TxData = 0; c = (c >> 1) | 0x80; } while(--bitno); } unsigned CHAR getch(void) { unsigned CHAR c, bitno, dly; for(;;) { while(RxData) continue; /* wait for start bit */ dly = DELAY(3)/2; do /* nix */; while(--dly); if(RxData) continue; /* twas just noise */ bitno = 8; c = 0; do { dly = DELAY(RX_OHEAD); do /* nix */; while(--dly); c = (c >> 1) | (RxData << 7); } while(--bitno); return c; } } unsigned CHAR getche(void) { CHAR c; putch(c = getch()); return c; } //以下為主程序的測(cè)試開始 void main(void) { unsigned CHAR TEMP; asm("call 0x3ff"); RP0=1; asm("movwf _OSCCAL"); INTCON=0x00; PIE1=0x00; ANSEL=0x01; TRISA=0x3f; PORTA=0x3f; TRISC=0x2f; //RXD為輸入,TXD為輸出 PORTC=0x3f; while(1) { if(RxData==0) { TEMP=getch(); if(TEMP!=0xff) { putch(TEMP); DELAY(0xff); for(TEMP=0;TEMP<0x60;TEMP++) { putch(TEMP); DELAY(0xff); } } } } } |
| 2樓: | >>參與討論 |
| 作者: lzgq 于 2003/6/11 20:34:00 發(fā)布:
同時(shí)還發(fā)現(xiàn)PIC16630.H和別的.H有點(diǎn)有不一樣 PIC16630.H在前面多了下面2句,別的沒(méi)有 #ifndef __PIC16630_H #define __PIC16630_H 在后面多了#endif,別的沒(méi)有. 是不是這個(gè)會(huì)影響? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |