单片机试题库程序及答案_第1页
单片机试题库程序及答案_第2页
单片机试题库程序及答案_第3页
单片机试题库程序及答案_第4页
单片机试题库程序及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序功能通过用DAC0832产生三角波。(DAC0832的数字信号输入端接P0口,/CS接P27,/XFER接地,/WR1、/WR2接单片机的/WR,ILE接电源5V。)DA0832IFORI255I0IFORI0IINCLUDE/存放绝对地址宏定义的函数原型INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEDA0832XBYTE0X7FFFVOIDDELAY_1MSTH10XFCTL10X18TR11WHILETF1/等待1MS定时时间到TF10VOIDMAINUCHARITMOD0X10WHILE1FORI0I0IDA0832I/D/A转换输出DELAY_1MS2、程序功能通过DAC0832产生锯齿波。(DAC0832的数字信号输入端接P0口,/CS接P27,/XFER接地,/WR1、/WR2接单片机的/WR,ILE接电源5V。)选择项DELAY_1MSDA0832IFORI0I源程序INCLUDE/存放绝对地址宏定义的函数原型INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEDA0832XBYTE0X7FFFVOIDDELAY_1MSTH10XFCTL10X18TR11WHILETF1TF10VOIDMAINUCHARITMOD0X10WHILE1FORI0I23IFTIME159IFTIME059P0DISPCODETIMEI/10P0DISPCODETIMEI10FORI0I0KVOIDDISPLAYVOID/显示函数UCHARI,KK0X01/设置位选线初值FORI0I59/秒是否超过59TIME00/秒清0TIME1/分加1IFTIME159/分是否超过59TIME10/分清0TIME2/小时加1IFTIME223/小时是否超过23TIME20/小时清0VOIDMAIN()/主函数UCHARIWHILE1/无限循环FORI0I3I0DELAY10/一曲结束,重新开始播放VOIDTIMEINTERRUPT3/T1中断服务程序TH1TH/定时器重置初值(高位)TL1TL/定时器重置初值(低位)P1_3P1_3/输出取反5、程序功能设置八个电子琴键(从P1口接入),能够通过按键发出相应的声音(弹奏)。利用单片机的定时器T0实现声音频率的产生(P33引脚接蜂鸣器)。选择项CASE0X7FCASE0XFESWITCHIWHILE1TCON0X10TMOD0X01MAINP3_3P3_3VOIDINTTOINTERRUPT1SBITP3_3P33源程序INCLUDE“REG52H“/头文件SBITP3_3P33/定义蜂鸣器输出引脚UNSIGNEDCHARIDATAI,TL0_TEMP0,TH0_TEMP0/定义全局变量VOIDINTTOINTERRUPT1/T0服务程序TH0TH0_TEMP/定时器重置初值(高位)TL0TL0_TEMP/定时器重置初值(低位)P3_3P3_3/输出取反MAIN/主函数P10XFF/端口初始化TMOD0X01/定时器工作方式设置ET01/T0中断允许设置EA1/中断总允许设置TH00/定时初值高位设置TL00/定时初值低位设置TCON0X10/定时器启动设置WHILE1/无限循环IP1/读端口值SWITCHICASE0XFFTR00BREAK/无键按下CASE0XFETH0_TEMP0XFCTL0_TEMP0X43TR01BREAK/1键按下CASE0XFDTH0_TEMP0XFCTL0_TEMP0XABTR01BREAK/2键按下CASE0XFBTH0_TEMP0XFDTL0_TEMP0X08TR01BREAK/3键按下CASE0XF7TH0_TEMP0XFDTL0_TEMP0X32TR01BREAK/4键按下CASE0XEFTH0_TEMP0XFDTL0_TEMP0X81TR01BREAK/5键按下CASE0XDFTH0_TEMP0XFDTL0_TEMP0XC7TR01BREAK/6键按下CASE0XBFTH0_TEMP0XFETL0_TEMP0X05TR01BREAK/7键按下CASE0X7FTH0_TEMP0XFETL0_TEMP0X21TR01BREAK/8键按下DEFAULTTR00BREAK/多键按下6、程序功能单片机控制两个共阳数码管实现计数显示(P0口接段码,P20口接十位数码管的位码,P21口接个位数码管的位码)。外中断0每触发一次,计数值加1;外中断1每触发一次,计数值减1。选择项IFA99VOIDINT0VOIDINTERRUPT0DIAPLAYA/10A10P20X02P20X01VOIDDIAPLAYVOID源程序INCLUDE/头文件UNSIGNEDCHARTABLE100XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90/定义共阳数码管09显示码数组UNSIGNEDCHARDATA_L,DATA_H/定义全局变量显示个位、十位CHARA0/定义全局变量计数初值VOIDDELAYUNSIGNEDCHARK/延时函数UNSIGNEDCHARM,NFORM0M99A0/计数值过大,清零ELSEA/计数值加1VOIDINT1VOIDINTERRUPT2/外部中断1函数IFAUNSIGNEDCHARAUNSIGNEDCHARM,NIE0X85TCON0X05WHILE1P0AVOIDINT0VOIDINTERRUPT0VOIDINT1VOIDINTERRUPT2A_CROR_A,1源程序INCLUDE/头文件INCLUDE/包含循环移位函数的头文件UNSIGNEDCHARA/定义全局变量VOIDDELAYUNSIGNEDCHARK/延时函数UNSIGNEDCHARM,NFORM0M/头文件UNSIGNEDCHARMOTO_PAI80XF1,0XF3,0XF2,0XF6,0XF4,0XFC,0XF8,0XF9/单双相正转UNSIGNEDCHARPAI_NUM/状态号SBITCFP30/开关设置VOIDTIMERVOIDINTERRUPT1USING1/T0中断服务程序TH06553660000/256/定时器重置初值(高位)TL06553660000256/定时器重置初值(低位)IFCF0/开关闭合PAI_NUM/状态号加1IFPAI_NUM8PAI_NUM0/若状态号过大,回零ELSE/开关断开IFPAI_NUM0I源程序INCLUDE/头文件DEFINEUCHARUNSIGNEDCHARUCHARCODETAB10X01,0X02,0X04,0X08/单相正转加电代码UCHARCODETAB20X03,0X06,0X0C,0X09/双相正转电代码UCHARCODETAB30X01,0X03,0X02,0X06,0X04,0X0C,0X08,0X09/单双相正转VOIDDELAY/延时函数LONGIFORI0I0IP2TAB1IDELAYBREAK/单步4拍反走CA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论