c语言编程单片机网线,【C语言】直播一下单片机编程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#define uchar unsigned char

#define uint unsigned int

sbit rs=P3^0;

sbit e=P3^1;

sbit cs1=P3^2;

sbit cs2=P3^3;

sbit rw=P3^4;

sbit rd=P1^0;

sbit cs=P1^1;

sbit a1=P1^2;

sbit a0=P1^3;

sbit rst=P1^4;

sbit wr=P1^5;

sbit led=P1^6;

uchar dat;

uchar code weizi[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchar code sz[]={0xC0,0xf9,0xa4,0x99,0x92,0x82,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

uchar code zhi[4][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}};

uchar code gei[4]={0xfe,0xfd,0xfb,0xf7};

uchar code bijiao[4][4]={

{0xee,0xde,0xbe,0x7e},{0xed,0xdd,0xbd,0x7d},

{0xeb,0xdb,0xbb,0xb7},{0xe7,0xd7,0xb7,0x77}};

uchar code lcd_1a[]="Welcome to you !I Love this game";

uchar code lcd_1b[]=" TRAFFIC LIGHT parameter_Set ";

uchar code lcd_2a[]="Green_Time_SN: Time : : ";

uchar code lcd_2b[]="Green_Time_SN:23 HOUR:MIN:SEC";

uchar code lcd_2c[]="Green_Time_SN:23Time : : ";

uchar code lcd_2d[]="Green_Time_SN:23Time 09:54 :21 ";

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void IO_xz(uchar dk,uchar sj)

{

if(dk==0){a0=0;a1=0;}

else if(dk==1){a0=1;a1=0;}

else if(dk==2){a0=0;a1=1;}

rd=1;wr=1;cs=0;wr=0;

P0=sj;

wr=1;cs=1;

}

uchar IO_dq(uchar kou)

{

uchar temp;

if(kou==0){a0=0;a1=0;}

else if(kou==1){a0=1;a1=0;}

else if(kou==2){a0=0;a1=1;}

rd=1;wr=1;cs=0;rd=0;

temp=P0;

rd=1;cs=1;

return temp;

}

void xzl(uchar zl)

{

rs=0;

e=0;

P2=zl;

delay(2);

e=1;

delay(2);

e=0;

}

void xsj(uchar sj)

{

rs=1;

e=0;

P2=sj;

delay(2);

e=1;

delay(2);

e=0;

}

void init()

{

e=0;

xzl(0x38);

xzl(0x06);

xzl(0x0c);

xzl(0x01);

xzl(0x80);

rst=1;delay(2);rst=0;

cs=1;wr=1;rd=1;cs=0;

a0=1;a1=1;;

P0=0x80;

wr=0;wr=1;cs=1;

}

void time()

{

TMOD=0x01;

TH0=0;

TL0=0;

EA=1;

TR0=1;

ET0=1;

}

void smg()

{

cs2=0;

IO_xz(1,0xdf);

rw=0;rw=1;

cs2=1;

cs1=0;

IO_xz(1,0x8e);

rw=0;rw=1;

cs1=1;

}

void xt_init()

{

IO_xz(2,0x00);

cs2=0;

IO_xz(1,0x00);

rw=0;rw=1;

cs2=1;

cs1=0;

IO_xz(1,0x00);

rw=0;rw=1;

cs1=1;

delay(1000);

IO_xz(2,0xff);

cs2=0;

IO_xz(1,0xff);

rw=0;rw=1;

cs2=1;

cs1=0;

IO_xz(1,0xff);

rw=0;rw=1;

cs1=1;

}

void lcd_init()

{

uchar x;

delay(300);

xzl(0x80);

for(x=0;x<16;x++)

{

xsj(lcd_1a[x]);

}

xzl(0x80+0x40);

for(x=16;x<32;x++)

{

xsj(lcd_1a[x]);

}

delay(1000);

xzl(0x80);

for(x=0;x<16;x++)

{

xsj(lcd_1b[x]);

}

xzl(0x80+0x40);

for(x=16;x<32;x++)

{

xsj(lcd_1b[x]);

}

}

void KeyScan(void)//带返回值的子函数

{

uchar cord_l,cord_h;//声明列线和行线的值的储存变量

//P2 = 0x00;

P2 = 0x0f;//0000 1111

if( (P2 & 0x0f) != 0x0f)//判断是否有按键按下

{

delay(5);//软件消抖

if( (P2 & 0x0f) != 0x0f)//判断是否有按键按下

{

cord_h = P2 & 0x0f;// 储存行线值

P2 = cord_l | 0xf0;

cord_l = P2 & 0xf0;// 储存列线值

while( (P2 & 0xf0) != 0xf0 );//松手检测

cord_l |= cord_h;//返回键值码

switch(cord_l)

{

//第一行键值码

case 0xee: dat = 15; break;

case 0xde: dat = 11;break;

case 0xbe: dat = 7;break;

case 0x7e: dat = 3;break;

//第二行键值码

case 0xed: dat = 14;break;

case 0xdd: dat = 10;break;

case 0xbd: dat = 6;break;

case 0x7d: dat = 2;break;

//第三行键值码

case 0xeb: dat = 13;break;

case 0xdb: dat = 9;break;

case 0xbb: dat = 5;break;

case 0x7b: dat = 1;break;

//第四行键值码

case 0xe7: dat = 12;break;

case 0xd7: dat = 8;break;

case 0xb7: dat = 4;break;

case 0x77: dat = 0;break;

}

}

}

}

void main(void)

{

init();

time();

//xsj('1');

xt_init();

lcd_init();

while(1)

{

KeyScan();

}

}

void time1() interrupt 1

{

TH0=(65535-50000)/256;

TL0=(65536-50000)%256;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值