嵌入式课程设计随堂报告

上传人:第*** 文档编号:55663388 上传时间:2018-10-03 格式:DOC 页数:56 大小:19.66MB
返回 下载 相关 举报
嵌入式课程设计随堂报告_第1页
第1页 / 共56页
嵌入式课程设计随堂报告_第2页
第2页 / 共56页
嵌入式课程设计随堂报告_第3页
第3页 / 共56页
嵌入式课程设计随堂报告_第4页
第4页 / 共56页
嵌入式课程设计随堂报告_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《嵌入式课程设计随堂报告》由会员分享,可在线阅读,更多相关《嵌入式课程设计随堂报告(56页珍藏版)》请在金锄头文库上搜索。

1、嵌入式课程设计随堂报告嵌入式课程设计随堂报告学学 院院 计算机与通信工程学院计算机与通信工程学院 专业班级专业班级 物联物联 14021402 姓姓 名名 包纳仁夫包纳仁夫 学学 号号 4146603941466039 第一次实验报告第一次实验报告一、实验目的:第一次实验了解了实验开发板资源,完成三个部分的实验:程序的下载,用普中等程序烧录软件下载程序;KEIL 软件安装使用和入门 led 灯的程序调用,独立实现 led 灯闪烁频率调整;蜂鸣器的点响,独立利用程序操控蜂鸣器的频率。二、实验步骤:led 代码/* LED 闪烁的简单实验*/#include /此文件中定义了 51 的一些特殊功能

2、寄存器void delay(unsigned int i); /声明延时函数void main() while(1)P2 = 0x00; /置 P0 口为低电平delay(1000); /调用延时程序P2 = 0xff; /置 P0 口为高电平 /此时 P2 口全部输出 1,状态从 0 变成 1 了,对应的灯的输出也由低电平变成高电平delay(1000); / 调用延时程序,再进行延时,/*延时函数*/void delay(unsigned int i)unsigned char j;for(i; i 0; i-) /循环 600*255 次 for(j = 255; j 0; j-);(3

3、)分析:通过将串口赋值,设置高电平和低电平,在每个发光函数后边加上延时函数,让 led 灯闪烁来显示对应操作。(4)蜂鸣器代码:#include sbit Beep = P15 ;void Delay(unsigned int i) ;void main()Beep= 1;Delay(5);Beep= 0;Delay(5); void Delay(unsigned int i)char j;for(i; i 0; i-)for(j = 200; j 0; j-);(5)代码分析:先将 P15 管脚定义为 beep,然后用 1 和 0 分别控制高低电平,再其中假如延时函数,实现点响蜂鸣器蜂鸣器就

4、是常常说的交流蜂鸣器或直流蜂鸣器(自激式蜂鸣器) 。我们单片机板子上配的交流蜂鸣器需要给蜂鸣器一个脉冲才会响。常见的有 PWM 波控制蜂鸣器的频率。脉冲就是高低电平的切换直流蜂鸣器是给一定的驱动直流电压就会响。三、实验结果:(1)实验效果(2)第二次实验报告第二次实验报告一、实验目的:本次实验共四部分内容:独立按键的使用,通过按键的按动,给二极管管脚高低电平,来调整数码管;动静态数码管的显示,通过控制它们的“位选”,来实现数字的显示;矩阵键盘的使用,通过行列的置位实现 4*4 键盘操控数码管;最后是步进电机转动,通过改动电机的脉冲信号来控制电机的转速等。二、实验过程和结果:(1)独立键盘代码:

5、/* 实验名 : 独立按键实验* 使用的IO : LED使用P2,键盘使用P3.0、P3.1、P3.2、P3.3* 实验效果 : 按下K1键,灭掉LED,按下K2键,打开所有的LED,按下K3键,LED左移一位,按下K4键,LED右移一位。*注意 :由于P3.2口跟红外线共用,所以做按键实验时为了不让红外线影响实验*效果,最好把红外线先取下来。*/#include#include#define GPIO_LED P2sbit K1=P30;sbit K2=P31;sbit K3=P32;sbit K4=P33;void Delay10ms( ); /延时10ms/* 函数名 : main* 函

6、数功能 : 主函数* 输入 : 无* 输出 : 无*/void main(void)unsigned int i,j;while(1)if(K1=0)/检测按键K1是否按下Delay10ms();/消除抖动if(K1=0) /再次检测按键是否按下j=0;while(i0;c-)for(b=38;b0;b-)for(a=130;a0;a-);结果与分析:下载独立按键控制 led 灯.hex。实验效果是:按下 K1 键,灭掉 LED,按下K2 键,打开所有的 LED,按下 K3 键,LED 左移一位,按下 K4 键,LED 右移一位。过程是:先设置 IO 口为高电平(一般上电默认就为高) ;读取

7、IO 口电平确认是否有按键按下;如有 IO 电平为低电平后,延时几个 ms;再读取该 IO 电平,如果任然为低电平,说明对应按键按下;执行相应按键的程序.结果图:(2)静态数码管代码:#include#include#define GPIO_DIG P0sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;sbit K1=P30;sbit K2=P31;sbit K3=P32;sbit K4=P33;DIG_CODE10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/显示09的值void Delay10ms();

8、/延时10ms/*/void main(void)unsigned int i,j;LSA=0;LSB=0;LSC=0;while(1)if(K1=0)/检测按键K1是否按下Delay10ms();/消除抖动if(K1=0)j=1;while(i0;c-)for(b=38;b0;b-)for(a=130;a0;a-);结果与分析:下载HEX文件,观察实验效果,实验的效果是:按下K1键,显示1,按下K2键,显示2,按下K3键,显示3,按下K4键,显示4。对共阴极数码来说,其8个发光二极管的阴极在数码管内部全部连接在一起,所以称“共阴”,而它们的阳极是独立的,通常在设计电路时一般把阴极接地。当我们

9、给数码管的任意一个阳极加一个高电平时,对应的这个发光二极管就点亮了。通过代码操控按键所获得的数值,再由芯片转换操控数码管的亮暗。结果图:(3)矩阵键盘代码:#include#define GPIO_DIG P0#define GPIO_KEY P1sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、

10、d、E、F的显示码unsigned char KeyValue;/用来存放读取到的键值void Delay10ms(); /延时10msvoid KeyDown(); /检测按键函数void main(void)LSA=0; /给一个数码管提供位选LSB=0;LSC=0;while(1)KeyDown();GPIO_DIG=DIG_CODEKeyValue;/* 函数名 : KeyDown* 函数功能 : 检测有按键按下并读取键值* 输入 : 无* 输出 : 无*/void KeyDown(void)char a;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)Delay10m

11、s();if(GPIO_KEY!=0x0f)/测试列GPIO_KEY=0X0F;switch(GPIO_KEY)case(0X07): KeyValue=0;break;case(0X0b): KeyValue=1;break;case(0X0d): KeyValue=2;break;case(0X0e): KeyValue=3;break;/default:KeyValue=17;/检测出错回复17意思是把数码管全灭掉。/测试行GPIO_KEY=0XF0;switch(GPIO_KEY)case(0X70): KeyValue=KeyValue;break;case(0Xb0): KeyVa

12、lue=KeyValue+4;break;case(0Xd0): KeyValue=KeyValue+8;break;case(0Xe0): KeyValue=KeyValue+12;break;/default:KeyValue=17;while(a/#include#define GPIO_DIG P0#define GPIO_KEY P1sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7

13、c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsigned char KeyValue;/用来存放读取到的键值unsigned char KeyState; /记录按键的状态,0没有,1有unsigned char DisplayData8;/用来存放要显示的8位数的值unsigned char Num;/用来存放中断的时候显示的第位数值void Delay50us(); /延时50usvoid KeyDown(); /检测按键函数void DigDisplay(); /动态显示函数void TimerConfiguration();/定时器初始化设置/*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号