当前位置:文档之家› 《单片机原理》课程大作业

《单片机原理》课程大作业


2
北京航空航天大学 《单片机原理》作业汇总
一、51 单片机跑马灯
1.1 硬件部分
本硬件图示采用如右图所示的 Proteus 7 Professional 下面便是整个系统的硬件连接图,单片机为 AT89C51
1.2 软件部分
本程序实现的功能是将跑马灯按照以下的顺序进行亮灭: (图中 从左到右的 LED 灯分别表示对应 P1.0 到 P1.7 的灯, 有填充表示灯亮) 使其跑马灯依次按照顺序从 1 一直亮到 8,每次只亮一盏灯,之后循 环。即为:
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 灯亮与灭
5
北京航空航天大学 《单片机原理》作业汇总
程序流程图如下作业汇总
二、STM32 串口通信
2.1. 硬件部分
STM32 的最小芯片图为: 在 STM32 的芯片上有两个可供串口进行通信的位置:21,22; 30,,31。分别对应 USART1 与 USART2,若其要实现通信还必须通过 一个转换电路来与 COM 口相连接,下面是其电路图:
USART_ART_HardwareFlowControl=USART_HardwareFlowControl_None; // 禁止硬件流控制,禁止 RTS 和 CTS 信号 // 允许接收、发送 USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_ART_Clock = USART_Clock_Disable;//串口时钟禁止 USART_ART_CPOL = USART_CPOL_Low; USART_ART_CPHA = USART_CPHA_1Edge; USART_ART_LastBit = USART_LastBit_Disable;
*************************************************************************** **/ #include "stm32f10x_lib.h" #include "stdio.h" //添加文件,为 printf 所用
USART_InitTypeDef USART_InitStructure; ErrorStatus HSEStartUpStatus; /* Private function prototypes -----------------------------------------------*/
《单片机原理》作业汇总
班 级: 学 号: 姓 名:
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
8
北京航空航天大学 《单片机原理》作业汇总 void USART_Configuration(void); void RCC_Configuration(void); void GPIO_Configuration(void); void NVIC_Configuration(void); void Delay(vu32 nCount); //定义串口 UASRT //定义时钟 //定义 GPIO 口 //定义化优先级 //定义 Delay 函数
4
北京航空航天大学 《单片机原理》作业汇总 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 //
/* 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
下面是其串口实物与电路实际连接图:
7
北京航空航天大学 《单片机原理》作业汇总
2.2 软件部分
本程序在 IAR Embeded Workbench IDE 的环境 下调整编辑通过后附整个程序的工程文件。
相关主题