电子技术部第七次培训总结

来源:互联网 发布:报表数据的重要性 编辑:程序博客网 时间:2024/06/04 23:12

☺主要知识点:

    1.Led灯循环亮灭

    2.Led灯亮度调节

    3.数码管显示


1.LED灯循环亮灭


  ①添加头文件<intrins.h>

  ②左移函数:

    

     函数原型:

     _crol_(a,b);

          

       运算规则

        将二进制位的操作数按指定移动的位数向左移动,高位移出(舍弃),低位的空位补零。   

       

        语法格式:

        需要移位的数字 <<移位的次数

        a <<b;

  ③右移函数:

        ⑴

        函数原型:

        _cror_(a,b);

        ⑵

        运算规则:

        将二进制位的操作数按指定位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位(无符号型补0

        ⑶

        语法格式:

        需要移位的数字>>移位的次数

        a>>b;

  ④程序实现:
#include<reg51.h>#include<intrins.h>#define uint unsigned int #define uchar unsigned charvoid delay10ms(uint d)   //延迟函数  延迟时间为 d*10ms{    uchar i=0,a,b,c;     for(;i<d;i++)for(c=1;c>0;c--)           for(b=38;b>0;b--)              for(a=130;a>0;a--);}void led(){        uint a=0;a=0x00;  P0=a;  //令共阴极发光二极管初始化全灭a=0x01;//点亮一盏发光二极管while(1){ a=_crol_(a,1); //每次左移一位P0=a;delay10ms(100); //持续亮1s}}void main(){ led();}
2.调节亮度:

  1.通过调节供电时间,来改变平均电压的大小,从而改变led小灯亮度或者蜂鸣器音量。

   本节课使用单片机小精灵来控制delay时间.

  2.程序实现:

#include<reg51.h>#include<intrins.h>#define uint unsigned int #define uchar unsigned charvoid delay10ms(uint d)   //延迟函数  延迟时间为 d*10ms{    uchar i=0,a,b,c;     for(;i<d;i++)for(c=1;c>0;c--)           for(b=38;b>0;b--)              for(a=130;a>0;a--);}void delay10us(uint d)   //延迟函数  延迟时间为 d*10us{    unsigned char i =0,a,b;for(;i<d;i++){    for(b=1;b>0;b--)        for(a=2;a>0;a--);}}void led_2(){        uint time; P0=0x00;  //发光二极管初始化全灭while(1){LED_2=1;  //点亮LED_2小灯LED_1=1;  //点亮LED_1小灯delay10us(10);LED_1=0;  //100us之后熄灭LED_1delay10us(time);time++;if(time>200)time=0;}}void main(){ led_2();}
3.数码管的使用:

    ① .LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

    ②.  通过对数码管上八个发光二极管的搭配点亮,来实现对所需数字的显示,是数码管的直接使用方法。

    ③锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个I/O口既能输出也能输入的问题。锁存器是利用电平控制数据的输入,它包括不带使能控制的锁存器和带使能控制的锁存器。所谓锁存器,就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号到来时才改变。

   ④138译码器,通过对三位输入端的电平不同搭配,来实现138译码器不同输出电平效果,从而实现对单片机上某一个数码管的使用的选择,例如138译码器三位输入端为'0 0 0',则对应的输出端为'11111110',从而导通第一个数码管的电路。

   ⑤动态显示原理:通过分时轮流控制各个数码管的的COM,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低


  ⑥程序实现:

#include<reg51.h>#include<intrins.h>#define uint unsigned int #define uchar unsigned charsbit C138=P2^4;sbit B138=P2^3;sbit A138=P2^2;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7D,0x07,0x7f,0x6f};void delay1ms(void)   //延迟函数  延迟时间为 1ms{    unsigned char a,b,c;    for(c=1;c>0;c--)        for(b=142;b>0;b--)            for(a=2;a>0;a--);}void delay10ms(uint d)   //延迟函数  延迟时间为 d*10ms{    uchar i=0,a,b,c;     for(;i<d;i++)for(c=1;c>0;c--)           for(b=38;b>0;b--)              for(a=130;a>0;a--);}void delay10us(uint d)   //延迟函数  延迟时间为 d*10us{    unsigned char i =0,a,b;for(;i<d;i++){    for(b=1;b>0;b--)        for(a=2;a>0;a--);}}void number_led(){ //先选择138译码器输出电平搭配       C138=0;  B138=0;A138=0;  //再选择数码管所需显示的字符            P0=table[0];  //间隔1ms,小于人眼暂留时间       delay1ms();C138=0;B138=0;A138=1;P0=table[1];delay1ms();C138=0;B138=1;A138=0;P0=table[2];delay1ms();C138=0;B138=1;A138=1;P0=table[3];delay1ms();}void main(){ while(1){ number_led();}}

FROM ESTA





阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中船防务股票行情 中船重工贸易公司 中船重工第七研究院 中船重工年报 中船重工招聘信息 中船重工凌久电子坑爹 600685中船防务股吧 中船集团陆子友 大海中的船 600685股票 中国船舶 广船国际股票 广船国际 600685 中艺 六艺中的御指什么 古代六艺中的御是指 中芭艺蕾 中艺化妆学校 中艺珠宝首饰 艺中艺健身俱乐部 中艺艺术培训中心 中艺影视 中艺藏 中艺达 俊鹏嘉艺 艺都 时艺 于艺 那艺 艺上 同艺 得艺 艺才 有艺 本艺 艺尔艺 艺和 艺同 艺本 来艺