期的指令,所以在同样晶振频率下,较8051速度要快。另PIC的8位单片机前几年是世界上出货量最大的单片机,飞思卡尔的单片机紧随其后。
ARM实际上就是32位的单片机,它的内部资源(寄存器和外设功能)较8051和PIC、AVR都要多得多,跟计算机的CPU芯片很接近了。常用于手机、路由器等等。
DSP其实也是一种特殊的单片机,它从8位到32位的都有。它是专门用来计算数字信号的。在某些公式运算上,它比现行家用计算机的最快的CPU还要快。比如说一般32位的DSP能在一个指令周期内运算完一个32位数乘32位数积再加一个32位数。应用于某些对实时处理要求较高的场合。
附录一:程序
#include
codetab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管显示段码
uchar codetd[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先择数组
uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0; uchar m,number;
uchar x[8];//八通道数据待存数组 void delaynms(uint x);//nms延时程序 void display();//显示程序 void ad0809();//芯片启动程序 void key();//键扫描程序 main() { number=1;
P1=0x00; while(1) {
ad0809();//调AD0809 启动子程序 key();//调按键子程序
ad_0809=x[number];//把相关通道数据给ad_0809 display();//调显示 }}
//nms 延时程序 void delaynms(uint x) { uchar i; while(x-->0) {
for(i=0;i<125;i++) {;}}}
void display() { uchar a;
ad_data1=(ad_0809*49/25)/100;//读得的数据乘以2 再乘以98%除以100 得百位
ad_data2=((ad_0809*49/25)0)/10;//读得的数据乘以2 再乘以
98%再分出十位
ad_data3=(((ad_0809*49/25)0));//读得的数据乘以2 再乘以98%再分出个位 for(a=0;a<10;a++) {
P0=tab[ad_data3];//送小数点后第二位显示 P2=0x07;//选通第一个数码管 delaynms(3);
P0=tab[ad_data2];//送小数点后第一位显示 P2=0x0b;//选通第二个数码管 delaynms(3);
P0=tab[ad_data1];//送整数显示 P0_7=0;//点亮第三个数码管小数点 P2=0x0d;// 选通第三个数码管 delaynms(3);
P0=tab[number];//送通道号显示 P2=0x0e; delaynms(3); }}
void ad0809() {
uchar i,m=1;