当前位置: 首页> 汽车> 报价 > 企业营销推广怎么做_实用软件推荐_百度推广的渠道有哪些_深圳seo优化排名

企业营销推广怎么做_实用软件推荐_百度推广的渠道有哪些_深圳seo优化排名

时间:2025/9/12 19:23:57来源:https://blog.csdn.net/weixin_62565928/article/details/146723354 浏览次数: 0次
企业营销推广怎么做_实用软件推荐_百度推广的渠道有哪些_深圳seo优化排名

设计要求

通过串口发送字符控制数码管的显示,

串口接收字符’A’,数码管显示’A’,且LED1指示灯亮;

串口接收字符’S’,数码管显示’S’,且LED3指示灯亮;

接收其它非法字符时,数码管显示’E’。

数码管显示格式如下:

备注

单片机IRC振荡器频率设置为12MHz。

串口通信波特率:9600bps。

按键模式:BTN;扩展方式:IO模式。

上电时数码管处于熄灭状态。

除字符’A’和’S’外,其它字符均为非法字符。

代码

sys.h

#ifndef __SYS_H__
#define __SYS_H__#include <STC15F2K60S2.H>
void init74hc138(unsigned char n);
void init();
void seg(unsigned char num);
void led_show(unsigned char n);#endif

main.c

#include "sys.h"
unsigned char str;
bit flag=0;
void UartInit(void)		//9600bps@12.000MHz
{SCON = 0x50;		//8位数据,可变波特率AUXR |= 0x40;		//定时器时钟1T模式AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器TMOD &= 0x0F;		//设置定时器模式TL1 = 0xC7;			//设置定时初始值TH1 = 0xFE;			//设置定时初始值ET1 = 0;			//禁止定时器中断TR1 = 1;			//定时器1开始计时ES=1;EA=1;
}
void main(){init();UartInit();while(1){if(flag){if(str=='A'){seg(0);led_show(0);}else if(str=='S'){seg(1);led_show(1);}else{seg(2);init();}}flag=0;}
}
void uart() interrupt 4
{if(RI){RI=0;str=SBUF;flag=1;}
}

sys.c

#include "sys.h"void init74hc138(unsigned char n){P2=(P2&0x1f)|(n<<5);P2&=0x1f;
}
void init(){P0=0x00;init74hc138(5);P0=0xff;init74hc138(4);
}
void led(unsigned char n){P0=0x01<<n-1;P0=~P0;init74hc138(4);P0=0xff;
}
void led_show(unsigned char n){switch(n){case 0:led(1);break;case 1:led(3);break;}
}

seg.c

#include "sys.h"
//本题只需要一段数码管
code unsigned char Seg_Table[]={0x88,//A 00x92,//S 10x86,//E 20xff //熄灭 3
};
void seg(unsigned char num){P0=0xff;init74hc138(7);P0=0x80;init74hc138(6);P0=Seg_Table[num];init74hc138(7);
}

关键字:企业营销推广怎么做_实用软件推荐_百度推广的渠道有哪些_深圳seo优化排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: