实验内容:单片机甲、乙进行双机串行通信,甲机通过串口控制乙机LED闪烁(如下图所示,要求利用芯片MAX232),双方的晶振频率均为11.0592MHz(波特率为9600kb/s)要求:甲机按开关K1一次,发送字符“A”给乙机,点亮灯D1与D2;按开关K1两次,发送字符“B”给乙机,点亮灯D3与D4;按开关K1三次,发送字符“C”给乙机,全部点亮;按下第四次K1,灯全灭
#include<reg51.h> /*甲机*/
sbit k=P1^0;
sbit P00=P0^0;
sbit P03=P0^3;
unsigned chari,NO;
void main(void) /* 主函数*/
{
SCON=0x40; /*方式1只发送,不接收*/ TMOD=0x20;
TH1=0xfd; /*给定时器T1赋初值,波特率为9600*/
TL1=0xfd;
TR1=1;
k=1;
NO=0;
while(1)
{
if(k==0)
{while(k==0);
NO=(NO+1)%4;
}
switch (NO)
{case 0 :P0=0xff;
break;
case 1 :P00=0;P03=1;
SBUF='A';
while(TI==0);
TI=0;
break;
case 2 : P00=1;
P03=0;
SBUF='B';
while(TI==0);
TI=0;
break;
case 3 : P00=0;
P03=0;
SBUF='C';
while(TI==0);
TI=0;
break;
}
}
for(i=250;i>0;i--){;} //延时
}
#include<reg51.h> /*乙机*/
sbit k=P1^0;
sbit P00=P0^0;
sbit P03=P0^3;
unsigned char NO;
void main() /*主函数*/
{
SCON=0x50; /*设置串口为方式3,允许接收REN=1*/
TMOD=0x20;
TH1=0xfd; /*给定时器T1赋初值,波特率为9600*/
TL1=0xfd;
TR1=1;
P0=0xff;
while(RI==0); /*检测接收中断标志RI,RI=0,未接收完,则循环等待*/
{RI=0;
switch (SBUF)
{ case 'A': P00=0;P03=1;
break;
case 'B':P00=1;P03=0;
break;
case 'C': P00=P03=0;
break;
}
}
}
符合不???
是的
追答书上应该有吧
追问哪本书,我们没有教材,书是图书馆借的
追答应该是讲串行并行那节吧
怎么用c语言编程51单片机读写程序?
编程代码如下:ORG 0000H MOV DPTR,#1000H ;给源数据块地址指针DPTR赋初值 MOV P2, #20H ;给目的数据块地址指针P2和R0赋初值 MOV RO,#00H LOOP: MOVX A, @DPTR .MOVX @RO, A .INC DPTR INC RO CJNE RO,#64H, LOOP SJMP
求一个51单片机C语言程序编程
unsigned chari,NO;void main(void) \/* 主函数*\/ { SCON=0x40; \/*方式1只发送,不接收*\/ TMOD=0x20;TH1=0xfd; \/*给定时器T1赋初值,波特率为9600*\/ TL1=0xfd;TR1=1;k=1;NO=0;while(1){ if(k==0){while(k==0);NO=(NO+1)%4;} switch (NO){case 0 :P0=0xff;b...
用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include <reg52.h>...
求大神在keil上帮写51单片机C语言程序
\/\/第一个实验:\/\/假设8个LED阴极指向单片机,D11连接P0.1,D12连接P0.2 ... D18连接P0.7\/\/假设K1按键在P2.3引脚#include<reg51.h>#include<intrins.h>sbit k1=P2^3;\/\/假设K1按键在P2.3引脚void main(){P0=0xfe;while(1){if(k1==0){while(k1==0);P0=_crol_(P0,1);}}}...
用C语言如何开51单片机的计数器,最好编个实例程序
include <reg51.h> define uchar unsigend uchar define uint unsigned int unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};\/\/数码管段码 void main(){ uint k;TMOD=0X50;\/\/...
求一个用C语言编写的51单片机音乐程序代码。
include <reg52.h> sbit speaker=P2^2;unsigned char timer0h,timer0l,time;\/\/生日歌 code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2,...
大家帮忙找一些51单片机的基本C语言程序例子,最好带说明,谢啦_百度知 ...
EA=1; \/\/开系统中断 while(1); \/\/等待中断处理 } \/\/INT0中断处理函数 void int0_interrupt() interrupt 0 \/\/INT0中断号0 { count++;port_count=~count; \/\/当达到255时,溢出,又从0开始 } I\/O控制程序:include <AT89X52.H> include <intrins.h> define uchar unsigned char d...
大神,求51单片机做简易计算器的那个c语言程序
uchar d1=16,d2=16,d3=16,d4=16,d5=16;uchar f1=16,f2=16,f3=16,f4=16,f5=16,f6=16,f7=16,f8=16,f9=16,f10=16;uchar key,keyval,c,temp;void Delay1ms(uint i) \/\/1ms延时程序 { uint j;for(;i>0;i--){ for(j=0;j<125;j++){;} } } void write_com(uchar com...
求一个51单片机用T0做计数器的C语言代码。
\/\/timer0设定为计数器模式1 TMOD &= 0xf0; \/\/清除原来的设定 TMOD |= 0x05; \/\/T0为计数器模式1 TH0 = 0;TL0 = 0; \/\/从0开始计数 TR0 = 1; \/\/使能T\/C0 \/\/ IE |= 0x82; \/\/Timer0中断使能,不需要就注释掉该行 另外执行不了有可能是你的实验板没有连接T0引...
跪求一个51单片机控制ws2812灯带的程序,
以下是一个示例程序:```c include <reg51.h> define F_CPU 11059200UL \/\/ 11.0592 MHz define DELAY_COEFFICIENT 12 \/\/ 延迟系数 \/\/ 定义端口 sbit LED = P1^0;\/\/ 延迟函数 void delay(unsigned int us){ while (us--);} \/\/ 发送一个比特 void send_bit(unsigned char bit_val...