欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机实验程序全.docx

    • 资源ID:12730284       资源大小:53.03KB        全文页数:19页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机实验程序全.docx

    1、单片机实验程序全2基本输入输出实验(蜂鸣器控制程序)严*名称:基本输入输出(LO)程序 说 明:# mclude define umt unsigned mt frdefine uchar unsigned char sbit buzzei-=P3A5;sbit Keyadd=P2A0;sbit Keydec=P2Al; sbit Keycom=P2A2;void Delay(umt z) uiiit x;uchar v; fbi(x=z;x0;x) for(y=250;y0;y-);包含头文件宏定义延时void main(void) uchai- voice;voice=3;wlule(l)

    2、if(Keyadd=O)voice=l;if(Keydec=O)voice=2;if(Keycom=0)voice=3;if(voice=l)buzzei-buzzer;Delay(l);else if(voice=2) buzzei-buzzer; Delay(20);else按键被按下时为0buzzer=l;3定时器中断实验严* 名称:实验三作业 说 明:*/# mclude define umt unsigned mt #define uchar unsigned char uchai counter;uchai voice;sbit buzzei-=P3A5;sbit Keyadd=P

    3、2A0;sbit Keydec=P2Al;sbit Keycom=P2A2; sbit Keycan=P2A3;包含头文件宏定义 计算计数器初值 -/define TO_TIME1define TOReLoadLl#define TOReLoadHl254 定时时间us为单位(65536-(umt)(T0_TINIE 1*11.0592/12) % 256) (65536-(umt)(T0_TEvIEl*l 1.0592/12) / 256)/计算计数器初值 /define T0ReLoadL2#define T0ReLoadH2#define T0_TIME2 1400 定时时间 us 为单

    4、位(65536-(umt)(T0_TINIE2* 11.0592/12) % 256) (65536(uint)(T0_TIME2 *11.0592/12)/ 256)严*名称:主程序 说明:*/void main(void)/ 初始化TIMER0TMOD|=0x01;定时器TO方式1TH0=TOReLoadHl;装载计数器初值TLO=TOReLoadLl;TRO=1;启动 TuneiOETO=1;/TiinerO中断使能EA=1;总开关使能/ 大循坏countei=0;voice=l;if(Keydec=O)voice=2;if(Keycom=0)voice=3;名称:TiinerO中断服务

    5、子程序功能:产生10ms定时中断void TimeiO_Iiit(void) intewupt 1 if(voice=l)TH0=T0ReLoadHl;重装载计数器初值TL0=T0ReLoadLl; buzzei-buzzer;if(voice=2)TH0=T0ReLoadH2;TL0=T0ReLoadL2: buzzei-buzzer; if(voice=3)4 LED数码管动态扫描显示实验#mclude#define uiiit unsigned iiit#define uclw unsigned char/ LED显示代码 -/ bit7 bit6 bit5 bit4 bit3 bit2

    6、 bitl bitO /dp G C D E F B A#define TOReLoadL#define TOReLoadHuchai code seg10= 0x3f.0x22.0x5b.0x73?0x66, /0,1,23,40x75,0x7d,0x23,0x7f,0x77,;/5,6,7,8,9uchaiidatadis_buSLl4;第一行LED显示缓冲uchaiidatadis_buSL2 4;/第二行LED显示缓冲uchaicounter;sbit U4_HC574_CP=PlA0;/S3显示锁存74HC574脉冲sbit U5_HC574_CP=P1A1;/S4显示锁存74HC5

    7、74脉冲define T0_TDvIE 10000定时时间us为单位(65536-(umt)(T0_TDvIE* 11.0592/12) % 256)(65536(uint)(T0_TIME*ll0592/12) / 256)严*名称: 数码管显示驱动子程序说明:*/ void Display(void) uchar data i,j,k.temp00; temp00=0x20;关所有打描位/S3显示锁存74HC574脉冲 上升沿/S4显示锁存74HC574脉冲 上升沿送扫描位延时/打描位移位关所有打描位for(i=0;i4;i+) Pl |= 0x3C; PO=dis_buffLli;U4

    8、HC574 CP=0:zU4 HC574 CP=1; P0=dis_buffL2i;U5 HC574 CP=0:zU5 HC574 CP=1; Pl &= (tempOO); for(j=0j20+) for(k=0;k20;k+);temp00=l;Pl|=0x3C;严*名称:主程序*/void main(void)uchar data bai.shi.ge; uiiit data Num;uchar data tempOO; TMOD|=0x01;THO =T0ReLoadH;TLO =TOReLoadL;TRO =1;ETO =1;EA =1;countei-O;Num=999;for(

    9、;) bai=NunV100;tempOO=Num-bai* 100; slu=temp00/10;ge =temp00-slii*10; dis_bufLlO=O; dis_bufLll=O;dis_bufLl2=0;dis_bufLl3=0; dis_bufL20=0;dis_bi】f!L2 l=segbai; dis_bi】f!L2 2=segshi; dis_buff_23=segge;if(counter=100)countei-O; Num;if(Num=0)Num=999;DisplavQ;void TimeiO_Iiit(void) intewupt 1定时器TO方式1装载计数

    10、器初值启动 TunerO /TiinerO中断使能总开关使能调用LED数码管显示子程序TH0=T0ReLoadH;TLO=TOReLoadL;countei+;重装载计数器初值5实时时钟与温度传感器实验(只需main ()部分代码) void main(void)uchar HourMin.Sec;/ 初始化TIMEROTMOD|=OxOi;THO =T0ReLoadH; TLO =TOReLoadL;TRO =1;ETO =1;EA =1;定时器TO方式1装载计数器初值 启动 TunerO /TiinerO中断使能总开关使能countei=0;/ 人循坏WR_DS 1302(0x8匕 0X0

    11、0);WR_DS 1302(0x84.0X14);WR_DS 1302(0x82,0X43);WR_DS 1302(0x80.0X00);WR_DS 1302(0x8匕 0X80);血(;)Hou尸 RD_DS 1302(0x85);Mm=RD_DS 1302(0x83);Sec=RD_DS1302(0x81);dis_buff.l 0=segHour4; if(counter=49)dis_buSLl l=segHour&OxOf |0x80; else if(countei=99)dis_bufiLl l=segHoui&OxOf;else if(countei-=100) counter

    12、=0;dis_buff.l 2=segMiii4;3=segMm&0 xOf;dis_buff_20=0;dis_buff_2l=0;dis_buff_22=segSec4;dis_buff_23=segSec&OxOf;DisplavQ;6 74HC595串行输入实验/ use _nop_() ftinction#include # iiiclude#define umt unsigned mt#define uclw unsigned charuchai counter;/ 计算计数器初值 -/严*名称:WR_74HC595说明:向2片74HC595写入2字节数据(HC595_buff)*

    13、/ void WR_74HC595(void) uchar ij,k,temp00;HC595RegCLK = 0;HC595SluftCLK = 0;for(i=0;i2;i+)k=0X80; temp00=HC595_buffI 1 -1;for(j=0j8j+)if(temp00 & k) HC595S_Data= 1;else HC595S_Data = 0;HC595ShiftCLK= 1; k= 1;锁存线置“低”/HC595.CLK =0/HC595.SDA产生上升沿,移入数据/k右移一位HC595ShiftCLK=0;/HC595.CLKHC595RegCLK = 1;/产生上

    14、升沿,锁存数据重装载计数器初值void TimeiO_Iiit(void) intewupt 1 TH0=T0ReLoadH;TL0=T0ReLoadL;countei+;严*名称:主程序说明:main主函数放在所有子程序的后面,自称无需声明定义void main(void) uchar CN j;CN=0;HC595_buff!0=0x00;HC595.buffl=0x00; 初始化TIMEROTMOD|=OxOi;THO =T0ReLoadH; TLO =TOReLoadL;TRO =1;ETO =1;EA =1;定时器TO方式1装载计数器初值 启动 Tunei O /TiinerO中断使

    15、能总开关使能counter=0;血(;) if(CN10)if(countei50)counter=0;HC595_buff0sHC595_buff0;HC595_buffI 1 =HC595_biiffI 1 ; CN+;countei=0;1=0;if(CN=10) HC595_biiff!O=OxOO;HC595_buffl=OxO8;else if(CN=10)if(countei10)】+;countei-0;if(i4) HC595_buffIl=l; else if (i=4) HC595_buffl0=0x80; HC595_bi】ff!l=0x00;else if(i12)

    16、HC595_buffl0=l;else if(i=12)1=0;HC595.bufftO=OxOO; HC595.buffl=0x08;WR_74HC595Q;7交通信号灯控制实验(仅需TraficLighter_ctrl()?程序部分代码) void TraficLighter_ctil(void)switch(TiaficLightei_state)case 0: /初始化状态,两个方向都为红灯5秒钟 iftimeic ountl=50)tiiner_countl=0;HC595_buff!0=HC595_biiffT0;HC595_buffI 1 =HC595_bi】ffI 1 ;if

    17、(tiiner_count0=0)TraficLighter_state= 1;timer_count0=30;HC595_buffl0=0; break; case 1:HC595_bufIIl=0;状态1,南北方向红灯,东西绿灯East_Green=l;West_Green=l;Nortli_Red=l;Soutli_Red=l;if(timei_count0=0)TraficLightei_state=2;timer_count0=5;HC595_buffl0=0; break;case 2:HC595_bufIIl=0;状态2,南北方向红,东西黄灯闪烁South_Red=l;North

    18、_Red=l;if(timei_count 1=50)timei_countl=0;East_Ydlow=East_Y亡 llow;West_Ybllow=West_Ydlow;if(timei_count0=0)TraficLighter_state=3;timei_count0=50;HC595_bi】ff!0=0;HC595_bi】ffl=0; break;case 3: 状态3,南北方向绿灯,东西红灯 East_Red=l;WesCRed=l;Noitli_Green=l;Soutli_Green=l;if(timei_count0=0)TraficLighter_state=4;ti

    19、mei_countO=5;HC595_bi】ff!0=0;HC595_bi】ffl=0; break;case 4: 状态4,东西方向红,南北黄灯闪烁 East_Red=l;West_Red=l;if(timei_count 1=50)timei_countl=0:South Yellow=-South Yellow;North_Ydlow=North_Yellow;if(timei_count0=0)TraficLighter_state= 1;timei_count0=5;HC595_bi】ff!0=0;HC595_bi】ffl=0; break;包含头文件宏定义8 UART串口通讯实验#

    20、 mclude define umt unsigned mt define uchar unsigned char uchar Rec_No;uchai Rec_Data; uchai- Rec_Addr;uchar Send_ok;uchar Rec.order; uchar Self.Addi;sbit relay=P3A7;严*名称:主程序说明:void main(void)SMO=0;SMI=1;REN=1;TMOD |=0x20;TH1=Oxfd;TL1=Oxfd;TRI=1;PCON &=Ox7f;/ UART串I I初始化串口方式1允许接收定时器T1方式2装载计数器初值启动 Tu

    21、ner 1/SMOD=03RT=9600bps;SMOD=1 ,ERT= 19200bps;Send_ok=0;Self.Addr=0x02;ES =1; 打开串I I中断EA =1; 总开关使能/ 人循坏while(l)严* 名称:串II中断服务子程序 功能:*/ void UARTO(void) mtenupt 4 uchar TempO;if(RI=l) 接收到数据 Rec_No+;TenipO=SBUF;RI=O;if(Rec_No=l) Rec_Addr=TempO; 必须软件清零标志else if(Rec_No=2) Rec_oidei-TempO;Rec_No=0;if(Rec_Add L=SelfLAddQif(Rec_ordei-=0x21) relay=O;if(Rec_ordei-=0x2 2)relav=l; if(Rec_ordei-=0x2 0) SEUF=Rec_No;Send_ok=0; if(TI=l)TI=0;if(Send_ok=0) SBUF=35;Send_ok=l;


    注意事项

    本文(单片机实验程序全.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开