单片机课程设计报告-基于单片机的模数转换及pwm波形发生器(编辑修改稿)内容摘要:

14 参考文献 : [1] 李群芳等 .单片微型计算机与接口技术 .[M]北京:电子工业出版社 , [2] 谢辉 .单片机原理及应用 .[M]北京:化学工业出版社 , [3] 周向红 .51 系列单片机应用与实践教程 .[M]北京:北京航空航天大学出版社, 2020 [4] 谭浩强 .C 语言程序设计 .第 2 版 .北京: 清华大学 出版社, [5] 李光飞,楼然苗等 .单片机课程设计实例指导 .北京:清华大学出版社, 2020 [6] 何利民 .I178。 C总线应用系统设计 . 北京:机械工业出版社, 2020 [7] [8] [9] 15 附录 A 程序清单 延时子程序清单: include /* uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是 定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ,大致延时长度如下 T=tx2+5 uS */ void DelayUs2x(unsigned char t) { while(t)。 }/*mS 延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振 12M,精确延时 使用汇编 */ void DelayMs(unsigned char t) { while(t) { //大致延时 1mS DelayUs2x(65535)。 DelayUs2x(65535)。 } } 显示、定时器初始化及中断子函数清单 include include define DataPort P0 //定义数据端口 程序中遇到 DataPort 则用 P0 替换 //sbit LATCH1=P2^0。 //定义锁存使能端口 段锁存 //sbit LATCH2=P2^3。 // 位锁存 16 unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 // 显示段码值 0~9 unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。 //分别对应相应的数码管点亮 ,即位码 unsigned char TempData[8]。 //存储显示值的全局变量 /* 显示函数,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值 2 表示从第三个数码管开始显示 如输入 0 表示从第一个显示。 Num 表示需要显示的位数,如需要显示 99 两位数值则该值输入 2 */ void Display(unsigned char FirstBit,unsigned char Num) { static unsigned char i=0。 DataPort=0。 //清空数据,防止有交替重影 LATCH1=1。 //段锁存 LATCH1=0。 DataPort=dofly_WeiMa[i+FirstBit]。 //取位码 LATCH2=1。 //位锁存 LATCH2=0。 DataPort=TempData[i]。 //取显示数据,段码 LATCH1=1。 //段锁存 LATCH1=0。 i++。 if(i==Num) 17 i=0。 } /* 定时器初始化子程序 */ void Init_Timer0(void) { TMOD |= 0x01。 //使用模式 1, 16 位定时器,使用 |符号可以 在使用多个定时器时不受影响 //TH0=0x00。 //给定初值 //TL0=0x00。 EA=1。 //总中断打开 ET0=1。 //定时器中断打开 TR0=1。 //定时器开关打开 } /* 定时器中断子程序 */ void Timer0_isr(void) interrupt 1 { TH0=(655362020)/256。 //重新赋值 2ms TL0=(655362020)%256。 Display(0,8)。 } 18 I178。 C 协议子程序 : include include define _Nop() _nop_() //定义空指令 bit ack。 //应答标志位 sbit SDA=P2^1。 sbit SCL=P2^0。 /* 启动总线。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。