SH88F516代碼工程與串口調試工具:
0.png (9.46 KB, 下載次數: 115)
下載附件
2017-11-18 05:11 上傳
中穎單片機UART1控制源碼如下:
- /***************************
- 說明: 串口1擁有獨立的波特率發生器,不需要占用定時器資源,在多機通訊時還具有自動硬件地址識別和幀出錯檢測
- 功能。本程序代碼可以很好的實現自動硬件地址識別和通訊功能,利用串口調試助手發送地址和數據命令,單片機接
- 收有效命令后,將數據再發送到串口調試助手。操作注意點如下:發送十六進制數據55(55在程序中定義為硬件地址),
- 選擇偶校驗(偶校驗保證了輸出第8位為1),發送后會返回十六進制數據55,說明地址匹配,下面可以任意發送數據
- (除了FF和AA)進行通訊,發送的數據都可以返回到串口調試助手,十六進制FF(偶校驗為1)為系統默認的廣播命令,
- 十六進制AA為程序中定義的通訊結束命令,因而可以發送AA結束此次通訊。串口調試助手(serial V2.2.exe)在UART1文
- 件夾中。
- 要求:打開撥碼開關J4,使串口1有效。
- *************************/
- #include <sh88f516.h>
- unsigned char data RCV_num;
- bit flag1;
- void init();
- void SendChar(unsigned char value);
- main()
- {
- init();
-
- while(1)
- {
- if(flag1)
- {
- flag1 = 0;
- SendChar(RCV_num);
- }
- }
- }
- void init()
- {
- CLKCON = 0x00; //時鐘設置 系統時鐘=晶振頻率 Fsys=16MHz
- SADDR1 = 0x55; //多機通訊時的從機地址設置=0x55
- SADEN1 = 0xFF; //從機地址屏蔽設置
- SCON1 = 0xF0; //工作在方式3 ,多機通訊模式
- SBRT1 = 0xFF; //工作在方式3時,BAUDRATE=(1/16)*Fsys/(32768-SBRT[1:0]) Fsys=16MHz
- SBRT0 = 0x98; //BAUDRATE=9600時, SBRT[1:0]=0x7F98, SBRT1.7=1 --> SBRT1=0xFF, SBRT0 = 0x98;
-
- IEN1 = 0x04; //ES1=1,不可位尋址
- EA = 1; //開啟總中斷
- }
- void UART1_RCV_INT() interrupt 9 using 3 //串口接收中斷的中斷號為9.
- {
- IEN1 &= 0xFB; //關閉串口1中斷
- SCON1 &= 0xDF; //SM12_TXCOL = 0;
- RCV_num = SBUF1;
- if(RCV_num==0xAA) //收到0xAA就結束此次通訊
- {
- SCON1 |= 0x20; //SM12_TXCOL = 1;
- }
-
- flag1 = 1;
- RI1 = 0; //清除串口1中斷標志位
- IEN1 |= 0x04; //打開串口1中斷
- }
- void SendChar(unsigned char value)
- {
- IEN1 &= 0xFB; //ES1=0;
- SBUF1=value; //寫SBUF1,激活發送
- while(TI1==0); //等待轉換結束
- TI1=0; //清除發送標志位
- …………
- …………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

壓縮包里面包含有中穎單片機sh88f516常用功能的源碼,中文注釋都很詳細
下載地址:http://www.zg4o1577.cn/bbs/dpj-98300-1.html
|