|
智能玩具小車練習(xí)C程序
編程器的讀寫軟件借助編程器,可以讀出未加密的單片機(jī)程序。
#include <reg51.h>
#include <intrins.h>
#define FOSC 18432000L
#define BAUD 9600
#define T1MS (65536-FOSC/1000)
#define T1MS (65536-FOSC/12/1000)
typedef unsigned char uchar;
typedef unsigned int uint;
#define URMD 0
sfr T2H = 0xd6;
sfr T2l = 0xd7;
sfr AUXR = 0x8e;
sfr ADC_CONTR = 0xbc;
sfr ADC_RES = 0xdb;
sfr ADC_LOW2 = 0xbe;
sfr P1ASF = 0x9d;
#define ADC_POWER 0x80
#define ADC_FLAG 0X10
#define ADC_START 0x80
#define ADC_SPEEDLL 0x00
#define ADC_SPEEDL 0x20
#define ADC_SPEEDH 0x40
#define ADC_SPEEDHH 0x60
sbit P32 = P3^2; //電機(jī)驅(qū)動(dòng)口
sbit P10 = P1^0;
uint i=0,a,time_1=0,time_2=0;
uchar AD[5]={255,255,255,255,255};
void Delay(uint n)
{
uint x;
while(a--)
{
x = 5000;
while(x--);
}
}
void InitADC()
{
P1ASF = 0xff;
ADC_RES = 0;
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
Delay(2);
}
uchar GetADCResult(uchar ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_();
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR & ADC_FLAG));
ADC_CONTR &= ~ADC_FLAG;
return ADC_RES;
}
void TIMER0_init()
{
AUXR |= 0x80;
AUXR &= 0x7f;
TMOD = 0x01;
TL0 = T1MS;
TH0 = T1MS/256;
TR0 = 1;
ET0 = 1;
EA = 1; //中斷配置 定時(shí)器延時(shí)1ms
}
void main()
{
InitADC();
TIMER0_init();
P32 = 1 ;
// P10 = 1;
while(1)
{
;
}
}
void timer0() interrupt 1 //interrupt:表示此函數(shù)為中斷服務(wù)程序 interrupt 1 為定時(shí)器中斷0
{
TL0 = T1MS;
TH0 = T1MS/256;
time_1++;
if (time_1 == 2850 ) {
time_1=0;
P32 = 0;
/*
AD[i] = GetADCResult(0);
if( (AD[0] == 0) && (AD[1] == 0) && (AD[2] == 0) && (AD[3] == 00) && (AD[4] == 00) && (ADC_LOW2 ==0) ) {
P32 = 0;
TR0 = 1;
}
i++;
if ( i == 6 )
i=0;
time_2++;
if (time_2 ==1) {
time_2 = 0;
P32 = 0;
TR0 = 1;
}
*/
}
}
|
-
-
小車程序.doc
2018-12-8 13:50 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
17.5 KB, 下載次數(shù): 3, 下載積分: 黑幣 -5
|