建了一个网站 如何找到放图片的文件夹,免费做网站怎么做网站链接,网络团队建设,龙岗南联网站建设这两天刚刚完成了一个用C编写的程序#xff0c;这是我第一个用C语言编写的程序#xff0c;并且调试成功。第一个C程序#xff0c;值得纪念#xff0c;也值得以后参考。本程序的功能是#xff1a;1.ADC0808转换功能#xff1b;2.数据16进制显示#xff1b;3.串行通信数据…这两天刚刚完成了一个用C编写的程序这是我第一个用C语言编写的程序并且调试成功。第一个C程序值得纪念也值得以后参考。本程序的功能是1.ADC0808转换功能2.数据16进制显示3.串行通信数据。#include#include#define uchar unsigned char#define uint unsigned intsbit STARTP3^6; //启动转换sbit OEP3^5; //输出允许sbit EOCP3^7; //转换结束sbit WCP3^4; //通道选择sbit WBP3^3; //通道选择sbit WAP3^2; //通道选择uchar data led[12];signed data data1;signed data data2;signed data data3;signed data data4;signed data data5;signed data data6;signed data data7;uchar code tv[]{0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb};uchar code dc[]{0xC0, //00xF9, //10xA4, //20xB0, //30x99, //40x92, //50x82, //60xF8, //70x80, //80x90, //90x88, //A0x83, //B0xC6, //C0xA1, //D0x86, //E0x8E, };//F};/十六进制显示方式void delay(void) //延时程序{uint i;for(i0;i10;i);}void ledxianshi(void) //显示模块{uchar k,i;led[0]data1%16; //编码1个位led[1]data1/16%16; //编码1十位led[2]data2%16; //数据1个位led[3]data2/16%16; //数据1十位led[4]data3%16; //编码2个位led[5]data3/16%16; //编码2十位led[6]data4%16; //数据2个位led[7]data4/16%16; //数据2十位led[8]data5%16; //编码3个位led[9]data5/16%16; //编码3十位led[10]data6%16; //数据3个位led[11]data6/16%16; //数据3十位for(k0;k12;k){P2tv[k]; //位选用iled[k];P1dc[i]; //段码数显示delay();}}void csh(void){SM00;SM11;REN1;TI0;RI0;PCON0;TH10xF3;TL10XF3;TMOD0X20;EA1;ET10;ES1;TR11;TI0;SBUFdata1;while(!TI);TI0;SBUFdata2;while(!TI);TI0;SBUFdata3;while(!TI);TI0;SBUFdata4;while(!TI);TI0;SBUFdata5;while(!TI);TI0;SBUFdata6;while(!TI);TI0;}void ad1(void){WA0; //通道1WB0;WC0;START1;START0; //启动转换while(EOC0); //转换结束信号为0则说明转换结束OE1; //输出允许信号为真可以输出data7P0; //P0口的测量值送到TVDATEOE0; //关输出允许}void ad2(void){WA1; //通道1WB0;WC0;START1;START0; //启动转换while(EOC0); //转换结束信号为0则说明转换结束OE1; //输出允许信号为真可以输出data4P0; //P0口的测量值送到TVDATEOE0; //关输出允许}void ad3(void){WA0; //通道1WB1;WC0;START1;START0; //启动转换while(EOC0); //转换结束信号为0则说明转换结束OE1; //输出允许信号为真可以输出data6P0; //P0口的测量值送到TVDATEOE0; //关输出允许}void main(void){data10X01;data30X02;data50X03;ad1();ad2();ad3();loop:ledxianshi();ad1();if ((data7-data2)0){data2data7;ad2();ad3();csh();goto loop ;}elsegoto loop ;}----------------------------------------------------------------------------------A51汇编程序;;;;;;;;;;;;;;;;;;;;;;;;;;;DATA1 DATA 60HDATA2 DATA 61HDATA3 DATA 62HDATA4 DATA 63HDATA5 DATA 64HDATA6 DATA 65HDATA7 DATA 66HDATA8 DATA 67H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LDATA DATA 54H;;;;;;;;;;;;;;;;;;;;;;;EOC BIT P3.7 ;接口定义ST BIT P3.6OE BIT P3.5WC BIT P3.4WB BIT P3.3WA BIT P3.2K1 BIT P2.4K2 BIT P2.5K3 BIT P2.6K4 BIT P2.7ORG 0000HAJMP SENDORG 0030HSEND: MOV TMOD,#20H ;串口初始化MOV TH1,#0F3H ;传输波特率2400MOV TL1,#0F3HMOV SCON,#50HMOV PCON,#00HSETB TR1MOV DATA1,#01H ;识别码定义每个识别码对应一个数据MOV DATA3,#02HMOV DATA5,#03HLP1: CLR WB ;AD口选择000位通道0数据CLR WACLR WCCLR STSETB STCLR STJNB EOC,$SETB OEMOV DATA2,P0 ;将临时存储器上的数据送给数据1LP2: CLR WC ;AD口选择001位通道1数据CLR WBSETB WACLR STSETB STCLR STJNB EOC,$SETB OEMOV DATA4,P0 ;将检测的数据送给数据2CLR OELP3: CLR WC ;AD口选择010位通道2数据SETB WBCLR WACLR STSETB STCLR STJNB EOC,$SETB OEMOV DATA6,P0 ;将检测的数据送给数据3CLR OELCALL TT0 ;调用串口数据传输程序LP: LCALL LEDSHOW ;调用显示程序CLR WCCLR WBCLR WACLR STSETB STCLR STJNB EOC,$SETB OEMOV LDATA,P0 ;将通道0的检测数据送送给临时存储器CLR OEMOV A,LDATACJNE A,DATA2,DADA ;数据1不等于临时数据跳转到数据比较AJMP LP ;如果相等执行这条指令DADA:JC XIXI ;临时数据小于数据1跳转到小值指令AJMP LP1 ;临时数据大于数据1跳到重新判断三个数据值XIXI:AJMP LP ;数据1小于临时数据执行这条指令继续判断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TT0: MOV SBUF,DATA1 ;编码1送入串口SBUFSENT0: JBC TI,SENWT1 ;判断发送是否完成完成则跳到SENWT1,没有完成执行下一条指令LCALL LEDSHOW ;调用数据显示程序SJMP SENT0 ;返回继续检测发送完成指令SENWT1: CLR TI ;关闭发送MOV SBUF ,DATA2;将数据1送入串口SBUFSENWT2: JBC TI,SENWT3 ;判断发送是否完成完成则跳到SENWT3,没有完成执行下一条指令LCALL LEDSHOW ;AJMP SENWT2 ;返回继续检测发送完成指令SENWT3: CLR TI ;关闭发送;以下程序相同功能发送另外两组数据TT0_2: MOV SBUF,DATA3 ;SENT0_2: JBC TI,SENWT1_2;LCALL LEDSHOW ;SJMP SENT0_2 ;SENWT1_2: CLR TI ;MOV SBUF ,DATA4;SENWT2_2: JBC TI,SENWT3_2;LCALL LEDSHOW ;AJMP SENWT2_2 ;SENWT3_2: CLR TI ;;TT0_3: MOV SBUF,DATA5 ;SENT0_3: JBC TI,SENWT1_3;LCALL LEDSHOW ;SJMP SENT0_3 ;SENWT1_3: CLR TI ;MOV SBUF ,DATA6;SENWT2_3: JBC TI,SENWT3_3;LCALL LEDSHOW ;AJMP SENWT2_3 ;SENWT3_3: CLR TI ;RET ;数据发送完成退出子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;数据显示LEDSHOW: MOV R1,#60HMOV P2,#0F0HLEDSHOW_1:MOV A,R1MOV B,#16DIV ABLCALL LEDINC P2MOV A,BLCALL LEDINC P2INC R1MOV A,R1CJNE A,#66H,LEDSHOW_1RET;;;;;;;;;;;;;;数码管显示LED: MOV DPTR,#TABLEMOVC A,ADPTRMOV P1,ALCALL DELAY1RETTABLE:DB 0C0H ;0DB 0F9H ;1DB 0A4H ;2DB 0B0H ;3DB 99H ;4DB 92H ;5DB 82H ;6DB 0F8H ;7DB 80H ;8DB 90H ;9DB 0C8H ;ADB 083H ;BDB 0C6H ;CDB 0A1H ;DDB 086H ;EDB 08EH ;FDB 0BFH ;-DELAY1:MOV R7,#10L1: MOV R6,#50DJNZ R6,$DJNZ R7,L1RETDELAY:MOV R5,#250D1: MOV R6,#200D2: DJNZ R6,D2DJNZ R5,D1RETEND