第四章 畅学多功能实验箱一位数码管开放源码

来源:本站
导读:目前正在解读《第四章 畅学多功能实验箱一位数码管开放源码》的相关信息,《第四章 畅学多功能实验箱一位数码管开放源码》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《第四章 畅学多功能实验箱一位数码管开放源码》的详细说明。

/***************STC12C5A60S2单片机 1位LED显示实验******************

程序功能:上位机配套的一位数码管下位机代码

开发环境:Keil4

硬件环境:CEPARK多功能开发学习板/实验箱(2017版),STC12C5A60S2,11.0592M晶振

接线说明:单片机P1口接底板JP44,具体接线为:P10-A,P11-B,P12-C,P13-D,P14-E,P15-F,P16-G,P17-H

跳线说明:无

实验现象: 打开上位机软件,打开相应串口,注意串口号要选对,注意晶振为11.0592M

点击打开1位数码管界面, 点亮上位机上对应段,底板上一位数码管对应的段也被点亮。

选择右边的数字或字母,底板的一位数码管也显示相应值。

论坛支持:http://www.ippipp.com

淘宝店铺:http://cepark.taobao.com

作者:eeskill

时间:2017-07-01

******************************************************************/

#include "STC12C5A.h"

#define led_port p1

//*************** 函数定义 ******************

void delay1ms(unsigned int j);

void senddata_uart0(uchar dc);

//*************** 主程序 ********************

void main(void)

{

//////////////将这段代码嵌入到程序中////////////////

if((PCON&0x10)==0) //如果POF位=0

{

PCON=PCON|0x10; //将POF位置1

IAP_CONTR|=0x60; //软复位,从ISP监控区启动

}

else

{

PCON=PCON&0xef; //将POF位清零

}

////////////////////////////////////////////////////

SCON=0x50; //uart0方式1,允许接收

AUXR=BRTR|S1BRS|BRTx12; //独立波特率发生器时钟为1T,uart0使用并启动独立波特率发生器

BRT=0xfd; //设置独立波特率发生器波特率 115200bps

ES=1; //uart0中断允许

EA=1; //中断总允许

delay1ms(100);

led_port=0x00;

delay1ms(10000);

led_port=0xff;

while(1)

{

}

}

//uart interrupt

void uart0(void) interrupt 4

{

uchar tc[2];

uint m=0;

uint count=0;

EA=0;

if(RI)

{

while(count<10000)

{

if(RI)

{

RI=0;

if(m<2)

{

tc[m]=SBUF;

}

m++;

count=0;

}

else //循环等待10000次,没有接收到数据退出while循环

{

count++;

}

}

}

if(1==m)

{

if(0xaa==tc[0])

{

IAP_CONTR=0x20; //软复位,从用户程序区启动

}

else

{

senddata_uart0(tc[0]+1); //将接收到的数据+1,再发送回去

}

}

else if(2==m)

{

if(0x01==tc[0])

{

led_port=~tc[1];

}

}

EA=1;

}

//***************************发送数据**************************

void senddata_uart0(uchar dc)

{

SBUF=dc;

while (!TI); //当TI=0时,发送未结束,循环等待

TI=0; //当TI=1时,发送结束,用软件将TI清零

}

//*************************延时 n*1ms********************

void delay1ms(unsigned int j)

{

unsigned int i;

for (;j>0;j--)

{

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

{;}

}

}

提醒:《第四章 畅学多功能实验箱一位数码管开放源码》最后刷新时间 2024-03-14 01:00:42,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《第四章 畅学多功能实验箱一位数码管开放源码》该内容的真实性请自行鉴别。