www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] ----------------------------------main.c----源文件--------------------#include "reg51.h"typedef bit BOOL;typedef unsigned char BYTE;typedef unsigned int WORD;sbit RXB = P3^0; //串口模擬端

----------------------------------main.c----源文件--------------------


#include "reg51.h"

typedef bit BOOL;
typedef unsigned char BYTE;
typedef unsigned int WORD;

sbit RXB = P3^0; //串口模擬端口
sbit TXB = P3^1;

//#define BAUD 0xF400 // 1200bps @ 11 .0592MHz
//#define BAUD 0xFA00 // 2400bps @ 11 .0592MHz
//#define BAUD 0xFD00 // 4800bps @ 11 .0592MHz
#define BAUD 0xFE80 // 9600bps @ 11 .0592MHz
//#define BAUD 0xFF40 //19200bps @ 11 .0592MHz
//#define BAUD 0xFFA0 //38400bps @ 11 .0592MHz
//#define BAUD 0xEC00 // 1200bps @ 18.432MHz
//#define BAUD 0xF600 // 2400bps @ 18.432MHz
//#define BAUD 0xFB00 // 4800bps @ 18.432MHz
//#define BAUD 0xFD80 // 9600bps @ 18.432MHz
//#define BAUD 0xFEC0 //19200bps @ 18.432MHz
//#define BAUD 0xFF60 //38400bps @ 18.432MHz
//#define BAUD 0xE800 // 1200bps @ 22.11 84MHz
//#define BAUD 0xF400 // 2400bps @ 22.11 84MHz
//#define BAUD 0xFA00 // 4800bps @ 22.11 84MHz
//#define BAUD 0xFD00 // 9600bps @ 22.11 84MHz
//#define BAUD 0xFE80 //19200bps @ 22.11 84MHz
//#define BAUD 0xFF40 //38400bps @ 22.11 84MHz
//#define BAUD 0xFF80 //57600bps @ 22.11 84MHz

BYTE TBUF,RBUF;
BYTE TDAT,RDAT;
BYTE TCNT,RCNT;
BYTE TBIT,RBIT;
BOOL TING,RING;
BOOL TEND,REND;
BOOL CT;
BYTE t, r;
BYTE buf[16]="1234567890qwerty";

void UART_INIT()
{
TMOD = 0x00; //設(shè)置控制定時(shí)器1與控制定時(shí)器0都為定時(shí)器的16位自動(dòng)重裝模式
AUXR = 0x80; //AUXR只使用了第7與6位---0表示12分頻為12T普通51的IO口--1表示不分頻為1T
TL0 = BAUD;
TH0 = BAUD>>8; //設(shè)置定時(shí)器重裝值--也就是設(shè)置波特率
TR0 = 1; //打開定時(shí)器0
ET0 = 1; //允許T0溢出中斷
PT0 = 1; //最高優(yōu)先級(jí)
EA = 1; //允許所有中斷
TING = 0;
RING = 0;
TEND = 1;
REND = 0;
TCNT = 0;
RCNT = 0;
}
void main()
{
BYTE j=0;
WORD i=0;
UART_INIT(); //初始化

while (1)
{

TING = 1;
TBUF = buf[j++];
i=6000;
while(i--); //延時(shí)非常重要--不然會(huì)發(fā)送錯(cuò)誤
if (j>16)
j=0;
}
}
//在定時(shí)器里是將一個(gè)數(shù)據(jù)按照二進(jìn)制的8位依次一位一位發(fā)送到TXD數(shù)據(jù)線上的

//接受數(shù)據(jù)也是相同道理---根據(jù)數(shù)據(jù)線RXD的高低電平來保存數(shù)據(jù)
void tm0() interrupt 1 using 1
{
if (RING)
{
if (--RCNT == 0) //接收---先使用再減1
{
RCNT = 3;
if (--RBIT == 0) //一個(gè)數(shù)據(jù)接收完成---數(shù)據(jù)位數(shù)---這里9位--8個(gè)數(shù)據(jù)位---1個(gè)停止位
{
RBUF = RDAT; //保存這個(gè)數(shù)
RING = 0;
REND = 1;
}
else//沒有完成9位數(shù)據(jù)的接收---一位一位依次保存--先低位
{
RDAT >>= 1;
if (RXB)
RDAT |= 0x80;//根據(jù)數(shù)據(jù)線的高低電平保存0或者1
}
}
}
else if (!RXB)
{
RING = 1;
RCNT = 4;
RBIT = 9;
}
if (--TCNT == 0) //發(fā)送
{
TCNT = 3;
if (TING)
{
if (TBIT == 0)//9位數(shù)據(jù)完成發(fā)送
{
TXB = 0; //釋放發(fā)送線
TDAT = TBUF; //賦值
TBIT = 9; //再次給數(shù)據(jù)個(gè)數(shù)標(biāo)志位置位8+1
TEND = 0;
}
else
{
TDAT >>= 1; //左移---一位一位發(fā)送
if (--TBIT == 0)
{
TXB = 1;
TING = 0;
TEND = 1;
}
else
{
TXB = CY; //CY表示程序狀態(tài)字第7位
}
}
}
}

}

-----------------------reg51.h----頭文件---------------

//內(nèi)核特殊功能寄存器 // 復(fù)位值 描述
sfr ACC = 0xE0; //0000,0000 累加器Accumulator
sfr B = 0xF0; //0000,0000 B寄存器
sfr PSW = 0xD0; //0000,0000 程序狀態(tài)字
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0;
sfr SP = 0x81; //0000,0111 堆棧指針
sfr DPL = 0x82; //0000,0000 數(shù)據(jù)指針低字節(jié)
sfr DPH = 0x83; //0000,0000 數(shù)據(jù)指針高字節(jié)

//I/O 口特殊功能寄存器
sfr P0 = 0x80; //1111,1111 端口0
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit P03 = P0^3;
sbit P04 = P0^4;
sbit P05 = P0^5;
sbit P06 = P0^6;
sbit P07 = P0^7;
sfr P1 = 0x90; //1111,1111 端口1
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
sfr P2 = 0xA0; //1111,1111 端口2
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sfr P3 = 0xB0; //1111,1111 端口3
sbit P30 = P3^0;
sbit P31 = P3^1;
sbit P32 = P3^2;
sbit P33 = P3^3;
sbit P34 = P3^4;
sbit P35 = P3^5;
sbit P36 = P3^6;
sbit P37 = P3^7;
sfr P4 = 0xC0; //1111,1111 端口4
sbit P40 = P4^0;
sbit P41 = P4^1;
sbit P42 = P4^2;
sbit P43 = P4^3;
sbit P44 = P4^4;
sbit P45 = P4^5;
sbit P46 = P4^6;
sbit P47 = P4^7;
sfr P5 = 0xC8; //xxxx,1111 端口5
sbit P50 = P5^0;
sbit P51 = P5^1;
sbit P52 = P5^2;
sbit P53 = P5^3;
sbit P54 = P5^4;
sbit P55 = P5^5;
sbit P56 = P5^6;
sbit P57 = P5^7;
sfr P6 = 0xE8; //0000,0000 端口6
sbit P60 = P6^0;
sbit P61 = P6^1;
sbit P62 = P6^2;
sbit P63 = P6^3;
sbit P64 = P6^4;
sbit P65 = P6^5;
sbit P66 = P6^6;
sbit P67 = P6^7;
sfr P7 = 0xF8; //0000,0000 端口7
sbit P70 = P7^0;
sbit P71 = P7^1;
sbit P72 = P7^2;
sbit P73 = P7^3;
sbit P74 = P7^4;
sbit P75 = P7^5;
sbit P76 = P7^6;
sbit P77 = P7^7;
sfr P0M0 = 0x94; //0000,0000 端口0模式寄存器0
sfr P0M1 = 0x93; //0000,0000 端口0模式寄存器1
sfr P1M0 = 0x92; //0000,0000 端口1模式寄存器0
sfr P1M1 = 0x91; //0000,0000 端口1模式寄存器1
sfr P2M0 = 0x96; //0000,0000 端口2模式寄存器0
sfr P2M1 = 0x95; //0000,0000 端口2模式寄存器1
sfr P3M0 = 0xB2; //0000,0000 端口3模式寄存器0
sfr P3M1 = 0xB1; //0000,0000 端口3模式寄存器1
sfr P4M0 = 0xB4; //0000,0000 端口4模式寄存器0
sfr P4M1 = 0xB3; //0000,0000 端口4模式寄存器1
sfr P5M0 = 0xCA; //0000,0000 端口5模式寄存器0
sfr P5M1 = 0xC9; //0000,0000 端口5模式寄存器1
sfr P6M0 = 0xCC; //0000,0000 端口6模式寄存器0
sfr P6M1 = 0xCB; //0000,0000 端口6模式寄存器1
sfr P7M0 = 0xE2; //0000,0000 端口7模式寄存器0
sfr P7M1 = 0xE1; //0000,0000 端口7模式寄存器1

//系統(tǒng)管理特殊功能寄存器
sfr PCON = 0x87; //0001,0000 電源控制寄存器
sfr AUXR = 0x8E; //0000,0000 輔助寄存器
sfr AUXR1 = 0xA2; //0000,0000 輔助寄存器1
sfr P_SW1 = 0xA2; //0000,0000 外設(shè)端口切換寄存器1
sfr CLK_DIV = 0x97; //xxxx,x000 時(shí)鐘分頻控制寄存器
sfr BUS_SPEED = 0xA1; //xx10,x011 總線速度控制寄存器
sfr P1ASF = 0x9D; //0000,0000 端口1模擬功能配置寄存器
sfr P_SW2 = 0xBA; //0000,0000 外設(shè)端口切換寄存器
sfr IRC_CLKO = 0xBB; //0000,0000 內(nèi)部振蕩器時(shí)鐘輸出控制寄存器

//中斷特殊功能寄存器
sfr IE = 0xA8; //0000,0000 中斷控制寄存器
sbit EA = IE^7;
sbit ELVD = IE^6;
sbit EADC = IE^5;
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
sfr IP = 0xB8; //0000,0000 中斷優(yōu)先級(jí)寄存器
sbit PPCA = IP^7;
sbit PLVD = IP^6;
sbit PADC = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;
sfr IE2 = 0xAF; //0000,0000 中斷控制寄存器2
sfr IP2 = 0xB5; //xxxx,xx00 中斷優(yōu)先級(jí)寄存器2
sfr INT_CLKO = 0x8F; //0000,0000 外部中斷與時(shí)鐘輸出控制寄存器

//定時(shí)器特殊功能寄存器
sfr TCON = 0x88; //0000,0000 T0/T1控制寄存器
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
sfr TMOD = 0x89; //0000,0000 T0/T1模式寄存器
sfr TL0 = 0x8A; //0000,0000 T0低字節(jié)
sfr TL1 = 0x8B; //0000,0000 T1低字節(jié)
sfr TH0 = 0x8C; //0000,0000 T0高字節(jié)
sfr TH1 = 0x8D; //0000,0000 T1高字節(jié)
sfr T4T3M = 0xD1; //0000,0000 T3/T4模式寄存器
sfr T3T4M = 0xD1; //0000,0000 T3/T4模式寄存器
sfr T4H = 0xD2; //0000,0000 T4高字節(jié)
sfr T4L = 0xD3; //0000,0000 T4低字節(jié)
sfr T3H = 0xD4; //0000,0000 T3高字節(jié)
sfr T3L = 0xD5; //0000,0000 T3低字節(jié)
sfr T2H = 0xD6; //0000,0000 T2高字節(jié)
sfr T2L = 0xD7; //0000,0000 T2低字節(jié)
sfr WKTCL = 0xAA; //0000,0000 掉電喚醒定時(shí)器低字節(jié)
sfr WKTCH = 0xAB; //0000,0000 掉電喚醒定時(shí)器高字節(jié)
sfr WDT_CONTR = 0xC1; //0000,0000 看門狗控制寄存器

//串行口特殊功能寄存器
sfr SCON = 0x98; //0000,0000 串口1控制寄存器
sbit SM0 = SCON^7;
sbit SM1 = SCON^6;
sbit SM2 = SCON^5;
sbit REN = SCON^4;
sbit TB8 = SCON^3;
sbit RB8 = SCON^2;
sbit TI = SCON^1;
sbit RI = SCON^0;
sfr SBUF = 0x99; //xxxx,xxxx 串口1數(shù)據(jù)寄存器
sfr S2CON = 0x9A; //0000,0000 串口2控制寄存器
sfr S2BUF = 0x9B; //xxxx,xxxx 串口2數(shù)據(jù)寄存器
sfr S3CON = 0xAC; //0000,0000 串口3控制寄存器
sfr S3BUF = 0xAD; //xxxx,xxxx 串口3數(shù)據(jù)寄存器
sfr S4CON = 0x84; //0000,0000 串口4控制寄存器
sfr S4BUF = 0x85; //xxxx,xxxx 串口4數(shù)據(jù)寄存器
sfr SADDR = 0xA9; //0000,0000 從機(jī)地址寄存器
sfr SADEN = 0xB9; //0000,0000 從機(jī)地址屏蔽寄存器

//ADC 特殊功能寄存器
sfr ADC_CONTR = 0xBC; //0000,0000 A/D轉(zhuǎn)換控制寄存器
sfr ADC_RES = 0xBD; //0000,0000 A/D轉(zhuǎn)換結(jié)果高8位
sfr ADC_RESL = 0xBE; //0000,0000 A/D轉(zhuǎn)換結(jié)果低2位

//SPI 特殊功能寄存器
sfr SPSTAT = 0xCD; //00xx,xxxx SPI狀態(tài)寄存器
sfr SPCTL = 0xCE; //0000,0100 SPI控制寄存器
sfr SPDAT = 0xCF; //0000,0000 SPI數(shù)據(jù)寄存器

//IAP/ISP 特殊功能寄存器
sfr IAP_DATA = 0xC2; //0000,0000 EEPROM數(shù)據(jù)寄存器
sfr IAP_ADDRH = 0xC3; //0000,0000 EEPROM地址高字節(jié)
sfr IAP_ADDRL = 0xC4; //0000,0000 EEPROM地址第字節(jié)
sfr IAP_CMD = 0xC5; //xxxx,xx00 EEPROM命令寄存器
sfr IAP_TRIG = 0xC6; //0000,0000 EEPRPM命令觸發(fā)寄存器
sfr IAP_CONTR = 0xC7; //0000,x000 EEPROM控制寄存器

//PCA/PWM 特殊功能寄存器
sfr CCON = 0xD8; //00xx,xx00 PCA控制寄存器
sbit CF = CCON^7;
sbit CR = CCON^6;
sbit CCF2 = CCON^2;
sbit CCF1 = CCON^1;
sbit CCF0 = CCON^0;
sfr CMOD = 0xD9; //0xxx,x000 PCA 工作模式寄存器
sfr CL = 0xE9; //0000,0000 PCA計(jì)數(shù)器低字節(jié)
sfr CH = 0xF9; //0000,0000 PCA計(jì)數(shù)器高字節(jié)
sfr CCAPM0 = 0xDA; //0000,0000 PCA模塊0的PWM寄存器
sfr CCAPM1 = 0xDB; //0000,0000 PCA模塊1的PWM寄存器
sfr CCAPM2 = 0xDC; //0000,0000 PCA模塊2的PWM 寄存器
sfr CCAP0L = 0xEA; //0000,0000 PCA模塊0的捕捉/比較寄存器低字節(jié)
sfr CCAP1L = 0xEB; //0000,0000 PCA模塊1的捕捉/比較寄存器低字節(jié)
sfr CCAP2L = 0xEC; //0000,0000 PCA模塊2的捕捉/比較寄存器低字節(jié)
sfr PCA_PWM0 = 0xF2; //xxxx,xx00 PCA模塊0的PWM寄存器
sfr PCA_PWM1 = 0xF3; //xxxx,xx00 PCA模塊1的PWM寄存器
sfr PCA_PWM2 = 0xF4; //xxxx,xx00 PCA模塊1的PWM寄存器
sfr CCAP0H = 0xFA; //0000,0000 PCA模塊0的捕捉/比較寄存器高字節(jié)
sfr CCAP1H = 0xFB; //0000,0000 PCA模塊1的捕捉/比較寄存器高字節(jié)
sfr CCAP2H = 0xFC; //0000,0000 PCA模塊2的捕捉/比較寄存器高字節(jié)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉