1 / 17
文档名称:

CT107D编程手册.doc

格式:doc   大小:141KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

CT107D编程手册.doc

上传人:相惜 2021/9/5 文件大小:141 KB

下载得到文件列表

CT107D编程手册.doc

相关文档

文档介绍

文档介绍:精选范本,供参考!
页脚下载后可删除,如有侵权请告知删除!
精选范本,供参考!
一、IO口编程
IO编程,该开发板使用了573锁存器,通过P2口的5,6,7位连接3-8译码器,扩展出了8个口,其中4个口分别连接4个573锁存器,这里以LED的锁存器来举例:
原理图573:
分析代码:
P2=〔〔P2&0x1f〕|0x80〕;
其中0x1f=0001 1111,P2与0x1f进展与运算,高三位清零,其余位保持原来状态,不改变,即把控制3-8译码器的高三位留出来:
接着再或上0x80;容易发现0x80=1000 0000;或运算,与1或结果为1,与0或结果不变,所以或上0x80只需看P2的高三位,那么高三位为100,对应3-8译码器的话,P2^7=1;P2^6=0;P2^5=0;
所以输出Y4=0;Y4再经过与非运算,看下列图示:
那么输出Y4C=1;即LED对应的锁存器的片选信号被选中,锁存器打通,接下来就可以对P0口进展操作,操作完之后,
P2=P2&0x1f;P2高三位直接清零,此时Y4C=0,那么把锁存器锁上了。
类似的方法,数码管、蜂鸣器等都是如此操作,
选中锁存器代码:
P2=〔〔P2&0x1f〕|〔这里填对应锁存器的位移号〕〕。
二、              数码管动态扫描和定时器
数码管显示分为段选和位选,
数码管定义和显示函数:
Code unsigned char tab[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned chardspbuf[]={10,10,10,10,10,10,10,10};
unsigned chardspcom=0;
void display()
{
//段选,消隐
P2=((P2&0x1f)|0xe0);
P0=0xff;
P2=P2&0x1f;
//位选
P2=((P2&0x1f)|0xc0);
P0=(1<<dspcom);
P2=P2&0x1f;
//段码输入
P2=((P2&0x1f)|0xe0);
P0=tab[dspbuf[dspcom]];
P2=P2&0x1f;
if(++dspcom==8)
       dspcom=0;
精选范本,供参考!
页脚下载后可删除,如有侵权请告知删除!
精选范本,供参考!
}
注意:这里1左移dspcom位,刚开场dspcom=0,那么1左移dspcom位依旧为1,接着dspcom每次自增1,1对应二进制00000001,即把1每次向左移,每次都比上一次多移一位,直至8位移完,对应8个数码管。
定时器配置:
这里只需记住定时器的配置,知道怎么使用就可以了。首先有两个定时器,T0和T1,〔也有的单片机有T2〕,定时器有4种工作方式0,1,2,3;其中最常用的是方式1〔16位〕,其次是方式2〔8位自动重装,串口通讯中断会用到〕。
定时器需要配置:TMOD |=0x01;配置成使用定时器0,工作方式为1;同理使用定时器1工作方式1:TMOD|=0x10;那么同时使用两个定时器且工作方式为1,那么可以:TMOD|=0x11;
定时器1配置成工作方式2:TMOD |=0x20;
接着配置(以定时器0举例):
TH0=(65535-2000)/256;//配置初值
TL0=(65535-2000)%6;
ET0=1;
TR0=1;//定时0中断
EA=1;//总中断
定时器1也是同理的,只不过0要改成1.
接着定时中断函数和优先级:
定时器0
void isr_timer_0(void) interrupt1  //默认中断优先级1
{
    TH0= (65536-2000)/256;
    TL0= (65536-2000)%6;  //定时器重载
   display();
}
定时器1:
voidisr_timer_1(void)  interrupt 3 //默认中断优先级3
{
    TH0= (65536-2000)/256;
    TL0= (65536-2000)%6;  //定时器重载
   display();
}
注意:定时器0优先级为1,定时器1为3,串口中断优先级为4,总共有5个中断源,后面还会介绍外部中断和串口中断。
数码管动态扫描,显示函数放在定时中断函数里面,2ms扫一次是最稳定的!!
三、              矩阵键盘
矩阵键盘需要死记了!这里不再讲独立键盘。
第二种单片机键盘扫描代码(没有消抖):
sfrP4^4=0xC0;
//键盘定义
sbitr1=