利用按键控制点阵进行十进制数字显示下载

weixin_39821620 2019-08-24 05:30:26
利用键盘控制点阵进行十进制数字显示,利用键盘控制点阵进行十进制数字显示
相关下载链接://download.csdn.net/download/wa78op2/5620685?utm_source=bbsseo
...全文
12 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
单片机系统课程设计报告 16*16点阵设计 专 业: 测控技术与仪器 学 生 姓 名: 刘宝琪 韦魏 学 号: 2009024211 2008050528 指 导 教 师: 张秀峰 完成日期:2011 年 12 月30日 目录 一 设计任务 2 二 设计方案 3 1 任务分析 3 2 方案设计 3 3 系统构图 4 三 系统硬件设计 4 1 硬件选择 4 2单片机的最小系统 5 3 点阵驱动设计 5 4 led点阵的介绍 6 5 led点阵显示模块的方法 7 四 系统软件设计 8 1主程序设计 8 2 主程序流程图 9 五、调试及性能分析 9 1 调试分析 9 2 性能分析 10 六、心得体会 10 七、参考文献 11 附录一:系统原理图 11 附录二:程序清单 12 一 设计任务 设计一个16×16的LED点阵图文显示屏,可显示图形和文字,显示图形和文字应稳定、 清晰,各点亮度均匀。图形和文字显示有静态、移入和移出等显示方式。掉电时能保 存显示的信息。 选做:设计系统与上位机的串行通信电路,用上位计算机控制LED显示器的显示内容 。 二 设计方案 1 任务分析 LED点阵显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它 具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优 点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告 宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程 ,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广 告宣传等各方面。 LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。文章 给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。包括系统具体的硬件设计方案,软件流程图和部分汇编语言 程序等方面。在负载范围内, 只需通过简单的级联就可以对显示进行扩展,是一种成本低廉的图文显示方案。 2 方案设计 按照系统设计的功能的要求,采用动态扫描方式。动态扫描方式是逐行轮流点亮, 这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以16×16点阵为例,把所 有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接 法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间 ,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄 灭;…第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次 以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多 的LED,控制方式较灵活,而且节省单片机的资源。 采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显 示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行 中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控 制电路到列驱动器的数据传输可以采用并列方式或串行方式。显然,采用并行方式时, 从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的 方案是不可取的。 3 系统构图 三 系统硬件设计 1 硬件选择 此次设计的硬件选择如下: AT89C51芯片、LED、74LS138、LED的驱动三极管、电阻等一些单片机外围应用电路组 成。 2单片机的最小系统 ATMEL公司生产的AT89C51单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,复 位电路采取按键复位方式。 单片机系统的晶振电路 单片机系统的复位电路 3 点阵驱动设计 74ls138作为列驱动 74LS138 为3 线-8 线译码器,其工作原理如下: 当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为 低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低 电平译出。 利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反 相器还可级联扩展成 32 线译码器。 用两片74ls138接成的4线——16线译码器 第(1)片74LS138工作而第(2)片74LS138禁止,将的0000~0111这8个代码译成8个低 电平信号。而式(3.3.9)表明时,第(2)片74LS138工作,第(1)片74LS138禁止,将 的1000~1111这8个代码译成8个低电平信号。这样就用两个3线-8线译码器扩展成一个 4线-16线的译码器了。 同时用P1口控制74ls138的输入 用单片机的P0口,P2口作为行驱动 注意:必须要加上拉电阻。 单片机的自身驱动能力很小,必须要接大电阻进行分压,才能正常
16*32点阵数字钟及汉字显示 附:点阵时间显示源程序 //===================================================================================// //*标题:16*32点阵数字显示程序 //*说明:时钟信号产生采用DS1302,列采用74HC595驱动(共4个),行驱动采用4-16线译码器74LS154 //*功能:通过动态扫描显示时钟,可显示时,分,秒,日期中的月和日 //*作者:HEY //*日期:2006-05-29 //*邮箱:billy3416@163.com //*备注:此是我刚接触单片机时的一个小制作 程序和电路设计上难免有不足之处 请谅解 //===================================================================================// #include #include #define uchar unsigned char //===================================================================================// //用到的引脚及端口定义 //===================================================================================// sbit SERIALIN_0=P2^0; //定义P2.0为列向第1个74HC595的DATA输入 sbit SERIALIN_1=P2^1; //定义P2.1为列向第2个74HC595的DATA输入 sbit SERIALIN_2=P2^2; //定义P2.2为列向第2个74HC595的DATA输入 sbit SERIALIN_3=P2^3; //定义P2.3为列向第2个74HC595的DATA输入 sbit CLOCK_DATA=P1^0; //定义P1.0为DS1302的DATA端口 sbit CLOCK_RST=P1^1; //定义P1.1为DS1302的复位输出端口 sbit CLOCK_SCLK=P1^2; //定义P1.2为DS1302的时钟信号状态控制 sbit K0=P1^3; //K0为按键1,用来选择要调整时间的选项(时和分) sbit K1=P1^4; //K1为按键2,执行加1 sbit CLOCK=P2^4; //74HC595的移位时钟控制 sbit LATCH=P2^5; //74HC595的锁存输出时钟控制 void control(); //调整时间控制函数 void time(); uchar CLOCK_TIME[3]={0,0,0}; //定义时钟时间数据存储区,分别为(时,分,秒) uchar BUFFER[8]={0,0,0,0,0,0,0,0}; //显示缓冲区 uchar YEAR[3]={0,0,0}; //定义时钟年月日数据存储区 uchar temp[4]={0,0,0,0}; //定义74HC595的移位缓冲区 uchar FLASH_STOP; //显示小时和分钟之间的两点控制位 uchar sec_flash; //用单片机定时器模拟的一秒(用来控制小时和分中之间的两点) //==============================================
子情境1:简单实例助你快速掌握PROTEUS的用法 12 1.1 子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。 15 1.2 子情境目标: 15 1.3 子情境步骤 15 1.3.1步骤一: PROTEUS电路设计 15 1.3.2步骤二:源程序设计与生成目标代码文件 20 (1)程序流程图 20 (2)源程序设计 21 1.3.3 步骤三:PROTEUS仿真 22 1.4 扩展练习 24 子情境二:用发光二极管实现流水灯乒乓球效果 25 2.1 子情境目标: 25 2.2 子情境步骤 25 2.2.1 步骤一: PROTEUS电路设计 25 2.2.2步骤二:源程序设计与目标代码文件生成 26 (1)程序流程图 26 (2)源程序设计 27 2.2.3 步骤三:PROTEUS仿真 29 2.4 扩展练习 29 子情境三:数码管动态扫描 30 3.1子情境内容:利用动态扫描让四位数码管稳定的显示1234。 30 3.2 子情境目标: 30 (1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电 30 3.3 知识点链接 30 3.4 任务步骤 31 3.4.1 步骤一:PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图5-17所示。 31 3.4.2 步骤二:源程序设计与目标代码文件生成 33 (1)程序流程图 33 (2)源程序设计 33 3.4.3 步骤三:PROTEUS仿真 35 3.5 扩展练习 36 子情境四:定时/计数器的使用——方波发生器 37 4.1子情境内容:用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。 37 4.2 子情境目标: 37 4.3 知识点链接 37 4.4.1 步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图5-22所示。 37 (1)程序流程图 38 (2)源程序设计 38 4.4.3 步骤三:PROTEUS仿真 39 4.5 扩展练习 41 子情境五:单片机外部中断仿真 42 5.1子情境内容:外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。 42 5.2 子情境目标: 42 (1)理解单片机的中断原理及中断过程 42 (2)用PROTEUS设计、仿真单片机的外部中断。 42 5.3 知识点链接 42 5.4 任务步骤 42 5.4.1 步骤一:PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图 42 5.4.2 步骤二:源程序设计与目标代码文件生成 43 (1)程序流程图 43 (2)源程序设计 43 5.4.3 步骤三:PROTEUS仿真 45 5.5 扩展练习 47 主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。 47 子情境六:直流电机正反转 48 6.1子情境内容:用单片机AT89C51控制直流电机正反转。 48 6.2 子情境目标: 48 (1)掌握趋动电机正反转的电路 48 (2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真 48 6.3 知识点链接 48 6.4 任务步骤 48 6.4.1 步骤一:PROTEUS电路设计,实现用单片机AT89C51控制直流电机正反转原理图 48 6.4.2 步骤二:源程序设计与目标代码文件生成 50 (1)程序流程图 50 (2)源程序设计 51 6.4.3 步骤三:PROTEUS仿真 52 6.5 扩展练习 53 子情境七:用ADC0809实现电压表 55 7.1子情境内容:利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的电压值,用四位数码管显示。 55 7.2 子情境目标: 55 (1)掌握PROTEUS中电压探针和电压表的使用方法 55 (2)通过制作简易电压表,学会AD转换芯片在单片机应用系统中的硬件接口技术和编程方法。 55 7.3 知识点链接 55 了解ADC0809芯片的功能以及使用方法 55 (1)功能:ADC0809芯片为8通道模/数转换器,可以和单片机直接接口,将IN0~IN7任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ时,一次变换时间约为100us。 55 (2)使用方法:28脚双列直插式封装如图5-39所示,各引脚功能如下: 55 7.4 任务步骤 56 7.4.1 步骤一:PROTEUS电路设计,利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图5-40所示。 56 7.4.2 步骤二:源程序设计与目标代码文件生成 58 (1)程序流程图 58 (2)源程序设计 59 7.4.3 步骤三:PROTEUS仿真 62 7.5 扩展练习 66 子情境八:1602液晶显示器 67 8.1子情境内容:利用单片机AT89C52控制液晶显示器(Liquid Crystal Display,简称为LCD)实时显示。在1602液晶的第一行显示“I LOVE MY FAMILY”,在第二行显示“WWW.YZCIT.CN”。 67 8.2 子情境目标: 67 (1)掌握1602液晶与单片机的接口电路 67 (2)通过控制LCD,学会LCD液晶模块在单片机应用系统中的编程方法。 67 8.3 知识点链接 67 了解LCD1602芯片的功能以及使用方法 67 (1)功能:本情境中所使用的液晶显示器型号为1602,意思是每行显示16个字符,一共可以显示两行。此液晶只能显ASCII字符,如数字、大小写字母、各种符号等。 67 (2)使用方法:1602液晶的引脚图 67 8.4 任务步骤 68 8.4.1 步骤一:PROTEUS电路设计,利用单片机AT89C52控制液晶显示器实时显示的原理图如图5-46所示。 68 8.4.2 步骤二:源程序设计与目标代码文件生成 69 (1)程序流程图 69 (2)源程序设计 69 8.4.3 步骤三:PROTEUS仿真 71 8.5 扩展练习 72 子情境九:简易秒表制作 73 9.1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。 73 9.2 子情境目标: 73 (1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路 73 (2)学习定时/计数器、中断技术的综合运用并会使用简易键盘 73 9.3 知识点链接 73 9.4 任务步骤 73 9.4.1 步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。 73 9.4.2 步骤二:源程序设计与目标代码文件生成 74 (1)程序流程图 74 (2)源程序设计 76 9.4.3 步骤三:PROTEUS仿真 79 9.5 扩展练习 81 此子情境设计的秒表只能显示两位整数,如果要记录110跨栏12:88秒的成绩,则必须再增加两位数码管来显示小数位。想想硬件和软件应该做如何改动。 81 子情境十:点阵LED简单图形显示技术 82 10.1子情境内容:利用单片机AT89C52在8×8点阵上逐次显示心形、圆形和菱形图。 82 10.2 子情境目标: 82 (1)通过学习点阵LED显示技术,掌握单片机与点阵的接口电路。 82 (2)进一步熟悉单片机I/O口的运用方法,了解动态显示的编程方法 82 10.3 知识点链接 82 10.4 任务步骤 83 10.4.1 步骤一:PROTEUS电路设计,LED点阵的原理图如图5-56所示。 83 10.4.2 步骤二:源程序设计与目标代码文件生成 84 (1)程序流程图 84 (2)源程序设计 85 10.4.3 步骤三:PROTEUS仿真 87 10.5 扩展练习 88

12,889

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧