《单片机原理实验实验报告册》由会员分享,可在线阅读,更多相关《单片机原理实验实验报告册(15页珍藏版)》请在金锄头文库上搜索。
1、电子科技大学成都学院实验报告册课程名称: 单片机原理实验 姓 名: 林远 学 号: 2940710320 院 系: 微电子技术系 专 业: 集成 教 师: 刘浩森 2014 年 12 月 29 日实验一 LED 流水灯一、实验目的:一、实验目的:1.掌握并口的使用2.掌握移位指令的使用二、实验原理和内容:二、实验原理和内容:实验原理:1.共阳 LED(1)位移指令 左移 (2)循环移位指令 _crol_(A,B), _cror_(A,B)函数,在头文件 intrins.h 中实验内容:实现 LED 灯上下流水显示效果三、实验步骤:三、实验步骤:1.创建工程;2.编写程序; 3.调试程序 ; 4
2、.下载验证四、实验数据和结果四、实验数据和结果程序功能描述: 实现 LED 的流水灯显示,即通过单片机 P0 口控制 8 个 LED灯循环点亮,循环方式为:左循环依次点亮一次,随后右循环依次点亮一次。本例中是调用的 intrins.h 中的函数实现的循环移位。#include#include#define uchar unsigned char#define uint unsigned int/*功能 : 延时,延时时间为 10ms * delvoid Delay(uint del)uint i,j;for(i=0; i#define uchar unsigned char#define ui
3、nt unsigned intuchar code table10 = 0x66,0x3f,0x07,0x06,0x3f,0x4f,0x5b,0x66;uchar code LED_W8 = 0,1,2,3,4,5,6,7;/* 功能 : 延时子程序,延时时间为 1ms * xvoid Delay(uint i)uchar x,j;for(j=0;j#define uchar unsigned char#define uint unsigned int uchar Count = 0;uchar code table10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d
4、,0x07,0x7f,0x6f;/* 功能 : 定时器的初始化,11.0592MZ 晶振,50msvoid Time0_Init()TMOD = 0x01;TH0 = 0x4c;TL0 = 0x00;IE = 0x82;TR0 = 1; /* 功能 : 定时器中断,中断中实现 Count 加一void Time0_Int() interrupt 1TH0 = 0x4c;TL0 = 0x00;Count+;/长度加 1void main()uchar i = 0;Time0_Init();while(1)P0 = tablei % 10; /取 i 的个位while(1)if(Count = 2
5、0) /当 Count 为 20 时,i 自加一次,20 * 50MS = 1SCount = 0;i+;break;5、实验总结:实验总结:掌握了计时器和定时器的使用,深入了解其原理,掌握定时函数使用,学习配置工作模式寄存器 TMOD、控制器寄存器 TCON。实验四: 点阵 LED 显示一、实验目的:一、实验目的:1.掌握 8*8-LED 点阵的结构原理2.掌握 8*8-LED 点阵的使用二、实验原理和内容:二、实验原理和内容:实验原理:1. 8X8 点阵 LED 等效电路8 X 8 点阵 LED 工作原理说明 :8X8 点阵共需要 64 个发光二极管组成,且每个发光二极管是放置在行线和列线
6、的交叉点上,当对应的某一列置 0 电平,某一行置 1 电平,则相应的二极管就亮;一根竖柱:对应的列置 0,而行则采用扫描的方法来实现。一根横柱:对应的行置 1,而列则采用扫描的方法来实现。LP00 LP07 图 1-8,P2.0P2.7 图 A-H。 实验内容:显示心形和自己姓名拼音首字母三、实验步骤:三、实验步骤:1.创建工程;2.编写程序; 3.调试程序 ; 4.下载验证四、实验数据和结果:四、实验数据和结果: 程序功能描述:需要连接上 J16 这个跳线帽。这个代码在点阵上显示相应的图形。显示心形和自己的姓名拼音首字母。#include #include#define uint unsig
7、ned int#define uchar unsigned char/心形显示 unsigned char code tabP0=0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00;unsigned char code tabP2=0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE;unsigned char code tabP0= ;unsigned char code tabP2=0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE;/* 功能 : 延时子程序,延时时间为 1ms * xvoid Delay_
8、1ms(uchar i) /1ms 延时uchar x,j;for(j=0;j#include #define uchar unsigned char#define uint unsigned intsbit dula=P26;sbit wela=P27;uchar code table=0xc0,0xf9,0xa4,0xb0, /数码显示依次为:0、1、2、30x99,0x92,0x82,0xf8, / 4、5、6、70x80,0x90,0x88,0x83, / 8、9、a、b 0xc6,0xa1,0x86,0x8e,0xff / c、d、e、f;uchar num,temp;void de
9、lay(uint z) /延时子程序uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);uchar keyscan() /键盘扫描程序,返回 uchar 型参数uchar i; for(i=0;i4;i+)P3=_crol_(0xfe,i);temp=P3;temp=tempwhile(temp!=0xf0)delay(5); /延时消抖temp=P3; /第二次确认该键按下temp=tempwhile(temp!=0xf0)temp=P3; /再次确认该键按下switch(temp)case 0xee:num=1; break;case 0xde:num=2; b
10、reak;case 0xbe:num=3; break;case 0x7e:num=4; break;case 0xed:num=5; break;case 0xdd:num=6; break;case 0xbd:num=7; break;case 0x7d:num=8; break;case 0xeb:num=9; break;case 0xdb:num=10;break;case 0xbb:num=11;break;case 0x7b:num=12;break;case 0xe7:num=13;break;case 0xd7:num=14;break;case 0xb7:num=15;break;case 0x77:num=16;break;while(temp!=0xf0) /等待按键释放temp=P3;temp=tempreturn num;void display(uchar aa) /显示函数dula=1;P0=tableaa-1;dula=0; /显示完成后立即清空缓存void main()num=17;dula=1;P0=0;dula=0;wela=1;P0=0x20;wela=0; while(1) display(keyscan()5、实验总结:实验总结:通过本次实验,我们学习到了单片机系统中的 4*4 矩阵键盘的原理