|
|||||||||||
| 技術(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 |
看一下我的串口通訊程序。 |
| 作者:lh8008 欄目:嵌入式系統(tǒng) |
這只是一個(gè)功能很簡(jiǎn)單的串口發(fā)送接收程序。采用的是新華龍的C8051F020芯片。 void main(void) { unsigned int a[10]; sysclk_init(); //初始化系統(tǒng)時(shí)鐘 uart1_init(); //初始化串行口1 while(1) { while(RI1==1); //接收到的字節(jié)立即發(fā)送出去 RI1=0; a[10]=SBUF1; SBUF1=a[10]; while(TI1==1); //發(fā)送字節(jié)完畢 TI1=0; //發(fā)送結(jié)束標(biāo)志符清零 } } void sysclk_init(void) { unsigned int i; OSCXCN=0x67; //開啟外部振蕩器(20MHZ) for(i=0;i<256;i++) ; //等待振蕩器啟振穩(wěn)定 while(!(OSCXCN & 0x80)); OSCICN=0x88; //選擇外外部振蕩器為系統(tǒng)時(shí)鐘 } void uart1_init(void) { SCON1 = 0x50; // SCON1: 模式1, 8位UART1 允許RX TMOD=0x20; // 方式2:自動(dòng)重裝載的8位計(jì)數(shù)器和定時(shí)器 TH1 = -(SYSCLK/BAUDRATE/16); // 根據(jù)波特率的值設(shè)定定時(shí)器1重裝值 TR1 = 1; //起動(dòng)定時(shí)器1 CKCON |= 0x10; //定時(shí)器1使用系統(tǒng)時(shí)鐘為時(shí)基 PCON |= 0x10; // SMOD1= 1 TI1=1; //表示TX1就緒 } * - 本貼最后修改時(shí)間:2006-2-22 9:11:31 修改者:lh8008 |
| 2樓: | >>參與討論 |
| 作者: infernal 于 2006/2/21 19:11:00 發(fā)布:
好熟悉 很經(jīng)典, |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |