標籤:單片機 printf
今天在群裡面有一個網友提到51單片機使用printf為什麼編譯通過了,但是沒有效果 。這裡將我的筆記翻出來共用一下,這個實驗本身沒有太大的意義,主要是記錄51單片機應該如何使用Printf函數。
實驗名稱:串口通訊之單片機和PC計算梯形面積
MCU型號:STC12C5A60S2(12T模式)
晶振 :11.0592MHZ
實驗內容:利用單片機和PC機串口通訊的工作方式1(傳輸速率可變),(已經晶振為11.0592MHZ)設定傳輸速率為9600B/S,結合定時器1的工作方式2(TH1=0xfd,TL1=0xfd),輸入梯形的上底、下底、高,輸出梯形面積
:
參考程式:
/*檔案名稱:串口通訊值單片機和PC機計算梯形面積.c建立人:楊瑞建立時間:2013年2月20日開發環境:HOT51增強型單片機開發板程式功用:利用單片機與PC機的串口通訊,計算梯形面積附:利用單片機和PC機的串口通訊的工作方式1(傳輸速率可變),(已知晶振為11.0592MHZ)設定通訊傳輸速率為9600b/s,結合定時器1的工作方式2(TH1=0xfd,TL1=0xfd),輸入上底、下底、高,輸出梯形面積提示:下載程式後,開啟串口工具,需要複位一下。*/#include<reg52.h>#include<stdio.h>#define uint unsigned int #define uchar unsigned charvoid uart(void)//串口通訊初始化{SCON=0x40;//串口通訊工作方式1REN=1;//允許接收TMOD=0x20;//定時器1的工作方式2TH1=0xfd,TL1=0xfd;TI=1; //這裡一定要注意TR1=1;//開啟定時器}void main(void){uint up=0,down=0,high=0;uint result ;uart();while(1){ printf("********************************\r\n");printf("Please input up,dowm,high:\r\n");scanf("%d%d%d",&up,&down,&high);printf("\r\nResult=%d\r\n",result=(up+down)*high/2);}}
51單片機的Printf使用方法