- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- flash动画设计教程:3.1——遮罩运用打造旋转地球.doc
- FIR带通滤波器设计FPGA实现.doc
- flash驱动编程与实验.ppt
- FPGA 对DDR 控制研究.doc
- FPGA_ASIC-以太网到多路E1适配电路设计与FPGA实现.doc
- FPGA二进制转bcd设计和验证.doc
- FPGA在mif文件创建与使用中应用.doc
- FPGA设计与应用_VHDL3.ppt
- FPGA设计与应用教学.ppt
- FPGA设计流程简介与设计注意事项.ppt
- 《JJF 2132-2024荧光紫外灯人工气候老化试验装置校准规范:辐射照度参数》.pdf
- JJF 2120-2024轮速传感器校准规范.pdf
- 计量规程规范 JJF 2120-2024轮速传感器校准规范.pdf
- 《JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数》.pdf
- JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数.pdf
- 《JJF 2120-2024轮速传感器校准规范》.pdf
- JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
- JJF 2116-2024特定蛋白分析仪校准规范.pdf
- 《JJF 2116-2024特定蛋白分析仪校准规范》.pdf
- 计量规程规范 JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
文档评论(0)