?? rem.lst
字號:
C51 COMPILER V6.14 REM 03/17/2008 21:08:27 PAGE 1
C51 COMPILER V6.14, COMPILATION OF MODULE REM
OBJECT MODULE PLACED IN .\rem.OBJ
COMPILER INVOKED BY: C:\Program Files\C51\BIN\C51.EXE .\rem.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg51.h>
5 #include <mylib.h>
6 sbit prem=P3^3; //定義遙控接收腳
7 uchar remkey; //設置四個遙控數據區域,前兩個為用戶自定義代碼,后兩個為實際接受的數據
8 bit relable; //其中前兩個字節實測相等,后兩個字節正好相反,以此作為遙控數據正確性效驗。
9 void rem()interrupt 2
10 {uchar ram[4]={0,0,0,0};
11 1 uchar i; //干擾脈沖檢測記數
12 1 uchar count; //移位控制記數
13 1 uchar ramc;
14 1 if(relable)
15 1 return; //遙控接收數據數組下標
16 1 for(i=0;i<30;i++);
17 1 {
18 2 delay(1);
19 2 if(prem) //剛開始的引導碼為4.5MS的低電平,如果在此期間出現高電平則視為干擾脈沖,退出中斷
20 2 return;
21 2 }
22 1 while(prem!=1); //引導碼4.5MS低電平之后應為4.5MS的引導高電平,此處為等待高電平的到來。
23 1 delay(46); //延時大概4.6MS正好跨過4.5MS的引導高電平而進入32位數據的第一位。
24 1 for(ramc=0;ramc<4;ramc++)//從此處開始進入32位4個字節的遙控數據接收,此處的外循環為字節切換
25 1 for(count=0;count<8;count++)//以下將接收到的數據移位到數組的每一個單元
26 1 {
27 2 while(prem!=1); //實際上邏輯1和邏輯0都是以0.56MS的低電平開始,所不同的是高電平的延長時間,高電平延長
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -