- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; // 禁止硬件流控制,禁止 RTS 和 CTS 信号 // 允许接收、发送 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_InitStructure.USART_Clock = USART_Clock_Disable;//串口时钟禁止 USART_InitStructure.USART_CPOL = USART_CPOL_Low; USART_InitStructure.USART_CPHA = USART_CPHA_1Edge; USART_InitStructure.USART_LastBit = USART_LastBit_Disable;
/* Private functions ---------------------------------------------------------*/
int main(void) {
//编写主函数
unsigned char temp; #ifdef DEBUG debug(); #endif RCC_Configuration(); GPIO_Configuration(); USART_Configuration(); printf("\r\nHello BUAA"); printf("\r\n 这是 STM32 串口通信实验"); while(1) { //查询 USART1 的收标志位 while(!USART_GetFlagStatus(USART1,USART_FLAG_RXNE)); temp = USART_ReceiveData(USART1); USART_SendData(USART1,temp); if(temp!=0x00) { GPIO_ResetBits(GPIOA, GPIO_Pin_8); Delay(0xFFFFF); } else { GPIO_SetBits(GPIOA, GPIO_Pin_8); Delay(0xFFFFF); } //初始化时钟函数 //初始化 GPIO //初始化 USART
9
北京航空航天大学 《单片机原理》作业汇总 } } void USART_Configuration(void) { USART_InitStructure.USART_BaudRate = 38400;//设置波特率为 38400 USART_InitStructure.USART_WordLength = USART_WordLength_8b;// 8 位传输 USART_InitStructure.USART_StopBits = USART_StopBits_1; //1 个停止位 USART_InitStructure.USART_Parity = USART_Parity_No; //无校验位
TL0 = 0x0F0; //先计数 0.01s 即 65536-10000=0xD8F0,高位装入 TH0,低位装入 THL TR0 = 1; } void interrupt_timer0()interrupt 1 { if(num==50) { num=0; turn++; if(turn==8) { turn=0; } P1 = t[turn]; } else { num++; } } //计数溢出每次加 1 // LED 状态的显示 //计满 50 次后 num 位循环重复 //使 LED 灯状态转为下一个 //循环结束 //计时器计数 50 次为 0.5s //定时器开中断
8
北京航空航天大学 《单片机原理》作业汇总 void USART_Configuration(void); void RCC_Configuration(void); void GPIO_Configuration(void); void NVIC_Configuration(void); void Delay(vu32 nCount); //定义串口 UASRT //定义时钟 //定义 GPIO 口 //定义化优先级 //定义 Delay 函数
*************************************************************************** **/ #include "stm32f10x_lib.h" #include "stdio.h" //添加文件,为 printf 所用
USART_InitTypeDef USART_InitStructure; ErrorStatus HSEStartUpStatus; /* Private function prototypes -----------------------------------------------*/
3
北京航空航天大学 《单片机原理》作业汇总
一、
二、
三、
四、
五、
六、
七、
八、
本代码在 Keil C51 系统中编译通过,可以使用。
/************************************************************************** 流水跑马灯,每 0.5s 灯亮位置变换一次,晶振为 12MH 使用定时器 timer0 来实现本要求 **************************************************************************/ #include<reg51.h> #define LED P1 unsigned char num = 0; unsigned char turn = 0; //头文件 //定义 P1 口为输出端口 //全局变量 num,测量其定时器 timer0 溢出的次数 //turn 全局变量 urn,表示 LED 灯亮与灭
2
北京航空航天大学 《单片机原理》作业汇总
一、51 单片机跑马灯
1.1 硬件部分
本硬件图示采用如右图所示的 Proteus 7 Professional 下面便是整个系统的硬件连接图,单片机为 AT89C51
1.2 软件部分
本程序实现的功能是将跑马灯按照以下的顺序进行亮灭: (图中 从左到右的 LED 灯分别表示对应 P1.0 到 P1.7 的灯, 有填充表示灯亮) 使其跑马灯依次按照顺序从 1 一直亮到 8,每次只亮一盏灯,之后循 环。即为:
4Βιβλιοθήκη Baidu
北京航空航天大学 《单片机原理》作业汇总 unsigned char code t[8] = {0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; 字符数据中对应的即为其 LED 灯的八种状态,也就是图上灯亮灭的顺序。 void init_timer0(); void main() { LED = t[turn]; init_timer0(); while(1) { } } void init_timer0() { TMOD = 0x01; TH0 = 0x0D8; //工作方式为方式 1,即 16 位定时器/计数器 //实现 0.5s 计时, 直接是无法计数那么大的, 可以通过循环来实现 //使用定时器 0 //初始化 LED 灯 //初始化定时器 0 //
5
北京航空航天大学 《单片机原理》作业汇总
程序流程图如下
6
北京航空航天大学 《单片机原理》作业汇总
二、STM32 串口通信
2.1. 硬件部分
STM32 的最小芯片图为: 在 STM32 的芯片上有两个可供串口进行通信的位置:21,22; 30,,31。分别对应 USART1 与 USART2,若其要实现通信还必须通过 一个转换电路来与 COM 口相连接,下面是其电路图:
《单片机原理》作业汇总
班 级: 学 号: 姓 名:
100714 10071108
王世豪
北京航空航天大学 《单片机原理》作业汇总
目录
一、51 单片机跑马灯 ................................................................... 3 1.1 硬件部分 .................................................................................. 3 1.2 软件部分 .................................................................................. 3 二、STM32 串口通信..................................................................... 7 2.1. 硬件部分 ................................................................................. 7 2.2 软件部分 .................................................................................. 8 三、自主开发单片机应用系统-巡线小车.................................... 14 3.1 作品综述 ................................................................................ 14 3.2 硬件的选择 ............................................................................ 15 3.3 系统结构图 ............................................................................ 17 3.4 功能具体实现 ........................................................................ 18 3.4.1 巡线行走及转弯 .............................................................. 18 3.4.2 自行控制小车速度并显示 .............................................. 21 3.4.3 与上位机串口通信 ......................................................... 22 3.4.5 到达终点的时候播放相应的音乐 .................................. 23 3.5 程序流程 ................................................................................ 26 四、课程感想 .............................................................................. 27
下面是其串口实物与电路实际连接图:
7
北京航空航天大学 《单片机原理》作业汇总
2.2 软件部分
本程序在 IAR Embeded Workbench IDE 的环境 下调整编辑通过后附整个程序的工程文件。
/************************************************************************** ** * 文件名 * 作者 *生成日期 *描述 :main.c :王世豪 :2013.6.6 :主程序