unsigned char count=0; unsigned char m; bit dir=0,run=0; sbit P1_5=P1^5; sbit P3_4=P3^4; sbit RS=P1^6; sbit RW=P1^7; sbit P3_5=P3^5;
unsigned char LCD_Statues;
unsigned char xuehao[]=\ unsigned char name[]=\
void delay(unsigned char count) {
unsigned char i; while(count--)
for(i=0;i<120;i++); }
void jishuqi() {
ET0=1; EA=1;
TMOD=0x01; TH0=60; TL0=176; TR0=1; P1_5=1; while(1) {
m++; P2=0x1f;
P0=table[m]; delay(1000); P2=0x3f;
P0=table[m/10]; delay(1000); if(m==100) {
m=0; } } }
int0() interrupt 1 {
count++;
word资料
if(count==20) {
count=0; delay(100); }
TH0=60; TL0=176; }
unsigned char Busy_Check() {
RS=0;RW=1; P2=0x5f; delay(2);
LCD_Statues=P0; delay(2); P2=0xff;
return LCD_Statues; }
void wcmd(unsigned char cmd) {
while((Busy_Check()&0x80)==0x80); RS=0;RW=0; P2=0x5f; delay(2); P0=cmd; delay(2); P2=0xff; }
void wdat(unsigned char dat) {
while((Busy_Check()&0x80)==0x80); RS=1;RW=0; P2=0x5f; delay(2); P0=dat; delay(2); P2=0xff; }
void init() {
wcmd(0x38); delay(2); wcmd(0x01); delay(2);
word资料
wcmd(0x06); delay(2); wcmd(0x0c); delay(2); }
void LCD()
{ unsigned char i; init();
wcmd(0x80+0x00); for(i=0;i<9;i++) wdat(xuehao[i]); wcmd(0x80+0x40); for(i=0;i<7;i++) wdat(name[i]); }
void main() {
unsigned char i; P0=0x00; while(1) {
if(P3_4==0) {
delay(100); if(P3_4==0) jishuqi(); }
if(P3_5==0) {
delay(100); if(P3_5==0) {
LCD(); } }
switch(P3&0x3c) {
case 0x34:run=1,dir=1;break; case 0x38:run=0,dir=0;break; }
if(run) if(dir)
for(i=0;i<=7;i++) {
word资料
}
P2=led[i]; delay(200); } else
for(i=7;i>=0;i--) {
P2=led[i]; delay(200); } else
P2=0xff; }
第5章 调试及故障分析
5.1 焊接准备阶段元器件测试、电路原理图故障分析
先测试各器件是否完好,包括二极管、数码管、单片机、LED、电容等等。然
word资料

