PC机通过串口控制学习板LED实验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PC机通过串口控制学习板LED实验

PC机通过串口控制学习板LED的实验 前两月,在阿发的指点下,PC机通过串口控制单片机实验终于成功,特在此共享,供有兴趣的朋友一试。 实验环境:本站M16学习板。控制功能简述如下: 1、通过学习板上的8个按键S0-S7可在本地控制LD0-LD7指示灯的亮灭,并及时将LED亮灭状态通过串口反馈到PC机,在上位机软件上显示。 2、通过点击上位机软件中的LD1-LD8按钮,上位机软件通过串口控制学习板上LD0-LD7指示灯的亮灭,并及时将LED亮灭状态通过串口反馈到PC机,在上位机软件上显示。 3、将LED换为继电器即可实现相应电器控制。 程序如下: /******************************************* *???????? AVR单片机串口控制应用程序???? * * 主要功能:应用PC机串口控制LED亮灭???? * * 日??? 期:2007年04月16日?????? * * 作??? 者:tonghe???????? * * 版??? 本:V1.2.0???????? * * 修改日期:2007年06月12日?????? * * 主控芯片:Mega16???????? * * 时钟频率:3.6864MHz??????? * * 波 特 率:9600 BPS??????? * * 实验环境:本站M16学习板?????? * *******************************************/ #include iom16v.h #include macros.h //宏定义1:定义端口 #define key PORTB? ?????//定义输出控制端口:这里是LED显示,可接继电器输出 #define key0_open (10)???//端口0 #define key1_open (11)???//端口1 #define key2_open (12)???//端口2 #define key3_open (13)???//端口3 #define key4_open (14)???//端口4 #define key5_open (15)???//端口5 #define key6_open (16)???//端口6 #define key7_open (17)???//端口7 #define rd_key (~PINA)????//按键接口:本地按键也可控制LED //宏定义2:定义本机地址 #define add_kz 2 //宏定义3:定义简称 #define uchar unsigned char #define uint unsigned int static uchar uart_buff[5];???//串口数据接收缓存// static uchar count;?????//接收位置计数// uchar keyb_state=0; uchar keyc_state=0; uchar RX_counter=0;???????? ??//串口接收到的字节数计数器 uchar flag=0; //延时函数:入口i,需要定时的时长 void delay_ms(uint i)??? ?//在3.6864M时钟下为i ms ??? { ?uint j; ?for(;i;i--) ??? { ??? for(j=527;j;j--) ?????? {;} ??? } ??? } //字符输出函数:入口c,需输出的字符 void putchar(char c) ??? { ?while (!(UCSRA(1 UDRE)));?? //判断上次发送有没有完成 ?UDR = c;??? ?} /*********************************** *?????????? 字符串发送函数???? * ***********************************/ void puts(uchar *s)?????//字符串发送函数 ??? { ?while (*s) ???? { ??putchar(*s); ??s++; ??} ?putchar(\n);?????//发送换行符 ?} /*********************************** *?????????? 串口初始化函数???? * ***********************************/ void UART_init(void) ??? { ?UCSRA = 0x00;?? ?//波特率不加倍 ?UCSRB = 0 //允许接收和发送//并允许接收中断 ?UCSRC = BIT(URSEL) | 0x06;??//8位数据// ?U

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档