




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MAX7219驱动数码管显示一:实验目的 1,熟悉程序的编译、下载方法和过程;2,熟悉利用max7219驱动数码管显示;二:实验内容使用MAX7219驱动数码管显示(可参考单片机程序文件夹中数码管显示键盘值文件中的内容);三:实验步骤1,设计硬件电路,焊制电路板,连接相关电路;2,观察给定程序所实现的功能;3,按照设定的功能修改程序编译程序,下载并调试程序;四:程序与其相关说明#include#define uchar unsigned char#define uint unsigned int#include#include#includesbit BUZZ=P13;/* 名称 : Main()* 功能 : 主函数*/void Main()init_7219(); /对max7219初始化init_ds12887();/对ds12887初始化/set_time();set_alarm(); while(1) P2=0xf0; if(P2&0xf0)!=0xf0) keyscan(); if(key=0) if (DS_C & 0x10) != 0) /显示时间 crt_timenyr(); else if (DS_C & 0x10) != 0) /显示时间 crt_timesfm(); delay1ms(100);#define DECODE 0X09 /译码控制寄存器#define INTENSITY 0X0A/亮度控制寄存器#define SCANLIMIT 0X0B /扫描界限寄存器#define FLASHCON 0X0C /关断模式寄存器#define DISPLAY 0X0F /测试控制寄存器sbit LOAD=P10;sbit DIN=P11;sbit CLK=P12;/* 名称 : write_7219(uchar add,uchar dat)* 功能 : 地址,数据发送子程序*/void write_7219(uchar add,uchar dat)uchar i;LOAD=0; /拉低片选,选中器件for(i=0;i8;i+) /发送地址 CLK=0; /清零时钟总线 DIN=(bit)(add&0x80); /每次取高字节 add=1; /左移一位 CLK=1; /时钟上升沿,发送地址for(i=0;i8;i+) /发送数据 CLK=0; DIN=(bit)(dat&0x80); dat=1; CLK=1; /时钟上升沿,发送数据LOAD=1; /发送结束,上升沿锁住数据/* 名称 : init_7219()* 功能 : max7219的初始化,设置max7219内部的控制寄存器*/void init_7219()write_7219(FLASHCON,0x01);/开启正常模式write_7219(DISPLAY,0x00);/选择工作模式write_7219(DECODE,0xff);/选用不译码模式write_7219(SCANLIMIT,0x07);/8只led全用write_7219(INTENSITY,0x04); /设置初始亮度uchar key;uchar code disp_code= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;uchar code key_code= 0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;/* 名称 : delay1ms(uint i)* 功能 : 延时子程序,经过软件调试,测得延时程序大概为1ms.*/void delay1ms(uint i)uchar j;while(i-)for(j=0;j115;j+) /1ms基准延时程序 ; /*键盘扫描子函数*/uchar keyscan() uchar scan1,scan2,keycode,j; P2=0xf0; scan1=P2; if(scan1&0xf0)!=0xf0) /判键是否按下 delay1ms(20); /延时20ms scan1=P2; if(scan1&0xf0)!=0xf0) /二次判键是否按下 P2=0x0f; /线反转法的核心 scan2=P2; keycode=scan1|scan2; /组合成键编码 for(j=0;j=15;j+) if(keycode= key_codej) /查表得键值 key=j; return(key); else P2=0xff; /P1口写1 输入状态 return (10); /数码管显示-#include /* DS12887口地址 */ #define DS_A XBYTE0x400A /寄存器 #define DS_B XBYTE0x400B /寄存器 #define DS_C XBYTE0x400C /寄存器 #define Years XBYTE0x4009 /年 #define Month XBYTE0x4008 /月 #define Day XBYTE0x4007 /日 #define Week XBYTE0x4006 /星期 #define Hour_Alarm XBYTE0x4005 /时闹钟#define Hour XBYTE0x4004 /时 #define Minute_Alarm XBYTE0x4003 /分闹钟#define Minute XBYTE0x4002 /分 #define Seconds_Alarm XBYTE0x4001 /秒闹钟#define Second XBYTE0x4000 /秒 /*DS12887初始化程序*/void init_ds12887() DS_A=0x20; /打开振荡器,允许RTC计时DS_B=0x12; /允许寄存器C中的闹钟中断标志(AF)位产生IRQ信号 void set_time() DS_A=0x2f; /寄存器DS_B|=0x80; /禁止更新数据 Years=0x12; /年 Month=0x12; /月 Day=0x04; /日 Week=0x02; /星期 Hour=0x14; /时 Minute=0x00; /分 Second=0x00; /秒 DS_B &=0x7f; /寄存器 void set_alarm() DS_A=0x2f; /寄存器DS_B|=0x80; /禁止更新数据 Hour_Alarm=0x14; /时 Minute_Alarm=0x00; /分 Seconds_Alarm=0x10; /秒 DS_B &=0x7f; /寄存器 /* 显示时间 */void crt_timenyr() uchar dhi,dli;dli=Years;dhi=dli & 0xf0; dhi=4;dhi+=0x30;dli &=0x0f;dli +=0x30;write_7219(1,dhi);write_7219(2,dli);write_7219(3,10);dli=Month;dhi=dli & 0xf0; dhi=4;dhi+=0x30;dli &=0x0f;dli +=0x30;write_7219(4,dhi);write_7219(5,dli);write_7219(6,10);dli=Day;dhi=dli & 0xf0; dhi=4;dhi+=0x30;dli &=0x0f;dli +=0x30;write_7219(7,dhi);write_7219(8,dli);void crt_timesfm() uchar dhi,dli;dli=Hour;dhi=dli & 0xf0; dhi=4;dhi+=0x30;dli &=0x0f;dli +=0x30;write_7219(1,dhi);write_7219(2,dli);write_7219(3,10);dli=Minute;dhi=dli & 0xf0; dhi=4;dhi+=0x30;dli &=0x0f;dli +=0x30;write_7219(4,dhi);write_7219(5,dli);write_7219(6,10);dli=Second;dhi=dli & 0xf0; dhi=4;dhi+=0x30;dli &=0x0f;dli +=0x30;write_7219(7,dhi);write_7219(8,dli);硬件:1、使用MAX7219驱动数码管显示;2、数据由P1.0、P1.1、P1.2串行输入到MAX7219的LOAD、DIN、CLk,用跳线器连接J2和J3的0、1、2;四、电路板相关部分元器件及部分要求:1、电阻:10K: R12, R4.8.2K: R12K: R111K: R2, R34.7K: R17430: R0, Rt1, R13, R14, R15, R1610: R5, R6.2、电阻值计算要求棕 红 橙 黄 绿 兰 紫 灰 白 黑 1 2 3 4 5 6 7 8 9 0 数值 幂 误差1 1 1 1棕 黑 橙1 0 310*103=1043、电容104 C1C1020P c18,c194、电解1UF C20-C244.7UF C17100UF C11,C125、发光二极管 长脚 阳极白发绿Dt1白发红 D0-D8白发蓝 Dt2 6、电阻排10K: REP3 (103)470:REP2(471)长脚为正,板上右侧为正7、J24 J25不焊8、交通灯颜色顺序红黄绿 ,黄在中间 红 绿 黄 黄 红 绿 绿 红 黄 黄 绿 红9、对焊接点的要求以上三种焊接点除第一种之外其他的都不符合要求。五:程序编写中遇到的问题与解决方法1、 程序下载的相关操作答:查阅相关书本知识与内容,请教老师与同学,将程序下载到单片机中。2、Output 窗口中出现错误提示信息答:如果在源文件中存在错误在Output 窗口中会出现错误提示信息,可以在源程序中进行修改,然后存盘后重新Build 观察错误提示信息。3、注意指令中的“,:;”是西文字符,切不可使用中文符号;数字“0”与字符“o”不可混淆。4、对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 达标测试人教版八年级上册物理声现象《噪声的危害和控制》定向攻克试卷(含答案详解)
- 基于输出系数模型和InVEST模型的南漪湖外源磷来源分析
- DB11T 2470-2025 无人平台智能感知系统安全分析技术规范
- 基础施工技术培训方案
- 考点攻克苏科版八年级物理下册《力与运动》综合测评试题(含答案解析版)
- 机电设备安装设备搬运方案
- 难点解析-人教版八年级上册物理声现象《声音的特性》综合测试试卷(含答案详解)
- 夏热冬暖地区城市街区热环境分布特征及预测研究
- 解析卷人教版八年级上册物理声现象《声音的特性》定向训练练习题(含答案详解)
- 跨境电商A公司供应链管理优化研究
- DB35T 2082-2022 人民防空疏散基地建设基本要求
- GB/T 44563-2024航空用钛合金凸头大底脚螺纹抽芯铆钉
- 证券公司收益凭证新规内容解读课件
- 初中数学重要的九大几何模型
- 重点难点 议论文阅读-2024年中考语文复习专练(原卷版)
- 人音版音乐九年级上册第1单元演唱《让世界充满爱》教案
- 2024年秋季1530安全教育记录
- 高中综合实践课程:设计未来城市(课件)
- 第一单元第三课构图的作用 课件 2023-2024学年人教版初中美术八年级上册
- 2022光储充微电网碳园区解决方案
- 2024新型电力系统源网荷储一体化白皮书
评论
0/150
提交评论