任务四 键控流水灯和LED数码管显示
任务四键控流水灯和数码管显示优秀课件
0,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x8C,0xFF,0x89};//共
阳字型表数组
unsigned r=1; //位输出口初值,选中最左位LED
void delay1 (unsigned int); //延时1ms子函数原ed chaar i=0,a; //定义变量i —显示缓冲区数组元素
main()
{
while (1)
display( );
}
display( ) // LED动态扫描显示子函数
{ r=1; //1位选通,要根据数码管类型和硬件电路决
定,若0选通应该为r=0xfe;
i=0;
while (r!=0x40) // 6个数码管没全扫完,继续扫描
{ P3=r;
//选通某位
a=dt[i]; //显示缓冲区去该位要显示的内容
7 8 9 ABC D EF 0x8C,0x89, 0xFF,0x91 };
(显示: P H 熄灭 Y )
Proteus演示——硬件图
练习: 1、画出单片机控制6共阳LED数码管显示的电 路图1,P0和P3口分别为字型口和位选口。 2、用主子函数结构调试6管LED动态扫描程序 3、在图1的基础上,将其改为6位共阴数码管, P2和P3分别为位选和字型口。编程调试。
P0=TAB_Font[a];//查字型表向字型口输出字型
delay1 (1); //延时1ms
r<<=1; r|=1; //移位选中下一数码管,指针修正
j++;
}
P0=0x00; // 6个数码管没全完,输出熄灭字型。
}
/*延时程序*/ void delay1 (unsigned int ms) {
单片机技术--课程标准
《单片机技术与应用》课程标准一、课程定位1、课程性质随着电子设备智能化的不断发展和日益普及,单片机作为电子设备智能的核心其应用日益广泛,在包括各种通信设备在内的电子应用领域中随处可见单片机的应用。
因此,中等职业教育电子信息类专业大都开设了单片机技术与应用的相关课程.为此,本课程将作为电子电器应用与维修专业的核心课程,如图1所示,同时也是从事机电产品,电子产品的生产与开发企业培养具有单片机应用产品设计、分析、调试和制作能力的实践型人才,对学生职业岗位能力培养与职业素质养成起主要支撑作用。
图1 课程在专业岗位能力培养中的支持作用2、电子电器应用与维修课程体系电子电器应用与维修课程体系结构,如图2所示,位于最底层的是电工基础、电子技术技术(数字部分和模拟部分)、元器件识别、检测与组装。
本课程属于核心课程,起到为后续的课程protel 2004、PLC 应用与技术等课程打下坚实的基础,同时为前续课程计算机基础、电工基础、电子技术(数字部分和模拟部分)、元器件识别、检测与组装等课程起到巩固的作用.图2 电子电气应用与维修课程体系3、课程定位《单片机技术与应用》既是电子电器应用与维修、电气自动化、应用电子技术专业的核心课程之一,又是各专业的基础课程之一.特别是电子电器应用与维修专业中的《protel 2004》、《智能电子产品组装、检测与维修》、课程等技能的培养是以本课程为基础。
单片机是实现电子产品智能化的有效途径,现以广泛应用于智能仪表、家用电器、工业控制、网络通信等众多领域。
课程教学目标定位在培养人的综合素质,使学生在专业能力、自学能力和社会能力等各方面全面发展,为企业输送合格的软硬件设计的操作员、生产工艺检测员、产品调试工、家用电器维修工等。
本课程是贯彻教育部关于中等职业教育改革精神,体现以“以服务为宗旨,以就业为导向”的职教特点,在结构形式上采用项目式教学法,在载体上采用产品的组装、调试和检测,即每一个项目就是一个产品。
4独立按键控制led灯
2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3鸳鸯戏水,K4则循环三种控制方式。
3)跑马灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
4)流水灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。5)鸳鸯溪水灯:共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。然后继续上次操作。
{
P1=yua[i];
delay(100);
}
}
if(j==4)
{
for(i=0;i<9;i++)
{
P1=pao[i];
delay(100);
}
for(i=0;i<9;i++)
{
while(key2==0)
{
}
j = 2;
}
}
if(key3==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key3==0) //再次确认按键是否按下,没有按下则退出
{
while(key3==0)
{
}
j = 3;
}
}
if(key4==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key4==0) //再次确认按键是否按下,没有按下则退出
键盘控制数码管显示与流水灯
课程设计任务书题目键盘控制数码管显示及 LED点亮学院(部)__________ 电子与控制工程 ______________专业____________ 建筑设施智能技术 ___________班级________________ 320601 ________________学生姓名_____________________________学号________________5_月日至 _5_月_22_日指导教师_______________2014年5月22日目录一、 .............................................. 摘要 2二、 .......................................... 设计要求 2三、 ...................................... 方案设计说明 2四、 ........................................ 程序流程图 4五、 .......................................... 模块介绍 41)8051CPU (4)2)数码管显示 (5)3) (4X)4键盘输入 (5)4)流水灯显示 (6)六、源程序 (7)程序执行结果 (11)七、主要元器件介绍 (13)1) ..................................................................................................8051 (13)2) .................................................................................................. 共阴极数码管 (15)八、参考书籍 (17)一、摘要单片机是单片微型计算机,它是针对控制与检测应用而设计的,也称为微控制器。
项目四 键控花样灯
项目四、键控花样灯项目描述:计算机中CPU是核心器件,在不影响处理器做其它的事情的情况下,及时进行外部事件计数,外部事件触发处理,采用了中断技术,从而提高了效率,增强了程序的实时性。
单片机的中断是用来响应其他优先级更高的事件。
本项目是通过键控花样灯设计了解外部中断的概念;理解单片机的中断类型及中断处理函数的格式;理解中断的不同触发方式并掌握相应的编程方法。
能力目标:1、掌握单片机对外部中断的设置方法。
2、能应用中断的下降沿触发和低电平触发编写中断服务程序。
3、能利用中断功能实现开关对彩灯的控制。
4、提高学生的动手能力和技能操作水平。
任务一:单键控制LED灯任务目标:1、掌握中断服务程序的编写方法。
2、能正确连接电路。
3、能分析、判断运行错误并能修改完善。
任务要求:用独立按键控制8个LED按以下方式显示1-12-123-1234-12345-12456-1234567-12345678相关知识讲解:一、 MCS-51单片机的中断系统结构1、中断的认识经过前面内容的学习,大家可能会发现,有时候单片机对按钮的响应比较迟钝,按了好几次才有反应,特别是在按钮功能对应的是彩灯的一系列变化时,按钮简直可以说是完全罢工。
这是怎么回事呢?原因是我们的单片机在执行命令时是按照一定顺序的,同一时间它不可能做很多事情。
可是,有时候需要它给我们一些特别待遇,希望我们的要求可以马上满足,所以单片机的设计中设置了一个中断系统,并且设置了两个级别。
要掌握51单片机的中断系统,首先要弄清楚几个概念:中断、中断源、中断标志、中断请求、中断允许、中断优先级、中断响应、中断嵌套和中断返回。
我们假设这样一段场景:周末你放假在家,准备泡咖啡时,发现没有开水,于是你把水壶灌好水,放在炉灶上烧,等开水烧开还有一段时间,于是你打开影碟机看电影,正看到精彩之处时,突然有人敲门,你为了不错过精彩的地方选择了暂停播放,去开门,原来是送快递的邮递员,正在你准备验收邮件签字的时候,你的开水壶发出报警声提醒你开水烧好了,你请邮递员稍等片刻,马上跑去关掉炉灶,然后立刻跑到门口给邮递员签收回单,收好邮件回来再继续观看电影。
实验四 数码管显示控制
实验四数码管显示控制一、实验目的1、熟悉Keil uVision2软件的使用;2、掌握LED数码管显示接口技术;3、理解单片机定时器、中断技术。
二、实验设备及仪器Keil μVision2软件;单片机开发板;PC机一台三、实验原理及内容1、开发板上使用的LED 数码管是四位八段共阴数码管(将公共端COM接地GND),其内部结构原理图,如图4.1所示。
图4.1共阴四位八段LED数码管的原理图图4.1表明共阴四位八段数码管的“位选端”低电平有效,“段选端”高电平有效,即当数码管的位为低电平,且数码管的段为高电平时,相应的段才会被点亮。
实验开发板中LED数码管模块的电路原理图,如图4.2所示。
SP1a~hP0.4~P0.7SP2P0.0~P0.3图4.2 LED数码管模块电路原理图图中,当P1.0“段控制”有效时,P0.0~P0.7分别对应到数码管的a~h段。
当P1.1“位控制”有效时,P0.0~P0.7分别对应到DIG1~DIG8。
训练内容一:轮流点亮数码管来检测数码管是否正常。
参考程序:ORG 00HAJMP MAINMAIN:SETB P1.2;LED流水灯模块锁存器的控制位MOV P0,#0FFH;关闭LED灯CLR P1.2SETB P1.3 ;点阵模块的行控制锁存器MOV P0,#0 ;关闭点阵行CLR P1.3MOV A,#11111110B;数码管“位选信号”初值,低电平有效LOOP:SETB P1.1;数码管位控制锁存器有效MOV P0,ACLR P1.1RL A ;形成新的“位选信号”,为选择下一位数码管做准备SETB P1.0;数码管段控制锁存器有效MOV P0,#0FFH ;数码管的所有段点亮,显示“8”CLR P1.0CALL DELAYSJMP LOOPDELAY:MOV R5,#0;延时子程序D1: MOV R6,#0D2:NOPDJNZ R6,D2DJNZ R5,D1RETEND训练内容二:静态显示,0~9计数。
按键控制数码管和流水灯设计报告实验报告
按键控制数码管和流水灯设计报告实验报告摘要单片机自20世纪70年代以来,以其极高的性价比,以及方便小巧受到人们极大的重视和关注。
本设计选用msp430f249芯片作为控制芯片,来实现矩阵键盘对LED数码管显示的控制。
通过单片机的内部控制实现对硬件电路的设计,从而实现对4*4矩阵键盘的检测识别。
用单片机的P3口连接4×4矩阵键盘,并以单片机的P3.0-P3.3口作键盘输入的列线,以单片机的P3.4-P3.7口作为键盘输入的行线,然后用P0.0-P0.7作输出线,通过上拉电阻在显示器上显示不同的字符“0-F”。
在硬件电路的基础上加上软件程序的控制来实现本设计。
其工作过程为:先判断是否有键按下,如果没有键按下,则继续检测整个程序,如果有键按下,则识别是哪一个键按下,最后通过LED数码管显示该按键所对应的序号。
关键字:单片机、流水灯、数码管、控制系统SCM since the nineteen seventies, with its high price, and a convenient compact attention and great concern. Thisdesign uses msp430f249 chip as the control chip, to realize the control of the LED digital tube display matrix keyboard. Through the internal control single chip to realize the hardware design of the circuit, so as to re alize the detection and recognition of 4*4 matrix keyboard. 4 * 4 matrix keyboard connected with the MCU P3 port, and the MCU P3.0 P3.3 port for a keyboard input, MCU P3.4P3.7 port as the lines of keyboard input, and then use theP0.0 P0.7 as the output line, by a pull-up resistor display different characters "0F on display". Control with software programs based on the hardware circuit to realize the design. The working process is: first to determine whether a key is pressed, if no key is pressed, it will continue to test the whole procedure, if a key is pressed, the Keywords: SCM, water lights, digital tubes, control system键盘控制流水灯和数码管实验报告目录一设计的目的 (2)二任务描述及方案设计 (3)1. 任务描述 (3)2. 方案设计 (3)三硬件设计方案 (3)1. Msp430f149单片机的功能说明 (3)2. 显示器功能 (4)3. 复位电路 (4)4. 按键的部分 (4)5. 74HC573的特点 (4)6. 流水灯和数码管电路原理图 (4)7. 元器件清单 (4)四程序设计方案 (5)1. 用IAR Embedded Workbench软件编程序 (5)2. 仿真电路图 (6)五实物实验 (7)1. 实物图 (7)2. 测试结果与分析 (7)六结论 (11)八参考文献 (16)一、设计目的1、进一步巩固和加深学生所学一门或几门相关专业课理论知识,培养学生设计、计算、绘画、计算机应用、文献查阅、报告撰写等基本技能;2、培养学生实践动手能力及独立分析和解决工程实践问题能力;3、培养学生的团队协作精神、创新意思、严肃认真的治学态度和严谨求实的工作作风。
基于C51单片机4按键4花样流水灯4种LCD显示的设计
按下K1,LCD显示一种内容同时显示一种花样流水灯,按下K2, K3,K4也有不同的花样和内容。 代码如下: /**************************************************/ #include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define out P0 #define LED P3 uchar i,flag1,flag2,flag3,flag4; /*****定义端口******/ sbit rs=P2^0; sbit rw=P2^1; sbit e=P2^2; sbit k1=P2^4; sbit k2=P2^5; sbit k3=P2^6; sbit k4=P2^7; //////////子函数/////////////// void check_busy(void); void write_command(uchar com); void write_data(uchar dat); void LCD_initial(void); void string(uchar ad ,uchar *s); void lcd_test(void); void delay(uint); /************************流水灯花样设计********************/ uchar table1[]= {0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};/** 从右到左点亮再灭之**/ uchar table2[]={0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff};/****两头分开 点亮再靠拢熄灭****/ uchar table3[]= {0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x9f,0xcf,0xe7,0xf3,0xf9};/****两灯 左右循环****/ uchar table4[]=
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口
引言单片机(微控制器)是一种集成电路芯片,是采用超大规模集成电路技术与数据处理能力的中央处理器CPU,只读存储器ROM,各种各样的I / O口和中断系统、定时器/计数器功能(可能包括显示驱动电路、脉宽调制电路,模拟多路复用器和A / D转换器电路)集成到一块硅组成的小型和完美的微机系统,广泛应用于工业控制领域。
自1980年代以来,8位单片机,发展到现在的300高速单片机。
以其极高的性价比,是人们的注意和关心,应用很广,发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高,成本低,可靠性高,灵活性好,开发较为容易。
由于这些优势,在我国单片机已广泛应用于工业自动化控制、自动检测、智能仪器仪表、电力电子、机电一体化设备和其他方面,最典型的是单片机51单片机。
在本次课程设计中以STC89C52芯片为核心,辅以必要的电路,设计了流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口程序。
同时系统硬件设计简单、稳定性高、价格低廉等优点。
关键词:液晶显示器,STC89C52,RS232MCU (Microcontrollers) is A kind of integrated circuit chips, is to use very large scale integrated circuit technology with data processing ability of the central processor CPU, ROM, A variety of I/O mouth and interrupt system, timer/counter function (may include display driver circuit, pulse width modulation circuit, analog multiplexer and A/D converter circuit) is integrated into A piece of silicon consisting of A small and perfect microcomputer system, widely used in industrial control field. Since the 1980 s, by the time of the four, 8-bit microcontroller, development to the present 300 m high speed single chip microcomputer.SCM since the 1970 s, with its extremely high cost performance, is very wide, developing very quickly. SCM small size, light weight, strong anti-jamming capability, environmental requirements is not high, low cost,highreliability, good flexibility, development is relatively easy. Because of these advantages, in our country, SCM has been widely used in industrial automation control, automatic detection, intelligent instruments and other aspects, and is most typical in the microcontroller 51 single-chip microcomputer ,The curriculum design through study andapplication of it, STC89C52 chip as the core, supplemented by necessary circuit, designed a light water program, digital tube, key procedures, LCD driver and RS232 serial interface program. At the same time the system has simple hardware design, high stability, price is low wait for an advantage .Key words: liquid crystal display,STC89C52,RS232第一章总体设计方案1.1 课程设计任务(1)按照硬件电路画出原理图及PCB图;(2)在硬件电路上完成流水灯、数码管、按键、液晶显示器以及RS232串口通信驱动程序。
4位动态数码管工作原理
4位动态数码管工作原理
动态数码管是由四个7段LED数字显示器组成的,每个显示
器数字段由8个LED灯组成,加上小数点共9个LED灯组成。
工作原理如下:
1. 数码管由一个控制电路和驱动电路组成。
控制电路负责控制每个数码管的显示数字以及小数点,驱动电路负责提供合适的电流和电压来驱动LED灯。
2. 控制电路通过一个计数器或者微控制器来控制显示的数字。
计数器或微控制器输出的二进制数码信号被解码成对应的数字和小数点激活信号。
3. 驱动电路通过驱动IC来驱动LED灯。
驱动IC提供合适的
电流和电压,控制LED灯的亮度和显示效果。
4. 控制电路和驱动电路之间通过共阳极或共阴极连接。
共阳极连接意味着LED灯的阳极(正极)是连接在一起的,而共阴
极连接则是将LED灯的阴极(负极)连接在一起。
5. 控制电路循环地将数字和小数点信号从第一个数码管传递到第四个数码管,每一个数码管显示对应的数字,从而形成连续的数字显示效果。
总结:动态数码管通过控制电路和驱动电路的协作工作,在时序上依次激活每个数码管,并且根据对应的数字信号来点亮相应的LED灯,从而实现数字的动态显示。
四乘四键盘控制LED数码管显示电路.doc资料
四乘四键盘控制LED数码管显示电路目录一、设计内容及要求 (2)二、系统硬件设计方案 (2)三、系统软件设计 (8)四、效果演示 (12)摘要矩阵式键盘系统以N个端口链接控制N*N个按键,使数字显示在LED数码管上。
单片机控制的是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备的硬件、软件等各个部分进行实现。
对于4*4矩阵式键盘,我想采用STC89C52RC单片机为核心,主要由矩阵式键盘电路、译码器、显示电路等组成,软件选用汇编语言编程。
单片机将检测到的按键信号转成数字量,显示于LED显示器上。
该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
一、设计内容及要求用protues仿真设计一个单片机小系统,该小系统外接一个4*4键盘及一个LED数码管,要求按下一个键,数码管上显示该键的对应号码。
键盘的布局如下图所示:主要内容如下:1.根据矩阵式键盘的特点,进行键盘控制系统的整体研究与设计。
2.LED实时显示信息。
3.采用软件编程方法实现按键信息的提取和显示。
二、系统硬件设计方案1.芯片的选择STC89C52RC单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带8K字节可编程FLASH存储器,拥有2K+字节的EEPROM作为程序存储器的拓展。
由于STC89C52RC具有下图中的配置,因此具有结构简单、造价低廉、效率高的特点,省去了外部的RAM、ROM和接口器件,减少了硬件的开销,节省了成本,提高了系统的性价比。
STC89C52RC的主机系统图:STC89C52RC的实物图:2.系统原理图2.1时钟电路时钟电路用来提供单片机片内各种位操作的时间基准。
51单片机芯片内部有一个高增益反相放大器,用于构成时钟振荡电路,XTAL1为该放大器的输入端、XTAL2为该放大器的输出端。
借助内部时钟方式或外部时钟方式形成时钟。
按键控制数码管和流水灯设计报告实验报告
按键控制数码管和流水灯设计报告实验报告实验名称:按键控制数码管和流水灯设计报告一、实验目的本实验旨在通过使用按键来控制数码管和流水灯的显示,加深对数码管和流水灯工作原理的理解,并掌握按键的基本输入输出原理。
二、实验器材1. Arduino开发板2.数码管模块3.面包板4.面包板连接线5.按键模块6.跳线三、实验原理数码管是一种将数字和一些常用符号通过数码电路显示在特定位置的显示器件,由多个LED组成,可显示0-9及一些小于9的字母和符号。
流水灯是一种LED灯的组合,通过不同的时序控制,实现灯光依次点亮或熄灭的效果。
本实验通过使用按键控制器将数码管和流水灯的状态控制与显示,按下不同的按键可以使数码管切换显示不同的数字,同时控制流水灯的点亮或熄灭。
四、实验步骤1. 将数码管模块连接到Arduino开发板的数字I/O口,连接方式可参考数码管模块的接口定义和Arduino开发板的编号。
2. 将按键模块连接到Arduino开发板的数字I/O口,连接方式可参考按键模块的接口定义和Arduino开发板的编号。
3. 按键模块和数码管模块都需要使用面包板连接线和跳线连接到Arduino开发板的相应引脚上。
4.根据按键的读取状态,通过编程控制数码管显示相应的数字,利用流水灯实现通过按键的控制点亮或熄灭。
五、实验结果经过编程和调试,实验中数码管能够正确显示按键输入的数字,同时根据按键输入状态控制流水灯的点亮或熄灭。
按不同的按键可以切换数码管的数字显示,实现了按键对数码管和流水灯的控制。
六、实验总结本实验通过按键来控制数码管和流水灯的显示,加深了对数码管和流水灯的工作原理的理解。
同时,掌握了按键的基本输入输出原理,并通过编程控制实现了按键对数码管和流水灯的控制。
本实验还有一些可以改进的地方,例如可以增加多个按键,实现更多的控制功能;还可以通过增加延时函数控制流水灯的点亮或熄灭速度。
通过不断改进和练习,可以提高对Arduino开发板的理解和掌握。
一个单片机4键控制四个数码管显示的程序或思路
例如你刚上电单片机复位你的单片机先是p1口输出高电平到数码管的段选然后p2口ቤተ መጻሕፍቲ ባይዱ出高电平到反相器然后再输出低电平到数码管的位选
[单片机][控制][数码]求一个单片机4键控制四个数码管显示的程序或思路
应该是P2.0-P2.3控制四个位选码 P2.0-P2.78个段选码
使用两个74HC573 锁存器 并另外用两个端口入P1.0 P1.1分别控制段选使能和位选使能 1^0 1^1 写程序时,先开位选dula=1 再送数P2=0xxx 关段选dula=0 位选操作如上
/*********************************************************
164串行输出段码:
P4.4 U164CP
P4.5 U164D
138输出位选
P4.3选通138
P4.0对应138A
P4.1对应138A
P4.2对应138A
*********************************************************/
}
&= ~BIT3;
}
首先你要看你的数码管是哪类啊?是共阳极还是共阴极。如果你全部都是亮的话,而且是显示个8字的。那么你控制位选,可以改变数码管的显示个数。如果你想改变数码管显示的数字,就改变段选吧。其实你这个一接电源就亮着是有原因的,你接上电源时,单片机的输出端口P0,P1,P2,P3都是复位的。除了P0口外,其他都处于高电平输出。当然,你的板子上也是肯定有个反相器,使高电平变成低电平。例如你刚上电,单片机复位,你的单片机先是P1口输出高电平到数码管的段选,然后P2口输出高电平到反相器,然后再输出低电平到数码管的位选。这样数码管就亮着啦。(我举例的数码管是共阴极的)
单片机四独立按键控制四LED
单片机四独立按键控制四LED单片机四独立按键控制四LED单片机四独立按键控制四LED;四个独立按键对应四个独立的LED,当某一按键按下时对应的LED 亮,当第二次按下时灭,四个LED只能有一个亮,初学者可以参考以下程式:#includeunsigned char k_scan();void delay(unsigned char m);unsigned char k_pro();unsigned char k_v,k_f;unsigned char k;sbit k1=P1^4;sbit k2=P1^5;sbit k3=P1^6;sbit k4=P1^7;sbit led0=P0^0;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;unsigned char t;bit n;void main(void){P0=0xff;k_f=0x00;while(1){k_v=k_scan();if(k_v!=k_f){ delay(1);if(k_v!=k_f){k_f=k_v;k=k_pro();}}tch(k){case 1:{if(n)led0=0;else if(!n)led0=1;}break;case 2:{if(n)led1=0;else if(!n)led1=1;}break;case 3:{if(n)led2=0;else if(!n)led2=1;}break;case 4:{if(n)led3=0;else if(!n)led3=1;}break;default:break;}}}unsigned char k_pro(){ {case 0x01:{k=1;if(led1&led2&led3){n=!n;}else {P0=0xff;delay(250);}}break;case 0x02:{k=2;if(led0&led2&led3){n=!n;}P0=0xff;}break;case 0x04:{k=3;if(led0&led1&led3){n=!n;}P0=0xff;}break;case 0x08:{k=4;if(led0&led1&led2){n=!n;}P0=0xff;}break;default:break;}return(k);}unsigned char k_scan(){P1=0xff;k_v=0x00;k_v=0x00|(!k4);k_v=k_v<<1;k_v|=(!k3);k_v=k_v<<1;k_v|=(!k2);k_v=k_v<<1;k_v|=(!k1);return(k_v);}void delay(unsigned char m) {while(m--){unsigned char i=255;while(i--);} }。
键盘控制数码管显示与流水灯
课程设计任务书题目键盘控制数码管显示及 LED点亮学院(部)__________ 电子与控制工程 ______________专业____________ 建筑设施智能技术 ___________班级________________ 320601 ________________学生姓名_____________________________学号________________5_月日至 _5_月_22_日指导教师_______________2014年5月22日目录一、 .............................................. 摘要 2二、 .......................................... 设计要求 2三、 ...................................... 方案设计说明 2四、 ........................................ 程序流程图 4五、 .......................................... 模块介绍 41)8051CPU (4)2)数码管显示 (5)3) (4X)4键盘输入 (5)4)流水灯显示 (6)六、源程序 (7)程序执行结果 (11)七、主要元器件介绍 (13)1) ..................................................................................................8051 (13)2) .................................................................................................. 共阴极数码管 (15)八、参考书籍 (17)一、摘要单片机是单片微型计算机,它是针对控制与检测应用而设计的,也称为微控制器。
流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口
引言单片机(微操纵器)是一种集成电路芯片,是采纳超大规模集成电路技术与数据处置能力的中央处置器CPU,只读存储器ROM,各类各样的I / O口和中断系统、按时器/计数器功能(可能包括显示驱动电路、脉宽调制电路,模拟多路复用器和A / D转换器电路)集成到一块硅组成的小型和完美的微机系统,普遍应用于工业操纵领域。
自1980年代以来,8位单片机,进展到此刻的300高速单片机。
以其极高的性价比,是人们的注意和关切,应用很广,进展专门快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高,本钱低,靠得住性高,灵活性好,开发较为容易。
由于这些优势,在我国单片机已普遍应用于工业自动化操纵、自动检测、智能仪器仪表、电力电子、机电一体化设备和其他方面,最典型的是单片机51单片机。
在本次课程设计中以STC89C52芯片为核心,辅以必要的电路,设计了流水灯、数码管、按键、液晶显示器LCD驱动程序和RS232串口程序。
同时系统硬件设计简单、稳固性高、价钱低廉等优势。
关键词:液晶显示器,STC89C52,RS232MCU (Microcontrollers) is A kind of integrated circuit chips, is to use very large scale integrated circuit technology with data processing ability of the central processor CPU, ROM, A variety of I/O mouth and interrupt system, timer/counter function (may include display driver circuit, pulse width modulation circuit, analog multiplexer and A/D converter circuit) is integrated into A piece of silicon consisting of A small and perfect microcomputer system, widely used in industrial control field. Since the 1980 s, by the time of the four, 8-bit microcontroller, development to the present 300 m high speed single chip microcomputer.SCM since the 1970 s, with its extremely high cost performance, is very wide, developing very quickly. SCM small size, light weight, strong anti-jamming capability, environmental requirements is not high, low cost, high reliability, good flexibility, development is relatively easy. Because of these advantages, in our country, SCM has been widely used in industrial automation control, automatic detection, intelligent instruments and other aspects, and is most typical in the microcontroller 51 single-chip microcomputer ,The curriculum design through study and application of it, STC89C52 chip as the core, supplemented by necessary circuit, designed a light water program, digital tube, key procedures, LCD driver and RS232 serial interface program.At the same time the system has simple hardware design, high stability, price is low wait for an advantage .Key words: liquid crystal display,STC89C52,RS232第一章整体设计方案1.1 课程设计任务(1)依照硬件电路画出原理图及PCB图;(2)在硬件电路上完成流水灯、数码管、按键、液晶显示器和RS232串口通信驱动程序。
4×4 键盘矩阵控制条形LED显示
目录1 课程设计概述 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)1.4系统设计 (1)1.5功能要求 (1)2 硬件开发平台 (2)3软件开发平台 (3)4硬件电路的设计 (4)4.1硬件电路的基本构成 (4)4.2硬件电路元器件 (4)4.3条形LED灯 (5)4.4硬件资源及其分配 (5)5程序设计 (7)5.1程序流程图: (7)5.2程序代码 (8)6.1运行结果描述 (10)6.2仿真结果图: (10)结论 (11)参考文献 (12)1 课程设计概述1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过4×4 键盘矩阵控制条形LED显示系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力[1]。
1.2设计内容和要求内容:设计一个4×4 键盘矩阵控制条形LED显示。
要求:利用单片机的矩阵键盘,条形LED显示,第几个的按键对应的几个led 灯亮。
1.3 设计思路1.先熟悉实验原理,设计8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字1.4系统设计通过编写程序,实现用中断系统对8×8LED点阵屏的控制,使其每延时一段时间,LED点阵的显示数字就会进行状态转换。
采用单片机内部的I/O口上的P0和P3口可来控制LED点阵。
1.5功能要求本设计能模拟基本的LED点阵显示系统,是用中断的方式定时控制LED点阵显示的内容变换。
定时/计数器工作方式寄存器,定时器采用T0定时器0工作于模式0 位数:13位计数范围:0-8192,每累计250次定时器中断才执行一次换数。
2 硬件开发平台3软件开发平台4硬件电路的设计4. 1硬件电路的基本构成4×4键盘矩阵控制条形LED显示系统,可用单片机的矩阵键盘的输入直接控制发光二极管LED灯的。
1.IO控制LED数码管显示实验
7.实验结果(仿真结果)
当LED做流水运动时,数码管对应位置显示相应的所亮的LED的位置
8.需要改进的地方
(6)把“单片机系统”区域中的P2.7与控制数码管位的锁存器74LS373的LE相连。
(7)把三个锁存器的 都接地。
5.程序主要设计内容
①.由于要使用定时中断,所以在主程序中要对定时中断中的数据进行设置。且由于在主程序中要对LED进行流水操作,为了减少语句,可使用循环移位函数_crol_( )。
②.由于数码管,LED都使用锁存器进行送值,所以对其进行操作时,要注意对锁存器的使能段的操作,即对P2.5-P2.7的操作。
(2)把“单片机系统”区域中的P1.0-P1.7与控制LED的锁存器74LS373的输入口D0-D7相连。
(3)把控制数码管显示的段,位锁存器74LS373的输出口分别于数码管的段和位。
(4)把“单片机系统”区域中的P2.5与控制LED的锁存器74LS373的LE相连。
(5)把“单片机系统”区域中的P2.6与控制数码管段的锁存器74LS373的LE相连。
新疆师范大学实验报1io控制led数码管显示实验电子实验内容利用单片机at89c51口对led和数码管分别进行控制
新疆师范大学
ቤተ መጻሕፍቲ ባይዱ实验报告
课目
单片机及应用技术
实验课题
1.IO控制LED数码管显示实验
电子系
电子07-10班
姓名
马娟
2010年9月8日
同组实验者
无
指导教师
刘楚湘
1.实验内容
利用单片机AT89C51的I/O口,对LED和数码管分别进行控制。以实现LED灯做流水运动,数码管显示所亮LED的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 LED显示
LED显示的原理
数码管的每段笔画其实就是一个单独的发光二极管,内部有两 种不同的连接方式,若将各二极管的阳极都连在一起引出个公共 端——称共阳数码管,如图(a);若将各二极管的阴极都连在一 起引出个公共端——称共阴数码管如图(b);使用时将共阴数码 管公共端接低电平,若某笔画端接高电平则对应笔画点亮,共阳 反之。所以购买和使用时必须高清是共阳还是共阴的。
包含头文件
数组和全局变量定义并赋值 1、显示四个不同信息的一维数组 2、显示字型表数组 3、2S定时的外部计数变量 4、显示缓冲区四个不同内容的取数指针
子函数原型说明 延时1MS子函数, 显示动态扫描子函数
主函数
子函数和定时计数器 中断服务函数
开始 初始化 定时计数器初始、中断初始、2S 外部计数器赋初值、取数指针 i=0,显示第一行内容
if(i==24) //四种显示内容都显示完毕,指针重新调整到第 i=0;} //一显视区 display( ); //调用显示子函数 }
/*延时程序*/ void delay1 (unsigned int ms) { unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<114;j++) ; } /*定时计数器0中断服务程序* / void isr_t0(void) interrupt 1 { TH0=-10000>>8; TL0=-10000; count--; }
动态扫描子程序流程图:
开始
建立显示缓冲区取数首地址指针 预置位扫描初值
i←0 r←01
各管全显示 完? N
r=0x20? 或i=6
Y 子函数 返回
位扫描值送位选口, 选中某位数码管
P3←r
从显示缓冲区取数
a1←dt[i]
查字型表送字型输出口
P1←TAB[a1]
调用延时
延时1MS
1MS子函数
0 1 da[0]
P1.3 P1.2 P1.1 P1.0 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
a b c d e f g h
+5V
EA
RST
89C52
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5
LED显示动态显示的原理
静态显示的优点显示稳定,不存在闪烁。与CPU并行工作。 但从静态显示的硬件可以看出,当选用的数码管越多,译码器的 数量也随之增多,这样会增加硬件的开销。为此人们采用动态显 示。如图所示 字型口
main()
{
//主函数
unsigned chaar i=0,a; //定义变量i —显示缓冲区数组元素
指针,a—某位待输出信息
while (1)
{ P2=r; a=dt[i]; P0=TAB_Font[a]; delay1 (1); // 选中某一位 //从显示缓冲区数组取出该位显示信息 // 查字型表,输出字型 //延时1ms
LED的显示可分静态和动态显示。静态显示是各只数码管单 独用一只显示译码器,单片机与显示器的连接如下图如示:
当某只数 码管要显示某 一数或字符时 单片机向该管 的锁存端发允 许写入电平, 并向P1口发出 显示的十六进 制数,其余管 不允许写入, 接着发锁存信 号。
共阳数码管组成的动态扫描电路
+5V VCC P0.7 k3 k2 k1 k0
While(1){
if(count==0){
2S定时时间到?
Y
取数指针修正 i+6, 2S外部时间计数器赋初值。
N
显示到最后一行了?
N
Y
取数指针复位i=0.
}Hale Waihona Puke 调用显示子函数}主函数流程
unsigned char code dt[]={1,4,0,4,1,6, 10,3,0x14,0x14,0,2, 0x10,0x12,0x12,0x12,0x12,0x12, 0x11,0x14,0x14,0x14,0x14,0x14}; unsigned char code TAB_Font[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,
for(j=0;j<60;j++) ; }
动态显示作为子函数的程序设计
#include<reg51.h> unsigned char code dt[]={0x01,0x02,0x03,0x04,0x05,0x06}; unsigned char code TAB_Font[]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x83,0xF8,0x80,0x90,0x88,0x83,0x C6,0xA1,0x86,0x8E,0x8C,0xFF,0x89}; unsigned r=1; unsigned i=0,a; void delay1 (unsigned int); display();
6
7
8
9
A
B
C
D
E
F
0X73, 0X76, 0X00,0X6E }; (显示: P H 熄灭 Y )
笔画0点亮的LED字型表
TAB[ ]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x83, (显示: 0 1 2 3 4 5 6
0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,
4.2
查键程序
键盘作为单片机应用系统最常见的输入设备,在一般 的应用系统中都是必须的。键个数比较少时,可采用独立式 键盘,即每个键单独与单片机的一个I/O口相连,如图所示
C2
30p
C1
30p
X1
19
U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
0x07,0x7F,0x67,0x77,0x3D,0x39,0x5E,0x79,0X71,0X73,0X76,
0X00,0X6E,0x40}; void delay1 (unsigned int); display(); unsigned char i; //
unsigned char count=200;//
般10ms左右, 超过这一时间再去执行显示程序,它就会闪烁,所
以LED的位数不能太多。
动态扫描具体实现方法:
显示缓冲区
待显示信息数组
0 1 Dt[0]
0 2 Dt[1]
0 3 Dt[2]
0 4 Dt[3]
0 5 Dt[4]
0 6 Dt[5]
首先在内部数据存储器的若干连续单元中开辟一个显示缓冲区 数组,每个单元顺序对应一个数码管,在调用动态扫描子函数以 前,先在数组中写入各数码管要显示的数字和字符在字型表中离 开表头位置的值,这样当动态扫描显示程序要向字型口输出字型 时,只要读得该对应缓冲区内的值,通过查字型表获得输出字型。 注意不是把缓冲单元的值直接输出。
TAB_Font[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x83,0xF8,0x8
0,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x8C,0xFF,0x89};//共 阳字型表数组 unsigned r=1; //位输出口初值,选中最左位LED void delay1 (unsigned int); //延时1ms子函数原型说明
} display( ) // LED动态扫描显示子函数 { unsigned char r=0xfe; unsigned char a,j=0; r=0xfe; //1位选通,要根据数码管类型和硬件电路决定,若0选通应该为 r=0xfe; while (j<6) // 6个数码管没全扫完,继续扫描 { P3=r; //选通某位 a=dt[i+j]; //显示缓冲区去该位要显示的内容 P0=TAB_Font[a];//查字型表向字型口输出字型 delay1 (1); //延时1ms r<<=1; r|=1; //移位选中下一数码管,指针修正 j++; } P0=0x00; // 6个数码管没全完,输出熄灭字型。 }
P2和P3分别为位选和字型口。编程调试。
练习2
将显示"年月日“(140416)、”班级学号”
(A3--05)、“P ”(P后面5个空格)和“H-----”
四种不同的显示方式,在同一程序中以2S轮流循环
显示。 练习3 编程将unsigned char a=567892的值在6位LED 中显示出来。
2S循环显示四种不同信息的程序结构
Proteus演示——硬件图
4位数码管动态显示实例
笔画1点亮的LED字型
TAB[ ]={0x3FH,0x06 ,0x5B ,0x4F, 0x66. 0x6D, (显示: 0 1 2 3 4 5
0x7D,0x07,0x7F, 0x67,0x77 ,0x7C ,0x39 ,0x5E, 0x79, 0X71,
0 2 da[1]
0 3 da[2]
0 4 da[3]
0 5 da[4]
0 6 da[5]