版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1234 56789101112131415主电源引脚主电源引脚 VCC(40脚):+2.7+5 V电源正端。 VSS(20脚):电源数字地端。外接晶体引脚外接晶体引脚 XTAL1(19脚)、 XTAL2(18脚) :16输入输入 / 输出(输出(I/O)引脚)引脚 ( (需注意不同类型芯片的特殊定义需注意不同类型芯片的特殊定义) )171819202122操 作入 口 地 址复位0000H外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口中断0023H定时器/计数器0溢出002BH23242526RXDTXD主机 8051RXD TXD
2、 8051 0# 从机RXD TXD 8051 1# 从机RXD TXD 8051 n# 从机 27SM0SM1工作方式功 能波 特 率00方式0移位寄存器方式,并行I/O扩展fosc /1201方式18位通用异步接收器/发送器可变10方式29位通用异步接收器/发送器fosc /32或 fosc /6411方式39位通用异步接收器/发送器可变282930313233包含头文件包含头文件宏定义宏定义公共变量公共变量子函数子函数int function1( unsigned int x) 变量定义变量定义 语句执行语句执行main() main() 变量定义变量定义 初始化寄存器初始化寄存器 do
3、 while(1)343536# include # define uchar unsigned char # define uint unsigned int void dlms( void );uchar kbscan( void );void main ( void ) uchar key ; while(1) key =kbscan ( ) ; dlms( ) ; void dlms( void ) uchar i ; for ( i=200; i0; i- -) 37uchar kbscan ( void ) /* 键扫描函数键扫描函数 */ uchar scode, recode;
4、 P1=oxf0 ; if ( ( P1 & 0 xf0 ) ! =0 xf0 ) /* 若有键按下若有键按下 */ dlms ( ) ; /* 延时去抖动延时去抖动 */ if ( P1 & 0 xf0 )! = 0 xf0 ) scode =0 xfe ; /* 逐行扫描初值逐行扫描初值 */ while ( scode & 0 x10 ) !=0 ) P1=scode ; /* 输出扫描输出扫描码码 */ if ( P1 & 0 xf0 )! =0 xf0 ) /* 本行有键按下本行有键按下 */ recode= ( P1 & 0 xf0 ) |
5、0 x0f ; return ( scode ) + ( recode ) ) ; /* 返回特征字节码返回特征字节码 */ else scode = ( scode 1) | 0 x01 ; /* 行扫描左移一位行扫描左移一位 */ return ( 0 ) ; 3839# include unsigned char status;bit flag;void service_int1( ) interrupt 2 using 2 /* INT1中断服务程序,使用第中断服务程序,使用第2组作寄存器组作寄存器 */ flag=1; /* 设置标志设置标志 */ status=P1; /* 存输入
6、口状态存输入口状态 */void main(void) IP=0 x04 ; /* 置置INT1为高优先级中断为高优先级中断 */ IE=0 x84 ; /* INT1开中断,开中断,CPU开中断开中断 */ for(; ;) if(flag) /* 有中断有中断 */ if(status= =0) /* 处理处理IN0 */ flag=0 ; /* 处理完成清标志处理完成清标志 */ 40单片机的fosc=12MHz晶振,要求在P1.0脚上输出周期为2ms的方波。周期为2ms的方波要求定时时间隔1ms,每次时间到P1.0取反。机器周期=12/fosc=1s,需计数次数=1ms/1s=1000
7、,由于计数器是加1计数,为得到1000个计数之后的定时器溢出,必须给定时器置初值为-1000。41# include sbit P1_0=P10 ;void timer (void) interrupt 1 using 1 /* T/C0中断服务程序入口中断服务程序入口 */ P1_0=!P1_0 ; /* P1.0取反取反 */ TH0= -(1000/256); / * 重新装载计数初值重新装载计数初值 */TL0= -(1000%256) ;void main( void ) TMOD=0 x01 ; /* T/C0工作在定时器非门控制方式工作在定时器非门控制方式1 */ P1_0=0;
8、 TH0= -(1000/256 ); /* 预置计数初值预置计数初值 */ TL0= -(1000%256) ; EA=1; /* CPU中断开放中断开放 */ ET0= 1; /* T/C0中断开放中断开放 */ TR0=1; /* 启动启动T/C0开始定时开始定时 */ do while(1) ; /* 等待中断等待中断 */4243# include # include # define DA0832 xbyte 0 xFFFE / 定义定义DAC0832的端口地址的端口地址 # define uchar unsigned char # define uint unsigned int void main (void ) uchar i ; while ( 1 ) for ( i=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大龄农民工关爱帮扶与就地就近就业支持措施
- 直肠癌患者的微创治疗护理
- 2026年低碳涂料产品碳标签认证与低碳产品标识申请材料
- 2026年小学食品安全培训
- 3《鸿门宴》课件+2025-2026学年统编版高一语文必修下册
- 2026年海外仓WMS TMS系统一体化集成实施方案
- 投资控制方案的制定和实施措施
- 2026年疏散演练培训
- 新生儿脱水热的家庭护理
- 2026年山区防落石安全培训
- 《第2课 玩转季节色》课件2025-2026学年人教版美术二年级下册
- 2026年深圳市高三语文一模作文“戏剧性的瞬间”58分56分范文及点评
- 2026年淮南联合大学单招综合素质考试题库带答案详解
- 2026年安徽工贸职业技术学院单招职业技能考试题库及一套答案详解
- 江苏省重点高中2026届高三九校联考政治试卷(含答案)
- 2026中食(河北)产业发展有限公司招聘市场运营部专员考试参考试题及答案解析
- (一模)东北三省三校2026年高三第一次联合模拟考试物理试卷(含答案)
- 2026保安员资格考试培训试题及答案
- 2026湖南省卫生健康委直属事业单位招聘185人考试参考题库及答案解析
- 2026年安徽财贸职业学院单招职业适应性考试必刷测试卷必考题
- 部队保密安全教育课件
评论
0/150
提交评论