单片机课程设计LED报告
单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(MCU)编程,实现闪烁灯和跑马灯的控制。
我们将使用嵌入式C语言编程,通过了解单片机的内部结构、电路设计和编程流程,深入理解单片机的工作原理和应用。
二、系统硬件设计本课程设计选用51单片机作为主控芯片,外接8个LED灯和1个按键。
硬件电路设计如下:1.单片机:采用AT89C51,该芯片具有32K字节的Flash存储器,256字节的RAM,以及两个16位定时器/计数器。
2.LED灯:采用普通LED灯珠,与单片机引脚相连,通过编程控制LED灯的亮灭状态。
3.按键:采用机械按键,与单片机的外部中断0(EX0)相连,用于触发闪烁灯和跑马灯的切换。
三、系统软件设计1.闪烁灯模式:在此模式下,8个LED灯将按照一定的频率交替闪烁。
我们可以通过计时器和GPIO口控制LED灯的亮灭状态。
void blink_LED(void) {int i;while(1) {for(i = 0; i < 8; i++) {P1_0 = ~P1_0; // 翻转LED状态delay(500); // 延时,控制闪烁频率}}}2.跑马灯模式:在此模式下,8个LED灯将按照一定的顺序依次点亮。
我们可以通过计时器和GPIO口控制LED灯的亮灭状态。
void marquee_LED(void) {int i;int led_state[8] = {0, 1, 0, 1, 0, 1, 0, 1}; // LED状态数组,初始为交替亮灭while(1) {for(i = 0; i < 8; i++) {P1_0 = led_state[i]; // 设置LED状态delay(50); // 延时,控制跑马灯速度}}}四、按键处理程序我们通过外部中断0(EX0)接收按键信号,当按键按下时,将切换闪烁灯和跑马灯模式。
按键处理程序如下:void EX0_ISR(void) interrupt 0 { // EX0中断服务程序if (key_flag) { // 如果按键已经被按下过if (key_value == 0) { // 如果按键状态为低电平marquee_LED(); // 切换到跑马灯模式key_flag = 0; // 标记按键状态已经改变} else { // 如果按键状态为高电平blink_LED(); // 切换到闪烁灯模式key_flag = 0; // 标记按键状态已经改变}key_value = ~key_value; // 翻转按键状态值} else { // 如果按键还没有被按下过key_value = ~key_value; // 翻转按键状态值if (key_value == 0) { // 如果按键状态为低电平blink_LED(); // 切换到闪烁灯模式key_flag = 1; // 标记按键状态已经改变} else { // 如果按键状态为高电平marquee_LED(); // 切换到跑马灯模式key_flag = 1; // 标记按键状态已经改变}}}。
单片机课程设计--彩灯控制器的设计

单片机课程设计报告题目:彩灯控制器的设计专业:电气工程及其自动化班级:电气081学号:3080421034学生姓名:廖诗宇指导老师:王水鱼2010年秋季学期起止时间:2011年1月10日至2011年1月14日平时(10%)任务完成(30%)答辩(30%)课设报告(30%)总评成绩彩灯控制器设计一.系统功能及要求分析1)用8盏LED灯实现至四种以上的彩灯灯光效果。
2)通过输入按钮实现彩灯灯光效果的切换。
3)通过输入按钮实现暂停彩灯效果。
在暂停期间小灯全亮。
4)使用定时器实现通过89C51芯片控制LED。
使其显示出四种彩灯效果:自动先从上到下再从下到上。
自动分为从上到下和从上到下。
闪烁,先亮一.三.五.七,再亮二.四.六.八。
交替亮.,暂停时,小灯全亮。
二.方案设计及其说明以AT-89C51单片机作为主要控制器,与按键.显示器等硬件相结合.利用软件实现对LED彩灯进行控制.该系统特点有极小,硬件少,电路结构简单及容易操作等优点。
我们在实验中采用了一种基于AT-89C51单片机的彩灯控制方案。
本方案以AT-89C51单片机作为控制核心,与显示.驱动等模块组成主要控制模块,在主控模块上没有五个按键和8位LED显示器,根据用户需要可以编写若干种亮灯模式。
利用其内部定时器TD实现一个基本时间的定时中断,根据各种亮灯时间的不同需要,在不同的时刻输出灯亮或者灯灭的控制信号,然后驱动各种颜色的灯亮或者灯灭,整个系统龚做由软件控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯的时间和亮灯闪动的频率。
同时通过按键,可以实现工作模式切换的功能。
三.原理线路设计1.)原理线路(见打印图)2)工作原理说明通电后,接通开关1,系统经过初始化,会直接自动进入自动模式,即LED彩灯会自动顺序亮灯,而在自动模式下,用户根据自己需要选择其他手动模式,并且可以改变每种模式下的时间和频率的参数,本实验设定的默认延迟200MS,当开关2接通后会进入手动模式,手动模式下,有两种工作模式,当开关3断开断开时,LED灯会按照从上往下的顺序亮灯,最下方的灯亮后又会回到最上方的灯亮,当开关3接通时,LED灯则会按照从下到上的顺序亮灯。
单片机课程设计报告——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显示屏。
单片机课程设计报告流水灯(WORD档)

XX工程学院单片机课程设计报告题目:流水灯学生姓名:学号:系部名称:职业技术学院班级:机电一体化Z11-1 指导教师:目录摘要 (3)一、课程设计题目 (4)二、设计任务及要求 (4)三、实验方案 (4)四、流程图 (4)五、硬件电路 (6)六、软件设计 (6)1 主体程序 (6)2 键扫描子程序 (6)3 闪烁控制程序 (6)4 延时子程序 (6)5 源程序设计 (7)七、功能调试 (12)八、设计总结 (12)九、参考文献 (13)【摘要】单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
一、课程设计题目:流水灯二、设计任务及要求:任务:完成对接在P1,P3口的发光二极管闪亮控制程序的设计1.用程序延时方法让P1的一个LED小灯每隔1S交替闪亮2.用程序延时方法让P1的8个LED小灯循环(每个亮50MS)闪亮3.用程序延时方法让P1的8个LED小灯追逐闪亮(50MS间隔变化)4.用程序延时方法让P1、P3的16个LED小灯循环(每个亮50MS)闪亮要求:1. 根据硬件电路原理,画出接线2. 设计出相应的软件程序三、实验方案:方案:单片机采用40脚的89C52标准双列直插系列,有4个标准输入/输出端口共32位控制端口。
本次设计采用并行口低电平(吸电流)直接驱动LED发光管发光形式,选择了P1和P3口的16个端口进行模拟LED小灯控制,如要多些小灯单元可再将P2口、P0口及其他空余端口用LED小灯驱动控制。
因系统功能要求能控制灯亮的方式,在P0.0—P0.3端口接了4个按键小开关,每个小开关可控制一种亮灯方式。
在端口较紧张的情况下,LED小灯驱动也可用串入/并出移位寄存器(如74HC595),单片机用并行移位方式进行驱动。
基于51单片机的LED点阵显示屏系统的设计与实现课程设计报告书

课程设计题目:基于单片机的点阵电子显示屏设计(显示大学人民武装学院信息工程系)毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示意。
作者签名:日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分容。
的论文(设计)在解密后适用本规定。
作者签名:指导教师签名:日期:日期:注意事项1.设计(论文)的容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订基于单片机的点阵电子显示屏设计摘要:本文介绍了一款以单片机AT89S51为控制器的LED点阵显示屏系统的设计。
led单片机课程设计

led单片机课程设计一、课程目标知识目标:1. 让学生理解LED单片机的基本原理,掌握其硬件结构和编程方法。
2. 使学生能够运用C语言进行LED单片机的程序设计,实现基本的功能控制。
3. 帮助学生掌握LED单片机在电子产品中的应用,了解相关领域的发展趋势。
技能目标:1. 培养学生动手操作能力,能够独立完成LED单片机的硬件连接和程序下载。
2. 提高学生的问题解决能力,使其能够运用所学知识解决实际应用中遇到的问题。
3. 培养学生的团队协作能力,学会与他人共同分析、讨论和解决问题。
情感态度价值观目标:1. 培养学生对电子科技的兴趣和热情,激发其探索精神。
2. 培养学生严谨、细致的学习态度,养成良好的学习习惯。
3. 增强学生的环保意识,使其关注节能减排,为可持续发展贡献力量。
课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,培养学生的动手能力和创新能力。
学生特点:本课程针对的是初中年级学生,他们对电子科技有浓厚兴趣,具有一定的动手操作能力和问题解决能力。
教学要求:教师需结合学生特点,采用启发式教学,引导学生主动探究,注重实践操作,提高学生的综合能力。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. LED基础知识:介绍LED的基本概念、种类、原理及其在电子领域的应用。
教材章节:《电子技术基础》第二章第二节2. 单片机原理:讲解单片机的硬件结构、工作原理、编程语言及其功能。
教材章节:《单片机原理与应用》第一章3. C语言编程:学习C语言基本语法、数据类型、运算符、控制语句等,为单片机编程打下基础。
教材章节:《C语言程序设计》第一章至第四章4. LED单片机编程:结合实例,教授如何使用C语言编写LED单片机程序,实现灯珠的点亮、熄灭、闪烁等功能。
教材章节:《单片机原理与应用》第三章5. 硬件连接与调试:介绍LED单片机的硬件连接方法,教授下载程序、调试和排错技巧。
LED 点阵显示设计(单片机课程设计)

LED 点阵显示设计利用LED 点阵(16*16 个发光二极管)交替显示自己名字的每个汉字。
一、预备知识:目前, LED 电子显示屏广泛应用于各种公共场所, 如南通大学新校区图书馆底楼LED 大屏幕、新校区学生食堂各种显示菜价的LED 电子屏等, 在车站、码头、机场、商场、医院、宾馆、银行、证券市场等更是随处可见LED 电子显示屏的身影。
实验箱上由4 块8*8 LED 点阵模块组成1 个16*16 的LED 点阵, 每个LED 发光管其实就是1 个像素点, 而通常汉字显示时所需像素点就是16*16。
汉字显示需要“字模生成软件”生成显示的点阵数据, 通常“字模生成软件”支持使用指定字体、指定取点模式及字节排列模式, 支持字体加粗、斜体、删除线、下划线等设置等。
“字模生成软件”的具体使用见课程设计讲解视频。
二、设计目的1.了解、掌握LED 点阵显示的控制原理, 为后续的LCD 显示控制打下基础;2.熟悉、掌握串行输入并行输出移位寄存器的使用;3.掌握单片机串行接口扩展原理和编程方法。
三、设计内容1.设计LED 点阵模块显示控制电路的原理图;2.设计程序流程图;3、编程调试, 在LED 点阵模块上交替显示自己名字的每个汉字, 交替间隔时间控制在0.5~1 秒之间。
四、参考接线LED 点阵模块显示控制所用导线较多, 可参见LED 点阵模块原理说明及实验箱电路原理图。
五、设计步骤程序:ORG 0000HLJMP MAINMAIN:MOV SP,#6FHMOV B,#80HMOV R0,#0MOV R3,#100MAIN_LOOP:MOV DPTR,#LED_TABMOV R1,#8MOV R2,#8MAIN_LOOP_H:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H MOV P2,#00HMAIN_LOOP_L:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L MOV P1,#00HDJNZ R3,MAIN_LOOP MOV R3,#100MAIN_LOOP1:MOV R1,#8MOV R2,#8MOV DPTR,#LED_TAB1 MAIN_LOOP_H1:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H1 MOV P2,#00HMAIN_LOOP_L1:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L1DJNZ R3,MAIN_LOOP1MOV R3,#100MAIN_LOOP2:MOV R1,#8MOV R2,#8MOV DPTR,#LED_TAB2MAIN_LOOP_H2:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H2 MOV P2,#00HMAIN_LOOP_L2:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L2MOV P1,#00HDJNZ R3,MAIN_LOOP2 LJMP MAINFASONG:MOV A,@R0MOVC A,@A+DPTRCLR TIMOV SBUF,AJNB TI,$CLR TIINC DPTRRETDELAY:MOV R7,#4DL Y_LOOP:DJNZ R6,$DJNZ R7,DL Y_LOOP RETDELAY2:MOV R7,#250DL Y_LOOP2:MOV R6,#250DJNZ R6,$DJNZ R7,DL Y_LOOP2 RETLED_TAB:DB …….LED_TAB1:DB …….LED_TAB2: DB……..END原理图:。
单片机课程设计彩灯控制

- --xxxxxxxxx课程设计报告书课程名称:单片机课程设计课题名称:彩灯控制专业:x班级:x学号:x姓名:x成绩:x年x月x日目录1.设计目的32.设计要求和设计指标33.设计内容43.1硬件局部43.2软件局部94.总结14.主要参考文献15摘要近年来随着微控技术的日益完善和飞速开展,单片机的应用正在不断深入,它的应用必将导致系统控制技术从根本上发生变革,同时带动传统控制检测技术日益更新。
它在工业控制、数据采集、智能化仪表、机电一体化、家用电器领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化控制。
在实际检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件构造软硬件结合,加以完善。
在社会经济快速开展,人们生活水平的日益提高的今天,对于LED灯把戏的要求越来越高。
像字体广告,电子宣传字幕……1·设计目的通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,进一步学习,掌握单片机应用系统的有关知识,加深了解单片机的工作原理。
初步掌握简单的单片机应用系统的设计、制作、调试的方法。
使自己的设计水平和对所学的知识的应用能力以及分析问题、解决问题的能力得到全面提高。
2·设计要求及设计指标要求〔1〕用8盏LED灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭〕;〔2〕可以用输入按钮在几种灯光效果间切换;〔3〕可以通过按钮暂停彩灯效果,再次按下一样按钮后继续之前的效果。
指标1.按下按键1暂停流水灯的流水。
再次按下恢复并继续原来效果2.按下按键2那么是一种流水花型,按下按键3那么是第二种花型按下按键三那么是第三种花型。
〔按键1管暂停按键2,3,4分别对应一种流水方式〕3.按键2实现的流水方式:从两边开场两盏灯依次向中间移动一位到第四盏第五盏同时亮过之后全亮之后以相反的顺序完成流水。
3·设计内容3.1硬件局部1.8051型单片机的根本构造及功能MCS——51 系列单片机内部包括CPU、存储器、并行接口、定时/计数器、中断系统。
基于单片机的led显示屏的课程设计报告书

摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本设计是8×8点阵LED电子显示屏的设计。
整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。
该电子显示屏可以显示各种文字或单色图像,全屏能显示1个汉字,采用1块8×8点阵LED显示模块来组成1个8×8点阵显示模式。
显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能与原理、相应软件的程序设计,以与使用说明等。
关键词:AT89C51;LED;点阵显示;动态显示目录摘要第一章设计描述第二章设计分析2.1设计要求2.2设计任务2.3运行环境2.4开发工具第三章硬件设计3.1 总体设计3.2 电源、单片机系统与其管脚3.3点阵与其驱动部分3.4硬件电路连线3.5显示部分第四章软件设计4.1显示驱动程序4.2系统主程序第五章调试与性能分析总结参考文献附录 c语言程序代码第一章设计描述本设计主要是设计一个实用的8×8点阵屏的图文显示,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字稳定、清晰无串扰。
图形或文字显示有静止和移入移出等显示方式。
本文还重点介绍了单片机对LED点阵屏的控制电路,驱动电路的设计方法,并根据LED点阵屏的硬件特点,对其软件实现的算法给出了具体的分析。
从而实现了显示的字体能够进行自下向上移动。
此次课设中显示的是“乐❤里仁”。
第二章需求分析2.1设计要求(1)设计一个能显示8×8点阵图文LED显示屏;(2)要求能显示图形或文字;2.2设计任务(1)首先设计单片机系统与外围电路、列驱动电路和行驱动电路;(2)画出主模块的流程图;(3)编写代码;(4)程序分析与调试。
单片机课程设计--基于单片机的LED流水灯系统设计

单片机课程设计报告项目名称:基于单片机的LED流水灯系统设计目录第一章绪论--------------------------------------------------------------------------- 21.1 课题简介 ----------------------------------------------------------------------------------- 2 1.2 设计目的 ----------------------------------------------------------------------------------- 2 1.3 设计任务 ----------------------------------------------------------------------------------- 2 1.4 设计方法 ----------------------------------------------------------------------------------- 3第二章设计内容与所用器件 ------------------------------------------------------- 4第三章方案论证与比较 ----------------------------------------------------------- 5 3.1循环移位法--------------------------------------------------------------------------------- 5 3.2查表法 -------------------------------------------------------------------------------------- 5 3.3位控法--------------------------------------------------------------------------------------- 5第四章硬件系统设计 ---------------------------------------------------------------- 7 4.1 键盘接口电路----------------------------------------------------------------------------- 7 4.2 7段LED数码管 -------------------------------------------------------------------------- 8 4.3 程序下载接口----------------------------------------------------------------------------- 8 4.4 数码管驱动芯片-------------------------------------------------------------------------- 8 4.5、单片机时钟电路 ------------------------------------------------------------------------ 8 4.6、单片机复位电路 ------------------------------------------------------------------------ 9第五章软件设计 ---------------------------------------------------------------------- 7 5.1 汇编语言和C语言的特点及选择 ---------------------------------------------------- 7 5.2 LED显示原理 ----------------------------------------------------------------------------- 8第六章系统调试与存在的问题 ---------------------------------------------------- 9 6.1 硬件调试 ----------------------------------------------------------------------------------- 9 6.2 软件调试 ----------------------------------------------------------------------------------- 9总结 ----------------------------------------------------------------------------------- 10参考文献------------------------------------------------------------------------------- 10附录------------------------------------------------------------------------------------16第一章绪论1.1 课题简介当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
闪烁LED灯的设计---单片机课程设计

闪烁LED灯的设计本设计的闪烁小灯控制器,可使小灯轮流点亮、逐个点亮、间隔闪亮。
如果要控制交流彩灯,可在P1端口加接继电器或可控硅接口电路。
本设计可应用在广告彩灯控制器和舞台灯光控制器等领域。
一、系统硬件电路的设计图1为闪烁小灯控制器的电路原理图,其中:单片机采用AT89C2051,P1口作LED发光管输出控制用,P3.0-P3.2口为闪烁方式控制开关K1、K2、K3按键接口,P3.3口的按键作备用,限流电阻为510Ω,发光管工作电流约10mA,采用12MHz晶振。
图1 闪烁小灯电路原理图二、系统主要程序的设计1、主程序通过扫描P3.0-P3.2口,判断是否有按键按下,然后在20H内存单元的低3位的对应位置1标志,确定应执行的闪烁功能。
当20H.0为1时,发光管轮流点亮;当20H.1为1时,发光管逐点点亮;当20H.2为1时,发光管间隔闪亮。
在主程序对20H的低3位进行位值判定后,转入相应的闪烁控制程序。
上电初始化时,对20H的最低位置1,系统进入轮流点亮方式。
主程序流程图如图2所示。
2、键扫描子程序因按键较少,采用直接端口扫描键开关,用软件延时消抖确认后,对20H 内存单元相应的位置1,并把其余位清0。
图2 主程序流程图3、闪烁控制程序闪烁控制程序用来控制P1口的发光管发光变化方式,其中:执行功能程序0(FUN0)时的P1口输出值变化为11111110→延时→11111101→延时→11111011→延时→11110111→延时→11101111→延时→11011111→延时→10111111→延时→01111111→延时→结束转主程序。
执行功能程序1(FUN1)时的P1口输出变化为11111110→延时→11111100→延时→11111000→延时→11110000→延时→11100000→延时→11000000→延时→10000000→延时→00000000→延时→结束转主程序。
执行功能程序2(FUN2)时的P1口输出变化为10101010→延时→01010101→延时→结束转主程序。
单片机课程设计报告八路LED跑马灯实验

目录一、引言—本课程设计的目的 (2)二、八路LED跑马灯实验 (2)2.1设计内容 (2)2.2电路图 (2)2.3上机程序 (3)2.4调试结果及结论: (4)三、二位数码管循环显示00~99的实验 (4)3.1设计内容 (4)3.2电路图 (4)3.3上机程序 (5)3.4调试结果及结论 (6)四、单片机演奏音乐实验 (6)4.1设计内容 (6)4.2电路图 (6)4.3上机程序 (7)4.4调试结果及结论 (9)五、心得体会 (9)六、参考文献 (10)摘要:由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。
通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。
关键词:单片机,程序,跑马灯,数码管,测试……一、引言—本课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
二、八路LED跑马灯实验2.1设计内容:八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了。
单片机技术课程设计--彩灯控制器的设计

电气信息学院单片机技术课程设计报告课题名称彩灯控制器的设计专业班级 09电气01班学号 0903120222 学生姓名严娟指导教师易先军评分2012年6月12日至6月19日课程设计量化评分标准指导老师评语:答辩记录1、例举设计过程中遇到的问题及其解决方法(至少两例)。
答:(1)问题说明:解决方法:(2)问题说明:解决方法:2、教师现场提的问题记录在此(不少于2个问题)。
答:摘要本文介绍了一种简易LED彩灯控制系统的软硬件设计过程,本方案以AT89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路。
利用软件编程烧录程序到单片机来实现对LED 彩灯进行控制,本系统亮灯模式多,用户根据操作提示可以随意变换想要的闪烁方式和控制彩灯的闪烁频率,还可以全自动运行。
系统利用汇编语言开发,并在软硬件设计中分别使用了Proteus 、keilC51开发平台。
本系统具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。
关键词:单片机;LED彩灯;汇编语言;Proteus;keilC51;目录第1章设计任务 (1)第2章设计方案 (2)2.1设计方案 (2)2.2方案选择 (3)第3章硬件设计 (4)3.1直流稳压电源电路 (4)3.2单片机最小系统 (4)3.3LED彩灯显示电路 (5)3.4按键控制电路 (6)第4章软件设计 (8)4.1主程序设计 (8)4.2自动模式程序设计 (9)4.3延时程序设计 (10)4.3中断子程序设计 (10)第5章仿真与性能分析 (11)5.1 系统仿真过程 (11)5.2 仿真结果与分析 (12)第6章设计小结 (15)参考文献 (16)附录1LED彩灯控制系统仿真电路图 (17)附录2LED彩灯彩灯控制程序代码 (18)第1章设计任务当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
基于单片机LED数码管共阴极显示电路课程设计

物理与电子工程学院《单片机原理与接口技术》课程设计报告书设计题目:基于单片机LED数码管共阴极显示电路专业:自动化班级: 14级接本班学生姓名:李超学号: 2010140343108指导教师:成燕平2014年6月9日物理与电子工程学院课程设计任务书专业:自动化班级: 14级接本1班随着计算机技术的发展,现代的计算机都是大规模集成电路计算机它们具有功能强、结构紧凑、系统可靠等特点,其发展趋势是巨型化、微型化、网络化及智能化。
微型化是计算机发展的重要方向,也就是把计算机的运算器、控制器、存储器、I/O接口四个组成部分集成在一个硅片内,于是就出现了一个以大规模集成电路为主要组成的微型计算机即单片机(Single Chip Microcomputer)。
正是由于单片机技术的发展,才能使LED七段数码管能够在减少驱动器的情况下能够直接被驱动。
由于LED数码管显示技术的优势使得它被广泛应用在工业过程控制系统、智能仪表,智能产品等领域。
本论文重点介绍了LED(light emission diode)数码管显示技术,并且编写了这种显示技术在单片机中实现的关键编码以及提供了参考原理简图。
关键词:LED技术;计算机硬件;单片机;数码管1 引言 (1)2 设计的目的 (2)3 电路的设计与分析 (2)3.1电路的总体设计 (2)3. 2数码管的工作原理 (3)3.3电路的原理框图 (5)3.4计数电路的分析与设计 (6)4 译码显示电路的设计与分析 (7)4 .1译码电路的设计 (7)4.2译码电路的分析 (8)5调试及运行结果分析 (9)5.1调试及运行 (9)5.2结果分析 (9)5.3总电路仿真 (10)6心得体会 (11)参考文献 (12)附录 (13)1 引言用单片机驱动LED数码管有很多方法,按显示方式可分静态显示和动态(扫描)显示;按译码方式可分硬件译码和软件译码。
静态显示数据稳定,占用很少的CPU时间。
单片机课程设计LED点阵显示电子时钟

(课程设计)单片机原理及接口技术课程设计题目:LED点阵显示电子时钟学院班级:学生姓名:学号:摘要电子时钟是一种利用数字电路来显示秒、时的计时装置。
用单片机控制的LED点阵电子显示时钟具有结构简单、性能可靠、成本低廉和显示灵活等优点,其应用前景广阔。
本文设计的是一个5块8*8点阵时钟显示屏,数字采用静止显示方式。
实现的功能有:时钟功能,确定显示当前时间,并可以用按键实现误差调节;计时功能,开始与停止计时;显示精度切换功能,根据不同的工作场合,切换显示精度(时:分显示或分:秒显示硬件组成:AT89C51单片机、集成块74LS373和74LS138、LED点阵、按键若干、晶振、电容、电阻、电源等。
软件组成:定时中断程序、显示程序、起停控制程序、功能切换程序。
系统实现了计时和显示精度切换等创新功能。
关键词:点阵显示电子时钟;计时;精度切换目录摘要 (2)1 概述 (4)2 系统总体方案设计 (5)2.1系统总体设计框图 (5)2.2 初步设计思路 (5)3 硬件电路设计 (6)3.1 LED数码管显示电路 (6)3.1.1 LED点阵 (6)3.1.2 74LS373锁存器 (7)3.1.3 74LS138译码器 (7)3.2 复位电路 (8)3.3 晶振电路 (9)3.4 按键电路 (9)3.5 单片机连接电路 (10)4 软件设计 (11)4.1 计时程序设计 (11)4.2 显示程序设计 (11)4.3 时:分/分:秒切换程序 (13)4.4 起、停控制程序 (14)5 系统调试 (15)6 心得体会 (16)参考文献 (16)附录 (17)附录A:源程序清单 (17)附录B:元件清单 (23)1 概述在日常生活中,大家见到的都是数码管制作的电子钟,LED点阵时钟则不多见。
用单片机控制的LED点阵显示电子钟具有结构简单、性能可靠、成本低廉、价格便宜和显示灵活等优点,其应用前景广阔。
之所以使用LED点阵电子屏显示,是与它本身所具有的优点分不开的[1]。
单片机的彩灯课程设计报告

一、系统设计本设计以STC89C52单片机为核心,用独立键盘控制模式的选择,STC89C52单片机接收到键盘信号后控制发光二极管以不同的模式闪烁的实验装置,用STC89C52单片机控制8个发光二极管发光,实现亮点的循环移动。
通过Protel软件设计,布线排版,手工制版,并能掌握通过软件控制发光二极管的思路和技巧。
这次设计重点就在于利用单片机的知识去控制系统的运行,图1-1为整体方案设计框图。
图1-1 总体方框图1.设计要求:a.上电复位。
b.上电后数码管消隐,LED灯全灭。
c.当按下第一个按键后数码管显示1第二个按键显示2以此类推。
d.每个按键控制不同的闪烁模式。
e.数码管显示有保持功能。
二、方案设计本设计总体设计思路为:以STC89C52单片机为核心,用独立键盘作STC89C52单片机的信号输入,STC89C52单片机接收到键盘信号后经单片机内部软件处理后将数据输出至P1口和P0口,使8发光二极管以不同的模式闪烁,并由七段数码管显示其闪烁模式编号。
在课程设计中通过Protel软件设计原理图,布线排版,用万能版(单孔)手工焊接制作出实物。
1.方案论证方案一:采用汇编语言编程的软件的STC89C52单片机系统。
本方案设计的核心为STC89C52单片机系统,包括硬件和软件,硬件采用四位独立键盘做信号输入,STC89C52单片机进行信号处理并输出,显示部分为八个发光二级管和七段数码管,八个发光二极管采用共阴极接法,七段数码管采用共阳极的。
软件采用Kell编辑的汇编语言程序,并烧写至STC89C52单片机。
图2-1为方案一方框图图2-1 方案一方框图方案二:采用C语言编程的软件的STC89C52单片机系统。
本方案设计的核心为STC89C52单片机系统,包括硬件和软件,硬件采用四位独立键盘做信号输入,STC89C52单片机进行信号处理并输出,显示部分为八个发光二级管和七段数码管,八个发光二极管采用共阳极接法,七段数码管采用共阴极的。
单片机课程设计报告书---交通灯控制电路设计

交通灯控制电路设计一、选题背景交通灯控制系统是城市道路管理中极为重要的一个环节,其在加强道路交通管理,减少交通事故的发生,提高道路使用效率等方面具有不可替代的作用。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。
本文将介绍一种用单片机作为系统的主控单元,通过单片机嵌入软件程序来实现交通信号灯的多重控制方式,整个系统以STC89C52RC单片机为核心加以晶振电路、复位电路、电源电路构成系统的控制枢纽,系统状态显示系统采用7段LED数码管进行倒计时的现实,红、黄、绿三色LED灯作为信号指示。
系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口出现的状况。
本系统性能稳定,功能完善,实用性强。
二、方案论证(设计理念)1.主要内容用单片机系统设计十字路口交通灯控制电路,要求东西方向的红、黄、绿灯和南北方向的红、黄、绿灯按照下面的工作时序进行工作,黄灯亮时应为闪烁状态:(1)南北和东西车辆交替进行,各通行时间 24 秒(2)每次绿灯变红灯时,黄灯先闪烁 4 秒,才可以变换运行方向。
(3)十字路口要有数字显示作为时间提示,以倒计时按照时序要求进行显示;具体为:当某方向绿灯亮时,置显示器为某值,然后以每秒减 1 计数方式工作,直至减到数为“0”,十字路口红、绿等交换,一次工作循环结束,而进入下一步某方向的工作循环。
(4)可以手动调整和自动控制,夜间为黄灯闪耀状态2.教学要求选择适当元器件设计单片机外围电路、由单片机系统完成二十四进制倒计时、四进制倒计时、显示及模式切换逻辑控制等;仿真实现各电路功能;搭建、调试电路实现设计要求的功能;掌握复杂数字电路的一般设计方法,具备初步的独立设计能力;掌握对电子线路进行仿真调试的方法和技能;掌握实现电路的实验方法和电路的调试方法。
3.方案设计与选择3.1交通信号控制原理交通信号控制原理是按照一定的控制程序,在交叉路口的每个方向上通过红、黄、绿三色灯循环显示,指挥交通流,在时间上实施隔离。
单片机花样彩灯课程设计报告

MOV TL0,#3CH
SETB TR0;启动计数
SETB EA;开中断
BU:JBC TF0,SHI
SJMP BU
SHI:MOV TH0,#3CH
MOV TL0,#0B0H
RET
5、小结
经过努力,我们组终于完成这次数字彩灯的课程设计任务。我们首先查阅了大量的书本资料,接着又上网搜集了许多有用信息,有时候为了找到一个合适的电路而苦恼,有时候又为取得一点成功而由衷的高兴。
DJNZ R3,LOOP2
RET
DL05S:MOV R4,#0AH
LOOP3: LCALL DL10MS
DJNZ R4,LOOP3
RET
DL30S:MOV R5,#03H
LOOP4:LCALL DL05S
DJNZ R5,LOOP4
RET
END
4.2一秒钟定时程序
MOV B,#0AH;允许中断
MOV TMOD,#01H;工作方式12、设计原理来自2.1 MCS51单片机
引脚说明
MCS单片机都采用40引脚的双列直插封装方式。图2-9为引脚排列图,40条引脚说明如下:
1、主电源引脚Vss和Vcc
①Vss接地
②Vcc正常操作时为+5伏电源
2、外接晶振引脚XTAL1和XTAL2
①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。
4、输入/输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。
①P0口(P0.0 - P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学(武汉)单片机课程设计报告学院:机械与电子信息学院班级:072121姓名:目录一方案设计 (2)1 题目意义 (2)2 系统功能 (2)二模块描述 (2)1 LED模块 (2)2 键盘模块 (3)3 串口通信模块 (4)三各功能程序设计 (4)1 LED滚动程序设计 (4)(1)左滚动 (5)(2)右滚动 (5)(3)上滚动 (6)(4)下滚动 (6)2 键盘扫描程序设计 (7)3 串口通信程序设计 (9)4 滚动暂停程序设计 (10)(1)键盘控制 (10)(2)串口控制 (11)5 显示截断程序设计 (12)(1)键盘控制 (12)(2)串口控制 (13)6 总体程序设计 (14)四课程设计体会 (15)五附录 (15)一方案设计1 题目意义点阵显示是集微电子技术、计算机技术、信息处理于一体的新型显示方式。
具有:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定等优点,所以受到广泛重视而达到迅速发展,LED的发展前景极其广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。
随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统带内实际成为人们享受信息和多媒体内容的中心。
与传统的显示设备相比,这种未来的巨大希求让大屏幕显示技术成为众人目光的焦点:LED显示屏色彩丰富,显示方式变化多样(图形、文字、三维、二维动画、电视画面等)、亮度高、寿命长、是信息传播设施划时代的产品。
LED显示屏是集微电子技术、计算机技术、信息处理于一体的高技术产品,可用来显示文字、计算机屏幕同步的图形。
它以其超大画面、超强视觉、灵活多变的显示方式等独具一格的优势,是目前国际上使用广泛的显示系统。
LED显示屏应用广泛,金融证券,银行利率,商业广告,文化娱乐等方面,有着巨大的社会效益和丰厚的经济效益。
2 系统功能本文设计的系统是基于Lab8000通用微控制器实验系统的16x16 LED点阵显示系统。
本系统可实现如下功能:1、通过键盘输入命令使LED点阵显示屏显示汉字并呈现出左滚动、右滚动、上滚动、下滚动的循环显示效果。
2、可通过键盘输入命令使正在滚动显示的显示屏汉字暂停或继续滚动。
3、当显示屏滚动显示时,如果按下按键,会使当前显示的汉字截断,显示新的汉字及效果。
4、通过串口调试助手输入命令使LED点阵显示屏显示汉字并呈现出左滚动、右滚动、上滚动、下滚动的循环显示效果。
5、可通过串口调试助手输入命令使正在滚动显示的显示屏汉字暂停或继续滚动。
6、当显示屏滚动显示时,如果通过串口调试助手输入命令,会使当前显示的汉字截断,显示新的汉字及效果。
二模块描述1 LED模块16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。
每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。
每次显示一行,10ms后再显示下一行。
在此拿行扫描举例说明原理:首先给列寄存器赋值第一行的数据,然后通过行寄存器点亮第一行,再给列寄存器赋值第二行的数据,再点亮第二行,以此方法点亮显示屏的十六行,这便是一次屏幕的扫描显示,屏幕按上面的方法不断扫描显示,便会使屏幕上持续显示出内容。
由于一次全屏扫描显示时间非常短,所以人眼会认为这是十六行同时显示。
这便是显示屏的原理。
2 键盘模块读回行码(0X001H)数据总线列码(0X002H)实验仪提供了一个6×4的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。
如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。
这样就可以通过输出的列码和读取的行码来判断按下的是什么键。
在判断有键按下后,要有一定的延时,防止键盘抖动。
地址中的X 是由KEY/LED CS 决定,参见地址译码。
做键盘和LED 实验时,需将KEY/LED CS 接到相应的地址译码上。
以便用相应的地址来访问。
例如将KEY/LED CS 信号接CS0上,则列扫描地址为08002H ,行码地址为08001H 。
列扫描码还可以分时用作LED 的位选通信号。
3 串口通信模块串口通信的原理是用串口调试助手通过电脑的端口将数据通过串口线传输到串口线的txd 、rxd 端,然后通过与单片机的txd 、rxd 连接,将数据传输到单片机,然后单片机将数据寄存在串口数据寄存器SBUF 中,然后单片机通过判断SBUF 的值及可执行相应的命令。
三 各功能程序设计1 LED 滚动程序设计程序执行的框图如下所示(1)左滚动显示屏的左滚动要采用的取模必须是逐列式,按照以上显示框图,先将行寄存器赋值第一列的数据,点亮第一列,再给行寄存器赋第二列的数据,点亮第二列,以次类推,将可以对全屏进行显示。
左滚动的效果核心是在取模时按一定的规律进行。
程序如下所示:void zuo(uint zuo1,uint zuo2) //左滚动,通过两个参数控制显示的汉字{for(j=zuo1; j<zuo2; j++){for(k=0;k<17;k++){ //控制滚动时取模for(count =0; count <5; count ++){ //全屏扫描的次数if(t==1)count--; //用于滚动中断bitmask = 0x01; //给指向点亮列赋初值for(i=16;i>0;i--){ //控制显示列的循环ColLow = 0xff; //首先清屏ColHigh = 0xff;a=k+j; //用于取模RowLow = Font[j][a*2+2*i]; //给行寄存器写出一行数据RowHigh= Font[j][a*2+2*i+1];ColLow = ~bitmask & 0xff; //点亮此列ColHigh = ~bitmask >> 8;bitmask <<= 1; //移位,指向下一行delay(1);}}}}(2)右滚动右滚动的原理和左滚动一样,不同之处即为控制显示列的循环时不同。
void you(uint you1,uint you2 ){for(j=you1; j<you2; j++){for(k=0;k<17;k++){for(count =0; count <5; count ++){if(t==1)count--;bitmask = 0x01;for(i=0;i<16;i++){ //与左滚动不同之处ColLow = 0xff; //首先清屏ColHigh = 0xff;a=k+j;RowLow = Font[j][a*2+2*i]; //写出一行数据RowHigh= Font[j][a*2+2*i+1];ColLow = ~bitmask & 0xff; //点亮此列ColHigh = ~bitmask >> 8;bitmask <<= 1; //移位,指向下一行delay(1);}}}} }(3)上滚动上滚动的原理和其他滚动一样,不同之处即为控制显示列的循环时不同与赋值时行寄存器和列寄存器相反。
void shang(uchar shang1,uchar shang2){for(j=shang1; j<shang2; j++){for(k=0;k<16;k++){for(count =0; count <5; count ++){if(t==1)count--;bitmask = 0x01;for(i=16;i>0;i--){RowLow = 0x00; //首先清屏RowHigh = 0x00;ColLow = ~ Font[j][i*2+2*k]; //给列寄存器写出一行数据ColHigh = ~ Font[j][i*2+2*k+1];RowLow = bitmask & 0xff; //点亮此行RowHigh = bitmask >> 8;bitmask <<= 1; //移位,指向下一行delay(1);}}} } }(4)下滚动void xia(uchar xia1,uchar xia2){for(j=xia1; j<xia2; j++){for(k=0;k<16;k++){for(count =0; count <5; count ++){if(t==1)count--;bitmask = 0x01;for(i=0;i<16;i++){RowLow = 0x00; //首先清屏RowHigh = 0x00;ColLow = ~ Font[j][i*2+2*k]; //给列寄存器写出一行数据ColHigh = ~ Font[j][i*2+2*k+1];RowLow = bitmask & 0xff; //点亮此行RowHigh = bitmask >> 8;bitmask <<= 1; //移位,指向下一行delay(1);}}} }}2 键盘扫描程序设计上图即为键盘扫描程序框图程序执行时先给列码发送0x00,如果没有按键按下,则行码返回0x0f,如果有按键按下,则执行按键判断函数,先给第一列发送0,如果行码返回0x0f,则便是按键不是第一列,则程序给第二列发送0,如果行码返回0x0f,则便是按键不是第二列,如果行码返回不是0x0f,则根据返回的值用二维坐标即可判断出是哪个键按下,根据键码即可以给按键返回值赋予相应的数字,此即按键扫描。
程序如下所示:unsigned char TestKey() //按键检测函数{OUTBIT = 0; // 输出线置为0return (~IN & 0x0f); // 读入键状态(高四位不用)}code unsigned char KeyTable[] = { // 键码定义0x16, 0x15, 0x14, 0xff,0x13, 0x12, 0x11, 0x10,0x0d, 0x0c, 0x0b, 0x0a,0x0e, 0x03, 0x06, 0x09,0x0f, 0x02, 0x05, 0x08,0x00, 0x01, 0x04, 0x07};unsigned char GetKey() //取得按键值的函数{unsigned char Pos;unsigned char i;unsigned char k;i = 6;Pos = 0x20; // 寻找按键时给寻找值赋初值,此时指向第一列do {OUTBIT = ~ Pos; //给列码赋值,因为低有效,所以取反Pos >>= 1; //右移一位,准备下一列扫描k = ~IN & 0x0f; //返回按键所在列} while ((--i != 0) && (k == 0));// 键值= 列x 4 + 行if (k != 0) {i *= 4;if (k & 2) //判断是否第二列i += 1;else if (k & 4) //判断是否第三列i += 2;else if (k & 8) //判断是否第四列i += 3;OUTBIT = 0;do Delay1(10);while (TestKey()); // 等键释放return(KeyTable[i]); // 取出键码} else return(0xff);}3 串口通信程序设计本系统中我采用串口中断,这种方法的好处是在显示屏扫描的过程中可以通过中断迅速的接收串口数据,不用等显示完再进行串口数据接收判断,在显示截断功能中有很大的用处。