现在是:
 设为首页   加入收藏
 
-更多-
 
当前位置: 首页>>下载服务>>正文
 
单片机案例
2012-11-02 17:34  

//串行口工作方式0:使用164扩展输出口

#include <reg51.h>

unsigned char mask;

unsigned int cnt;

void init_t0(void)

{

TMOD = 0x01;

TH0 = 0xD8;

TL0 = 0xF0;

ET0 = 1;

EA = 1;

TR0 = 1;

}

void main(void)

{

init_t0();

SCON = 0x00;

mask = 0x01;

SBUF = mask;

while(1){

SBUF = ~mask;

while(!TI);

TI = 0;

cnt = 10;

while(cnt);

mask <<=1;

if(mask==0)

mask = 0x01;

}

}

void t0_int(void) interrupt 1 using 1

{

TH0 = 0xD8;

TL0 = 0xF0;

if(cnt)

cnt--;

}

//串行口工作方式0:使用165扩展输入口

#include<reg51.h>

sbit P32 = P3^2;

unsigned char keys;

void delay(void)

{

unsigned char i;

for(i=0;i<128;i++);

}

void main(void)

{

SCON = 0x00;

REN = 1;

while(1){

P32 = 0;

P32 = 1;

while(RI == 0);

keys = SBUF;

P1 = keys;

RI = 0;

delay();

}

}

//双机通信

//主机程序

#include<reg51.h>

unsigned char keys;

void uart_init9600()

{

SCON=0x40;//8位异步收发,波特率可变,

PCON=0x00;//波特率加倍

TI=0;//软件清零,表示未发送完成

EA=1;//开总中断

ET1=1;//开T1

TMOD=0x20;//8位自动装载模式

TH1=0xfd;

TL1=0xfd;

TR1=1;//开启T1

}

void uart_send(unsigned char ch)

{

SBUF=ch;

while(TI==0);//等待发送完成

TI=0;

}

void main()

{

uart_init9600();

keys = P2;

uart_send(keys);

while(1){

if(keys != P2){

keys = P2;

uart_send(keys);

}

}

}

//从机程序

#include<reg51.h>

void uart_init9600()

{

SCON=0x50;//8位异步收发,波特率可变,运行接收数据

PCON=0x00;//波特率加倍

TI=0;//软件清零,表示未发送完成

EA=1;//开总中断

ES=1;

ET1=1;//开T1

TMOD=0x20;//8位自动装载模式

TH1=0xfd;

TL1=0xfd;

TR1=1;//开启T1

}

void main()

{

uart_init9600();

while(1);

}

void uart_interrupt() interrupt 4 using 1

{

if(RI==1){

RI=0;

P1=SBUF;

}

RI = 0;

TI = 0;

}

上一条:万博manbetx客服端app晚自习纪律检查制度
下一条:大学生防诈骗手册
关闭窗口
[城建首页] | [精品课堂] | [学生就业指导中心] | [招生办公室] | [天津市教育委员会]

Copyright © 2012 万博manbetx客服端app网站. Cn All Rights Reserved
地址:天津城建大学-机电楼406 邮政编码:300384