单片机课设-数码管显示滚动控制

合集下载

数码管滚动显示课程设计

数码管滚动显示课程设计

数码管滚动显示课程设计一、课程目标知识目标:1. 学生能理解数码管的基本结构和工作原理;2. 学生能掌握数码管滚动显示的编程方法;3. 学生能了解数码管在现实生活中的应用。

技能目标:1. 学生能够运用所学知识,设计出数码管滚动显示的程序;2. 学生能够通过实际操作,调试并优化数码管滚动显示的效果;3. 学生能够运用团队协作,共同完成数码管滚动显示的项目任务。

情感态度价值观目标:1. 学生对电子技术和编程产生兴趣,培养主动学习的习惯;2. 学生通过实际操作,体验科技创作的乐趣,提高创新意识和动手能力;3. 学生在团队协作中,学会沟通、分享、合作,培养集体荣誉感。

课程性质:本课程为电子信息技术课程的拓展与应用,结合编程实践,培养学生的动手能力、创新意识和团队合作精神。

学生特点:学生已具备一定的电子技术基础和编程知识,对新鲜事物充满好奇,喜欢动手实践。

教学要求:结合数码管滚动显示的实例,引导学生掌握电子技术和编程知识,注重培养学生的实际操作能力和团队协作能力,提高学生的科技素养。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 数码管基础知识:数码管的结构、工作原理、分类及特点;教材章节:第一章第二节“显示器件介绍”。

2. 数码管编程原理:数码管显示原理、编程方法、滚动显示实现;教材章节:第二章第五节“数码管编程与应用”。

3. 实践操作:数码管滚动显示程序设计、调试与优化;教材章节:第三章“实践操作”中的实例四“数码管滚动显示”。

4. 团队协作项目:分组进行项目实践,完成数码管滚动显示任务;教材章节:第四章“团队协作项目”。

教学进度安排:第一课时:数码管基础知识学习,了解数码管的种类、结构和工作原理;第二课时:数码管编程原理学习,掌握编程方法和滚动显示实现;第三课时:实践操作,分组进行数码管滚动显示程序设计、调试与优化;第四课时:团队协作项目,完成数码管滚动显示任务,并进行展示和评价。

单片机显示控制课程设计

单片机显示控制课程设计

单片机显示控制课程设计一、课程目标知识目标:1. 让学生理解单片机显示控制的基本原理,掌握显示器件的工作机制;2. 学会使用编程语言对单片机进行编程,实现字符、图形的显示控制;3. 了解单片机显示控制在不同应用场景下的实际运用。

技能目标:1. 培养学生动手操作能力,能够独立完成单片机显示控制电路的搭建;2. 提高学生编程能力,使其能够熟练编写并调试显示控制程序;3. 培养学生分析问题和解决问题的能力,能够针对实际应用场景设计合适的显示控制方案。

情感态度价值观目标:1. 培养学生对单片机技术的兴趣,激发其学习热情;2. 培养学生团队协作精神,使其在合作中共同解决问题;3. 增强学生的创新意识,鼓励其勇于尝试新的显示控制方法。

课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手操作能力和实际应用能力。

学生特点:学生具备一定的单片机基础知识,对编程和电路搭建有一定了解,但实践经验不足。

教学要求:教师应注重理论与实践相结合,通过讲解、示范、指导等教学手段,帮助学生掌握单片机显示控制技术,并能够将其应用于实际项目中。

同时,关注学生的个体差异,给予个性化的指导和支持。

通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程的学习打下坚实基础。

二、教学内容1. 单片机显示控制原理:讲解显示器件的工作原理,如LED、LCD等,分析单片机与显示器件的接口技术。

- 教材章节:第二章 单片机显示技术基础2. 显示控制编程:介绍单片机编程语言,以C语言为例,讲解显示控制编程方法,实现字符、图形的显示。

- 教材章节:第三章 单片机显示控制编程3. 电路设计与搭建:指导学生进行显示控制电路的设计与搭建,包括硬件连接、调试等。

- 教材章节:第四章 单片机显示控制系统设计4. 实践项目:开展单片机显示控制实践项目,如电子时钟、温度显示等,让学生在实际操作中掌握所学知识。

- 教材章节:第五章 单片机显示控制应用实例5. 创新设计与展示:鼓励学生进行创新设计,将所学知识应用于实际项目中,并进行展示和交流。

数码显示控制实验报告(3篇)

数码显示控制实验报告(3篇)

第1篇一、实验目的1. 熟悉数码显示模块的结构和工作原理;2. 掌握51单片机控制数码显示模块的方法;3. 学会使用移位寄存器实现数码显示的动态扫描;4. 提高单片机编程能力和实践操作能力。

二、实验原理数码显示模块是一种常见的显示器件,主要由7段LED组成,可以显示0-9的数字以及部分英文字符。

51单片机通过控制数码显示模块的段选和位选,实现数字的显示。

移位寄存器是一种常用的数字电路,具有数据串行输入、并行输出的特点。

在本实验中,使用移位寄存器74HC595实现数码显示的动态扫描。

三、实验仪器与材料1. 51单片机实验板;2. 数码显示模块;3. 移位寄存器74HC595;4. 电阻、电容等电子元件;5. 电路连接线;6. 编译软件Keil uVision;7. 仿真软件Proteus。

四、实验步骤1. 电路连接(1)将51单片机的P1口与数码显示模块的段选端相连;(2)将74HC595的串行输入端Q(引脚14)与单片机的P0口相连;(3)将74HC595的时钟端CLK(引脚11)与单片机的P3.0口相连;(4)将74HC595的锁存端LR(引脚12)与单片机的P3.1口相连;(5)将数码显示模块的位选端与74HC595的并行输出端相连。

2. 编写程序(1)初始化51单片机的P1口为输出模式,P3.0口为输出模式,P3.1口为输出模式;(2)编写数码显示模块的段码数据表;(3)编写74HC595的移位和锁存控制函数;(4)编写数码显示模块的动态扫描函数;(5)编写主函数,实现数码显示模块的循环显示。

3. 编译程序使用Keil uVision编译软件将编写的程序编译成hex文件。

4. 仿真实验使用Proteus仿真软件进行实验,观察数码显示模块的显示效果。

五、实验结果与分析1. 编译程序后,将hex文件下载到51单片机实验板上;2. 使用Proteus仿真软件进行实验,观察数码显示模块的显示效果;3. 通过实验验证,数码显示模块可以正常显示0-9的数字以及部分英文字符;4. 通过实验,掌握了51单片机控制数码显示模块的方法,学会了使用移位寄存器实现数码显示的动态扫描。

单片机课程设计报告——16x16LED滚动显示

单片机课程设计报告——16x16LED滚动显示

16x16LED滚动显示课程设计:单片机课程设计专业名称:电气工程及其自动化学号:学生姓名:同组人员:指导教师:2014年12月8日课程设计任务书2014 ~2015 学年第1学期学生姓名:专业班级:电气工程及其自动化2012级(2)班指导教师:工作部门:一、课程设计题目:16x16LED滚动显示二、课程设计内容1. 根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。

要求概念清楚、方案合理、方法正确、步骤完整;2. 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;3. 熟练使用单片机汇编语言或C51进行软件设计;4. 熟练使用Proteus、Keil软件进行仿真电路测试;5. 熟练使用Protel软件设计印刷电路板;6. 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;7. 编写设计报告,参考毕业设计论文格式。

(1)根据课题要求确定系统设计方案;(2)绘制系统框图、系统仿真原理图(印刷电路板图),列出元器件明细表;(3)计算电路参数和选择元器件,画出软件框图,列出程序清单;(4)打印仿真结果,根据测试结果进行误差分析与修改调整;(5)对设计进行全面总结。

三、进度安排2.执行要求单片机应用课程设计共9个选题,学生可自选课题。

每组不超过2人,为避免雷同,在设计中每个同学所采用的方案不可一样。

四、课程设计考核办法与成绩评定六、课程设计参考资料[1]贺哲荣.AT89S51单片机硬件设计与编程实例.北京:中国电力出版社.2012[2]李泉溪.单片机原理与应用实例仿真.北京:北京航空航天大学出版社,2012.[3]王平.单片机应用设计与制作.北京:清华大学出版社, 2012.[4]彭为等.单片机典型系统设计实例精讲. 北京:电子工业出版社,2007[5]王庆利等.单片机设计案例实践教程.北京:北京邮电大学出版社,2008[6]韩志军等.单片机应用系统设计——入门向导与设计实例.北京:机械工业出版社,2005[7]皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,2010指导教师:2014年12月8日教研室主任:2014年12 月8 日目录摘要 (1)引言 (2)一16×16LED点阵的总体设计 (3)1.1 设计的功能要求 (3)1.2 设计论证 (3)1.3 实验原理 (3)1.4 总体设计框图 (4)二硬件设计 (4)2.1 主要芯片介绍 (4)2.2 16×16LED点阵显示制作 (7)2.3用4个8×8LED点阵构成16×16LED点阵 (8)2.4实验电路及连线 (8)三软件设计 (8)3.1实验要求及程序流程图 (9)3. 2 程序清单 (15)四实验结果 (16)五系统调试 (17)六心得体会 (17)七参考文献 (18)摘要本设计使用AT89C55系列高速单片机作为主控制模块,利用简单的外围电路来驱动16×16的点阵LED显示屏。

单片机实验3 数码管控制实验-动态显示

单片机实验3  数码管控制实验-动态显示
/**********实验二数码管控制实验-动态显示**************/
;实验名称:数码管动态显示
;功能:4位数码管循环显示“0123”“4567”“89AB”“CDEF”,间隔0.5S。
;编写人:陈建泽
;编写时间:2010年11月2日
/**********************程序代码************************/
D1MS: MOV R2,#250 ;250*(1+1+2)=1000us=1ms
L1:NOP
NOP
DJNZ R2,L1
RET
/*****************中断服务子程序*****************/
T0_INT:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
MOV A,R4
CJNE A,#16,L3
AJMP MAIN
L3:MOV R5,A
AJMP L1
DIS:MOV P2,R6;用A作为中间寄存器,因后面要循环显示
MOV A,R5
ACALL SQR ;查表
MOV P0,A
ACALL D1MS ;1ms
INC R5
MOV A,R6
RL A;指向下一位
MOV R6,A
RET;子程序返回
TAB: DB 0C0H,0F9H,0A4H,0B0H ;共阳极字型码表0、1、2、3
DB 99H, 92H, 82H, 0F8H;共阳极字型码表4、5、6、7
DB 80H, 90H, 88H, 83H;共阳极字型码表8、9、A、B
DB 0C6H,0A1H,86H, 8EH;共阳极字型码表C、D、E、F

单片机课设数码管同时循环显示0-9

单片机课设数码管同时循环显示0-9

电子信息工程学院电子设计应用软件训练任务【训练任务】:1、熟练掌握PROTEUS软件的使用;2、按照设计要求绘制电路原理图;3、能够按要求对所设计的电路进行仿真;【基本要求及说明】:1、按照设计要求自行定义电路图纸尺寸;2、设计任务如下:利用51单片机、BCD译码芯片和两位LED构成一个数码管扫描显示系统,两个数码管同时循环显示0~9。

3、按照设计任务在Proteus 6 Professional中绘制电路原理图;4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。

【按照要求撰写总结报告】指导教师年月日负责教师年月日学生签字年月日成绩评定表摘要该专业是前沿学科,现代社会的各个领域及人们日常生活等都与电子信息技术有着紧密的联系。

全国各地从事电子技术产品的生产、开发、销售和应用的企事业单位很多,随着改革步伐的加快,这样的企事业单位会越来越多。

为促进市场经济的发展,培养一大批具有大专层次学历,能综合运用所学知识和技能,适应现代电子技术发展的要求,从事企事业单位与本专业相关的产品及设备的生产、安装调试、运行维护、销售及售后服务、新产品技术开发等应用型技术人才和管理人才是社会发展和经济建设的客观需要,市场对该类人才的需求越来越大。

为此电子信息工程专业的人才有着广泛的就业前景,毕业生可从事电子设备、信息系统和通信系统的研究、设计、制造、应用和开发工作。

目录一、任务说明 (1)1.1 专业介绍 (1)1.2 专业背景与市场预测 (1)1.3 本课题分析 (1)二、绘制原理图 (2)2.1 Proteus软件介绍 (2)2.2 原理图绘制说明 (2)2.3 原理图绘制步骤 (3)三、程序编译说明及程序流程图 (6)3.1 Main程序说明 (6)3.2 初始化子程序说明 (6)3.3 display(uchar tmp)子程序说明 (7)3.4 延时子程序说明 (8)3.5 中断子程序说明 (9)四、Proteus仿真说明 (11)4.1 导入仿真文件 (11)4.2 进行仿真 (12)五、课程设计体会及合理化建议 (14)致谢 (16)一、任务说明1.1专业介绍电子信息工程是一门应用计算机等现代化技术进行电子信息控制和信息处理的学科,主要研究信息的获取与处理,电子设备与信息系统的设计、开发、应用和集成。

单片机课程设计-16x16LED滚动显示PPT课件

单片机课程设计-16x16LED滚动显示PPT课件

设计总结
实现功能
01
成功实现了16x16 LED点阵的滚动显示,可以显示数字、字母
和简单的汉字。
遇到的问题和解决方案
02
在编程过程中遇到了数据传输速度慢和驱动能力不足的问题,
通过优化代码和增加驱动芯片的方式解决了问题。
收获与体会
03
通过本次设计,深入了解了单片机的原理和应用,提高了编程
和电路设计能力,对嵌入式系统有了更深刻的认识。
设计单片机与驱动芯片之间的连接电路,确保数 据传输的稳定性和可靠性。
考虑电源的分配和接地问题,确保整个系统的稳 定运行。
电路板制作
01
根据设计的原理图,使 用专业的电路板制作软 件绘制PCB图。
02
03
选择合适的电路板材料 和尺寸,确保能够承载 所有元器件并方便安装。
在制作过程中,注意元 器件的布局和布线规则, 以提高系统的可靠性和 稳定性。
驱动电路可以采用恒流驱动或恒压驱动方式,根据不同的应用场景选择 合适的驱动方式。
驱动电路的性能直接影响LED显示屏的亮度、色彩、稳定性等指标,因 此选择优质的驱动电路是保证LED显示屏质量的关键。
04 滚动显示程序设计
显示模式选择
静态显示
整个LED显示屏显示同一内容, 不进行滚动。
横向滚动
LED显示屏从左向右移动,显示 内容连续更新。
实际应用价值
01
LED滚动显示在广告、宣传、信息发布等领域有广泛的应用,本 设计可以作为这些领域的基础硬件平台。
02
由于本设计采用了模块化的设计思想,可以方便地进行功能扩
展和定制,具有较高的实用价值。
本设计还可以应用于教学和科研领域,作为单片机原理和应用

八位数码管滚动显示案例设计说明

八位数码管滚动显示案例设计说明

“八位数码管滚动显示”程序设计说明1程序设计思路8位数码管动态扫描是经典的测试数码管是否正常工作和学习使用数码管显示的案例,首先要理解段选和位选概念,段选是选择一个数码管上哪个发光二极管发光,而位选则是选择八个数码管中哪个数码管来显示。

8位数码管动态扫描电路连接示意图2关键代码设计说明2.1公共变量定义及说明sbit Sel0=P2^0;//sbit Sel1=P2^1;//sbit Sel2=P2^2;//位选的三个引脚控制位uchar show_w1;uchar show_w2;uchar show_w3;uchar show_w4;uchar show_w5;uchar show_w6;uchar show_w7;uchar show_w8;//show_wi(i=1,2,3,4,……,8)分别是对应左到右的各个数码管上的显示的数字uchar flag;//分频作用,同时用作位选下标uchar count;//分频作用的变量uchar duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x40,0x00}; //段选,显示0-fuchar weixuan[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //位选,选择是0-7中的一个数码管2.2 Init():完成初始化配置;(1)P0和P2口需要设置成推挽模式输出,以驱动LED数码管正常显示。

P2M1=0x00; P2M0=0xff; P0M1=0x00; P0M0=0xff;(2)TMOD=0x01; //定时器0采用模式1(3)打开中断并允许定时器0中断EA=1;//打开总中断ET0=1;//允许定时器0中断TR0=1;//启动定时器0(4)设置定时器初始值TH0=(65535-1000)/256; TL0=(65535-1000)%256;(5)设置位选位flag初始值为0;(6)为每个数码管要显示的内容赋初值show_w1=0;show_w2=1;show_w3=2;show_w4=3;show_w5=4;show_w6=5;show_w 7=6;show_w8=7;2.3void timer0() interrupt 1当定时器0初始值不断加一最终溢出时激发的处理方法。

数码管左滚动课程设计

数码管左滚动课程设计

数码管左滚动课程设计一、课程目标知识目标:1. 理解数码管的基本结构和工作原理;2. 掌握数码管左滚动显示的程序设计方法;3. 了解数字电路中基本逻辑门的功能和应用。

技能目标:1. 能够正确连接数码管电路,并进行调试;2. 能够编写数码管左滚动显示的程序,实现数字的连续显示;3. 能够运用所学知识解决实际问题,提高编程和动手能力。

情感态度价值观目标:1. 培养学生对电子技术的兴趣和爱好,激发创新精神;2. 培养学生团队协作意识,提高沟通与交流能力;3. 培养学生严谨、细致的学习态度,养成良好的学习习惯。

课程性质:本课程为电子信息类学科实践课程,结合理论教学,注重培养学生的动手能力和实际操作技能。

学生特点:学生处于初中或高中年级,具备一定的电子基础知识和编程能力,对新鲜事物充满好奇,喜欢实践操作。

教学要求:教师应注重理论与实践相结合,引导学生主动参与实践,鼓励学生独立思考和解决问题,关注个体差异,提高教学质量。

通过本课程的学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。

二、教学内容1. 数码管基本结构:介绍数码管的结构、类型及工作原理,重点讲解共阴极和共阳极数码管的区别及使用方法。

教材章节:第二章第二节《数字显示器件》2. 逻辑门电路:回顾与数码管显示相关的逻辑门电路(如与门、非门等)的功能和应用。

教材章节:第一章第三节《基本逻辑门电路》3. 数码管左滚动程序设计:讲解数码管左滚动显示程序的设计思路、流程图绘制及编程实现。

教材章节:第三章第四节《动态扫描显示技术》4. 电路连接与调试:学习数码管电路的连接方法,进行实际操作,掌握调试技巧。

教材章节:第二章第三节《数字显示器件的连接与调试》5. 实践操作:设计并实现一个简单的数码管左滚动显示项目,提高学生的动手能力。

教材章节:第四章《实践项目》教学进度安排:第一课时:回顾数码管基本结构及工作原理,介绍共阴极和共阳极数码管的使用方法。

第二课时:回顾逻辑门电路,为数码管左滚动程序设计打下基础。

单片机课设数码管同时循环显示0-9

单片机课设数码管同时循环显示0-9

电子信息工程学院电子设计应用软件训练任务【训练任务】:1、熟练掌握PROTEUS软件的使用;2、按照设计要求绘制电路原理图;3、能够按要求对所设计的电路进行仿真;【基本要求及说明】:1、按照设计要求自行定义电路图纸尺寸;2、设计任务如下:利用51单片机、BCD译码芯片和两位LED构成一个数码管扫描显示系统,两个数码管同时循环显示0~9。

3、按照设计任务在Proteus 6 Professional中绘制电路原理图;4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。

【按照要求撰写总结报告】指导教师年月日负责教师年月日学生签字年月日成绩评定表摘要该专业是前沿学科,现代社会的各个领域及人们日常生活等都与电子信息技术有着紧密的联系。

全国各地从事电子技术产品的生产、开发、销售和应用的企事业单位很多,随着改革步伐的加快,这样的企事业单位会越来越多。

为促进市场经济的发展,培养一大批具有大专层次学历,能综合运用所学知识和技能,适应现代电子技术发展的要求,从事企事业单位与本专业相关的产品及设备的生产、安装调试、运行维护、销售及售后服务、新产品技术开发等应用型技术人才和管理人才是社会发展和经济建设的客观需要,市场对该类人才的需求越来越大。

为此电子信息工程专业的人才有着广泛的就业前景,毕业生可从事电子设备、信息系统和通信系统的研究、设计、制造、应用和开发工作。

目录一、任务说明 (1)1.1 专业介绍 (1)1.2 专业背景与市场预测 (1)1.3 本课题分析 (1)二、绘制原理图 (2)2.1 Proteus软件介绍 (2)2.2 原理图绘制说明 (2)2.3 原理图绘制步骤 (3)三、程序编译说明及程序流程图 (6)3.1 Main程序说明 (6)3.2 初始化子程序说明 (6)3.3 display(uchar tmp)子程序说明 (7)3.4 延时子程序说明 (8)3.5 中断子程序说明 (9)四、Proteus仿真说明 (11)4.1 导入仿真文件 (11)4.2 进行仿真 (12)五、课程设计体会及合理化建议 (14)致谢 (16)一、任务说明1.1专业介绍电子信息工程是一门应用计算机等现代化技术进行电子信息控制和信息处理的学科,主要研究信息的获取与处理,电子设备与信息系统的设计、开发、应用和集成。

单片机课设数码管显示滚动控制

单片机课设数码管显示滚动控制

《单片机设计与实训》设计报告题目:数码管滚动显示控制姓名:王伟杰班级:自动化四班学号: 2014550430指导老师:张莹提交日期: 2016年10月29日目录一、设计题目与要求 (3)1.1设计题目 (3)1.2设计要求 (3)二、系统方案设计 (3)2.1硬件电路设计 (3)1.单片机最小系统简介 (3)2.数码管显示电路 (6)2.3硬件选型及说明 (6)1. ST89C51单片机 (6)2.四位一体七段共阴极显示数码管 (8)三、系统原理图设计与仿真 (9)3.1系统仿真图 (9)3.2系统仿真结果 (10)四、程序设计 (11)4.1程序设计 (11)4.2程序流程图 (12)五、系统调试 (14)5.1系统硬件调试 (14)5.2系统软件调试 (14)六、总结与体会 (14)附录一 (16)附录二 (17)附录三 (27)一、设计题目与要求单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。

单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。

单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO 口的功能扩展,使制作的单片机系统具有一定的功能。

1.1设计题目数码管滚动显示控制1.2设计要求自制一个单片机最小系统,包括串口下载、复位电路,采用两个四位一体数码管作为显示器件,通过按钮选择实现四种滚动显示模式,例如从左至右,从右至左,内缩,外扩等,滚动信息可以是数字或有意义的英文字符。

二、系统方案设计2.1硬件电路设计本设计的硬件电路主要包括的模块有:单片机最小系统、七段数码管显示模块、1.单片机最小系统简介单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。

单片机课程设计-8位8段LED数码管动态显示

单片机课程设计-8位8段LED数码管动态显示

华南理工大学广州汽车学院单片机课程设计题目:8位8段LED数码管动态扫描专业:电子信息工程班级:09电信(1)班姓名:付锦辉学号:2745一、内容要求:在8位8段LED数码管显示“,之后灭显示器200ms;然后显示“WELCOM-1”(由于8位8段LED数码管显示不能显示字母W 和M,所以改为显示“HELLO-93”)二、目的和意义1、掌握数码管动态扫描显示原理及实现方法。

2、掌握动态扫描显示电路驱动程序的编写方法。

三、总体方案设计思路LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。

这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。

动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。

其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。

而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。

再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。

采用总线驱动器74HC245提供LED数码管的段驱动,输出高电平时点亮相应段;采用集电极开路的BCD-十进制译码器/驱动器完成LED数码管位驱动,输出低电平时选通相应位。

P2口每个口线输出灌电流不足以驱动一个数码管显示器的位-公共极,所依通过集电极开路的BCD-十进制译码器/驱动器7445驱动,即节约P2口线,又增加驱动能力。

单片机课程设计报告--LCD1602字符液晶滚动演示程序

单片机课程设计报告--LCD1602字符液晶滚动演示程序

单片机原理与应用综合实验报告LCD1602字符液晶滚动演示程序专业班级:姓名:学号:时间:指导教师:2012年 05月 23日LCD1602字符液晶滚动演示程序摘要:本设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机89C51,采用的液晶显示器是LCD1602,主要用来显示字母、数字、符号,滚屏、左右移动以及实时控制功能。

同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程。

本设计还介绍了显示原理、硬件电路和软件部分的设计原理。

关键词:1602液晶显示器 89C51单片机并行通信1 引言:液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。

近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。

液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。

字符型LCD是一种用5×7点阵图形来显示字符的液晶显示器。

点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。

支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。

点阵型LCD是现代单片机应用系统中最常用的人机交互界面之利用单片机控制液晶显示系统的原理,完成单片机液晶显示系统的设计,我希望能够触类旁通,灵活应用其他型号的液晶显示控制器。

将来如果有机会从事这方面的工作,要运用的液晶显示控制器不一定是KS0108,但这次毕业设计中学到的东西为此打下了良好的基础,相信自己能做好这方面的工作。

2 总体设计方案2.1 设计思路2.1.1 本设计主要是通过控制89C51单片同的引脚来控制LCD1602显示给定的符号、字母、数字,以及控制显示内容的垂直移动和水平移动。

单片机课程设计——16x16LED滚动显示

单片机课程设计——16x16LED滚动显示

实验结果
实验电路及连线

电路主要由单片机和一些外部设备连接而成, 利用4个8*8LED显示组装成16*16LED显示,2个R*8 排电阻,一个74HC154组成。该显示器采用 AT89C55单片机作为控制器, 12MHz 晶振,其中 P0 口作为字符数据输出口, P2 口作为显示器扫描输 出口,第 31 管脚( EA )接电源。电路包括单片机、 电源电路、时钟电路、复位电路、驱动电路和LED 点阵电路等。本设计的核心是利用单片机读取显 示字型码,通过驱动电路对16×16LED点阵进行动 态扫描,以实现汉字的滚动显示。
系统调试

软件调试:软件为网络所提供,其原理在上一模块已 作说明,在这里再作说明,软件经调试无误,直接将其下 再到单片机中,看是否达到所要的效果软件部分是先参考 书上的例子,然后自己根据硬件电路写程序,由于以前所 学是单片机汇编语言,所以这个系统在编写程序过程中都 采用汇编语言编写。刚刚开始,编写不会一次性通过,经 过仔细分析修改最后编译成功。但是,在实际写如 C55 中, LED 显示屏出现各种各样的乱码,通过再次认真仔细分析 多次修改程序后,程序能够正常运行。 硬件调试:在对各个硬件模块进行调试时,要保证软 件正确情况下去测试软 件,要不然会发生错误,硬件仿 真前要认真检验点阵及线路的好坏,检查无误后才下载主 程序。
软件设计
本软件要求实现如下要求:汉字要稳定、明亮并且文字要以一定速度上升滚动显 示。 显示屏软件模块:初始化程序、主程序、多字滚动、显示程序、扫描程序。显示 程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求 显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第 二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫 描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定 时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等 工作,由主程序来实现。 显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率 的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下: 刷频率(帧频)=1/16×T0溢=1/16×f/12(65536-t) 其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。 然后显示驱 动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发 送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭 显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打 开显示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机设计与实训》设计报告题目:数码管滚动显示控制姓名:王伟杰班级:自动化四班学号: 2014550430指导老师:莹提交日期: 2016年10月29日目录一、设计题目与要求 (3)1.1设计题目 (3)1.2设计要求 (3)二、系统方案设计 (3)2.1硬件电路设计 (3)1.单片机最小系统简介 (3)2.数码管显示电路 (6)2.3硬件选型及说明 (6)1. ST89C51单片机 (6)2. 四位一体七段共阴极显示数码管 (8)三、系统原理图设计与仿真 (9)3.1系统仿真图 (9)3.2系统仿真结果 (10)四、程序设计 (11)4.1程序设计 (11)4.2程序流程图 (12)五、系统调试 (14)5.1系统硬件调试 (14)5.2系统软件调试 (14)六、总结与体会 (14)附录一 (16)附录二 (17)附录三 (27)一、设计题目与要求单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机部资源的使用。

单片机课程设计容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。

单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机部资源及外部IO口的功能扩展,使制作的单片机系统具有一定的功能。

1.1设计题目数码管滚动显示控制1.2设计要求自制一个单片机最小系统,包括串口下载、复位电路,采用两个四位一体数码管作为显示器件,通过按钮选择实现四种滚动显示模式,例如从左至右,从右至左,缩,外扩等,滚动信息可以是数字或有意义的英文字符。

二、系统方案设计2.1硬件电路设计本设计的硬件电路主要包括的模块有:单片机最小系统、七段数码管显示模块、1.单片机最小系统简介单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。

结构图如下:图2.1单片机最小系统各部分的功能介绍如下:复位电路:复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

MCS-51单片机的复位电路由片、片外两部分组成,进行复位操作时,外部电路需在复位引脚RST端产生大于两个机器周期的高电平信号,RST引脚通过片施密特触发器与复位电路相连(施密特触发器的作用是脉冲整型和抑制噪声)。

MCS-51单片机的复位操作有两种方式:上电复位和上电按钮复位。

图2.2复位电路图晶振电路(时钟电路): 时钟电路是单片机的心脏,它用于产生单片机工作所需要的时钟信号。

单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

单片机的时钟产生方法有部时钟方式和外部时钟方式,大多数单片机应用系统采用部时钟方式,本系统采用的亦是部时钟方式。

在MCS-51芯片部有一个高增益反相放大器,XTAL1、XTAL2引脚分别为该反相放大器的输入端和输出端,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。

图2.3时钟电路图2.数码管显示电路图2.4数码显示电路2.3硬件选型及说明1.ST89C51单片机MCS-51把微型计算机的主要部件都集成在一块心片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。

由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能力加强,工作亦相对稳定。

因此,在工业测控系统中,使用单片机是最理想的选择。

单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。

8051是MCS-51系列单片机的典型产品。

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线:引脚介绍:电源:VCC - 芯片电源,接+5V;VSS - 接地端;时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端控制线:⑴ ALE/PROG:地址锁存允许/片EPROM编程脉冲:① ALE功能:用来锁存P0口送出的低8位地址;② PROG功能:片有EPROM的芯片,在EPROM 编程期间,此引脚输入编程脉冲。

⑵ PSEN:外ROM读选通信号。

⑶ RST/VPD:复位/备用电源:① RST(Reset)功能:复位信号输入端;② VPD功能:在Vcc掉电情况下,接备用电源。

⑷ EA/Vpp:外ROM选择/片EPROM编程电源:① EA功能:外ROM 选择端;② Vpp功能:片有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

I/O线:4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

图2.5 89c51引脚图2. 四位一体七段共阴极显示数码管图2.6数码管引脚图三、系统原理图设计与仿真3.1系统仿真图图3.1系统仿真图3.2系统仿真结果图3.2系统正在运行图3.3系统正在运行四、程序设计4.1程序设计数码管动态显示程序包含显示数字、部分字母符号、小数点、数码管闪烁、数码管消隐等。

其它程序输出到显示程序的数据既可以是BCD码、二进制码、ASCII码、自定义显示码等。

由硬件电路工作原理可知,为了显示稳定的数据,每秒必须显示数据50次以上,才能达到预期目的。

MCS-51 单片机部有两个16 位可编程的定时器/计数器T0 和T1。

它们即可用作定时器方式,又可用作计数器方式。

其中T0 由TH0 和TL0 计数器构成;T1 由TH1 和TL1 计数器构成。

工作于定时器方式时,通过对机器周期(新型51单片机可以对振荡周期计数)的计数,即每一个机器周期定时器加1,来实现定时。

故系统晶振频率直接影响定时时间。

如果晶振频率为12MHZ,则定时器每隔(1/12MHZ)×12=1us 加1。

工作于计数器方式时,对P3.4 或P3.5 管脚的负跳变(1→0)计数。

它在每个机器周期的S5P2 时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,计数器加1。

因此需要两个机器周期来识别一个有效跳变,故最高计数频率为晶振频率的1/24。

特殊功能寄存器TMOD 用于定时器/计数器的方式控制。

高4 位用于设置T1,低4 位用于设置T0。

单片机部定时器/计数器的使用,简而概之:(1)如需用中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。

(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。

4.2程序流程图图4.1主程序图五、系统调试5.1系统硬件调试在领完课程设计所需的元器件并检查是否是自己所需要,并且根据电路原理图进行电路板的焊制,在焊接过程中注意不要虚焊和短路。

焊接完成后首先对电路板上的线路进行检查是否有错漏和重复。

并且用万用表测试电路中有无虚焊短接的情况。

在测试无误后,向单片机烧录程序,并接通电源进行测试。

在第一次上电过程中,数码管并没有显示出如期的结果,用万用表对焊接点进行再一次的排查并对线路进行检查,发现单片机底座有几个虚焊点,并重新对其进行焊制。

5.2系统软件调试在keil编译器下进行程序的编写,以子程序为单位进行调试,并且利用proteus软件进行仿真实验并结合电路板进行整机调试。

六、总结与体会此次的课程设计是基于单片机的数码管滚动显示控制。

单片机是自动化的重要课程,学习的时候十分用心,也同时也为这次的课程设计打下了理论基础。

但是由于学习到的更多涉及于课本知识并没有灵活的掌握,所以说在设计的过程中也需要不断的翻阅书籍,以此来达到完成顺利完成课程设计任务,在这段学习与制作的过程中巩固了我在课堂上学习到的容,而且锻炼到了我个人的自我学习能力及制作能力。

在课程设计最开始是做Proteus仿真,从最小系统开始做。

单片机最小系统是指用最少的元件组成的单片机可以工作的系统。

应该包括:单片机、晶振电路、复位电路等。

我上学期做过数电的课程设计所以这次看到器件这么少电路图这么简单还觉得很高兴。

然而做完仿真开始焊接时才发现从单片机芯片出来的连接数码管的线路在仿真中隐藏了只留下了引脚,导致我在焊接的时候一下多了十多根线打乱我的节奏,好在最后还是踉踉跄跄地焊完了。

在第一次调试的时候并没有现象,这令我十分惶恐,仔细检查才发现仿真中21 20引脚的都略去了而这几个针脚正是连接vcc跟地的引脚,后来将它焊上了。

给我的启发是以后在做完仿真焊接的时候一定要每个引脚的过,因为仿真中它将芯片的引脚打乱了顺序而且有的引脚也省略了,仿真跟真实的焊接还是不同的。

还有就是拿到仿真先别急着焊接,还是要大致地考虑器件的布局跟正反面的走线,提前理清思路焊的时候才能游刃有余,不至于慌忙。

而且在制作仿真的过程中也有了瓶颈,大一学的c语言忘得差不多了好在同学的帮助下才解决了问题,另外焊接只是一方面,后续的检测诊断才是关键,不可能一下子焊好就可以使用,在焊接的过程中难免有一些焊点漏焊虚焊的。

每一次的课程设计对我都是一种拔高跟历练,在一次次的课程设计中我会不断地进步,提升自己的解决问题的能力,跟动手焊接能力,还有故障排查能力,做课程设计固然需要智慧然而坚持跟耐心也是很关键的,这几样缺一不可,否则很难做出成功的作品。

我相信我会一步步地慢慢变好变强。

附录一元器件清单附录二#include<reg51.h>//--定义使用的IO口--//#define GPIO_DIG P2 //段选#define GPIO_PLACE P0 //位选sbit k =P1^0;//--定义全局变量--//unsigned char code DIG_PLACE[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制查表的方法控制unsigned char code DIG_CODE[17] = {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、d、E、F的显示码unsigned char DisplayData[8];//用来存放要显示的8位数的值//--声明全局函数--//void Displaykey();void Runkey();void first();void step1();void step2();void step3();void step4();signed char delay;signed char i;unsigned char j;signed char i1;unsigned char step=1;/******************************************************************** ************ 函数名 : main* 函数功能 : 主函数********************************************************************* **********/void main(void){unsigned char a;for(a=0; a<8; a++){DisplayData[a] = DIG_CODE[a];} //存放段码first(); //设置定时器初值和工作方式while(1){Displaykey(); //扫描按键Runkey(); //执行相对应的按键步骤}}/******************************************************************** ************ 函数名 :first()* 函数功能 : 设置初值********************************************************************* **********/void first(){TMOD=0x01; //设置T0为定时器工作方式0TH0=(65536-20000)/256;TL0=(65536-20000)%256; //设置计数器初值,定时时间为20msIE=0x82; //允许定时器0中断}/******************************************************************** ************ 函数名 :Displaykey();* 函数功能 : 按键扫描********************************************************************* **********/void Displaykey(){if(k==0)TR0=1; //启动定时器0}/******************************************************************** ************ 函数名 :void time0() interrupt1 using 1* 函数功能 : 定时器0********************************************************************* **********/void time0() interrupt 1 using 1{unsigned char a;TH0=(65536-20000)/256;TL0=(65536-20000)%256; //方式1需要重置定时器的初值if(k==0) //定时20ms去除按键抖动{while(1){if(k==1) break; //判断按键是否弹起}step=step+1; //进入下一个工作方式if(step==5)step=1;switch(step){case 1: i=0; break; //设置步骤1的初值case 2: i=7; break; //设置步骤2的初值case 3: i=0; i1=7; break; //设置步骤3的初值case 4: i=3; i1=4; break; //设置步骤4的初值}}a++;while(a==20) //利用定时器进行延时延时时间为20ms*50=1s{a=0;delay=1; //延时结束标志位}TR0=0; //关闭定时器}/******************************************************************** ************ 函数名 :Runkey();* 函数功能 : 按键执行和选择********************************************************************* **********/void Runkey(){switch(step){case 1: step1(); break;case 2: step2(); break;case 3: step3(); break;case 4: step4(); break;}}/******************************************************************** ************ 函数名 : step1* 函数功能 : 右扫程序********************************************************************* **********/void step1(){GPIO_PLACE = DIG_PLACE[i]; //发送位选GPIO_DIG = DisplayData[i]; //发送段码j = 10; //扫描间隔时间设定while(j--);GPIO_DIG = 0x00;//消隐TR0=1; //开定时器延时while(delay==1){delay=0;i=i+1; //延时时间到,数码管位选移动while(i==8)i=0;}}/******************************************************************** ************ 函数名 : step2* 函数功能 : 左扫程序********************************************************************* **********/void step2(){GPIO_PLACE = DIG_PLACE[i]; //发送位选GPIO_DIG = DisplayData[i]; //发送段码j = 10; //扫描间隔时间设定while(j--);GPIO_DIG = 0x00; //消隐TR0=1;while(delay==1){delay=0;i=i-1; //延时时间到,数码管位选移动while(i==-1)i=7;}}/******************************************************************** ************ 函数名 : step3* 函数功能 : 缩程序* 输入 : 无* 输出 : 无********************************************************************* **********/void step3(){GPIO_PLACE = DIG_PLACE[i]; //发送位选GPIO_DIG = DisplayData[i]; //发送段码j = 10; //扫描间隔时间设定while(j--);GPIO_DIG = 0x00; //消隐GPIO_PLACE = DIG_PLACE[i1]; //发送位选GPIO_DIG = DisplayData[i1]; //发送段码j = 10; //扫描间隔时间设定while(j--);GPIO_DIG = 0x00; //消隐TR0=1;while(delay==1){delay=0;i=i+1;i1=i1-1; //延时时间到,数码管位选移动while(i1==3){i=0;i1=7;}}}/******************************************************************** ************ 函数名 : step4* 函数功能 : 外扩程序********************************************************************* **********/void step4(){GPIO_PLACE = DIG_PLACE[i]; //发送位选GPIO_DIG = DisplayData[i]; //发送段码j = 10; //扫描间隔时间设定while(j--);GPIO_DIG = 0x00; //消隐GPIO_PLACE = DIG_PLACE[i1]; //发送位选GPIO_DIG = DisplayData[i1]; //发送段码j = 10; //扫描间隔时间设定while(j--);GPIO_DIG = 0x00; //消隐TR0=1;while(delay==1){delay=0;i=i-1;i1=i1+1; //延时时间到,数码管位选移动while(i1==8){i=3;i1=4;}}}附录三图1硬件原理图图2实物图(正面)图3实物图(背面)。

相关文档
最新文档