求單片機高手幫忙寫一段小程序(流程圖已給出,用C語言寫):或許會看不到圖,附件里有完整的,我QQ是799973948 求高手求解啊,急···紅外遙控接收部分與發射部分初始化程序如圖2.8、圖2.10所示,紅外遙控接收部分與發射部分主程序如圖2.9、圖2.11所示。
http://www.eehome.cn/file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/ksohtml/wps_clip_image-8036.png
紅外遙控發射部分初始化程序,初始化程序主要是使P1口和P2口復位,即為將P1口和P2口為高電平狀態,關閉遙控輸出口P3.5口,設置中斷優先級IP,選擇定時器/計數器1和設置操作模式為自動8位重載模式。
紅外遙控發射部分主程序,先調用初始化程序,再完成調用鍵盤程序和進入低功耗空閑待機方式。系統完成鍵盤查詢程序后進入空閑節電方式,直到外部中斷1中斷或硬件復位而退出,CPU再次轉向循環部分調用鍵盤程序。
http://www.eehome.cn/file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/ksohtml/wps_clip_image-8118.png
紅外遙控接收部分初始化程序,初始化程序主要是使P1口和P2口復位,即為將P1口和P2口為高電平狀態,設置堆棧sp,選擇工作寄存器區,設置中斷優先級IP,開外部中斷0,設置電機默認停機標志位。
紅外遙控接收部分主程序,先調用初始化程序,初始化程序完畢,進入主程序循環狀態。程序在循環中主要任務是50Hz交流電過零檢測和調用移相角控制的延時程序。
紅外遙控鍵盤掃描程序流程圖如圖2.12所示,紅外發射程序如圖2.13所示。
鍵盤掃鍵過程:首先判斷控制鍵是否按下,若有控制鍵按下則進行逐行掃描,按照P口值查找鍵號。最后按照鍵號轉至相應的發射程序。
紅外信號發射過程:首先裝入發射脈沖個數(發射時為3ms脈沖,停發時為1ms脈沖),此時若發射脈沖個數為1則返回主程序;若不為1則發1ms脈沖,然后停發1ms脈沖,這樣便結束整個發射過程。
在實踐中,采用紅外線遙控方式時,由于受遙控距離,角度等影響,使用效果不是很好,如采用調頻或調幅發射接收碼,可提高遙控距離,并且沒有角度影響。
http://www.eehome.cn/file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/ksohtml/wps_clip_image-8248.png
中斷過程:首先判斷低電平脈寬度是否大于2ms,若脈寬不到2ms,則中斷返回;若低電平大于2ms,則接收并地低電平脈沖計數,接下來看判斷高電平脈寬度沖是否大于3ms,若脈寬不到3ms,則返回上一接收計數過程;若高電平脈寬大于3ms,則按照脈沖個數至對應功能程序,此時中斷返回。
http://www.eehome.cn/file:///C:/DOCUME~1/lenovo/LOCALS~1/Temp/ksohtml/wps_clip_image-8340.png
[ 此帖被affect1819在2011-05-07 20:26重新編輯 ]