#include
//內部振蕩器4M,看門狗關,上電復位延時,開外部復位腳,數據保護關,代碼保護關,關掉電復位
__CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF); //12F675
#define uchar unsigned char
#define uint unsigned int
#define TX GP0
#define RX GP1
#define KEY GP2
#define R_S GP4
#define LED GP5
uchar TX_REG,T_TMP;
bit TX_IF;
void delay_ms(uint wm) //進入退出一次8個指令周期
{
uchar i;
for(;wm!=0;wm--)
{
i=163;
while(i--);
NOP();
NOP();
}
}
/*
模擬串口,定時器中斷發送方式,波特率9600
*/
void UART(uchar U_D)
{
while(T0IE); //等待上一次數據發送完畢
TMR0=175; //預充值
TX=0; //發送起始位
T0IF=0; //清零定時器中斷
T0IE=1; //定時器0中斷使能
TX_REG=U_D; //轉移數據到發送緩存
T_TMP=8; //預置需要發送的位個數(8位數據)
TX_IF=1; //數據發送完畢標志
}
void init()
{
CMCON = 0b00000111; //關閉內部比較器
ANSEL = 0; //全部為數字IO
TRISIO = 0b00001110; //設置RA0為TX,RA1為RX,RA2為IRQ,RA3為復位,RA4為,RA5為
GPIO = 0b00000001; //
OPTION_REG=0b00001110;//GPIO上拉,TMR0時鐘為內部
WPU = 0b00001110;
INTCON = 0b11000000;
}
void main(void)
{
init();
while(1)
{
if(KEY==0)
{
delay_ms(100);
if(KEY==0)
{
UART('O');
UART('K');
UART('r');
UART('n');
}
}
}
}
void interrupt INT()
{
if(T0IF) //檢測到定時器0中斷
{
TMR0=169; //預充值
if(T_TMP) //檢測數據是否發送完畢
{
TX=TX_REG; //輸出數據
TX_REG>>=1; //移位數據
--T_TMP; //
}
else //發送完畢后進行停止位發送
{
if(TX_IF)
{
TX=1;
TX_IF=0;
}
else
{
T0IE=0; //發送完畢后關閉定時器中斷
}
}
T0IF=0;
}
}
以上程序為定時器中斷方式IO模擬串口,
優點就是占用CPU少(只使用一次子函數后一直等待定時器中斷才處理一次),
缺點是占用一個定時器
上一篇:PIC的35條指令扭曲理解法
下一篇:用PIC16F1824的內部DAC做正弦波發生器測試
推薦閱讀
史海拾趣
DL Instruments LLC的前身是Ithaco Corporation的精密儀器部門。在Edgar Seymour總裁的領導下,這個部門于1995年被出售給當時擔任Ithaco Corporation質量總監的David Woolston先生。這一決定標志著公司從一個大型企業的一個部門,轉型為一個獨立的、專注于精密儀器制造的新實體——DL Instruments LLC。
Altus Technology Inc自成立以來,始終將技術創新作為公司發展的核心驅動力。在早期,公司研發團隊通過不懈努力,成功開發出了一款具有革命性的芯片,這款芯片在性能和功耗上均優于當時的同類產品。憑借這一技術突破,Altus在市場上迅速獲得了一席之地,并吸引了大量合作伙伴和投資人的關注。隨著技術的不斷迭代和升級,Altus逐漸在電子行業中樹立了技術領先的形象,并持續推出了一系列創新產品,鞏固了市場地位。
綠索超容在追求經濟效益的同時,始終不忘履行社會責任。公司積極響應國家綠色發展的號召,致力于環保事業和可持續發展。在產品研發和生產過程中,綠索超容始終堅持綠色、低碳、環保的理念,采用環保材料和工藝,減少對環境的影響。此外,公司還積極參與社會公益活動,為社會貢獻自己的力量。這些舉措不僅提升了綠索超容的企業形象,也為其在電子行業中樹立了良好的口碑。
隨著物聯網技術的不斷發展,電子設備對繼電器的要求也越來越高。Deltrol Controls緊跟行業趨勢,對繼電器產品進行了智能化改造。通過集成傳感器、控制器等智能元件,新型繼電器能夠實現對電路狀態的實時監測和遠程控制。這一創新產品不僅提高了電子設備的智能化水平,也為客戶帶來了更多的便利和價值。
Colibrys在MEMS技術方面擁有深厚的專業知識,這得益于公司長期的研發積累和不斷創新的精神。許多客戶委托公司建造最苛刻的航空航天、能源、鐵路或汽車測試設備,這些成功案例進一步鞏固了公司在行業內的領先地位。無論是用于汽車安全氣囊的MEMS加速度計,還是用于引導鉆頭的高溫加速度計,都體現了Colibrys在專業知識應用方面的卓越能力。
隨著公司業務的不斷拓展,Fairview Microwave開始面臨來自同行的競爭壓力。為了保持競爭優勢,公司決定從源頭抓起,嚴格把控產品質量。他們投入大量資金引進先進的生產設備和技術人才,建立起一套完善的質量管理體系。同時,公司還積極開展與高校和科研機構的合作,不斷吸收新技術、新工藝,確保產品的技術領先性和可靠性。這些努力使得Fairview Microwave的產品在市場上獲得了廣泛認可,逐漸樹立起了高品質的品牌形象。
現在正在開發一個項目,需要用到三個單片機: 在兩個傳感器里面均內置msp430單片機各一塊,在主控制箱中內置arm9單片機。 現在在測量過程中需要三塊單片機不停地協調工作。這就涉及通信問題, 在msp430單片機中有uart和spi兩種串行通信口,在arm ...… 查看全部問答∨ |
|
5050LED貼片led封裝和3528貼片led封裝詳解 1、3528貼片led與5050貼片有什么區別 主要是代表規格外形尺寸的表示:35mm*28mm,50mm*50mm尺寸不一樣,功率也不一樣,在貼片的應用上,3528不管是在亮度上還是在壽命上都沒有5050有優勢 ...… 查看全部問答∨ |
與430配合的低電壓485通訊芯片大家都用什么? MAX3485與SN75系列比哪個好?價格呢? SN75HVD10、11、12的具體區別是什么?… 查看全部問答∨ |