Using the 8254 Timer-Counter.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Using the 8254 Timer-Counter.ppt

Using the 8254 Timer-Counter Understanding the role of the system’s 8254 programmable Interval-Timer/Counter Displaying ‘Time-Of-Day’ Algorithm steps: Get the count of timer-interrupts so far today Convert these ‘timer-ticks’ into seconds Breakdown the total number of seconds today into Hours, Minutes, Seconds, and AM/PM Convert numerical values into digit-strings Output these results to the video terminal Where’s the ‘tick’ counter? Getting the ‘tick’ count The ROM-BIOS interrupt-handler for the timer interrupt stores the tick-count as a 32-bit integer located at address 0x046C (it’s in the ROM-BIOS DATA AREA) In real-mode, we can get it like this: Converting ‘ticks’ to seconds The 8254 PIT The 8254 Programmable Interval-timer is used by the PC system for (1) generating timer-tick interrupts (rate is 18.2 per sec), (2) performing dynamic memory-refresh (reads ram once every 15 microseconds), and (3) generates ‘beeps’ of PC speaker When the speaker-function isn’t needed, the 8254 is available for other purposes Input/Output frequencies The input-pulses to each Timer-channel is a long established PC standard, based on the design of the chrystal oscillator chip: 1,193,182 pulses-per-second (Hertz) The frequency of the output-pulses from any Timer-channel is determined by how that channel’s Latch was programmed Three timer/counter ‘channels’ Counter decrements when pulsed 8254 Command-Port Programming a PIT channel Step 1: send command to PIT (port 0x43) Step 2: read or write the channel’s Latch via port 0x40 for channel 0 via port 0x41 for channel 1 via port 0x42 for channel 2 Standard BIOS programming For Channel 0 (the ‘timer-tick’ interrupt) the Latch is programmed during system startup with a value of zero But the Timer interprets zero as 65,536 So the frequency of the output-pulses from Timer-channel 0 is equal to this quotient: output-frequency = input-frequency / frequency-divisor = 1193182 / 65536 (approximately 18.2) Consequently… To co

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档