标题:
单片机指针学习代码
[打印本页]
作者:
卓zz
时间:
2019-3-9 13:02
标题:
单片机指针学习代码
单片机指针源程序如下:
#include <reg52.h>
bit cmdArrived = 0; //命令到达标志,即接收到上位机下发的命令
unsigned char cmdIndex = 0;
unsigned char *ptrTxd;
unsigned char cntTxd = 0;
unsigned char array1[1] = {1};
unsigned char array2[2] = {1,2};
unsigned char array3[4] = {1,2,3,4};
unsigned char array4[8] = {1,2,3,4,5,6,7,8};
void ConfigUART(unsigned int baud);
void main()
{
EA = 1;
ConfigUART(9600); //配置波特率为9600
while(1)
{
if(cmdArrived) //判断是否接受到数据
{
cmdArrived = 0;
switch(cmdIndex)
{
case 1:
ptrTxd = array1;
cntTxd = sizeof(array1); //sizeof(array1)=1,里面有几个字节,就等于多少,告诉我们要发送几个
TI = 1;
break;
case 2:
ptrTxd = array2;
cntTxd = sizeof(array2);
TI = 1;
break;
case 3:
ptrTxd = array3;
cntTxd = sizeof(array3);
TI = 1;
break;
case 4:
ptrTxd = array4;
cntTxd = sizeof(array4);
TI = 1;
break;
default: //如果所含向没有包含一切,则必须加default
break;
}
}
}
}
void ConfigUART(unsigned int baud)
{
SCON = 0X50; //配置串口为模式1
TMOD &= 0x0F; //清零T1的控制位
TMOD |= 0x20; //配置T1为模式2
TH1 = 256 - (11059200/12/32)/baud; //计算T1重载值
TL1 = TH1; //初值等于重载值
ET1 = 0; //禁止T1中断
ES = 1; //使能串口中断
}
void InterruptUART() interrupt 4
{
if (RI) //接受到字节
{
RI = 0; //清零接收中断标志位
cmdIndex = SBUF;
cmdArrived = 1;
}
if(TI) //字节发送完毕
{
TI = 0; //清零发送中断标志位
if(cntTxd > 0)
{
SBUF = *ptrTxd;
cntTxd--;
ptrTxd++;
}
}
}
复制代码
所有资料51hei提供下载:
指针.zip
(21.37 KB, 下载次数: 15)
2019-3-9 13:02 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
lyseg
时间:
2019-4-11 11:42
谢谢,分享,学习了
作者:
34岁老学生
时间:
2020-2-13 08:02
感谢分享,学习了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1