微星pic_ccs_第三节pdf格式课程

上传人:suns****4568 文档编号:85139131 上传时间:2019-03-07 格式:PDF 页数:18 大小:839.60KB
返回 下载 相关 举报
微星pic_ccs_第三节pdf格式课程_第1页
第1页 / 共18页
微星pic_ccs_第三节pdf格式课程_第2页
第2页 / 共18页
微星pic_ccs_第三节pdf格式课程_第3页
第3页 / 共18页
微星pic_ccs_第三节pdf格式课程_第4页
第4页 / 共18页
微星pic_ccs_第三节pdf格式课程_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《微星pic_ccs_第三节pdf格式课程》由会员分享,可在线阅读,更多相关《微星pic_ccs_第三节pdf格式课程(18页珍藏版)》请在金锄头文库上搜索。

1、 PIC MCU CCS C learn tutorial From Tianjin web: 26 #define PORTA 0xF80 #define PORTB 0xF81 #define PORTC 0xF82 #define PORTD 0XF83 #bit motor = PORTC.0 /定义电机控制管脚为 RC0 #use fast_io(C) void main() set_tris_c(0x00); /设置 RC 口为输出模式 while(1) motor=1; /电机上电 delay_ms(6000); /上电工作时间 motor=0; /电机断电 delay_ms(6

2、000); /断电延时时间 /*/ DC 电机属于感性负载,整个程序也适合继电器的控制,即继电器控制过程与 DC 电机控制 类似,请大家自行尝试。 /*/ /*/ 4.3 第三节课第三节课 数码管静态显示和独立键盘输入设计数码管静态显示和独立键盘输入设计 学习内容包括 如何在 1 位数码管进行数字和字母的显示 如何检测键盘输入 数组、元素、利用数组实现查表 IF 语句、轮询法 键盘消抖 一数码管静态显示一数码管静态显示 PIC MCU CCS C learn tutorial From Tianjin web: 27 (一)(一) 什么是数码管什么是数码管 数码管是一种半导体发光器件,其基本单

3、元是发光二极管。 数码管按段数分为七段数码管和八段数码管, 八段数码管比七段数码管多一个发光二极管单 元 (多一个小数点显示) ; 按能显示多少个“8”可分为 1 位、 2 位、 4 位等等数码管; TOPPIC 开发板采用的是开发板采用的是 4 位共阴极数码管位共阴极数码管(最右侧) 按发光二极管单元连接方式分为共阳极数码管共阳极数码管和共阴极数码管共阴极数码管。共阳数码管是指将所共阳数码管是指将所 有发光二极管的阳极接到一起形成公共阳极有发光二极管的阳极接到一起形成公共阳极(COM)的数码管的数码管。共阳数码管在应用时应将公公 共极共极 COM 接到接到+5V,当某一字段发光二极管的阴极为

4、低电平时,相应字段就点亮。当某一 字段的阴极为高电平时, 相应字段就不亮。 共阴数码管是指将所有发光二极管的阴极接到一共阴数码管是指将所有发光二极管的阴极接到一 起形成公共阴极起形成公共阴极(COM)的数码管的数码管。 共阴数码管在应用时应将公共极公共极COM接到地线接到地线GND上, 当某一字段发光二极管的阳极为高电平时, 相应字段就点亮。 当某一字段的阳极为低电平时, 相应字段就不亮。 PIC MCU CCS C learn tutorial From Tianjin web: 28 (二)数码管的驱动方式(二)数码管的驱动方式 数码管要正常显示, 就要用驱动电路来驱动数码管的各个段码,

5、从而显示出我们要的数 字,因此根据数码管的驱动方式的不同,可以分为静态式静态式和动态式动态式两类。 静态显示驱动静态显示驱动 静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程 简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 58=40 根 I/O 端口来驱动,要知道一个 89S51 单片机可用的 I/O 端口才 32 个呢: ) ,实际应用时必 须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动动态显示驱动 数码管动态显示接口

6、是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所 有数码管的 8 个显示笔划“a,b,c,d,e,f,g,dp“的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所 有数码管都接收到相同的字形码, 但究竟是那个数码管会显示出字形, 取决于单片机对位选 通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出 字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM 端,就使各个 数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 1 2ms

7、,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点 亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态 显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低。 电流电流 静态时,推荐使用 10-15mA;动态时,16/1 动态扫描时,平均电流为 4-5mA,峰值 电流 50-60mA。 电压电压 PIC MCU CCS C learn tutorial From Tianjin web: 29 查引脚排布图,看一下每段的芯片数量是多少?当红色与黄绿色时,使用 1.9V 乘以每 段的芯片串联的个数;当绿色/蓝色时,使用

8、3.1V 乘以每段的芯片串联的个数。 特点特点 数码管可现实数字,小数点,部分英文和符号,亮度高,抗冲击 TOPPIC 开发板数码管显示部分图片开发板数码管显示部分图片 PIC MCU CCS C learn tutorial From Tianjin web: 30 (三)原理图(三)原理图 反相器 共阴极接法数码管共阴极接法数码管 Segment LED 与 MCU 管脚对应 list: A-RD0 B-RD1 C-RD2 D-RD3 E-RD4 F-RD5 G-RD6 DP-RD7 DS1-DS4 为 COM PIC MCU CCS C learn tutorial From Tianj

9、in web: 31 (四(四 例程)例程) /*静态显示静态显示*/ /*Segment LED 试验程序 1*/ 采用全部语句逐行显示 #include #fuses HS,NOWDT,PUT,NOPROTECT #use delay(CLOCK=10000000) /晶振采用 10Mhz #define PORTA 0xF80 #define PORTB 0xF81 #define PORTC 0xF82 #define PORTD 0XF83 #bit A1=PORTA.1 /定义 A1 为 RA1 #use fast_io(C) void main() A1=1; set_tris_

10、a(0xfd); /设置 A1 口为输出模式 set_tris_d(0x00); /设置 RD 口为输出模式 while(1) output_d(0x3f); /显示 0 delay_ms(1000); output_d(0x06); /显示 1 delay_ms(1000); output_d(0x5b); /显示 2 delay_ms(1000); output_d(0x4f); /显示 3 delay_ms(1000); output_d(0x66); /显示 4 delay_ms(1000); output_d(0x6d); /显示 5 delay_ms(1000); output_d

11、(0x7d); /显示 6 PIC MCU CCS C learn tutorial From Tianjin web: 32 delay_ms(1000); output_d(0x07); /显示、7 delay_ms(1000); output_d(0x7f); /显示 8 delay_ms(1000); output_d(0x6f); /显示 9 delay_ms(1000); output_d(0x77); /显示 A delay_ms(1000); output_d(0x7c); /显示 b delay_ms(1000); output_d(0x39); /显示 C delay_ms

12、(1000); output_d(0x5e); /显示 d delay_ms(1000); output_d(0x79); /显示 E delay_ms(1000); output_d(0x71); /显示 F delay_ms(1000); 此时数码管将每隔 1 秒钟显示一个数字从 0 开始一直显示到 F。 /*/ /*/ /*知识点知识点“数组”*/ 数组:同类型的一批数据的有序集合。由若干个元素组成。必须先定义后使! 数组的定义:数组的定义: 存储器类型存储器类型 数据类型数据类型 数组名数组名 元素的个数元素的个数; 注:元素的个数必须是常量注:元素的个数必须是常量 例如:例如:uch

13、ar sz17; 不能写成不能写成 Int a; a=17; uchar sza; 但是如果使用但是如果使用常量限定符常量限定符 const const a=17; PIC MCU CCS C learn tutorial From Tianjin web: 33 uchar sza; 赋初值赋初值 定义的同时既可以对整个数组赋值 1. 初值的个数不能超过数组的大小,例子中定义了 17 个元素,所以之间的元素 个数必须17。 例如: uchar sz17=0x3f, 0x06, 0x5b, 0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,0x00 ; 2. 可以先不指定元素的个数,则初值的个数由元素的个数决定(常用此方式常用此方式) 例如: uchar sz =0x3f, 0x06, 0x5b, 0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,0x00 ; 先定义后只能对单个元素进行赋值 例如: uchar sz17; /先进行定义 sz0=0x3f; sz1=0x06; sz2=0x5b; sz16=0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号