智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1332|回复: 2
打印 上一主题 下一主题

我的设计中双向可控硅不能导通~不知道是程序的问题还是硬件电路的问题请大家给我看看~

[复制链接]

11

主题

84

帖子

0

精华

高级会员

Rank: 4

积分
953
QQ
威望
520
贡献
249
兑换币
24
注册时间
2011-3-1
在线时间
92 小时
跳转到指定楼层
1#
发表于 2012-4-6 14:37:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int

sbit rs=P1^0;//H数据,L命令
sbit lcden=P1^1;//高脉冲使能,使能脉宽最小150ns
sbit kong=P1^2;
sbit ok=P1^3;
sbit jia=P1^4;

uchar code table1[]="error!";
uchar code table2[]="0123456789";
uchar code table3[]="SetSpeed:";
uchar code table4[]="  OK!  ";
uchar code table5[]="Return.";
uchar pp=0;
uchar biaozhi=0;
uchar jishu=0;
uchar oksign=0;
uchar anjiang=0;
uchar dingshi=0;
void zhongduan_init(void)
{
        IT0=1;
        EX0=1;
        TMOD=0x02;
        ET0=1;
        TH0=TL0=(256-200);
        //EA=1;
}
void delay(uchar x)//1MS定时
{        uint y;
                        for(;x>0;x--)
         {
                for(y=123;y>0;y--)
                                {};
         }
}
void lcdwrdata(uchar dat)
{        rs=1;//写数据时RS拉高
        lcden=1;
        P2=dat;
        delay(6);
        lcden=0;
        delay(6);
}
void lcdwrcom(uchar cdat)//写指令数据到LCD  
{        rs=0;//写指令时RS拉低
        lcden=1;
    P2=cdat;//
        delay(6);//不加此延时将导致不能写入指令,但能写入显示数据
        lcden=0;
        delay(6);
}
void lcd_init()
{
        lcdwrcom(0x38);//0x38设置显示模式为:16X2 显示,5X7 点阵,8 位数据接口
        lcdwrcom(0x0c);//打开显示光标闪烁
        lcdwrcom(0x06);//
        lcdwrcom(0x01);//
}
void key(void)
{
        jia=1;
        ok=1;
        if(anjiang==0)
        {
                if(jia==0)
                {
                   jia=1;
                        if(jia==0)
                                {
                                        delay(70);
                                        if(jia==0)
                                                jishu++;
                                }        
                }
        }
        if(ok==0)
                {
                   ok=1;
                        if(ok==0)
                                {
                                        delay(70);
                                        if(ok==0)
                                                oksign=1;
                                }        
                }
}

void lcd_dong(uchar aj,uchar ao)
{
                uchar n=0;
                static uchar xiaobiao=0;
                if(jishu>5)
                {
                        lcdwrcom(0x01);
                        lcdwrcom(0x00|0x80);
                        for(n=0;n<6;n++)
                        {
                                lcdwrdata(table1[n]);
                                //delay(30);
                        }
                                lcdwrcom(0x45|0x80);
                                for(n=0;n<7;n++)
                                {
                                        lcdwrdata(table4[n]);
                                //        delay(30);
                                }

                        jishu=0;
                        xiaobiao=1;
                }
        else
        {        
                if(xiaobiao==0)        
                {        
                        lcdwrcom(0x09|0x80);
                        lcdwrdata(table2[aj]);
                        //delay(100);
                        if(anjiang==0)
                        {
                                if(ao==1)
                                {
                                
                                oksign=0;
                                anjiang=1;
                                lcdwrcom(0x45|0x80);
                                for(n=0;n<7;n++)
                                        {
                                                lcdwrdata(table5[n]);
                                        //        delay(30);
                                        }
                                EA=1;
                                
                                }
                        }
                                else if(anjiang==1)
                                {
                                       
                                        if(ao==1)
                                        {
                                
                                        oksign=0;
                                        anjiang=0;
                                        lcdwrcom(0x45|0x80);
                                        for(n=0;n<7;n++)
                                        {
                                                lcdwrdata(table4[n]);
                                        //        delay(30);
                                        }
                                       
                                       
                                        kong=1;
                                        EA=0;
                                        }        
                                }
                }
                        else
                        {
                                jishu=0;
                                        if(ao==1)
                                {
                                        lcdwrcom(0x00|0x80);
                                        for(n=0;n<9;n++)
                                        {
                                                lcdwrdata(table3[n]);
                                        //        delay(30);
                                        }
                                        xiaobiao=0;
                                        oksign=0;
                                }
                                
                        }        
        }               
}
void main()
{        uchar n;
        kong=1;
        jishu=0;
        zhongduan_init();
        delay(200);
        lcden=0;
        lcd_init();
        lcdwrcom(0x00|0x80);
        for(n=0;n<9;n++)
        {
                lcdwrdata(table3[n]);
                delay(100);
        }

        lcdwrcom(0x45|0x80);
        for(n=0;n<7;n++)
        {
                lcdwrdata(table4[n]);
                delay(100);
        }
        while(1)
        {
        /*        if(biaozhi==1)
                {
                        delay(3);
                        if(pp>=1)
                                kong=0;
                }
                delay(3);
                kong=1;
                        biaozhi=0;*/
                lcd_dong(jishu,oksign);
        //        if(anjiang==0)
            key();
               
        
        }
}
        void guoling(void) interrupt 0
        {
                TR0=1;
                kong=1;
                  
                                
                                //delay(10);
                                //kong=0;
                                //delay(9);
                        //kong=1;
                                //delay(1);
                                /*switch (jishu)
                                {
                                case 0: {kong=1;break;}
                                case 1: {delay(4);kong=0;delay(6);kong=1;break;}
                                case 2: {delay(3);kong=0;delay(7);kong=1;break;}
                                case 3: {delay(2);kong=0;delay(8);kong=1;break;}
                                case 4: {delay(1);kong=0;delay(9);kong=1;break;}
                                case 5: {kong=0;delay(10);kong=1;break;}
                                }*/        
        }
                void us(void) interrupt 1  //200us
                {
                        dingshi++;
                        /*        if(dingshi==10)
                                {
                                        kong=1;
                                }*/
                                       
                                        if(dingshi==25)
                                        {

                                                kong=0;
                                        }
                                                if(dingshi==45)
                                                        {
                                                                TR0=0;
                                                                   dingshi=1;
                                                                kong=1;
                                                        }               
                }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

4

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
883
威望
598
贡献
157
兑换币
42
注册时间
2012-1-21
在线时间
64 小时
3#
发表于 2012-4-7 18:46:07 | 只看该作者
神马都看不见的?
回复 支持 反对

使用道具 举报

7

主题

223

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1626
威望
893
贡献
461
兑换币
68
注册时间
2011-10-2
在线时间
136 小时
2#
发表于 2012-4-7 13:55:54 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 21:52 , Processed in 0.145225 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表