单片机实验报告三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安徽新华学院实验报告
姓名:钟金芙学号:1432101251 专业班级:14计应2班课程名称:单片机原理及应用实验名称:单片机控制数码管实验实验日期:2016.3.4 同组人员:指导教师:王华本
得分:
一、实验名称
单片机控制数码管实验
二、实验类型
基础性实验
三、实验目的与要求
1.掌握数码管的静态显示。
2.掌握数码管的动态显示
四、实验主要仪器设备
硬件设备:PC机,单片机试验仪
软件环境:proteus仿真软件。
五、实验原理
1、数码管静态显示驱动原理:把多个led灯泡放在一块,安装组成了数码形式,把全部LED的正极连接到一块为共阳极,负极则为共阴极,所有用单片机管脚对应每一个数码管管脚,然后进行通断的转换显示出字符。
2、数码管动态显示的基本原理:多位数码管按从左到右或从右到左顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样。
为了使LED数码管显示不同的符号或数字,要把某些段的发光二极管点亮,这样就要为LED数码管提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码也称为段码。
LED数码管共计8段。因此提供给LED数码管的段码正好是一个字节。在使用中,习惯上是以“a”段对应段码字节的最低位。
六、实验内容
1.编程实现单片机控制一个8位数码管循环显示。
2.编程实现单片机控制 2只数码管,静态显示 2个数字“27”。
3.编程实现单片机控制 8 只数码管,滚动显示数字“12345678”。
七、实验步骤
实验一:利用单片机控制一个8位数码管先循环显示单个偶数:2、4、6、8 再显示单个奇数:1、3、5、7,如此循环显示。
代码如下:#include
#include
#define uchar unsigned char
#define uint unsigned int
#define out P0
uchar code seg[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0xc0};
void delayms(uint);
void delayms(uint j){
uchar i;
for(;j>0;j--){
i=250;
while(--i);
i=249;
while(--i); } }
void main(void){
uchar i;
while(1){
out=seg[i];
delayms(900);
i++;
if(seg[i]==0x01)i=0;
}
}
生成.hex文件,将文件导入绘制好的电路图中,运行结果如下:
实验二:单片机控制2只数码管,静态显示2个数字“27”。代码如下:#include
#define uchar unsigned char
#define uint unsigned int
void main()
{
P0=0XA4;
P1=0XF8;
while(1);
}
编译程序生成.hex文件,导入电路图中,启动如下:
实验三:单片机控制8 只数码管,分别滚动显示单个数字1~8.程序运行后,单片机控制左边第1 个数码管显示1,其他不显示,延时之后,控制左边第2 个数码管显示2,其其他不显示,直至第8 个数码管显示8,其他不显示,反复循环上述过程。
步骤一:在proteus中绘制如下电路图:
步骤二:在keil中编写程序,生成.hex文件
程序如下:#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0xc0};
void delay(uint t);
void delay(uint t){
uint i,j;
for(i=0;i<200;i++)
for(j=0;j } void main(){ uchar i,j=0x80; while(1){ for(i=0;i<8;i++){ j=_crol_(j,1); P0=dis_code[i]; P2=j; delay(1); P0=0xff; } } } 步骤三:把.hex文件导入仿真电路图中,结果如下(因把延迟变小,形成数码管动态显示) 八、数据记录及处理 1.程序说明。说明程序的功能、结构。 2.调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 3.写出源程序清单和执行结果。 九、实验注意事项 1.注意数码管显示时的延时时间,决定了显示时字符是稳定显示还是闪烁。 2.共阴极和共阳极的8段数码管的段码值是恰好相反的。 十、实验中遇到的问题及解决的措施