|
1.练习
(1)单片机发给电脑
请在“练习.txt”文件里的代码基础上,填写相应的代码,使得单片机串口打开,并工作在方式1,波特率为4800。并利用查询方式不断发送一组字符串给电脑。
电脑端使用串口调试助手软件“sscom33.exe”,设置在波特率4800,数据位8位的方式下,并打开串口。
可以发现“sscom33.exe”会收到单片机发过来的字符串。
(2)电脑发送给单片机
在练习1的基础上,设置不变,增加:打开接收功能,并打开中断开关。
并编写串口中断响应函数,在中断函数内将接收到的字节通过P0口输出,P0口接8个LED灯。
电脑端使用“sscom33.exe”,设置不变,勾选“HEX发送”,然后在“字符串输入框”输入“F0”,并点击发送。
可以发现单片机收到十六进制的“F0”字节,会让高4个LED灯亮,低4个LED灯灭。
2.必做题
使用两台单片机,两台单片机都可以同时收发,其中任何一台单片机的8个按键某个按下去,另一台单片机的8个LED灯相应位置的灯会亮起,松掉按键灯灭。
注意两台单片机的连线需要三根:TXD,RXD和GND
3.选做题
利用电脑发一个数字给单片机,单片机将其显示在数码管上。或电脑发送数据给单片机,单片机根据不同的内容,执行不同的工作(亮LED灯,或调节灯亮度,或发出声音)
(注意:“sscom33.exe”勾选“HEX发送”后,将输入框里的内容当成十六进制发送,如果不勾选,则将输入框里的内容当字符串一个一个字符地发送)
#include<reg51.h>
unsigned char code msg[16] = "hello world!\n";
void UsartConfiguration();
void Delay10ms(unsigned int c);
void main()
{
unsigned char i;
UsartConfiguration();
while(1)
{
for(i=0; i<16; i++)
{
//在这里使用查询发送方式将msg[16]的字符一个一个发送出去
//put your code here!
}
Delay10ms(50);
}
}
void UsartConfiguration()
{
//在这里设置串口工作在方式1,波特率4800
//设置过程:(1)设置串口工作方式SCON和PCON
// (2)设置T1工作方式TMOD,初值TH1/TL1,开启T1定时器
// (3)因为使用查询发送,不用开启中断
//put your code here!
}
void Delay10ms(unsigned int c)
{
unsigned char a, b;
for (;c>0;c--)
for (b=38;b>0;b--)
for (a=130;a>0;a--);
}
|
-
0.png
(47.53 KB, 下载次数: 48)
-
-
实验九.rar
813.75 KB, 下载次数: 6, 下载积分: 黑币 -5
单片机控制LCD
|